Add settings to control Extended Access mode.

This CL adds settings (and two toggle controls) that help configure
how trust (from Trust Agents) should be interpreted by the platform,
allowing them to function in a purely extend unlock mode (where they
can extend how long an already unlocked device stays unlocked, but
cannot unlock a locked device).

These are temporary settings to help with dogfooding the new behavior,
and will eventually be removed. b/120871688 below is the tracking bug
to remove them.

Bug: 111435975
Bug: 120871688
Test: Tested with SmartLock modalities to confirm behavior in both
legacy and extend unlock modes is WAI.
Change-Id: If25098520ba98e82c98cc51fb226d8f2ce1aba80
This commit is contained in:
Vishwath Mohan
2018-12-11 11:59:01 -08:00
parent ca32293e76
commit b6dad935ec
4 changed files with 121 additions and 1 deletions

View File

@@ -0,0 +1,48 @@
/*
* 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.os.UserHandle;
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

@@ -0,0 +1,48 @@
/*
* 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.os.UserHandle;
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;
}
}