Merge "Clear authentication data whenever the phone transitions to DOZE_AOD or DOZE." into qt-r1-dev

am: e28cd16002

Change-Id: Ie2fbd51f96e874e270a51bd5af04af355a1583c7
This commit is contained in:
Dave Mankoff
2019-06-24 08:19:17 -07:00
committed by android-build-merger
5 changed files with 62 additions and 1 deletions

View File

@@ -2325,6 +2325,13 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
mUserFaceAuthenticated.clear();
mTrustManager.clearAllBiometricRecognized(BiometricSourceType.FINGERPRINT);
mTrustManager.clearAllBiometricRecognized(BiometricSourceType.FACE);
for (int i = 0; i < mCallbacks.size(); i++) {
KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get();
if (cb != null) {
cb.onBiometricsCleared();
}
}
}
public boolean isSimPinVoiceSecure() {

View File

@@ -314,4 +314,9 @@ public class KeyguardUpdateMonitorCallback {
*/
public void onLogoutEnabledChanged() { }
/**
* Called when authenticated biometrics are cleared.
*/
public void onBiometricsCleared() { }
}

View File

@@ -0,0 +1,43 @@
/*
* Copyright (C) 2019 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.systemui.doze;
import android.content.Context;
import com.android.keyguard.KeyguardUpdateMonitor;
/**
* Controls removing Keyguard authorization when the phone goes to sleep.
*/
public class DozeAuthRemover implements DozeMachine.Part {
KeyguardUpdateMonitor mKeyguardUpdateMonitor;
public DozeAuthRemover(Context context) {
mKeyguardUpdateMonitor = KeyguardUpdateMonitor.getInstance(context);
}
@Override
public void transitionTo(DozeMachine.State oldState, DozeMachine.State newState) {
if (newState == DozeMachine.State.DOZE || newState == DozeMachine.State.DOZE_AOD) {
int currentUser = KeyguardUpdateMonitor.getCurrentUser();
if (mKeyguardUpdateMonitor.getUserUnlockedWithBiometric(currentUser)) {
mKeyguardUpdateMonitor.clearBiometricRecognized();
}
}
}
}

View File

@@ -71,7 +71,8 @@ public class DozeFactory {
createDozeScreenBrightness(context, wrappedService, sensorManager, host, params,
handler),
new DozeWallpaperState(context),
new DozeDockHandler(context, machine, host, config, handler, dockManager)
new DozeDockHandler(context, machine, host, config, handler, dockManager),
new DozeAuthRemover(dozeService)
});
return machine;

View File

@@ -149,6 +149,11 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange
public void onStrongAuthStateChanged(int userId) {
update();
}
@Override
public void onBiometricsCleared() {
update();
}
};
@Inject