From 8f53ad0f3785cd7bfda0ad2bed84351f21f93301 Mon Sep 17 00:00:00 2001 From: Vishwath Mohan Date: Sat, 2 Feb 2019 11:18:30 -0800 Subject: [PATCH] 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 --- res/values/strings.xml | 4 +- res/xml/development_settings.xml | 11 ++++ res/xml/screen_lock_settings.xml | 13 ----- .../DevelopmentSettingsDashboardFragment.java | 2 + ...gentsExtendUnlockPreferenceController.java | 58 +++++++++++++++++++ ...stLostLocksScreenPreferenceController.java | 58 +++++++++++++++++++ ...gentsExtendUnlockPreferenceController.java | 47 --------------- ...stLostLocksScreenPreferenceController.java | 47 --------------- 8 files changed, 131 insertions(+), 109 deletions(-) create mode 100644 src/com/android/settings/development/TrustAgentsExtendUnlockPreferenceController.java create mode 100644 src/com/android/settings/development/TrustLostLocksScreenPreferenceController.java delete mode 100644 src/com/android/settings/security/trustagent/TrustAgentsExtendUnlockPreferenceController.java delete mode 100644 src/com/android/settings/security/trustagent/TrustLostLocksScreenPreferenceController.java diff --git a/res/values/strings.xml b/res/values/strings.xml index ab52c5cfb19..57cd5c4939f 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -820,9 +820,9 @@ Display power button option that turns off Smart Lock, fingerprint unlocking, and notifications on the lock screen - SmartLock only extends unlock + Trust agents only extend unlock - If enabled, SmartLock will keep your device unlocked for longer, but can no longer unlock a locked device. + If enabled, trust agents will keep your device unlocked for longer, but can no longer unlock a locked device. Lock screen when trust is lost diff --git a/res/xml/development_settings.xml b/res/xml/development_settings.xml index d7fcaec3169..b9e809c3a69 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" /> + + + + + - - - - - diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java index 5135fbf61fc..48597c64846 100644 --- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java +++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java @@ -497,6 +497,8 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra "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 00000000000..0834f9b96e2 --- /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 00000000000..3800fd6b881 --- /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 036e07f6dc2..00000000000 --- 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 e0c516891e3..00000000000 --- 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; - } -}