Merge "Add extra logs for alternateBouncer" into tm-qpr-dev

This commit is contained in:
TreeHugger Robot
2023-02-06 21:29:31 +00:00
committed by Android (Google) Code Review
5 changed files with 42 additions and 7 deletions

View File

@@ -23,6 +23,7 @@ import android.content.IntentFilter
import android.os.Looper import android.os.Looper
import android.os.UserHandle import android.os.UserHandle
import com.android.internal.widget.LockPatternUtils import com.android.internal.widget.LockPatternUtils
import com.android.systemui.Dumpable
import com.android.systemui.biometrics.AuthController import com.android.systemui.biometrics.AuthController
import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.broadcast.BroadcastDispatcher
import com.android.systemui.common.coroutine.ChannelExt.trySendWithFailureLogging import com.android.systemui.common.coroutine.ChannelExt.trySendWithFailureLogging
@@ -31,7 +32,9 @@ import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.dagger.qualifiers.Background import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.dump.DumpManager
import com.android.systemui.user.data.repository.UserRepository import com.android.systemui.user.data.repository.UserRepository
import java.io.PrintWriter
import javax.inject.Inject import javax.inject.Inject
import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
@@ -81,7 +84,18 @@ constructor(
@Application scope: CoroutineScope, @Application scope: CoroutineScope,
@Background backgroundDispatcher: CoroutineDispatcher, @Background backgroundDispatcher: CoroutineDispatcher,
@Main looper: Looper, @Main looper: Looper,
) : BiometricSettingsRepository { dumpManager: DumpManager,
) : BiometricSettingsRepository, Dumpable {
init {
dumpManager.registerDumpable(this)
}
override fun dump(pw: PrintWriter, args: Array<String?>) {
pw.println("isFingerprintEnrolled=${isFingerprintEnrolled.value}")
pw.println("isStrongBiometricAllowed=${isStrongBiometricAllowed.value}")
pw.println("isFingerprintEnabledByDevicePolicy=${isFingerprintEnabledByDevicePolicy.value}")
}
/** UserId of the current selected user. */ /** UserId of the current selected user. */
private val selectedUserId: Flow<Int> = private val selectedUserId: Flow<Int> =

View File

@@ -19,10 +19,13 @@ package com.android.systemui.keyguard.data.repository
import android.hardware.biometrics.BiometricSourceType import android.hardware.biometrics.BiometricSourceType
import com.android.keyguard.KeyguardUpdateMonitor import com.android.keyguard.KeyguardUpdateMonitor
import com.android.keyguard.KeyguardUpdateMonitorCallback import com.android.keyguard.KeyguardUpdateMonitorCallback
import com.android.systemui.Dumpable
import com.android.systemui.common.coroutine.ChannelExt.trySendWithFailureLogging import com.android.systemui.common.coroutine.ChannelExt.trySendWithFailureLogging
import com.android.systemui.common.coroutine.ConflatedCallbackFlow.conflatedCallbackFlow import com.android.systemui.common.coroutine.ConflatedCallbackFlow.conflatedCallbackFlow
import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.dump.DumpManager
import java.io.PrintWriter
import javax.inject.Inject import javax.inject.Inject
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.channels.awaitClose import kotlinx.coroutines.channels.awaitClose
@@ -49,7 +52,16 @@ class DeviceEntryFingerprintAuthRepositoryImpl
constructor( constructor(
val keyguardUpdateMonitor: KeyguardUpdateMonitor, val keyguardUpdateMonitor: KeyguardUpdateMonitor,
@Application scope: CoroutineScope, @Application scope: CoroutineScope,
) : DeviceEntryFingerprintAuthRepository { dumpManager: DumpManager,
) : DeviceEntryFingerprintAuthRepository, Dumpable {
init {
dumpManager.registerDumpable(this)
}
override fun dump(pw: PrintWriter, args: Array<String?>) {
pw.println("isLockedOut=${isLockedOut.value}")
}
override val isLockedOut: StateFlow<Boolean> = override val isLockedOut: StateFlow<Boolean> =
conflatedCallbackFlow { conflatedCallbackFlow {

View File

@@ -158,18 +158,18 @@ constructor(
override val bouncerErrorMessage: CharSequence? override val bouncerErrorMessage: CharSequence?
get() = viewMediatorCallback.consumeCustomMessage() get() = viewMediatorCallback.consumeCustomMessage()
init {
setUpLogging()
}
/** Values associated with the AlternateBouncer */ /** Values associated with the AlternateBouncer */
private val _isAlternateBouncerVisible = MutableStateFlow(false) private val _isAlternateBouncerVisible = MutableStateFlow(false)
override val isAlternateBouncerVisible = _isAlternateBouncerVisible.asStateFlow() override val isAlternateBouncerVisible = _isAlternateBouncerVisible.asStateFlow()
override var lastAlternateBouncerVisibleTime: Long = NOT_VISIBLE override var lastAlternateBouncerVisibleTime: Long = NOT_VISIBLE
private val _isAlternateBouncerUIAvailable = MutableStateFlow<Boolean>(false) private val _isAlternateBouncerUIAvailable = MutableStateFlow(false)
override val isAlternateBouncerUIAvailable: StateFlow<Boolean> = override val isAlternateBouncerUIAvailable: StateFlow<Boolean> =
_isAlternateBouncerUIAvailable.asStateFlow() _isAlternateBouncerUIAvailable.asStateFlow()
init {
setUpLogging()
}
override fun setPrimaryScrimmed(isScrimmed: Boolean) { override fun setPrimaryScrimmed(isScrimmed: Boolean) {
_primaryBouncerScrimmed.value = isScrimmed _primaryBouncerScrimmed.value = isScrimmed
} }
@@ -290,6 +290,9 @@ constructor(
resourceUpdateRequests resourceUpdateRequests
.logDiffsForTable(buffer, "", "ResourceUpdateRequests", false) .logDiffsForTable(buffer, "", "ResourceUpdateRequests", false)
.launchIn(applicationScope) .launchIn(applicationScope)
isAlternateBouncerUIAvailable
.logDiffsForTable(buffer, "", "IsAlternateBouncerUIAvailable", false)
.launchIn(applicationScope)
} }
companion object { companion object {

View File

@@ -29,6 +29,7 @@ import com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUT
import com.android.systemui.SysuiTestCase import com.android.systemui.SysuiTestCase
import com.android.systemui.biometrics.AuthController import com.android.systemui.biometrics.AuthController
import com.android.systemui.coroutines.collectLastValue import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.dump.DumpManager
import com.android.systemui.user.data.repository.FakeUserRepository import com.android.systemui.user.data.repository.FakeUserRepository
import com.android.systemui.util.mockito.argumentCaptor import com.android.systemui.util.mockito.argumentCaptor
import com.android.systemui.util.mockito.whenever import com.android.systemui.util.mockito.whenever
@@ -56,6 +57,7 @@ class BiometricSettingsRepositoryTest : SysuiTestCase() {
@Mock private lateinit var authController: AuthController @Mock private lateinit var authController: AuthController
@Mock private lateinit var lockPatternUtils: LockPatternUtils @Mock private lateinit var lockPatternUtils: LockPatternUtils
@Mock private lateinit var devicePolicyManager: DevicePolicyManager @Mock private lateinit var devicePolicyManager: DevicePolicyManager
@Mock private lateinit var dumpManager: DumpManager
private lateinit var userRepository: FakeUserRepository private lateinit var userRepository: FakeUserRepository
private lateinit var testDispatcher: TestDispatcher private lateinit var testDispatcher: TestDispatcher
@@ -85,6 +87,7 @@ class BiometricSettingsRepositoryTest : SysuiTestCase() {
scope = testScope.backgroundScope, scope = testScope.backgroundScope,
backgroundDispatcher = testDispatcher, backgroundDispatcher = testDispatcher,
looper = testableLooper!!.looper, looper = testableLooper!!.looper,
dumpManager = dumpManager,
) )
} }

View File

@@ -22,6 +22,7 @@ import com.android.keyguard.KeyguardUpdateMonitor
import com.android.keyguard.KeyguardUpdateMonitorCallback import com.android.keyguard.KeyguardUpdateMonitorCallback
import com.android.systemui.SysuiTestCase import com.android.systemui.SysuiTestCase
import com.android.systemui.coroutines.collectLastValue import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.dump.DumpManager
import com.android.systemui.util.mockito.whenever import com.android.systemui.util.mockito.whenever
import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.ExperimentalCoroutinesApi
@@ -44,6 +45,7 @@ import org.mockito.MockitoAnnotations
@RunWith(JUnit4::class) @RunWith(JUnit4::class)
class DeviceEntryFingerprintAuthRepositoryTest : SysuiTestCase() { class DeviceEntryFingerprintAuthRepositoryTest : SysuiTestCase() {
@Mock private lateinit var keyguardUpdateMonitor: KeyguardUpdateMonitor @Mock private lateinit var keyguardUpdateMonitor: KeyguardUpdateMonitor
@Mock private lateinit var dumpManager: DumpManager
@Captor private lateinit var callbackCaptor: ArgumentCaptor<KeyguardUpdateMonitorCallback> @Captor private lateinit var callbackCaptor: ArgumentCaptor<KeyguardUpdateMonitorCallback>
private lateinit var testScope: TestScope private lateinit var testScope: TestScope
@@ -59,6 +61,7 @@ class DeviceEntryFingerprintAuthRepositoryTest : SysuiTestCase() {
DeviceEntryFingerprintAuthRepositoryImpl( DeviceEntryFingerprintAuthRepositoryImpl(
keyguardUpdateMonitor, keyguardUpdateMonitor,
testScope.backgroundScope, testScope.backgroundScope,
dumpManager,
) )
} }