1 package org.openintents.filemanager;
\r
3 import android.app.Activity;
\r
4 import android.app.Dialog;
\r
5 import android.view.Menu;
\r
6 import android.view.MenuItem;
\r
8 public class DistributionLibrary {
\r
10 public static final int OFFSET_ABOUT = 0;
\r
11 public static final int OFFSET_UPDATE = 1;
\r
13 /** Number of menu IDs that should be reserved
\r
14 * for DistributionLibrary.
\r
16 public static final int MENU_COUNT = 2;
\r
17 public static final int DIALOG_COUNT = MENU_COUNT;
\r
21 int mFirstMenuId = 0;
\r
22 int mFirstDialogId = 0;
\r
24 public DistributionLibrary(Activity activity, int firstMenuId, int firstDialogId) {
\r
25 mActivity = activity;
\r
26 mFirstMenuId = firstMenuId;
\r
27 mFirstDialogId = firstDialogId;
\r
30 public void setFirst(int firstMenuId, int firstDialogId) {
\r
31 mFirstMenuId = firstMenuId;
\r
32 mFirstDialogId = firstDialogId;
\r
37 * Put this code in the beginning of onCreate().
\r
39 * if (DistributionLibrary.showEulaOrNewVersion(this)) {
\r
44 * If one of the two activities is shown, they make
\r
45 * sure that the calling intent is called again afterwards.
\r
48 * @return true if one of the dialogs is being shown.
\r
49 * In this case, onCreate() should be aborted by
\r
52 public boolean showEulaOrNewVersion() {
\r
53 return EulaOrNewVersion.showEula(mActivity)
\r
54 || EulaOrNewVersion.showNewVersion(mActivity);
\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
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
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
70 public boolean onOptionsItemSelected(MenuItem item) {
\r
71 int id = item.getItemId();
\r
72 switch (id - mFirstMenuId) {
\r
74 mActivity.showDialog(mFirstDialogId + OFFSET_UPDATE);
\r
77 AboutDialog.showDialogOrStartActivity(mActivity,
\r
78 mFirstDialogId + OFFSET_ABOUT);
\r
84 public Dialog onCreateDialog(int id) {
\r
85 switch (id - mFirstDialogId) {
\r
87 return new AboutDialog(mActivity);
\r
89 return new UpdateDialog(mActivity);
\r
94 public void onPrepareDialog(int id, Dialog dialog) {
\r
95 switch (id - mFirstDialogId) {
\r
97 AboutDialog.onPrepareDialog(mActivity, dialog);
\r