1 package com.actionbarsherlock.app;
\r
3 import android.content.res.Configuration;
\r
4 import android.os.Bundle;
\r
5 import android.preference.PreferenceActivity;
\r
6 import android.view.KeyEvent;
\r
7 import android.view.View;
\r
8 import android.view.ViewGroup.LayoutParams;
\r
9 import android.view.Window;
\r
10 import com.actionbarsherlock.ActionBarSherlock;
\r
11 import com.actionbarsherlock.ActionBarSherlock.OnActionModeFinishedListener;
\r
12 import com.actionbarsherlock.ActionBarSherlock.OnActionModeStartedListener;
\r
13 import com.actionbarsherlock.ActionBarSherlock.OnCreatePanelMenuListener;
\r
14 import com.actionbarsherlock.ActionBarSherlock.OnMenuItemSelectedListener;
\r
15 import com.actionbarsherlock.ActionBarSherlock.OnPreparePanelListener;
\r
16 import com.actionbarsherlock.view.ActionMode;
\r
17 import com.actionbarsherlock.view.Menu;
\r
18 import com.actionbarsherlock.view.MenuInflater;
\r
19 import com.actionbarsherlock.view.MenuItem;
\r
21 public abstract class SherlockPreferenceActivity extends PreferenceActivity implements OnCreatePanelMenuListener, OnPreparePanelListener, OnMenuItemSelectedListener, OnActionModeStartedListener, OnActionModeFinishedListener {
\r
22 private ActionBarSherlock mSherlock;
\r
24 protected final ActionBarSherlock getSherlock() {
\r
25 if (mSherlock == null) {
\r
26 mSherlock = ActionBarSherlock.wrap(this, ActionBarSherlock.FLAG_DELEGATE);
\r
32 ///////////////////////////////////////////////////////////////////////////
\r
33 // Action bar and mode
\r
34 ///////////////////////////////////////////////////////////////////////////
\r
36 public ActionBar getSupportActionBar() {
\r
37 return getSherlock().getActionBar();
\r
40 public ActionMode startActionMode(ActionMode.Callback callback) {
\r
41 return getSherlock().startActionMode(callback);
\r
45 public void onActionModeStarted(ActionMode mode) {}
\r
48 public void onActionModeFinished(ActionMode mode) {}
\r
51 ///////////////////////////////////////////////////////////////////////////
\r
52 // General lifecycle/callback dispatching
\r
53 ///////////////////////////////////////////////////////////////////////////
\r
56 public void onConfigurationChanged(Configuration newConfig) {
\r
57 super.onConfigurationChanged(newConfig);
\r
58 getSherlock().dispatchConfigurationChanged(newConfig);
\r
62 protected void onPostResume() {
\r
63 super.onPostResume();
\r
64 getSherlock().dispatchPostResume();
\r
68 protected void onPause() {
\r
69 getSherlock().dispatchPause();
\r
74 protected void onStop() {
\r
75 getSherlock().dispatchStop();
\r
80 protected void onDestroy() {
\r
81 getSherlock().dispatchDestroy();
\r
86 protected void onPostCreate(Bundle savedInstanceState) {
\r
87 getSherlock().dispatchPostCreate(savedInstanceState);
\r
88 super.onPostCreate(savedInstanceState);
\r
92 protected void onTitleChanged(CharSequence title, int color) {
\r
93 getSherlock().dispatchTitleChanged(title, color);
\r
94 super.onTitleChanged(title, color);
\r
98 public final boolean onMenuOpened(int featureId, android.view.Menu menu) {
\r
99 if (getSherlock().dispatchMenuOpened(featureId, menu)) {
\r
102 return super.onMenuOpened(featureId, menu);
\r
106 public void onPanelClosed(int featureId, android.view.Menu menu) {
\r
107 getSherlock().dispatchPanelClosed(featureId, menu);
\r
108 super.onPanelClosed(featureId, menu);
\r
112 public boolean dispatchKeyEvent(KeyEvent event) {
\r
113 if (getSherlock().dispatchKeyEvent(event)) {
\r
116 return super.dispatchKeyEvent(event);
\r
120 ///////////////////////////////////////////////////////////////////////////
\r
121 // Native menu handling
\r
122 ///////////////////////////////////////////////////////////////////////////
\r
124 public MenuInflater getSupportMenuInflater() {
\r
125 return getSherlock().getMenuInflater();
\r
128 public void invalidateOptionsMenu() {
\r
129 getSherlock().dispatchInvalidateOptionsMenu();
\r
132 public void supportInvalidateOptionsMenu() {
\r
133 invalidateOptionsMenu();
\r
137 public final boolean onCreateOptionsMenu(android.view.Menu menu) {
\r
138 return getSherlock().dispatchCreateOptionsMenu(menu);
\r
142 public final boolean onPrepareOptionsMenu(android.view.Menu menu) {
\r
143 return getSherlock().dispatchPrepareOptionsMenu(menu);
\r
147 public final boolean onOptionsItemSelected(android.view.MenuItem item) {
\r
148 return getSherlock().dispatchOptionsItemSelected(item);
\r
152 public void openOptionsMenu() {
\r
153 if (!getSherlock().dispatchOpenOptionsMenu()) {
\r
154 super.openOptionsMenu();
\r
159 public void closeOptionsMenu() {
\r
160 if (!getSherlock().dispatchCloseOptionsMenu()) {
\r
161 super.closeOptionsMenu();
\r
166 ///////////////////////////////////////////////////////////////////////////
\r
167 // Sherlock menu handling
\r
168 ///////////////////////////////////////////////////////////////////////////
\r
171 public boolean onCreatePanelMenu(int featureId, Menu menu) {
\r
172 if (featureId == Window.FEATURE_OPTIONS_PANEL) {
\r
173 return onCreateOptionsMenu(menu);
\r
178 public boolean onCreateOptionsMenu(Menu menu) {
\r
183 public boolean onPreparePanel(int featureId, View view, Menu menu) {
\r
184 if (featureId == Window.FEATURE_OPTIONS_PANEL) {
\r
185 return onPrepareOptionsMenu(menu);
\r
190 public boolean onPrepareOptionsMenu(Menu menu) {
\r
195 public boolean onMenuItemSelected(int featureId, MenuItem item) {
\r
196 if (featureId == Window.FEATURE_OPTIONS_PANEL) {
\r
197 return onOptionsItemSelected(item);
\r
202 public boolean onOptionsItemSelected(MenuItem item) {
\r
207 ///////////////////////////////////////////////////////////////////////////
\r
209 ///////////////////////////////////////////////////////////////////////////
\r
212 public void addContentView(View view, LayoutParams params) {
\r
213 getSherlock().addContentView(view, params);
\r
217 public void setContentView(int layoutResId) {
\r
218 getSherlock().setContentView(layoutResId);
\r
222 public void setContentView(View view, LayoutParams params) {
\r
223 getSherlock().setContentView(view, params);
\r
227 public void setContentView(View view) {
\r
228 getSherlock().setContentView(view);
\r
231 public void requestWindowFeature(long featureId) {
\r
232 getSherlock().requestFeature((int)featureId);
\r
236 ///////////////////////////////////////////////////////////////////////////
\r
237 // Progress Indication
\r
238 ///////////////////////////////////////////////////////////////////////////
\r
240 public void setSupportProgress(int progress) {
\r
241 getSherlock().setProgress(progress);
\r
244 public void setSupportProgressBarIndeterminate(boolean indeterminate) {
\r
245 getSherlock().setProgressBarIndeterminate(indeterminate);
\r
248 public void setSupportProgressBarIndeterminateVisibility(boolean visible) {
\r
249 getSherlock().setProgressBarIndeterminateVisibility(visible);
\r
252 public void setSupportProgressBarVisibility(boolean visible) {
\r
253 getSherlock().setProgressBarVisibility(visible);
\r
256 public void setSupportSecondaryProgress(int secondaryProgress) {
\r
257 getSherlock().setSecondaryProgress(secondaryProgress);
\r