package edu.mit.mitmobile2; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; public abstract class ModuleActivity extends Activity { protected static final int MENU_MAIN_GROUP = 0; protected static final int MENU_HOME = Menu.FIRST; protected static final int MENU_MODULE_HOME = MENU_HOME + 1; protected static final int MENU_SEARCH = MENU_MODULE_HOME + 1; protected static final String MENU_SEARCH_TITLE = "Search"; protected Global app; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); app = (Global)getApplication(); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case MENU_HOME: HomeScreenActivity.goHome(this); return true; case MENU_MODULE_HOME: Intent intent = new Intent(this, getModule().getModuleHomeActivity()); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); return true; case MENU_SEARCH: onSearchRequested(); return true; } return super.onOptionsItemSelected(item); } @Override public boolean onPrepareOptionsMenu(Menu menu) { menu.clear(); menu.add(MENU_MAIN_GROUP, MENU_HOME, Menu.NONE, "Home") .setIcon(R.drawable.menu_home); if(!isModuleHomeActivity()) { menu.add(MENU_MAIN_GROUP, MENU_MODULE_HOME, Menu.NONE, getModule().getMenuOptionTitle()) .setIcon(getModule().getMenuIconResourceId()); } prepareActivityOptionsMenu(menu); return super.onPrepareOptionsMenu(menu); } abstract protected Module getModule(); abstract public boolean isModuleHomeActivity(); abstract protected void prepareActivityOptionsMenu(Menu menu); @SuppressWarnings("static-access") public String getMobileWebDomain() { return app.getMobileWebDomain(); } }