diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java index 4097d046309..d3b6d5cbe6c 100644 --- a/src/com/android/settings/SecuritySettings.java +++ b/src/com/android/settings/SecuritySettings.java @@ -208,14 +208,6 @@ public class SecuritySettings extends SettingsPreferenceFragment return resid; } - @Override - public void setPreferenceScreen(PreferenceScreen preferenceScreen) { - if (!preferenceScreen.isAttached()) { - preferenceScreen.setShouldUseGeneratedIds(false); - } - super.setPreferenceScreen(preferenceScreen); - } - /** * Important! * diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java index daa2f1b7c11..e1cf58bdaa4 100644 --- a/src/com/android/settings/SettingsPreferenceFragment.java +++ b/src/com/android/settings/SettingsPreferenceFragment.java @@ -99,6 +99,7 @@ public abstract class SettingsPreferenceFragment extends InstrumentedPreferenceF private LinearLayoutManager mLayoutManager; private HighlightablePreferenceGroupAdapter mAdapter; private ArrayMap mPreferenceCache; + private boolean mAnimationAllowed; @Override public void onCreate(Bundle icicle) { @@ -304,6 +305,10 @@ public abstract class SettingsPreferenceFragment extends InstrumentedPreferenceF @Override public void setPreferenceScreen(PreferenceScreen preferenceScreen) { + if (!preferenceScreen.isAttached()) { + // Without ids generated, the RecyclerView won't animate changes to the preferences. + preferenceScreen.setShouldUseGeneratedIds(mAnimationAllowed); + } super.setPreferenceScreen(preferenceScreen); if (preferenceScreen != null) { if (mHeader != null) { @@ -369,6 +374,10 @@ public abstract class SettingsPreferenceFragment extends InstrumentedPreferenceF return mAdapter; } + protected void setAnimationAllowed(boolean animationAllowed) { + mAnimationAllowed = animationAllowed; + } + protected void cacheRemoveAllPrefs(PreferenceGroup group) { mPreferenceCache = new ArrayMap(); final int N = group.getPreferenceCount(); diff --git a/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java b/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java index 1eea942076f..1a94ab0f31e 100644 --- a/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java +++ b/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java @@ -77,6 +77,7 @@ public abstract class DeviceListPreferenceFragment extends @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setAnimationAllowed(true); mLocalManager = Utils.getLocalBtManager(getActivity()); if (mLocalManager == null) { diff --git a/src/com/android/settings/datausage/UnrestrictedDataAccess.java b/src/com/android/settings/datausage/UnrestrictedDataAccess.java index 96fd7f8824d..e3771d32503 100644 --- a/src/com/android/settings/datausage/UnrestrictedDataAccess.java +++ b/src/com/android/settings/datausage/UnrestrictedDataAccess.java @@ -50,6 +50,7 @@ public class UnrestrictedDataAccess extends SettingsPreferenceFragment @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); + setAnimationAllowed(true); setPreferenceScreen(getPreferenceManager().createPreferenceScreen(getContext())); mApplicationsState = ApplicationsState.getInstance( (Application) getContext().getApplicationContext()); diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java index 17127342056..60b6dc52bd2 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java +++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java @@ -82,6 +82,7 @@ public class PowerUsageSummary extends PowerUsageBase { @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); + setAnimationAllowed(true); addPreferencesFromResource(R.xml.power_usage_summary); mHistPref = (BatteryHistoryPreference) findPreference(KEY_BATTERY_HISTORY); diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index 5541c2df832..f08455bcb4f 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -178,6 +178,7 @@ public class WifiSettings extends RestrictedSettingsFragment @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); + setAnimationAllowed(true); addPreferencesFromResource(R.xml.wifi_settings); mAddPreference = new Preference(getContext()); mAddPreference.setIcon(R.drawable.ic_menu_add_inset);