Move trust agent toggles to developer options
This CL moves two toggles for trust agent extend unlock mode from
Security > Settings to Developer Options instead. It also updates some
of the configuration strings to reflect that this toggles behavior for
trust agents in general.
No new logic is being added here, this simply moves options intended
only for internal dogfooding to a more appropriate location in
preparation for the public Beta.
Bug: 111435975
Bug: 120871688
Test: Manually verified that the settings show up in Developer Options
and work as intended.
Change-Id: I2b6705d50fa783089a5c0dfabf76677af44209f7
diff --git a/res/values/strings.xml b/res/values/strings.xml
index ab52c5c..57cd5c4 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -820,9 +820,9 @@
<string name="lockdown_settings_summary">Display power button option that turns off Smart Lock, fingerprint unlocking, and notifications on the lock screen</string>
<!-- Text shown for the title of the extend unlock mode option for trust agents [CHAR LIMIT=40] -->
- <string name="trust_agents_extend_unlock_title">SmartLock only extends unlock</string>
+ <string name="trust_agents_extend_unlock_title">Trust agents only extend unlock</string>
<!-- Text shown for the description of the extend unlock mode option [CHAR LIMIT=NONE] -->
- <string name="trust_agents_extend_unlock_summary">If enabled, SmartLock will keep your device unlocked for longer, but can no longer unlock a locked device.</string>
+ <string name="trust_agents_extend_unlock_summary">If enabled, trust agents will keep your device unlocked for longer, but can no longer unlock a locked device.</string>
<!-- Text shown for the title of the lock when trust lost option [CHAR LIMIT=40] -->
<string name="trust_lost_locks_screen_title">Lock screen when trust is lost</string>
diff --git a/res/xml/development_settings.xml b/res/xml/development_settings.xml
index d7fcaec..b9e809c 100644
--- a/res/xml/development_settings.xml
+++ b/res/xml/development_settings.xml
@@ -114,6 +114,17 @@
android:key="quick_settings_tiles"
android:title="@string/quick_settings_developer_tiles"
android:fragment="com.android.settings.development.qstile.DevelopmentTileConfigFragment" />
+
+ <!-- Configure trust agent behavior -->
+ <SwitchPreference
+ android:key="security_setting_trust_agents_extend_unlock"
+ android:title="@string/trust_agents_extend_unlock_title"
+ android:summary="@string/trust_agents_extend_unlock_summary" />
+
+ <SwitchPreference
+ android:key="security_setting_trust_lost_locks_screen"
+ android:title="@string/trust_lost_locks_screen_title"
+ android:summary="@string/trust_lost_locks_screen_summary" />
</PreferenceCategory>
<PreferenceCategory
diff --git a/res/xml/screen_lock_settings.xml b/res/xml/screen_lock_settings.xml
index 29c8de9..dd4ac34 100644
--- a/res/xml/screen_lock_settings.xml
+++ b/res/xml/screen_lock_settings.xml
@@ -40,17 +40,4 @@
android:key="power_button_instantly_locks"
android:title="@string/lockpattern_settings_enable_power_button_instantly_locks" />
- <!-- Temporarily available to evaluate extend unlock mode for SmartLock -->
- <SwitchPreference
- android:key="security_setting_trust_agents_extend_unlock"
- android:title="@string/trust_agents_extend_unlock_title"
- android:summary="@string/trust_agents_extend_unlock_summary"
- settings:controller="com.android.settings.security.trustagent.TrustAgentsExtendUnlockPreferenceController" />
-
- <SwitchPreference
- android:key="security_setting_trust_lost_locks_screen"
- android:title="@string/trust_lost_locks_screen_title"
- android:summary="@string/trust_lost_locks_screen_summary"
- settings:controller="com.android.settings.security.trustagent.TrustLostLocksScreenPreferenceController" />
-
</PreferenceScreen>
diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
index 5135fbf..48597c6 100644
--- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
+++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
@@ -497,6 +497,8 @@
"android.theme.customization.font"));
controllers.add(new OverlayCategoryPreferenceController(context,
"android.theme.customization.adaptive_icon_shape"));
+ controllers.add(new TrustAgentsExtendUnlockPreferenceController(context));
+ controllers.add(new TrustLostLocksScreenPreferenceController(context));
return controllers;
}
diff --git a/src/com/android/settings/development/TrustAgentsExtendUnlockPreferenceController.java b/src/com/android/settings/development/TrustAgentsExtendUnlockPreferenceController.java
new file mode 100644
index 0000000..0834f9b
--- /dev/null
+++ b/src/com/android/settings/development/TrustAgentsExtendUnlockPreferenceController.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import android.content.Context;
+import android.provider.Settings;
+
+import androidx.preference.Preference;
+import androidx.preference.SwitchPreference;
+
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.development.DeveloperOptionsPreferenceController;
+
+public class TrustAgentsExtendUnlockPreferenceController extends
+ DeveloperOptionsPreferenceController implements
+ Preference.OnPreferenceChangeListener, PreferenceControllerMixin {
+
+ private static final String KEY_TRUST_AGENTS_EXTEND_UNLOCK =
+ "security_setting_trust_agents_extend_unlock";
+
+ public TrustAgentsExtendUnlockPreferenceController(Context context) {
+ super(context);
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_TRUST_AGENTS_EXTEND_UNLOCK;
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ final boolean isEnabled = (Boolean) newValue;
+ Settings.Secure.putInt(mContext.getContentResolver(),
+ Settings.Secure.TRUST_AGENTS_EXTEND_UNLOCK, isEnabled ? 1 : 0);
+ return true;
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ int trustAgentsExtendUnlock = Settings.Secure.getInt(mContext.getContentResolver(),
+ Settings.Secure.TRUST_AGENTS_EXTEND_UNLOCK, 0);
+ ((SwitchPreference) mPreference).setChecked(trustAgentsExtendUnlock != 0);
+ }
+}
diff --git a/src/com/android/settings/development/TrustLostLocksScreenPreferenceController.java b/src/com/android/settings/development/TrustLostLocksScreenPreferenceController.java
new file mode 100644
index 0000000..3800fd6
--- /dev/null
+++ b/src/com/android/settings/development/TrustLostLocksScreenPreferenceController.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import android.content.Context;
+import android.provider.Settings;
+
+import androidx.preference.Preference;
+import androidx.preference.SwitchPreference;
+
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.development.DeveloperOptionsPreferenceController;
+
+public class TrustLostLocksScreenPreferenceController
+ extends DeveloperOptionsPreferenceController implements
+ Preference.OnPreferenceChangeListener, PreferenceControllerMixin {
+
+ private static final String KEY_TRUST_LOST_LOCKS_SCREEN =
+ "security_setting_trust_lost_locks_screen";
+
+ public TrustLostLocksScreenPreferenceController(Context context) {
+ super(context);
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_TRUST_LOST_LOCKS_SCREEN;
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ final boolean isEnabled = (Boolean) newValue;
+ Settings.Secure.putInt(mContext.getContentResolver(),
+ Settings.Secure.LOCK_SCREEN_WHEN_TRUST_LOST, isEnabled ? 1 : 0);
+ return true;
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ int lockOnTrustLost = Settings.Secure.getInt(mContext.getContentResolver(),
+ Settings.Secure.LOCK_SCREEN_WHEN_TRUST_LOST, 0);
+ ((SwitchPreference) mPreference).setChecked(lockOnTrustLost != 0);
+ }
+}
diff --git a/src/com/android/settings/security/trustagent/TrustAgentsExtendUnlockPreferenceController.java b/src/com/android/settings/security/trustagent/TrustAgentsExtendUnlockPreferenceController.java
deleted file mode 100644
index 036e07f..0000000
--- a/src/com/android/settings/security/trustagent/TrustAgentsExtendUnlockPreferenceController.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.security.trustagent;
-
-import android.content.Context;
-import android.provider.Settings;
-
-import com.android.settings.core.TogglePreferenceController;
-
-public class TrustAgentsExtendUnlockPreferenceController extends TogglePreferenceController {
-
- public TrustAgentsExtendUnlockPreferenceController(Context context, String key) {
- super(context, key);
- }
-
- @Override
- public int getAvailabilityStatus() {
- return AVAILABLE;
- }
-
- @Override
- public boolean isChecked() {
- return Settings.Secure.getInt(mContext.getContentResolver(),
- Settings.Secure.TRUST_AGENTS_EXTEND_UNLOCK, 1) == 1;
- }
-
- @Override
- public boolean setChecked(boolean isChecked) {
- Settings.Secure.putInt(mContext.getContentResolver(),
- Settings.Secure.TRUST_AGENTS_EXTEND_UNLOCK, isChecked ? 1 : 0);
- return true;
- }
-}
diff --git a/src/com/android/settings/security/trustagent/TrustLostLocksScreenPreferenceController.java b/src/com/android/settings/security/trustagent/TrustLostLocksScreenPreferenceController.java
deleted file mode 100644
index e0c5168..0000000
--- a/src/com/android/settings/security/trustagent/TrustLostLocksScreenPreferenceController.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.security.trustagent;
-
-import android.content.Context;
-import android.provider.Settings;
-
-import com.android.settings.core.TogglePreferenceController;
-
-public class TrustLostLocksScreenPreferenceController extends TogglePreferenceController {
-
- public TrustLostLocksScreenPreferenceController(Context context, String key) {
- super(context, key);
- }
-
- @Override
- public int getAvailabilityStatus() {
- return AVAILABLE;
- }
-
- @Override
- public boolean isChecked() {
- return Settings.Secure.getInt(mContext.getContentResolver(),
- Settings.Secure.LOCK_SCREEN_WHEN_TRUST_LOST, 1) == 1;
- }
-
- @Override
- public boolean setChecked(boolean isChecked) {
- Settings.Secure.putInt(mContext.getContentResolver(),
- Settings.Secure.LOCK_SCREEN_WHEN_TRUST_LOST, isChecked ? 1 : 0);
- return true;
- }
-}