summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Mertz <scott@cyngn.com>2016-06-28 18:00:08 -0700
committerGerrit Code Review <gerrit@cyanogenmod.org>2016-07-05 16:24:07 -0700
commitd4287ef98ddcaa759b0f3501f51ef52065d2605b (patch)
tree2d294fead80c54df649accf3b8cf95ffe3fa6222
parente64a234e25e61a906c94b3ba0a87f322c3caaaac (diff)
downloadpackages_apps_Settings-d4287ef98ddcaa759b0f3501f51ef52065d2605b.zip
packages_apps_Settings-d4287ef98ddcaa759b0f3501f51ef52065d2605b.tar.gz
packages_apps_Settings-d4287ef98ddcaa759b0f3501f51ef52065d2605b.tar.bz2
Prevent orientation changes from destroying/recreating security settings
Logic in SecuritySettings deliberately recreates the entire preference tree in onResume rather than onCreate. This causes the state to be lost when the orientation changes. Instead of destroying/recreating when the orientation changes, handle it ourselves. Change-Id: I6276d8f97cb64a4823286f263642926561d7f2d0
-rwxr-xr-xAndroidManifest.xml6
-rw-r--r--src/com/android/settings/SubSettings.java1
-rw-r--r--src/com/android/settings/Utils.java3
3 files changed, 10 insertions, 0 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 523d4cc..ed8d6ed 100755
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -394,6 +394,12 @@
android:parentActivityName="Settings">
</activity>
+ <activity android:name=".SubSettings$SecuritySubSettings"
+ android:taskAffinity="com.android.settings"
+ android:configChanges="orientation|keyboardHidden|screenSize"
+ android:parentActivityName="Settings">
+ </activity>
+
<activity android:name="Settings$BluetoothSettingsActivity"
android:label="@string/bluetooth_settings_title"
android:taskAffinity="">
diff --git a/src/com/android/settings/SubSettings.java b/src/com/android/settings/SubSettings.java
index 13ead6e..2bf451e 100644
--- a/src/com/android/settings/SubSettings.java
+++ b/src/com/android/settings/SubSettings.java
@@ -36,4 +36,5 @@ public class SubSettings extends SettingsActivity {
return true;
}
public static class BluetoothSubSettings extends SubSettings { /* empty */ }
+ public static class SecuritySubSettings extends SubSettings { /* empty */ }
}
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 5c58193..49b93e6 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -867,6 +867,9 @@ public final class Utils {
if (BluetoothSettings.class.getName().equals(fragmentName)) {
intent.setClass(context, SubSettings.BluetoothSubSettings.class);
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_AS_SUBSETTING, true);
+ } else if (SecuritySettings.class.getName().equals(fragmentName)) {
+ intent.setClass(context, SubSettings.SecuritySubSettings.class);
+ intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_AS_SUBSETTING, true);
} else {
intent.setClass(context, SubSettings.class);
}