No animation when tapping on current header in a preference screen.
Bug: 3125427
diff --git a/api/current.xml b/api/current.xml
index ef3289d..5ed07cf 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -145399,23 +145399,6 @@
<parameter name="header" type="android.preference.PreferenceActivity.Header">
</parameter>
</method>
-<method name="switchToHeaderInner"
- return="void"
- 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>
-<parameter name="next" type="boolean">
-</parameter>
-</method>
<field name="EXTRA_NO_HEADERS"
type="java.lang.String"
transient="false"
diff --git a/core/java/android/preference/PreferenceActivity.java b/core/java/android/preference/PreferenceActivity.java
index a59b2f8..0c6a237 100644
--- a/core/java/android/preference/PreferenceActivity.java
+++ b/core/java/android/preference/PreferenceActivity.java
@@ -893,13 +893,13 @@
}
}
- public void switchToHeaderInner(String fragmentName, Bundle args, boolean next) {
+ private void switchToHeaderInner(String fragmentName, Bundle args, int direction) {
getFragmentManager().popBackStack(BACK_STACK_PREFS, POP_BACK_STACK_INCLUSIVE);
Fragment f = Fragment.instantiate(this, fragmentName, args);
FragmentTransaction transaction = getFragmentManager().openTransaction();
- transaction.setTransition(next ?
- FragmentTransaction.TRANSIT_FRAGMENT_NEXT :
- FragmentTransaction.TRANSIT_FRAGMENT_PREV);
+ transaction.setTransition(direction == 0 ? FragmentTransaction.TRANSIT_NONE
+ : direction > 0 ? FragmentTransaction.TRANSIT_FRAGMENT_NEXT
+ : FragmentTransaction.TRANSIT_FRAGMENT_PREV);
transaction.replace(com.android.internal.R.id.prefs, f);
transaction.commit();
}
@@ -913,7 +913,7 @@
*/
public void switchToHeader(String fragmentName, Bundle args) {
setSelectedHeader(null);
- switchToHeaderInner(fragmentName, args, true);
+ switchToHeaderInner(fragmentName, args, 0);
}
/**
@@ -923,8 +923,8 @@
* @param header The new header to display.
*/
public void switchToHeader(Header header) {
- switchToHeaderInner(header.fragment, header.fragmentArguments,
- mHeaders.indexOf(header) > mHeaders.indexOf(mCurHeader));
+ int direction = mHeaders.indexOf(header) - mHeaders.indexOf(mCurHeader);
+ switchToHeaderInner(header.fragment, header.fragmentArguments, direction);
setSelectedHeader(header);
}