switch to alsa.omap3 module
[android_pandora.git] / apps / oi-filemanager / FileManager / src / org / openintents / filemanager / DistributionLibrary.java
CommitLineData
27a4fda1 1package org.openintents.filemanager;\r
2\r
3import android.app.Activity;\r
4import android.app.Dialog;\r
5import android.view.Menu;\r
6import android.view.MenuItem;\r
7\r
8public class DistributionLibrary {\r
9\r
10 public static final int OFFSET_ABOUT = 0;\r
11 public static final int OFFSET_UPDATE = 1;\r
12 \r
13 /** Number of menu IDs that should be reserved\r
14 * for DistributionLibrary.\r
15 */\r
16 public static final int MENU_COUNT = 2;\r
17 public static final int DIALOG_COUNT = MENU_COUNT;\r
18 \r
19 \r
20 Activity mActivity;\r
21 int mFirstMenuId = 0;\r
22 int mFirstDialogId = 0;\r
23 \r
24 public DistributionLibrary(Activity activity, int firstMenuId, int firstDialogId) {\r
25 mActivity = activity;\r
26 mFirstMenuId = firstMenuId;\r
27 mFirstDialogId = firstDialogId;\r
28 }\r
29 \r
30 public void setFirst(int firstMenuId, int firstDialogId) {\r
31 mFirstMenuId = firstMenuId;\r
32 mFirstDialogId = firstDialogId;\r
33 }\r
34 \r
35 /**\r
36 * Typical usage:\r
37 * Put this code in the beginning of onCreate().\r
38 * <pre>\r
39 * if (DistributionLibrary.showEulaOrNewVersion(this)) {\r
40 return;\r
41 }\r
42 * </pre>\r
43 * \r
44 * If one of the two activities is shown, they make\r
45 * sure that the calling intent is called again afterwards.\r
46 * \r
47 * @param activity\r
48 * @return true if one of the dialogs is being shown.\r
49 * In this case, onCreate() should be aborted by\r
50 * returning.\r
51 */\r
52 public boolean showEulaOrNewVersion() {\r
53 return EulaOrNewVersion.showEula(mActivity) \r
54 || EulaOrNewVersion.showNewVersion(mActivity);\r
55 }\r
56 \r
57 public void onCreateOptionsMenu(Menu menu) {\r
58 // Remove items first so that they don't appear twice:\r
59 menu.removeItem(mFirstMenuId + OFFSET_UPDATE);\r
60 menu.removeItem(mFirstMenuId + OFFSET_ABOUT);\r
61 \r
62 if (UpdateDialog.isUpdateMenuNecessary(mActivity)) {\r
63 menu.add(0, mFirstMenuId + OFFSET_UPDATE, 0, R.string.oi_distribution_menu_update).setIcon(\r
64 android.R.drawable.ic_menu_info_details).setShortcut('9', 'u');\r
65 }\r
66 menu.add(0, mFirstMenuId + OFFSET_ABOUT, 0, R.string.oi_distribution_about).setIcon(\r
67 android.R.drawable.ic_menu_info_details).setShortcut('0', 'a');\r
68 }\r
69 \r
70 public boolean onOptionsItemSelected(MenuItem item) {\r
71 int id = item.getItemId();\r
72 switch (id - mFirstMenuId) {\r
73 case OFFSET_UPDATE:\r
74 mActivity.showDialog(mFirstDialogId + OFFSET_UPDATE);\r
75 return true;\r
76 case OFFSET_ABOUT:\r
77 AboutDialog.showDialogOrStartActivity(mActivity, \r
78 mFirstDialogId + OFFSET_ABOUT);\r
79 return true;\r
80 }\r
81 return false;\r
82 }\r
83\r
84 public Dialog onCreateDialog(int id) {\r
85 switch (id - mFirstDialogId) {\r
86 case OFFSET_ABOUT:\r
87 return new AboutDialog(mActivity);\r
88 case OFFSET_UPDATE:\r
89 return new UpdateDialog(mActivity);\r
90 }\r
91 return null;\r
92 }\r
93 \r
94 public void onPrepareDialog(int id, Dialog dialog) {\r
95 switch (id - mFirstDialogId) {\r
96 case OFFSET_ABOUT:\r
97 AboutDialog.onPrepareDialog(mActivity, dialog);\r
98 break;\r
99 }\r
100 }\r
101}\r