+package com.actionbarsherlock.app;\r
+\r
+import android.app.ExpandableListActivity;\r
+import android.content.res.Configuration;\r
+import android.os.Bundle;\r
+import android.view.KeyEvent;\r
+import android.view.View;\r
+import android.view.ViewGroup.LayoutParams;\r
+import android.view.Window;\r
+import com.actionbarsherlock.ActionBarSherlock;\r
+import com.actionbarsherlock.ActionBarSherlock.OnActionModeFinishedListener;\r
+import com.actionbarsherlock.ActionBarSherlock.OnActionModeStartedListener;\r
+import com.actionbarsherlock.ActionBarSherlock.OnCreatePanelMenuListener;\r
+import com.actionbarsherlock.ActionBarSherlock.OnMenuItemSelectedListener;\r
+import com.actionbarsherlock.ActionBarSherlock.OnPreparePanelListener;\r
+import com.actionbarsherlock.view.ActionMode;\r
+import com.actionbarsherlock.view.Menu;\r
+import com.actionbarsherlock.view.MenuInflater;\r
+import com.actionbarsherlock.view.MenuItem;\r
+\r
+public abstract class SherlockExpandableListActivity extends ExpandableListActivity implements OnCreatePanelMenuListener, OnPreparePanelListener, OnMenuItemSelectedListener, OnActionModeStartedListener, OnActionModeFinishedListener {\r
+ private ActionBarSherlock mSherlock;\r
+\r
+ protected final ActionBarSherlock getSherlock() {\r
+ if (mSherlock == null) {\r
+ mSherlock = ActionBarSherlock.wrap(this, ActionBarSherlock.FLAG_DELEGATE);\r
+ }\r
+ return mSherlock;\r
+ }\r
+\r
+\r
+ ///////////////////////////////////////////////////////////////////////////\r
+ // Action bar and mode\r
+ ///////////////////////////////////////////////////////////////////////////\r
+\r
+ public ActionBar getSupportActionBar() {\r
+ return getSherlock().getActionBar();\r
+ }\r
+\r
+ public ActionMode startActionMode(ActionMode.Callback callback) {\r
+ return getSherlock().startActionMode(callback);\r
+ }\r
+\r
+ @Override\r
+ public void onActionModeStarted(ActionMode mode) {}\r
+\r
+ @Override\r
+ public void onActionModeFinished(ActionMode mode) {}\r
+\r
+\r
+ ///////////////////////////////////////////////////////////////////////////\r
+ // General lifecycle/callback dispatching\r
+ ///////////////////////////////////////////////////////////////////////////\r
+\r
+ @Override\r
+ public void onConfigurationChanged(Configuration newConfig) {\r
+ super.onConfigurationChanged(newConfig);\r
+ getSherlock().dispatchConfigurationChanged(newConfig);\r
+ }\r
+\r
+ @Override\r
+ protected void onPostResume() {\r
+ super.onPostResume();\r
+ getSherlock().dispatchPostResume();\r
+ }\r
+\r
+ @Override\r
+ protected void onPause() {\r
+ getSherlock().dispatchPause();\r
+ super.onPause();\r
+ }\r
+\r
+ @Override\r
+ protected void onStop() {\r
+ getSherlock().dispatchStop();\r
+ super.onStop();\r
+ }\r
+\r
+ @Override\r
+ protected void onPostCreate(Bundle savedInstanceState) {\r
+ getSherlock().dispatchPostCreate(savedInstanceState);\r
+ super.onPostCreate(savedInstanceState);\r
+ }\r
+\r
+ @Override\r
+ protected void onTitleChanged(CharSequence title, int color) {\r
+ getSherlock().dispatchTitleChanged(title, color);\r
+ super.onTitleChanged(title, color);\r
+ }\r
+\r
+ @Override\r
+ public final boolean onMenuOpened(int featureId, android.view.Menu menu) {\r
+ if (getSherlock().dispatchMenuOpened(featureId, menu)) {\r
+ return true;\r
+ }\r
+ return super.onMenuOpened(featureId, menu);\r
+ }\r
+\r
+ @Override\r
+ public void onPanelClosed(int featureId, android.view.Menu menu) {\r
+ getSherlock().dispatchPanelClosed(featureId, menu);\r
+ super.onPanelClosed(featureId, menu);\r
+ }\r
+\r
+ @Override\r
+ public boolean dispatchKeyEvent(KeyEvent event) {\r
+ if (getSherlock().dispatchKeyEvent(event)) {\r
+ return true;\r
+ }\r
+ return super.dispatchKeyEvent(event);\r
+ }\r
+\r
+\r
+ ///////////////////////////////////////////////////////////////////////////\r
+ // Native menu handling\r
+ ///////////////////////////////////////////////////////////////////////////\r
+\r
+ public MenuInflater getSupportMenuInflater() {\r
+ return getSherlock().getMenuInflater();\r
+ }\r
+\r
+ public void invalidateOptionsMenu() {\r
+ getSherlock().dispatchInvalidateOptionsMenu();\r
+ }\r
+\r
+ public void supportInvalidateOptionsMenu() {\r
+ invalidateOptionsMenu();\r
+ }\r
+\r
+ @Override\r
+ public final boolean onCreateOptionsMenu(android.view.Menu menu) {\r
+ return getSherlock().dispatchCreateOptionsMenu(menu);\r
+ }\r
+\r
+ @Override\r
+ public final boolean onPrepareOptionsMenu(android.view.Menu menu) {\r
+ return getSherlock().dispatchPrepareOptionsMenu(menu);\r
+ }\r
+\r
+ @Override\r
+ public final boolean onOptionsItemSelected(android.view.MenuItem item) {\r
+ return getSherlock().dispatchOptionsItemSelected(item);\r
+ }\r
+\r
+ @Override\r
+ public void openOptionsMenu() {\r
+ if (!getSherlock().dispatchOpenOptionsMenu()) {\r
+ super.openOptionsMenu();\r
+ }\r
+ }\r
+\r
+ @Override\r
+ public void closeOptionsMenu() {\r
+ if (!getSherlock().dispatchCloseOptionsMenu()) {\r
+ super.closeOptionsMenu();\r
+ }\r
+ }\r
+\r
+\r
+ ///////////////////////////////////////////////////////////////////////////\r
+ // Sherlock menu handling\r
+ ///////////////////////////////////////////////////////////////////////////\r
+\r
+ @Override\r
+ public boolean onCreatePanelMenu(int featureId, Menu menu) {\r
+ if (featureId == Window.FEATURE_OPTIONS_PANEL) {\r
+ return onCreateOptionsMenu(menu);\r
+ }\r
+ return false;\r
+ }\r
+\r
+ public boolean onCreateOptionsMenu(Menu menu) {\r
+ return true;\r
+ }\r
+\r
+ @Override\r
+ public boolean onPreparePanel(int featureId, View view, Menu menu) {\r
+ if (featureId == Window.FEATURE_OPTIONS_PANEL) {\r
+ return onPrepareOptionsMenu(menu);\r
+ }\r
+ return false;\r
+ }\r
+\r
+ public boolean onPrepareOptionsMenu(Menu menu) {\r
+ return true;\r
+ }\r
+\r
+ @Override\r
+ public boolean onMenuItemSelected(int featureId, MenuItem item) {\r
+ if (featureId == Window.FEATURE_OPTIONS_PANEL) {\r
+ return onOptionsItemSelected(item);\r
+ }\r
+ return false;\r
+ }\r
+\r
+ public boolean onOptionsItemSelected(MenuItem item) {\r
+ return false;\r
+ }\r
+\r
+\r
+ ///////////////////////////////////////////////////////////////////////////\r
+ // Content\r
+ ///////////////////////////////////////////////////////////////////////////\r
+\r
+ @Override\r
+ public void addContentView(View view, LayoutParams params) {\r
+ getSherlock().addContentView(view, params);\r
+ }\r
+\r
+ @Override\r
+ public void setContentView(int layoutResId) {\r
+ getSherlock().setContentView(layoutResId);\r
+ }\r
+\r
+ @Override\r
+ public void setContentView(View view, LayoutParams params) {\r
+ getSherlock().setContentView(view, params);\r
+ }\r
+\r
+ @Override\r
+ public void setContentView(View view) {\r
+ getSherlock().setContentView(view);\r
+ }\r
+\r
+ public void requestWindowFeature(long featureId) {\r
+ getSherlock().requestFeature((int)featureId);\r
+ }\r
+\r
+\r
+ ///////////////////////////////////////////////////////////////////////////\r
+ // Progress Indication\r
+ ///////////////////////////////////////////////////////////////////////////\r
+\r
+ public void setSupportProgress(int progress) {\r
+ getSherlock().setProgress(progress);\r
+ }\r
+\r
+ public void setSupportProgressBarIndeterminate(boolean indeterminate) {\r
+ getSherlock().setProgressBarIndeterminate(indeterminate);\r
+ }\r
+\r
+ public void setSupportProgressBarIndeterminateVisibility(boolean visible) {\r
+ getSherlock().setProgressBarIndeterminateVisibility(visible);\r
+ }\r
+\r
+ public void setSupportProgressBarVisibility(boolean visible) {\r
+ getSherlock().setProgressBarVisibility(visible);\r
+ }\r
+\r
+ public void setSupportSecondaryProgress(int secondaryProgress) {\r
+ getSherlock().setSecondaryProgress(secondaryProgress);\r
+ }\r
+}\r