diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java index 058ebea5df4..1b20eb06b99 100644 --- a/src/com/android/settings/DevelopmentSettings.java +++ b/src/com/android/settings/DevelopmentSettings.java @@ -1720,6 +1720,9 @@ public class DevelopmentSettings extends RestrictedSettingsFragment DialogInterface.OnDismissListener onDismissListener = new DialogInterface.OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { + if (getActivity() == null) { + return; + } updateAllOptions(); } }; diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java index 06c05c8e32e..c3efb62c376 100644 --- a/src/com/android/settings/SecuritySettings.java +++ b/src/com/android/settings/SecuritySettings.java @@ -209,14 +209,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 e6fcbcbae9c..929179abd90 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 17cc3b67fe1..1c5ddc50170 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -175,6 +175,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);