Updated SWE Browser "About" menu item
- Changed "About" menu to preference screen layout,
instead of popup
- Added Version, Build date, Build Hash, User Agent, Help
and Feedback
Change-Id: I2c5b8f74f9ffc945adb305042c1ebcd61283e047
diff --git a/src/com/android/browser/BrowserPreferencesPage.java b/src/com/android/browser/BrowserPreferencesPage.java
index 8f31ef9..a40c7c7 100644
--- a/src/com/android/browser/BrowserPreferencesPage.java
+++ b/src/com/android/browser/BrowserPreferencesPage.java
@@ -17,12 +17,17 @@
package com.android.browser;
import android.app.Activity;
+import android.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.preference.PreferenceActivity;
+import com.android.browser.preferences.AboutPreferencesFragment;
import com.android.browser.preferences.GeneralPreferencesFragment;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+
public class BrowserPreferencesPage extends Activity {
public static void startPreferencesForResult(Activity callerActivity, String url, int requestCode) {
@@ -37,6 +42,16 @@
callerActivity.startActivityForResult(intent, requestCode);
}
+ public static void startPreferenceFragmentExtraForResult(Activity callerActivity,
+ String fragmentName,
+ Bundle bundle,
+ int requestCode) {
+ final Intent intent = new Intent(callerActivity, BrowserPreferencesPage.class);
+ intent.putExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT, fragmentName);
+ intent.putExtra(PreferenceActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS, bundle);
+ callerActivity.startActivityForResult(intent, requestCode);
+ }
+
@Override
public void onCreate(Bundle icicle) {
@@ -49,6 +64,35 @@
if ("android.intent.action.MANAGE_NETWORK_USAGE".equals(action)) {
// TODO: switch to the Network fragment here?
}
+
+ Bundle extras = intent.getExtras();
+ String fragment = (String) extras.getCharSequence(PreferenceActivity.EXTRA_SHOW_FRAGMENT);
+ if (fragment != null) {
+ try {
+ Class<?> cls = Class.forName(fragment);
+ Constructor<?> ctor = cls.getConstructor();
+ Object obj = ctor.newInstance();
+
+ if (obj instanceof Fragment) {
+ Fragment frag = (Fragment) obj;
+
+ Bundle bundle = extras.getBundle(PreferenceActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS);
+ if (bundle != null) {
+ frag.setArguments(bundle);
+ }
+
+ getFragmentManager().beginTransaction().replace(
+ android.R.id.content,
+ (Fragment) obj).commit();
+ }
+ } catch (ClassNotFoundException e) {
+ } catch (NoSuchMethodException e) {
+ } catch (InvocationTargetException e) {
+ } catch (InstantiationException e) {
+ } catch (IllegalAccessException e) {
+ }
+ return;
+ }
}
getFragmentManager().beginTransaction().replace(android.R.id.content,