package org.bbs.osgi.activity; import android.app.Activity; import android.content.Intent; import android.content.res.Resources; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup.LayoutParams; /** * define method consistency with {@link Activity}. * <p> * {@link #mHostActivity} will be inited (!= null) before {@link #onCreate(Bundle)}, after * {@link #onDestroy()}, it will be un-inited ( == null). * * <p> * when add new function, keep it in section, in order. * @author luoqii * * @see {@link BundleActivity} */ public class ActivityAgent { protected FragmentActivity mHostActivity; // life-cycle protected void onCreate(Bundle savedInstanceState) { } protected void onResume() { } protected void onPause() { } protected void onDestroy() { mHostActivity = null; } public void onRestoreInstanceState(Bundle savedInstanceState) { } public void onPostCreate(Bundle savedInstanceState) { } public void onRestart() { } // content view public void setContentView(int layoutResID) { mHostActivity.setContentView(layoutResID); } public void setContentView(View view) { mHostActivity.setContentView(view); } public void setContentView(View view, LayoutParams params) { mHostActivity.setContentView(view, params); } public void setTitle(int titleId) { mHostActivity.setTitle(titleId); } public void setTitle(CharSequence title) { mHostActivity.setTitle(title); } // menu. // public boolean onPreparePanel(int arg0, View arg1, Menu arg2) { // return false; // } public boolean onCreateOptionsMenu(Menu menu){ return false; } public boolean onOptionsItemSelected(MenuItem item){ return false; } public boolean onPrepareOptionsMenu(Menu menu){ return false; } // start activity public void startActivityFromFragment(Fragment fragment, Intent intent, int requestCode) { mHostActivity.startActivityFromFragment(fragment, intent, requestCode); } public void startActivity(Intent intent) { mHostActivity.startActivity(intent); } public void startActivity(Intent intent, Bundle options) { mHostActivity.startActivity(intent, options); } public boolean startActivityIfNeeded(Intent intent, int requestCode) { return mHostActivity.startActivityIfNeeded(intent, requestCode); } public boolean startActivityIfNeeded(Intent intent, int requestCode, Bundle options) { return mHostActivity.startActivityIfNeeded(intent, requestCode, options); } public void startActivityFromChild(Activity child, Intent intent, int requestCode) { mHostActivity.startActivityFromChild(child, intent, requestCode); } public void startActivityFromChild(Activity child, Intent intent, int requestCode, Bundle options) { mHostActivity.startActivityFromChild(child, intent, requestCode, options); } public void startActivityFromFragment(android.app.Fragment fragment, Intent intent, int requestCode) { mHostActivity.startActivityFromFragment(fragment, intent, requestCode); } public void startActivityFromFragment(android.app.Fragment fragment, Intent intent, int requestCode, Bundle options) { mHostActivity.startActivityFromFragment(fragment, intent, requestCode, options); } public void startActivityForResult(Intent intent, int requestCode) { mHostActivity.startActivityForResult(intent, requestCode); } // activity result. public void onActivityResult(int arg0, int arg1, Intent arg2) { } // res public Resources getResources() { return mHostActivity.getResources(); } public boolean dispatchKeyEvent(KeyEvent event) { // TODO Auto-generated method stub return false; } public boolean dispatchGenericMotionEvent(MotionEvent ev) { // TODO Auto-generated method stub return false; } public boolean dispatchTrackballEvent(MotionEvent ev) { // TODO Auto-generated method stub return false; } public boolean dispatchTouchEvent(MotionEvent ev) { // TODO Auto-generated method stub return false; } public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { } public boolean onContextItemSelected(MenuItem item) { return false; } public void onContextMenuClosed(Menu menu) { } }