summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2011-03-15 16:52:40 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-03-15 16:52:40 -0700
commit437c2c1620d0a485a4f81fdb0aaf706d89b865e7 (patch)
tree7309164b4afe11acfb4a813c89b8853fc4e17018
parentfd865d0fb5f5b38a41a9196ee54357715bd32254 (diff)
parentb1a6e439f63e4fa2b07a4905f00b6badf58e6420 (diff)
downloadframeworks_base-437c2c1620d0a485a4f81fdb0aaf706d89b865e7.zip
frameworks_base-437c2c1620d0a485a4f81fdb0aaf706d89b865e7.tar.gz
frameworks_base-437c2c1620d0a485a4f81fdb0aaf706d89b865e7.tar.bz2
Merge "Add new PreferenceActivity API for settings."
-rw-r--r--api/current.xml17
-rw-r--r--core/java/android/preference/PreferenceActivity.java31
2 files changed, 42 insertions, 6 deletions
diff --git a/api/current.xml b/api/current.xml
index 41daf5c..1b3c731 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -154794,6 +154794,21 @@
<parameter name="target" type="java.util.List&lt;android.preference.PreferenceActivity.Header&gt;">
</parameter>
</method>
+<method name="onBuildStartFragmentIntent"
+ return="android.content.Intent"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="fragmentName" type="java.lang.String">
+</parameter>
+<parameter name="args" type="android.os.Bundle">
+</parameter>
+</method>
<method name="onGetInitialHeader"
return="android.preference.PreferenceActivity.Header"
abstract="false"
@@ -267130,7 +267145,7 @@
deprecated="not deprecated"
visibility="public"
>
-<parameter name="t" type="T">
+<parameter name="arg0" type="T">
</parameter>
</method>
</interface>
diff --git a/core/java/android/preference/PreferenceActivity.java b/core/java/android/preference/PreferenceActivity.java
index ad0bc84..db50bfc 100644
--- a/core/java/android/preference/PreferenceActivity.java
+++ b/core/java/android/preference/PreferenceActivity.java
@@ -961,6 +961,27 @@ public abstract class PreferenceActivity extends ListActivity implements
}
/**
+ * Called by {@link #startWithFragment(String, Bundle, Fragment, int)} when
+ * in single-pane mode, to build an Intent to launch a new activity showing
+ * the selected fragment. The default implementation constructs an Intent
+ * that re-launches the current activity with the appropriate arguments to
+ * display the fragment.
+ *
+ * @param fragmentName The name of the fragment to display.
+ * @param args Optional arguments to supply to the fragment.
+ * @return Returns an Intent that can be launched to display the given
+ * fragment.
+ */
+ public Intent onBuildStartFragmentIntent(String fragmentName, Bundle args) {
+ Intent intent = new Intent(Intent.ACTION_MAIN);
+ intent.setClass(this, getClass());
+ intent.putExtra(EXTRA_SHOW_FRAGMENT, fragmentName);
+ intent.putExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS, args);
+ intent.putExtra(EXTRA_NO_HEADERS, true);
+ return intent;
+ }
+
+ /**
* Start a new instance of this activity, showing only the given
* preference fragment. When launched in this mode, the header list
* will be hidden and the given preference fragment will be instantiated
@@ -968,14 +989,14 @@ public abstract class PreferenceActivity extends ListActivity implements
*
* @param fragmentName The name of the fragment to display.
* @param args Optional arguments to supply to the fragment.
+ * @param resultTo Option fragment that should receive the result of
+ * the activity launch.
+ * @param resultRequestCode If resultTo is non-null, this is the request
+ * code in which to report the result.
*/
public void startWithFragment(String fragmentName, Bundle args,
Fragment resultTo, int resultRequestCode) {
- Intent intent = new Intent(Intent.ACTION_MAIN);
- intent.setClass(this, getClass());
- intent.putExtra(EXTRA_SHOW_FRAGMENT, fragmentName);
- intent.putExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS, args);
- intent.putExtra(EXTRA_NO_HEADERS, true);
+ Intent intent = onBuildStartFragmentIntent(fragmentName, args);
if (resultTo == null) {
startActivity(intent);
} else {