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
This commit is contained in:
Vishwath Mohan
2019-02-02 11:18:30 -08:00
parent 8e268830f2
commit 8f53ad0f37
8 changed files with 131 additions and 109 deletions

View File

@@ -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>

View File

@@ -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

View File

@@ -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>

View File

@@ -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;
}

View File

@@ -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);
}
}

View File

@@ -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);
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}