Merge "Add KeyguardLiftController as a CoreStartable" into tm-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
847fe9fbd1
@@ -35,6 +35,7 @@ import com.android.systemui.power.PowerUI
|
||||
import com.android.systemui.recents.Recents
|
||||
import com.android.systemui.shortcut.ShortcutKeyDispatcher
|
||||
import com.android.systemui.statusbar.notification.InstantAppNotifier
|
||||
import com.android.systemui.statusbar.phone.KeyguardLiftController
|
||||
import com.android.systemui.theme.ThemeOverlayController
|
||||
import com.android.systemui.toast.ToastUI
|
||||
import com.android.systemui.usb.StorageNotification
|
||||
@@ -198,4 +199,10 @@ abstract class SystemUICoreStartableModule {
|
||||
@IntoMap
|
||||
@ClassKey(WMShell::class)
|
||||
abstract fun bindWMShell(sysui: WMShell): CoreStartable
|
||||
|
||||
/** Inject into KeyguardLiftController. */
|
||||
@Binds
|
||||
@IntoMap
|
||||
@ClassKey(KeyguardLiftController::class)
|
||||
abstract fun bindKeyguardLiftController(sysui: KeyguardLiftController): CoreStartable
|
||||
}
|
||||
@@ -16,10 +16,8 @@
|
||||
|
||||
package com.android.systemui.keyguard.dagger;
|
||||
|
||||
import android.annotation.Nullable;
|
||||
import android.app.trust.TrustManager;
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.PowerManager;
|
||||
|
||||
import com.android.internal.jank.InteractionJankMonitor;
|
||||
@@ -44,18 +42,14 @@ import com.android.systemui.keyguard.DismissCallbackRegistry;
|
||||
import com.android.systemui.keyguard.KeyguardUnlockAnimationController;
|
||||
import com.android.systemui.keyguard.KeyguardViewMediator;
|
||||
import com.android.systemui.navigationbar.NavigationModeController;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.NotificationShadeDepthController;
|
||||
import com.android.systemui.statusbar.NotificationShadeWindowController;
|
||||
import com.android.systemui.statusbar.SysuiStatusBarStateController;
|
||||
import com.android.systemui.statusbar.phone.CentralSurfaces;
|
||||
import com.android.systemui.statusbar.phone.DozeParameters;
|
||||
import com.android.systemui.statusbar.phone.KeyguardLiftController;
|
||||
import com.android.systemui.statusbar.phone.ScreenOffAnimationController;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
import com.android.systemui.statusbar.policy.UserSwitcherController;
|
||||
import com.android.systemui.util.DeviceConfigProxy;
|
||||
import com.android.systemui.util.sensors.AsyncSensorManager;
|
||||
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
@@ -133,20 +127,4 @@ public class KeyguardModule {
|
||||
notificationShadeWindowController,
|
||||
activityLaunchAnimator);
|
||||
}
|
||||
|
||||
@SysUISingleton
|
||||
@Provides
|
||||
@Nullable
|
||||
static KeyguardLiftController provideKeyguardLiftController(
|
||||
Context context,
|
||||
StatusBarStateController statusBarStateController,
|
||||
AsyncSensorManager asyncSensorManager,
|
||||
KeyguardUpdateMonitor keyguardUpdateMonitor,
|
||||
DumpManager dumpManager) {
|
||||
if (!context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_FACE)) {
|
||||
return null;
|
||||
}
|
||||
return new KeyguardLiftController(statusBarStateController, asyncSensorManager,
|
||||
keyguardUpdateMonitor, dumpManager);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,34 +16,52 @@
|
||||
|
||||
package com.android.systemui.statusbar.phone
|
||||
|
||||
import android.content.Context
|
||||
import android.content.pm.PackageManager
|
||||
import android.hardware.Sensor
|
||||
import android.hardware.TriggerEvent
|
||||
import android.hardware.TriggerEventListener
|
||||
import com.android.keyguard.KeyguardUpdateMonitor
|
||||
import com.android.keyguard.KeyguardUpdateMonitorCallback
|
||||
import com.android.systemui.CoreStartable
|
||||
import com.android.systemui.Dumpable
|
||||
import com.android.systemui.dagger.SysUISingleton
|
||||
import com.android.systemui.dump.DumpManager
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController
|
||||
import com.android.systemui.util.Assert
|
||||
import com.android.systemui.util.sensors.AsyncSensorManager
|
||||
import java.io.FileDescriptor
|
||||
import java.io.PrintWriter
|
||||
import javax.inject.Inject
|
||||
|
||||
class KeyguardLiftController constructor(
|
||||
/**
|
||||
* Triggers face auth on lift when the device is showing the lock screen. Only initialized
|
||||
* if face auth is supported on the device. Not to be confused with the lift to wake gesture
|
||||
* which is handled by {@link com.android.server.policy.PhoneWindowManager}.
|
||||
*/
|
||||
@SysUISingleton
|
||||
class KeyguardLiftController @Inject constructor(
|
||||
private val context: Context,
|
||||
private val statusBarStateController: StatusBarStateController,
|
||||
private val asyncSensorManager: AsyncSensorManager,
|
||||
private val keyguardUpdateMonitor: KeyguardUpdateMonitor,
|
||||
dumpManager: DumpManager
|
||||
) : StatusBarStateController.StateListener, Dumpable, KeyguardUpdateMonitorCallback() {
|
||||
private val dumpManager: DumpManager
|
||||
) : Dumpable, CoreStartable(context) {
|
||||
|
||||
private val pickupSensor = asyncSensorManager.getDefaultSensor(Sensor.TYPE_PICK_UP_GESTURE)
|
||||
private var isListening = false
|
||||
private var bouncerVisible = false
|
||||
|
||||
init {
|
||||
override fun start() {
|
||||
if (context.packageManager.hasSystemFeature(PackageManager.FEATURE_FACE)) {
|
||||
init()
|
||||
}
|
||||
}
|
||||
|
||||
private fun init() {
|
||||
dumpManager.registerDumpable(javaClass.name, this)
|
||||
statusBarStateController.addCallback(this)
|
||||
keyguardUpdateMonitor.registerCallback(this)
|
||||
statusBarStateController.addCallback(statusBarStateListener)
|
||||
keyguardUpdateMonitor.registerCallback(keyguardUpdateMonitorCallback)
|
||||
updateListeningState()
|
||||
}
|
||||
|
||||
@@ -58,17 +76,21 @@ class KeyguardLiftController constructor(
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDozingChanged(isDozing: Boolean) {
|
||||
updateListeningState()
|
||||
private val keyguardUpdateMonitorCallback = object : KeyguardUpdateMonitorCallback() {
|
||||
override fun onKeyguardBouncerChanged(bouncer: Boolean) {
|
||||
bouncerVisible = bouncer
|
||||
updateListeningState()
|
||||
}
|
||||
|
||||
override fun onKeyguardVisibilityChanged(showing: Boolean) {
|
||||
updateListeningState()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onKeyguardBouncerChanged(bouncer: Boolean) {
|
||||
bouncerVisible = bouncer
|
||||
updateListeningState()
|
||||
}
|
||||
|
||||
override fun onKeyguardVisibilityChanged(showing: Boolean) {
|
||||
updateListeningState()
|
||||
private val statusBarStateListener = object : StatusBarStateController.StateListener {
|
||||
override fun onDozingChanged(isDozing: Boolean) {
|
||||
updateListeningState()
|
||||
}
|
||||
}
|
||||
|
||||
override fun dump(fd: FileDescriptor, pw: PrintWriter, args: Array<out String>) {
|
||||
|
||||
Reference in New Issue
Block a user