package org.codeaurora.gallery3d.ext; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; /** * Activity action hooker class. Host app's activity will call this hooker's * functions in its lifecycle. For example: * HostActivity.onCreate()-->hooker.onCreate(). But void init(Activity context, * Intent intent) will be called before other functions.
* IActivityHooker objects may show menus, but we should give a unique menu id * to every menus. Hooker can call getMenuActivityId(int) to get a global unique * menu id to be used in menu.add(), and can call getMenuOriginalId(int) to get * the original menu id. the example: class Hooker implements IActivityHooker { * private static final int MENU_EXAMPLE = 1; * * @Override public boolean onCreateOptionsMenu(Menu menu) { * super.onCreateOptionsMenu(menu); menu.add(0, * getMenuActivityId(MENU_EXAMPLE), 0, android.R.string.ok); return * true; } * @Override public boolean onOptionsItemSelected(MenuItem item) { * switch(getMenuOriginalId(item.getItemId())) { case MENU_EXAMPLE: * //do something return true; default: return false; } } } */ public interface IActivityHooker { /** * Will be called in Host Activity.onCreate(Bundle savedInstanceState) * @param savedInstanceState */ void onCreate(Bundle savedInstanceState); /** * Will be called in Host Activity.onStart() */ void onStart(); /** * Will be called in Host Activity.onStop() */ void onStop(); /** * Will be called in Host Activity.onPause() */ void onPause(); /** * Will be called in Host Activity.onResume() */ void onResume(); /** * Will be called in Host Activity.onDestroy() */ void onDestroy(); /** * Will be called in Host Activity.onCreateOptionsMenu(Menu menu) * @param menu * @return */ /** * Will be called in Host Activity.onCreateOptionsMenu(Menu menu) * * @param menu * @return */ boolean onCreateOptionsMenu(Menu menu); /** * Will be called in Host Activity.onPrepareOptionsMenu(Menu menu) * * @param menu * @return */ boolean onPrepareOptionsMenu(Menu menu); /** * Will be called in Host Activity.onOptionsItemSelected(MenuItem item) * * @param item * @return */ boolean onOptionsItemSelected(MenuItem item); /** * Should be called before any other functions. * * @param context * @param intent */ void init(Activity context, Intent intent); /** * @return return activity set by init(Activity context, Intent intent) */ Activity getContext(); /** * @return return intent set by init(Activity context, Intent intent) */ Intent getIntent(); /** * IActivityHooker objects may show menus, but we should give a unique menu * id to every menus. Hooker can call this function to get a global unique * menu id to be used in menu.add() * * @param id * @return */ int getMenuActivityId(int id); /** * When onOptionsItemSelected is called, we can get menu's id from * parameter. You can get the original menu id by calling this function. * * @param id * @return */ int getMenuOriginalId(int id); /** * Host activity will call this function to set parameter to hooker * activity. * * @param key * @param value */ void setParameter(String key, Object value); }