Add menu that only contains a help item.
Ben Komalo [Thu, 28 Oct 2010 21:58:13 +0000 (14:58 -0700)]
Bug: 3143635
Change-Id: I1037f924c10039e286ab4e20d137d711ed4609f6

res/menu/menu.xml [new file with mode: 0644]
src/com/android/apps/tag/HelpUtils.java [new file with mode: 0644]
src/com/android/apps/tag/MyTagActivity.java
src/com/android/apps/tag/TagBrowserActivity.java
src/com/android/apps/tag/TagList.java

diff --git a/res/menu/menu.xml b/res/menu/menu.xml
new file mode 100644 (file)
index 0000000..979644b
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2010 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:id="@+id/help"
+        android:icon="@android:drawable/ic_menu_help"
+        android:title="@string/menu_help"
+    />
+
+</menu>
+
diff --git a/src/com/android/apps/tag/HelpUtils.java b/src/com/android/apps/tag/HelpUtils.java
new file mode 100644 (file)
index 0000000..a21d9bf
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.apps.tag;
+
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.provider.Browser;
+
+import java.util.Locale;
+
+/**
+ * Utilities for building help content.
+ */
+public class HelpUtils {
+
+    // Non-instantiable.
+    private HelpUtils() {}
+
+    private static String replaceLocale(String str) {
+        // Substitute locale if present in string
+        if (str.contains("%locale%")) {
+            Locale locale = Locale.getDefault();
+            str = str.replace("%locale%", locale.getLanguage());
+        }
+        return str;
+    }
+
+    /**
+     * Opens up the help page in a browser.
+     */
+    public static void openHelp(final Context context) {
+        Uri uri = Uri.parse(replaceLocale(context.getString(R.string.more_info_url)));
+        Intent intent = new Intent(Intent.ACTION_VIEW, uri);
+        intent.putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName());
+        context.startActivity(intent);
+    }
+}
index 20d4156..aae6c82 100644 (file)
@@ -31,6 +31,8 @@ import android.nfc.NdefRecord;
 import android.nfc.NfcAdapter;
 import android.os.Bundle;
 import android.util.Log;
+import android.view.Menu;
+import android.view.MenuItem;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.widget.CheckBox;
@@ -205,4 +207,21 @@ public class MyTagActivity extends EditTagActivity implements OnClickListener {
         }
     }
 
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        getMenuInflater().inflate(R.menu.menu, menu);
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        switch (item.getItemId()) {
+            case R.id.help:
+                HelpUtils.openHelp(this);
+                return true;
+
+            default:
+                return super.onOptionsItemSelected(item);
+        }
+    }
 }
index 35b7bcd..f16bfd6 100644 (file)
@@ -28,6 +28,8 @@ import android.content.res.Resources;
 import android.nfc.NfcAdapter;
 import android.os.Bundle;
 import android.provider.Settings;
+import android.view.Menu;
+import android.view.MenuItem;
 import android.widget.TabHost;
 
 /**
@@ -117,4 +119,22 @@ public class TagBrowserActivity extends TabActivity implements DialogInterface.O
         }
         dialog.dismiss();
     }
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        getMenuInflater().inflate(R.menu.menu, menu);
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        switch (item.getItemId()) {
+            case R.id.help:
+                HelpUtils.openHelp(this);
+                return true;
+
+            default:
+                return super.onOptionsItemSelected(item);
+        }
+    }
 }
index 7c88379..ccb20ba 100644 (file)
@@ -25,10 +25,8 @@ import android.content.Context;
 import android.content.Intent;
 import android.database.CharArrayBuffer;
 import android.database.Cursor;
-import android.net.Uri;
 import android.os.AsyncTask;
 import android.os.Bundle;
-import android.provider.Browser;
 import android.text.Html;
 import android.text.format.DateUtils;
 import android.view.LayoutInflater;
@@ -39,8 +37,6 @@ import android.widget.CursorAdapter;
 import android.widget.ListView;
 import android.widget.TextView;
 
-import java.util.Locale;
-
 /**
  * An {@link Activity} that displays a flat list of tags that can be "opened".
  */
@@ -96,21 +92,9 @@ public class TagList extends ListActivity implements OnClickListener {
         }
     }
 
-    private static String replaceLocale(String str) {
-        // Substitute locale if present in string
-        if (str.contains("%locale%")) {
-            Locale locale = Locale.getDefault();
-            str = str.replace("%locale%", locale.getLanguage());
-        }
-        return str;
-    }
-
     @Override
     public void onClick(View view) {
-        Uri uri = Uri.parse(replaceLocale(getString(R.string.more_info_url)));
-        Intent intent = new Intent(Intent.ACTION_VIEW, uri);
-        intent.putExtra(Browser.EXTRA_APPLICATION_ID, getPackageName());
-        startActivity(intent);
+        HelpUtils.openHelp(this);
     }
 
     interface TagQuery {