+++ /dev/null
-package org.openintents.filemanager;\r
-\r
-import android.app.Activity;\r
-import android.app.Dialog;\r
-import android.view.Menu;\r
-import android.view.MenuItem;\r
-\r
-public class DistributionLibrary {\r
-\r
- public static final int OFFSET_ABOUT = 0;\r
- public static final int OFFSET_UPDATE = 1;\r
- \r
- /** Number of menu IDs that should be reserved\r
- * for DistributionLibrary.\r
- */\r
- public static final int MENU_COUNT = 2;\r
- public static final int DIALOG_COUNT = MENU_COUNT;\r
- \r
- \r
- Activity mActivity;\r
- int mFirstMenuId = 0;\r
- int mFirstDialogId = 0;\r
- \r
- public DistributionLibrary(Activity activity, int firstMenuId, int firstDialogId) {\r
- mActivity = activity;\r
- mFirstMenuId = firstMenuId;\r
- mFirstDialogId = firstDialogId;\r
- }\r
- \r
- public void setFirst(int firstMenuId, int firstDialogId) {\r
- mFirstMenuId = firstMenuId;\r
- mFirstDialogId = firstDialogId;\r
- }\r
- \r
- /**\r
- * Typical usage:\r
- * Put this code in the beginning of onCreate().\r
- * <pre>\r
- * if (DistributionLibrary.showEulaOrNewVersion(this)) {\r
- return;\r
- }\r
- * </pre>\r
- * \r
- * If one of the two activities is shown, they make\r
- * sure that the calling intent is called again afterwards.\r
- * \r
- * @param activity\r
- * @return true if one of the dialogs is being shown.\r
- * In this case, onCreate() should be aborted by\r
- * returning.\r
- */\r
- public boolean showEulaOrNewVersion() {\r
- return EulaOrNewVersion.showEula(mActivity) \r
- || EulaOrNewVersion.showNewVersion(mActivity);\r
- }\r
- \r
- public void onCreateOptionsMenu(Menu menu) {\r
- // Remove items first so that they don't appear twice:\r
- menu.removeItem(mFirstMenuId + OFFSET_UPDATE);\r
- menu.removeItem(mFirstMenuId + OFFSET_ABOUT);\r
- \r
- if (UpdateDialog.isUpdateMenuNecessary(mActivity)) {\r
- menu.add(0, mFirstMenuId + OFFSET_UPDATE, 0, R.string.oi_distribution_menu_update).setIcon(\r
- android.R.drawable.ic_menu_info_details).setShortcut('9', 'u');\r
- }\r
- menu.add(0, mFirstMenuId + OFFSET_ABOUT, 0, R.string.oi_distribution_about).setIcon(\r
- android.R.drawable.ic_menu_info_details).setShortcut('0', 'a');\r
- }\r
- \r
- public boolean onOptionsItemSelected(MenuItem item) {\r
- int id = item.getItemId();\r
- switch (id - mFirstMenuId) {\r
- case OFFSET_UPDATE:\r
- mActivity.showDialog(mFirstDialogId + OFFSET_UPDATE);\r
- return true;\r
- case OFFSET_ABOUT:\r
- AboutDialog.showDialogOrStartActivity(mActivity, \r
- mFirstDialogId + OFFSET_ABOUT);\r
- return true;\r
- }\r
- return false;\r
- }\r
-\r
- public Dialog onCreateDialog(int id) {\r
- switch (id - mFirstDialogId) {\r
- case OFFSET_ABOUT:\r
- return new AboutDialog(mActivity);\r
- case OFFSET_UPDATE:\r
- return new UpdateDialog(mActivity);\r
- }\r
- return null;\r
- }\r
- \r
- public void onPrepareDialog(int id, Dialog dialog) {\r
- switch (id - mFirstDialogId) {\r
- case OFFSET_ABOUT:\r
- AboutDialog.onPrepareDialog(mActivity, dialog);\r
- break;\r
- }\r
- }\r
-}\r