aba6d85e88ad03ec28c07917211e5e8ede12a9eb
[pub/Android/ownCloud.git] / actionbarsherlock / src / com / actionbarsherlock / app / SherlockListActivity.java
1 package com.actionbarsherlock.app;
2
3 import android.app.ListActivity;
4 import android.content.res.Configuration;
5 import android.os.Bundle;
6 import android.view.KeyEvent;
7 import android.view.View;
8 import android.view.Window;
9 import android.view.ViewGroup.LayoutParams;
10 import com.actionbarsherlock.ActionBarSherlock;
11 import com.actionbarsherlock.ActionBarSherlock.OnActionModeFinishedListener;
12 import com.actionbarsherlock.ActionBarSherlock.OnActionModeStartedListener;
13 import com.actionbarsherlock.ActionBarSherlock.OnCreatePanelMenuListener;
14 import com.actionbarsherlock.ActionBarSherlock.OnMenuItemSelectedListener;
15 import com.actionbarsherlock.ActionBarSherlock.OnPreparePanelListener;
16 import com.actionbarsherlock.view.ActionMode;
17 import com.actionbarsherlock.view.Menu;
18 import com.actionbarsherlock.view.MenuInflater;
19 import com.actionbarsherlock.view.MenuItem;
20
21 public abstract class SherlockListActivity extends ListActivity implements OnCreatePanelMenuListener, OnPreparePanelListener, OnMenuItemSelectedListener, OnActionModeStartedListener, OnActionModeFinishedListener {
22 private ActionBarSherlock mSherlock;
23
24 protected final ActionBarSherlock getSherlock() {
25 if (mSherlock == null) {
26 mSherlock = ActionBarSherlock.wrap(this, ActionBarSherlock.FLAG_DELEGATE);
27 }
28 return mSherlock;
29 }
30
31
32 ///////////////////////////////////////////////////////////////////////////
33 // Action bar and mode
34 ///////////////////////////////////////////////////////////////////////////
35
36 public ActionBar getSupportActionBar() {
37 return getSherlock().getActionBar();
38 }
39
40 public ActionMode startActionMode(ActionMode.Callback callback) {
41 return getSherlock().startActionMode(callback);
42 }
43
44 @Override
45 public void onActionModeStarted(ActionMode mode) {}
46
47 @Override
48 public void onActionModeFinished(ActionMode mode) {}
49
50
51 ///////////////////////////////////////////////////////////////////////////
52 // General lifecycle/callback dispatching
53 ///////////////////////////////////////////////////////////////////////////
54
55 @Override
56 public void onConfigurationChanged(Configuration newConfig) {
57 super.onConfigurationChanged(newConfig);
58 getSherlock().dispatchConfigurationChanged(newConfig);
59 }
60
61 @Override
62 protected void onPostResume() {
63 super.onPostResume();
64 getSherlock().dispatchPostResume();
65 }
66
67 @Override
68 protected void onPause() {
69 getSherlock().dispatchPause();
70 super.onPause();
71 }
72
73 @Override
74 protected void onStop() {
75 getSherlock().dispatchStop();
76 super.onStop();
77 }
78
79 @Override
80 protected void onDestroy() {
81 getSherlock().dispatchDestroy();
82 super.onDestroy();
83 }
84
85 @Override
86 protected void onPostCreate(Bundle savedInstanceState) {
87 getSherlock().dispatchPostCreate(savedInstanceState);
88 super.onPostCreate(savedInstanceState);
89 }
90
91 @Override
92 protected void onTitleChanged(CharSequence title, int color) {
93 getSherlock().dispatchTitleChanged(title, color);
94 super.onTitleChanged(title, color);
95 }
96
97 @Override
98 public final boolean onMenuOpened(int featureId, android.view.Menu menu) {
99 if (getSherlock().dispatchMenuOpened(featureId, menu)) {
100 return true;
101 }
102 return super.onMenuOpened(featureId, menu);
103 }
104
105 @Override
106 public void onPanelClosed(int featureId, android.view.Menu menu) {
107 getSherlock().dispatchPanelClosed(featureId, menu);
108 super.onPanelClosed(featureId, menu);
109 }
110
111 @Override
112 public boolean dispatchKeyEvent(KeyEvent event) {
113 if (getSherlock().dispatchKeyEvent(event)) {
114 return true;
115 }
116 return super.dispatchKeyEvent(event);
117 }
118
119 @Override
120 protected void onSaveInstanceState(Bundle outState) {
121 super.onSaveInstanceState(outState);
122 getSherlock().dispatchSaveInstanceState(outState);
123 }
124
125 @Override
126 protected void onRestoreInstanceState(Bundle savedInstanceState) {
127 super.onRestoreInstanceState(savedInstanceState);
128 getSherlock().dispatchRestoreInstanceState(savedInstanceState);
129 }
130
131 ///////////////////////////////////////////////////////////////////////////
132 // Native menu handling
133 ///////////////////////////////////////////////////////////////////////////
134
135 public MenuInflater getSupportMenuInflater() {
136 return getSherlock().getMenuInflater();
137 }
138
139 public void invalidateOptionsMenu() {
140 getSherlock().dispatchInvalidateOptionsMenu();
141 }
142
143 public void supportInvalidateOptionsMenu() {
144 invalidateOptionsMenu();
145 }
146
147 @Override
148 public final boolean onCreateOptionsMenu(android.view.Menu menu) {
149 return getSherlock().dispatchCreateOptionsMenu(menu);
150 }
151
152 @Override
153 public final boolean onPrepareOptionsMenu(android.view.Menu menu) {
154 return getSherlock().dispatchPrepareOptionsMenu(menu);
155 }
156
157 @Override
158 public final boolean onOptionsItemSelected(android.view.MenuItem item) {
159 return getSherlock().dispatchOptionsItemSelected(item);
160 }
161
162 @Override
163 public void openOptionsMenu() {
164 if (!getSherlock().dispatchOpenOptionsMenu()) {
165 super.openOptionsMenu();
166 }
167 }
168
169 @Override
170 public void closeOptionsMenu() {
171 if (!getSherlock().dispatchCloseOptionsMenu()) {
172 super.closeOptionsMenu();
173 }
174 }
175
176
177 ///////////////////////////////////////////////////////////////////////////
178 // Sherlock menu handling
179 ///////////////////////////////////////////////////////////////////////////
180
181 @Override
182 public boolean onCreatePanelMenu(int featureId, Menu menu) {
183 if (featureId == Window.FEATURE_OPTIONS_PANEL) {
184 return onCreateOptionsMenu(menu);
185 }
186 return false;
187 }
188
189 public boolean onCreateOptionsMenu(Menu menu) {
190 return true;
191 }
192
193 @Override
194 public boolean onPreparePanel(int featureId, View view, Menu menu) {
195 if (featureId == Window.FEATURE_OPTIONS_PANEL) {
196 return onPrepareOptionsMenu(menu);
197 }
198 return false;
199 }
200
201 public boolean onPrepareOptionsMenu(Menu menu) {
202 return true;
203 }
204
205 @Override
206 public boolean onMenuItemSelected(int featureId, MenuItem item) {
207 if (featureId == Window.FEATURE_OPTIONS_PANEL) {
208 return onOptionsItemSelected(item);
209 }
210 return false;
211 }
212
213 public boolean onOptionsItemSelected(MenuItem item) {
214 return false;
215 }
216
217
218 ///////////////////////////////////////////////////////////////////////////
219 // Content
220 ///////////////////////////////////////////////////////////////////////////
221
222 @Override
223 public void addContentView(View view, LayoutParams params) {
224 getSherlock().addContentView(view, params);
225 }
226
227 @Override
228 public void setContentView(int layoutResId) {
229 getSherlock().setContentView(layoutResId);
230 }
231
232 @Override
233 public void setContentView(View view, LayoutParams params) {
234 getSherlock().setContentView(view, params);
235 }
236
237 @Override
238 public void setContentView(View view) {
239 getSherlock().setContentView(view);
240 }
241
242 public void requestWindowFeature(long featureId) {
243 getSherlock().requestFeature((int)featureId);
244 }
245
246
247 ///////////////////////////////////////////////////////////////////////////
248 // Progress Indication
249 ///////////////////////////////////////////////////////////////////////////
250
251 public void setSupportProgress(int progress) {
252 getSherlock().setProgress(progress);
253 }
254
255 public void setSupportProgressBarIndeterminate(boolean indeterminate) {
256 getSherlock().setProgressBarIndeterminate(indeterminate);
257 }
258
259 public void setSupportProgressBarIndeterminateVisibility(boolean visible) {
260 getSherlock().setProgressBarIndeterminateVisibility(visible);
261 }
262
263 public void setSupportProgressBarVisibility(boolean visible) {
264 getSherlock().setProgressBarVisibility(visible);
265 }
266
267 public void setSupportSecondaryProgress(int secondaryProgress) {
268 getSherlock().setSecondaryProgress(secondaryProgress);
269 }
270 }