Merge "Add KeyguardLiftController as a CoreStartable" into tm-dev am: 847fe9fbd1
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17218390 Change-Id: I28c7db96d113cc7c32ad92804fec6c5f54460651
This commit is contained in:
@@ -35,6 +35,7 @@ import com.android.systemui.power.PowerUI
|
|||||||
import com.android.systemui.recents.Recents
|
import com.android.systemui.recents.Recents
|
||||||
import com.android.systemui.shortcut.ShortcutKeyDispatcher
|
import com.android.systemui.shortcut.ShortcutKeyDispatcher
|
||||||
import com.android.systemui.statusbar.notification.InstantAppNotifier
|
import com.android.systemui.statusbar.notification.InstantAppNotifier
|
||||||
|
import com.android.systemui.statusbar.phone.KeyguardLiftController
|
||||||
import com.android.systemui.theme.ThemeOverlayController
|
import com.android.systemui.theme.ThemeOverlayController
|
||||||
import com.android.systemui.toast.ToastUI
|
import com.android.systemui.toast.ToastUI
|
||||||
import com.android.systemui.usb.StorageNotification
|
import com.android.systemui.usb.StorageNotification
|
||||||
@@ -198,4 +199,10 @@ abstract class SystemUICoreStartableModule {
|
|||||||
@IntoMap
|
@IntoMap
|
||||||
@ClassKey(WMShell::class)
|
@ClassKey(WMShell::class)
|
||||||
abstract fun bindWMShell(sysui: WMShell): CoreStartable
|
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;
|
package com.android.systemui.keyguard.dagger;
|
||||||
|
|
||||||
import android.annotation.Nullable;
|
|
||||||
import android.app.trust.TrustManager;
|
import android.app.trust.TrustManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.pm.PackageManager;
|
|
||||||
import android.os.PowerManager;
|
import android.os.PowerManager;
|
||||||
|
|
||||||
import com.android.internal.jank.InteractionJankMonitor;
|
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.KeyguardUnlockAnimationController;
|
||||||
import com.android.systemui.keyguard.KeyguardViewMediator;
|
import com.android.systemui.keyguard.KeyguardViewMediator;
|
||||||
import com.android.systemui.navigationbar.NavigationModeController;
|
import com.android.systemui.navigationbar.NavigationModeController;
|
||||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
|
||||||
import com.android.systemui.statusbar.NotificationShadeDepthController;
|
import com.android.systemui.statusbar.NotificationShadeDepthController;
|
||||||
import com.android.systemui.statusbar.NotificationShadeWindowController;
|
import com.android.systemui.statusbar.NotificationShadeWindowController;
|
||||||
import com.android.systemui.statusbar.SysuiStatusBarStateController;
|
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.DozeParameters;
|
||||||
import com.android.systemui.statusbar.phone.KeyguardLiftController;
|
|
||||||
import com.android.systemui.statusbar.phone.ScreenOffAnimationController;
|
import com.android.systemui.statusbar.phone.ScreenOffAnimationController;
|
||||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||||
import com.android.systemui.statusbar.policy.UserSwitcherController;
|
import com.android.systemui.statusbar.policy.UserSwitcherController;
|
||||||
import com.android.systemui.util.DeviceConfigProxy;
|
import com.android.systemui.util.DeviceConfigProxy;
|
||||||
import com.android.systemui.util.sensors.AsyncSensorManager;
|
|
||||||
|
|
||||||
import java.util.concurrent.Executor;
|
import java.util.concurrent.Executor;
|
||||||
|
|
||||||
@@ -133,20 +127,4 @@ public class KeyguardModule {
|
|||||||
notificationShadeWindowController,
|
notificationShadeWindowController,
|
||||||
activityLaunchAnimator);
|
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
|
package com.android.systemui.statusbar.phone
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import android.content.pm.PackageManager
|
||||||
import android.hardware.Sensor
|
import android.hardware.Sensor
|
||||||
import android.hardware.TriggerEvent
|
import android.hardware.TriggerEvent
|
||||||
import android.hardware.TriggerEventListener
|
import android.hardware.TriggerEventListener
|
||||||
import com.android.keyguard.KeyguardUpdateMonitor
|
import com.android.keyguard.KeyguardUpdateMonitor
|
||||||
import com.android.keyguard.KeyguardUpdateMonitorCallback
|
import com.android.keyguard.KeyguardUpdateMonitorCallback
|
||||||
|
import com.android.systemui.CoreStartable
|
||||||
import com.android.systemui.Dumpable
|
import com.android.systemui.Dumpable
|
||||||
|
import com.android.systemui.dagger.SysUISingleton
|
||||||
import com.android.systemui.dump.DumpManager
|
import com.android.systemui.dump.DumpManager
|
||||||
import com.android.systemui.plugins.statusbar.StatusBarStateController
|
import com.android.systemui.plugins.statusbar.StatusBarStateController
|
||||||
import com.android.systemui.util.Assert
|
import com.android.systemui.util.Assert
|
||||||
import com.android.systemui.util.sensors.AsyncSensorManager
|
import com.android.systemui.util.sensors.AsyncSensorManager
|
||||||
import java.io.FileDescriptor
|
import java.io.FileDescriptor
|
||||||
import java.io.PrintWriter
|
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 statusBarStateController: StatusBarStateController,
|
||||||
private val asyncSensorManager: AsyncSensorManager,
|
private val asyncSensorManager: AsyncSensorManager,
|
||||||
private val keyguardUpdateMonitor: KeyguardUpdateMonitor,
|
private val keyguardUpdateMonitor: KeyguardUpdateMonitor,
|
||||||
dumpManager: DumpManager
|
private val dumpManager: DumpManager
|
||||||
) : StatusBarStateController.StateListener, Dumpable, KeyguardUpdateMonitorCallback() {
|
) : Dumpable, CoreStartable(context) {
|
||||||
|
|
||||||
private val pickupSensor = asyncSensorManager.getDefaultSensor(Sensor.TYPE_PICK_UP_GESTURE)
|
private val pickupSensor = asyncSensorManager.getDefaultSensor(Sensor.TYPE_PICK_UP_GESTURE)
|
||||||
private var isListening = false
|
private var isListening = false
|
||||||
private var bouncerVisible = 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)
|
dumpManager.registerDumpable(javaClass.name, this)
|
||||||
statusBarStateController.addCallback(this)
|
statusBarStateController.addCallback(statusBarStateListener)
|
||||||
keyguardUpdateMonitor.registerCallback(this)
|
keyguardUpdateMonitor.registerCallback(keyguardUpdateMonitorCallback)
|
||||||
updateListeningState()
|
updateListeningState()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -58,17 +76,21 @@ class KeyguardLiftController constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDozingChanged(isDozing: Boolean) {
|
private val keyguardUpdateMonitorCallback = object : KeyguardUpdateMonitorCallback() {
|
||||||
updateListeningState()
|
override fun onKeyguardBouncerChanged(bouncer: Boolean) {
|
||||||
|
bouncerVisible = bouncer
|
||||||
|
updateListeningState()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onKeyguardVisibilityChanged(showing: Boolean) {
|
||||||
|
updateListeningState()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onKeyguardBouncerChanged(bouncer: Boolean) {
|
private val statusBarStateListener = object : StatusBarStateController.StateListener {
|
||||||
bouncerVisible = bouncer
|
override fun onDozingChanged(isDozing: Boolean) {
|
||||||
updateListeningState()
|
updateListeningState()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onKeyguardVisibilityChanged(showing: Boolean) {
|
|
||||||
updateListeningState()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun dump(fd: FileDescriptor, pw: PrintWriter, args: Array<out String>) {
|
override fun dump(fd: FileDescriptor, pw: PrintWriter, args: Array<out String>) {
|
||||||
|
|||||||
Reference in New Issue
Block a user