Merge "Removes ContainedDrawable." into tm-qpr-dev
This commit is contained in:
@@ -1,27 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2022 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.containeddrawable
|
|
||||||
|
|
||||||
import android.graphics.drawable.Drawable
|
|
||||||
import androidx.annotation.DrawableRes
|
|
||||||
|
|
||||||
/** Convenience container for [Drawable] or a way to load it later. */
|
|
||||||
sealed class ContainedDrawable {
|
|
||||||
data class WithDrawable(val drawable: Drawable) : ContainedDrawable()
|
|
||||||
data class WithResource(@DrawableRes val resourceId: Int) : ContainedDrawable()
|
|
||||||
}
|
|
||||||
@@ -104,7 +104,6 @@ constructor(
|
|||||||
KeyguardQuickAffordanceModel.Visible(
|
KeyguardQuickAffordanceModel.Visible(
|
||||||
configKey = configs[index]::class,
|
configKey = configs[index]::class,
|
||||||
icon = visibleState.icon,
|
icon = visibleState.icon,
|
||||||
contentDescriptionResourceId = visibleState.contentDescriptionResourceId,
|
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
KeyguardQuickAffordanceModel.Hidden
|
KeyguardQuickAffordanceModel.Hidden
|
||||||
|
|||||||
@@ -17,8 +17,7 @@
|
|||||||
|
|
||||||
package com.android.systemui.keyguard.domain.model
|
package com.android.systemui.keyguard.domain.model
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
import com.android.systemui.common.shared.model.Icon
|
||||||
import com.android.systemui.containeddrawable.ContainedDrawable
|
|
||||||
import com.android.systemui.keyguard.domain.quickaffordance.KeyguardQuickAffordanceConfig
|
import com.android.systemui.keyguard.domain.quickaffordance.KeyguardQuickAffordanceConfig
|
||||||
import kotlin.reflect.KClass
|
import kotlin.reflect.KClass
|
||||||
|
|
||||||
@@ -35,11 +34,6 @@ sealed class KeyguardQuickAffordanceModel {
|
|||||||
/** Identifier for the affordance this is modeling. */
|
/** Identifier for the affordance this is modeling. */
|
||||||
val configKey: KClass<out KeyguardQuickAffordanceConfig>,
|
val configKey: KClass<out KeyguardQuickAffordanceConfig>,
|
||||||
/** An icon for the affordance. */
|
/** An icon for the affordance. */
|
||||||
val icon: ContainedDrawable,
|
val icon: Icon,
|
||||||
/**
|
|
||||||
* Resource ID for a string to use for the accessibility content description text of the
|
|
||||||
* affordance.
|
|
||||||
*/
|
|
||||||
@StringRes val contentDescriptionResourceId: Int,
|
|
||||||
) : KeyguardQuickAffordanceModel()
|
) : KeyguardQuickAffordanceModel()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,8 @@ import androidx.annotation.DrawableRes
|
|||||||
import com.android.systemui.animation.ActivityLaunchAnimator
|
import com.android.systemui.animation.ActivityLaunchAnimator
|
||||||
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.containeddrawable.ContainedDrawable
|
import com.android.systemui.common.shared.model.ContentDescription
|
||||||
|
import com.android.systemui.common.shared.model.Icon
|
||||||
import com.android.systemui.controls.ControlsServiceInfo
|
import com.android.systemui.controls.ControlsServiceInfo
|
||||||
import com.android.systemui.controls.controller.StructureInfo
|
import com.android.systemui.controls.controller.StructureInfo
|
||||||
import com.android.systemui.controls.dagger.ControlsComponent
|
import com.android.systemui.controls.dagger.ControlsComponent
|
||||||
@@ -122,8 +123,14 @@ constructor(
|
|||||||
visibility == ControlsComponent.Visibility.AVAILABLE
|
visibility == ControlsComponent.Visibility.AVAILABLE
|
||||||
) {
|
) {
|
||||||
KeyguardQuickAffordanceConfig.State.Visible(
|
KeyguardQuickAffordanceConfig.State.Visible(
|
||||||
icon = ContainedDrawable.WithResource(iconResourceId),
|
icon =
|
||||||
contentDescriptionResourceId = component.getTileTitleId(),
|
Icon.Resource(
|
||||||
|
res = iconResourceId,
|
||||||
|
contentDescription =
|
||||||
|
ContentDescription.Resource(
|
||||||
|
res = component.getTileTitleId(),
|
||||||
|
),
|
||||||
|
),
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
KeyguardQuickAffordanceConfig.State.Hidden
|
KeyguardQuickAffordanceConfig.State.Hidden
|
||||||
|
|||||||
@@ -18,9 +18,8 @@
|
|||||||
package com.android.systemui.keyguard.domain.quickaffordance
|
package com.android.systemui.keyguard.domain.quickaffordance
|
||||||
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import androidx.annotation.StringRes
|
|
||||||
import com.android.systemui.animation.ActivityLaunchAnimator
|
import com.android.systemui.animation.ActivityLaunchAnimator
|
||||||
import com.android.systemui.containeddrawable.ContainedDrawable
|
import com.android.systemui.common.shared.model.Icon
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
|
|
||||||
/** Defines interface that can act as data source for a single quick affordance model. */
|
/** Defines interface that can act as data source for a single quick affordance model. */
|
||||||
@@ -44,12 +43,7 @@ interface KeyguardQuickAffordanceConfig {
|
|||||||
/** An affordance is visible. */
|
/** An affordance is visible. */
|
||||||
data class Visible(
|
data class Visible(
|
||||||
/** An icon for the affordance. */
|
/** An icon for the affordance. */
|
||||||
val icon: ContainedDrawable,
|
val icon: Icon,
|
||||||
/**
|
|
||||||
* Resource ID for a string to use for the accessibility content description text of the
|
|
||||||
* affordance.
|
|
||||||
*/
|
|
||||||
@StringRes val contentDescriptionResourceId: Int,
|
|
||||||
) : State()
|
) : State()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,8 @@ import com.android.systemui.R
|
|||||||
import com.android.systemui.animation.ActivityLaunchAnimator
|
import com.android.systemui.animation.ActivityLaunchAnimator
|
||||||
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.containeddrawable.ContainedDrawable
|
import com.android.systemui.common.shared.model.ContentDescription
|
||||||
|
import com.android.systemui.common.shared.model.Icon
|
||||||
import com.android.systemui.dagger.SysUISingleton
|
import com.android.systemui.dagger.SysUISingleton
|
||||||
import com.android.systemui.qrcodescanner.controller.QRCodeScannerController
|
import com.android.systemui.qrcodescanner.controller.QRCodeScannerController
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
@@ -76,8 +77,14 @@ constructor(
|
|||||||
private fun state(): KeyguardQuickAffordanceConfig.State {
|
private fun state(): KeyguardQuickAffordanceConfig.State {
|
||||||
return if (controller.isEnabledForLockScreenButton) {
|
return if (controller.isEnabledForLockScreenButton) {
|
||||||
KeyguardQuickAffordanceConfig.State.Visible(
|
KeyguardQuickAffordanceConfig.State.Visible(
|
||||||
icon = ContainedDrawable.WithResource(R.drawable.ic_qr_code_scanner),
|
icon =
|
||||||
contentDescriptionResourceId = R.string.accessibility_qr_code_scanner_button,
|
Icon.Resource(
|
||||||
|
res = R.drawable.ic_qr_code_scanner,
|
||||||
|
contentDescription =
|
||||||
|
ContentDescription.Resource(
|
||||||
|
res = R.string.accessibility_qr_code_scanner_button,
|
||||||
|
),
|
||||||
|
),
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
KeyguardQuickAffordanceConfig.State.Hidden
|
KeyguardQuickAffordanceConfig.State.Hidden
|
||||||
|
|||||||
@@ -26,7 +26,8 @@ import com.android.systemui.R
|
|||||||
import com.android.systemui.animation.ActivityLaunchAnimator
|
import com.android.systemui.animation.ActivityLaunchAnimator
|
||||||
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.containeddrawable.ContainedDrawable
|
import com.android.systemui.common.shared.model.ContentDescription
|
||||||
|
import com.android.systemui.common.shared.model.Icon
|
||||||
import com.android.systemui.dagger.SysUISingleton
|
import com.android.systemui.dagger.SysUISingleton
|
||||||
import com.android.systemui.plugins.ActivityStarter
|
import com.android.systemui.plugins.ActivityStarter
|
||||||
import com.android.systemui.wallet.controller.QuickAccessWalletController
|
import com.android.systemui.wallet.controller.QuickAccessWalletController
|
||||||
@@ -100,8 +101,14 @@ constructor(
|
|||||||
): KeyguardQuickAffordanceConfig.State {
|
): KeyguardQuickAffordanceConfig.State {
|
||||||
return if (isFeatureEnabled && hasCard && tileIcon != null) {
|
return if (isFeatureEnabled && hasCard && tileIcon != null) {
|
||||||
KeyguardQuickAffordanceConfig.State.Visible(
|
KeyguardQuickAffordanceConfig.State.Visible(
|
||||||
icon = ContainedDrawable.WithDrawable(tileIcon),
|
icon =
|
||||||
contentDescriptionResourceId = R.string.accessibility_wallet_button,
|
Icon.Loaded(
|
||||||
|
drawable = tileIcon,
|
||||||
|
contentDescription =
|
||||||
|
ContentDescription.Resource(
|
||||||
|
res = R.string.accessibility_wallet_button,
|
||||||
|
),
|
||||||
|
),
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
KeyguardQuickAffordanceConfig.State.Hidden
|
KeyguardQuickAffordanceConfig.State.Hidden
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ import com.android.settingslib.Utils
|
|||||||
import com.android.systemui.R
|
import com.android.systemui.R
|
||||||
import com.android.systemui.animation.ActivityLaunchAnimator
|
import com.android.systemui.animation.ActivityLaunchAnimator
|
||||||
import com.android.systemui.animation.Interpolators
|
import com.android.systemui.animation.Interpolators
|
||||||
import com.android.systemui.containeddrawable.ContainedDrawable
|
import com.android.systemui.common.ui.binder.IconViewBinder
|
||||||
import com.android.systemui.keyguard.ui.viewmodel.KeyguardBottomAreaViewModel
|
import com.android.systemui.keyguard.ui.viewmodel.KeyguardBottomAreaViewModel
|
||||||
import com.android.systemui.keyguard.ui.viewmodel.KeyguardQuickAffordanceViewModel
|
import com.android.systemui.keyguard.ui.viewmodel.KeyguardQuickAffordanceViewModel
|
||||||
import com.android.systemui.lifecycle.repeatWhenAttached
|
import com.android.systemui.lifecycle.repeatWhenAttached
|
||||||
@@ -236,10 +236,7 @@ object KeyguardBottomAreaViewBinder {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
when (viewModel.icon) {
|
IconViewBinder.bind(viewModel.icon, view)
|
||||||
is ContainedDrawable.WithDrawable -> view.setImageDrawable(viewModel.icon.drawable)
|
|
||||||
is ContainedDrawable.WithResource -> view.setImageResource(viewModel.icon.resourceId)
|
|
||||||
}
|
|
||||||
|
|
||||||
view.drawable.setTint(
|
view.drawable.setTint(
|
||||||
Utils.getColorAttrDefaultColor(
|
Utils.getColorAttrDefaultColor(
|
||||||
@@ -250,7 +247,6 @@ object KeyguardBottomAreaViewBinder {
|
|||||||
view.backgroundTintList =
|
view.backgroundTintList =
|
||||||
Utils.getColorAttr(view.context, com.android.internal.R.attr.colorSurface)
|
Utils.getColorAttr(view.context, com.android.internal.R.attr.colorSurface)
|
||||||
|
|
||||||
view.contentDescription = view.context.getString(viewModel.contentDescriptionResourceId)
|
|
||||||
view.isClickable = viewModel.isClickable
|
view.isClickable = viewModel.isClickable
|
||||||
if (viewModel.isClickable) {
|
if (viewModel.isClickable) {
|
||||||
view.setOnClickListener(OnClickListener(viewModel, falsingManager))
|
view.setOnClickListener(OnClickListener(viewModel, falsingManager))
|
||||||
|
|||||||
@@ -116,7 +116,6 @@ constructor(
|
|||||||
isVisible = true,
|
isVisible = true,
|
||||||
animateReveal = animateReveal,
|
animateReveal = animateReveal,
|
||||||
icon = icon,
|
icon = icon,
|
||||||
contentDescriptionResourceId = contentDescriptionResourceId,
|
|
||||||
onClicked = { parameters ->
|
onClicked = { parameters ->
|
||||||
quickAffordanceInteractor.onQuickAffordanceClicked(
|
quickAffordanceInteractor.onQuickAffordanceClicked(
|
||||||
configKey = parameters.configKey,
|
configKey = parameters.configKey,
|
||||||
|
|||||||
@@ -16,9 +16,8 @@
|
|||||||
|
|
||||||
package com.android.systemui.keyguard.ui.viewmodel
|
package com.android.systemui.keyguard.ui.viewmodel
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
|
||||||
import com.android.systemui.animation.ActivityLaunchAnimator
|
import com.android.systemui.animation.ActivityLaunchAnimator
|
||||||
import com.android.systemui.containeddrawable.ContainedDrawable
|
import com.android.systemui.common.shared.model.Icon
|
||||||
import com.android.systemui.keyguard.domain.quickaffordance.KeyguardQuickAffordanceConfig
|
import com.android.systemui.keyguard.domain.quickaffordance.KeyguardQuickAffordanceConfig
|
||||||
import kotlin.reflect.KClass
|
import kotlin.reflect.KClass
|
||||||
|
|
||||||
@@ -28,8 +27,7 @@ data class KeyguardQuickAffordanceViewModel(
|
|||||||
val isVisible: Boolean = false,
|
val isVisible: Boolean = false,
|
||||||
/** Whether to animate the transition of the quick affordance from invisible to visible. */
|
/** Whether to animate the transition of the quick affordance from invisible to visible. */
|
||||||
val animateReveal: Boolean = false,
|
val animateReveal: Boolean = false,
|
||||||
val icon: ContainedDrawable = ContainedDrawable.WithResource(0),
|
val icon: Icon = Icon.Resource(res = 0, contentDescription = null),
|
||||||
@StringRes val contentDescriptionResourceId: Int = 0,
|
|
||||||
val onClicked: (OnClickedParameters) -> Unit = {},
|
val onClicked: (OnClickedParameters) -> Unit = {},
|
||||||
val isClickable: Boolean = false,
|
val isClickable: Boolean = false,
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ class QrCodeScannerKeyguardQuickAffordanceConfigTest : SysuiTestCase() {
|
|||||||
assertThat(latest).isInstanceOf(KeyguardQuickAffordanceConfig.State.Visible::class.java)
|
assertThat(latest).isInstanceOf(KeyguardQuickAffordanceConfig.State.Visible::class.java)
|
||||||
val visibleState = latest as KeyguardQuickAffordanceConfig.State.Visible
|
val visibleState = latest as KeyguardQuickAffordanceConfig.State.Visible
|
||||||
assertThat(visibleState.icon).isNotNull()
|
assertThat(visibleState.icon).isNotNull()
|
||||||
assertThat(visibleState.contentDescriptionResourceId).isNotNull()
|
assertThat(visibleState.icon.contentDescription).isNotNull()
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|||||||
@@ -21,9 +21,11 @@ import android.graphics.drawable.Drawable
|
|||||||
import android.service.quickaccesswallet.GetWalletCardsResponse
|
import android.service.quickaccesswallet.GetWalletCardsResponse
|
||||||
import android.service.quickaccesswallet.QuickAccessWalletClient
|
import android.service.quickaccesswallet.QuickAccessWalletClient
|
||||||
import androidx.test.filters.SmallTest
|
import androidx.test.filters.SmallTest
|
||||||
|
import com.android.systemui.R
|
||||||
import com.android.systemui.SysuiTestCase
|
import com.android.systemui.SysuiTestCase
|
||||||
import com.android.systemui.animation.ActivityLaunchAnimator
|
import com.android.systemui.animation.ActivityLaunchAnimator
|
||||||
import com.android.systemui.containeddrawable.ContainedDrawable
|
import com.android.systemui.common.shared.model.ContentDescription
|
||||||
|
import com.android.systemui.common.shared.model.Icon
|
||||||
import com.android.systemui.plugins.ActivityStarter
|
import com.android.systemui.plugins.ActivityStarter
|
||||||
import com.android.systemui.util.mockito.any
|
import com.android.systemui.util.mockito.any
|
||||||
import com.android.systemui.util.mockito.mock
|
import com.android.systemui.util.mockito.mock
|
||||||
@@ -69,8 +71,16 @@ class QuickAccessWalletKeyguardQuickAffordanceConfigTest : SysuiTestCase() {
|
|||||||
val job = underTest.state.onEach { latest = it }.launchIn(this)
|
val job = underTest.state.onEach { latest = it }.launchIn(this)
|
||||||
|
|
||||||
val visibleModel = latest as KeyguardQuickAffordanceConfig.State.Visible
|
val visibleModel = latest as KeyguardQuickAffordanceConfig.State.Visible
|
||||||
assertThat(visibleModel.icon).isEqualTo(ContainedDrawable.WithDrawable(ICON))
|
assertThat(visibleModel.icon)
|
||||||
assertThat(visibleModel.contentDescriptionResourceId).isNotNull()
|
.isEqualTo(
|
||||||
|
Icon.Loaded(
|
||||||
|
drawable = ICON,
|
||||||
|
contentDescription =
|
||||||
|
ContentDescription.Resource(
|
||||||
|
res = R.string.accessibility_wallet_button,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
)
|
||||||
job.cancel()
|
job.cancel()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,8 @@ import androidx.test.filters.SmallTest
|
|||||||
import com.android.internal.widget.LockPatternUtils
|
import com.android.internal.widget.LockPatternUtils
|
||||||
import com.android.systemui.SysuiTestCase
|
import com.android.systemui.SysuiTestCase
|
||||||
import com.android.systemui.animation.ActivityLaunchAnimator
|
import com.android.systemui.animation.ActivityLaunchAnimator
|
||||||
import com.android.systemui.containeddrawable.ContainedDrawable
|
import com.android.systemui.common.shared.model.ContentDescription
|
||||||
|
import com.android.systemui.common.shared.model.Icon
|
||||||
import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository
|
import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository
|
||||||
import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor
|
import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor
|
||||||
import com.android.systemui.keyguard.domain.interactor.KeyguardQuickAffordanceInteractor
|
import com.android.systemui.keyguard.domain.interactor.KeyguardQuickAffordanceInteractor
|
||||||
@@ -34,6 +35,7 @@ import com.android.systemui.settings.UserTracker
|
|||||||
import com.android.systemui.statusbar.policy.KeyguardStateController
|
import com.android.systemui.statusbar.policy.KeyguardStateController
|
||||||
import com.android.systemui.util.mockito.any
|
import com.android.systemui.util.mockito.any
|
||||||
import com.android.systemui.util.mockito.mock
|
import com.android.systemui.util.mockito.mock
|
||||||
|
import com.android.systemui.util.mockito.whenever
|
||||||
import kotlinx.coroutines.test.runBlockingTest
|
import kotlinx.coroutines.test.runBlockingTest
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
@@ -46,7 +48,6 @@ import org.mockito.ArgumentMatchers.same
|
|||||||
import org.mockito.Mock
|
import org.mockito.Mock
|
||||||
import org.mockito.Mockito.verify
|
import org.mockito.Mockito.verify
|
||||||
import org.mockito.Mockito.verifyZeroInteractions
|
import org.mockito.Mockito.verifyZeroInteractions
|
||||||
import org.mockito.Mockito.`when` as whenever
|
|
||||||
import org.mockito.MockitoAnnotations
|
import org.mockito.MockitoAnnotations
|
||||||
|
|
||||||
@SmallTest
|
@SmallTest
|
||||||
@@ -55,7 +56,15 @@ class KeyguardQuickAffordanceInteractorParameterizedTest : SysuiTestCase() {
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val INTENT = Intent("some.intent.action")
|
private val INTENT = Intent("some.intent.action")
|
||||||
private val DRAWABLE = mock<ContainedDrawable>()
|
private val DRAWABLE =
|
||||||
|
mock<Icon> {
|
||||||
|
whenever(this.contentDescription)
|
||||||
|
.thenReturn(
|
||||||
|
ContentDescription.Resource(
|
||||||
|
res = CONTENT_DESCRIPTION_RESOURCE_ID,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
private const val CONTENT_DESCRIPTION_RESOURCE_ID = 1337
|
private const val CONTENT_DESCRIPTION_RESOURCE_ID = 1337
|
||||||
|
|
||||||
@Parameters(
|
@Parameters(
|
||||||
@@ -236,7 +245,6 @@ class KeyguardQuickAffordanceInteractorParameterizedTest : SysuiTestCase() {
|
|||||||
state =
|
state =
|
||||||
KeyguardQuickAffordanceConfig.State.Visible(
|
KeyguardQuickAffordanceConfig.State.Visible(
|
||||||
icon = DRAWABLE,
|
icon = DRAWABLE,
|
||||||
contentDescriptionResourceId = CONTENT_DESCRIPTION_RESOURCE_ID,
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
homeControls.onClickedResult =
|
homeControls.onClickedResult =
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ package com.android.systemui.keyguard.domain.usecase
|
|||||||
import androidx.test.filters.SmallTest
|
import androidx.test.filters.SmallTest
|
||||||
import com.android.internal.widget.LockPatternUtils
|
import com.android.internal.widget.LockPatternUtils
|
||||||
import com.android.systemui.SysuiTestCase
|
import com.android.systemui.SysuiTestCase
|
||||||
import com.android.systemui.containeddrawable.ContainedDrawable
|
import com.android.systemui.common.shared.model.ContentDescription
|
||||||
|
import com.android.systemui.common.shared.model.Icon
|
||||||
import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository
|
import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository
|
||||||
import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor
|
import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor
|
||||||
import com.android.systemui.keyguard.domain.interactor.KeyguardQuickAffordanceInteractor
|
import com.android.systemui.keyguard.domain.interactor.KeyguardQuickAffordanceInteractor
|
||||||
@@ -32,6 +33,7 @@ import com.android.systemui.plugins.ActivityStarter
|
|||||||
import com.android.systemui.settings.UserTracker
|
import com.android.systemui.settings.UserTracker
|
||||||
import com.android.systemui.statusbar.policy.KeyguardStateController
|
import com.android.systemui.statusbar.policy.KeyguardStateController
|
||||||
import com.android.systemui.util.mockito.mock
|
import com.android.systemui.util.mockito.mock
|
||||||
|
import com.android.systemui.util.mockito.whenever
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import kotlinx.coroutines.flow.launchIn
|
import kotlinx.coroutines.flow.launchIn
|
||||||
import kotlinx.coroutines.flow.onEach
|
import kotlinx.coroutines.flow.onEach
|
||||||
@@ -101,7 +103,6 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() {
|
|||||||
homeControls.setState(
|
homeControls.setState(
|
||||||
KeyguardQuickAffordanceConfig.State.Visible(
|
KeyguardQuickAffordanceConfig.State.Visible(
|
||||||
icon = ICON,
|
icon = ICON,
|
||||||
contentDescriptionResourceId = CONTENT_DESCRIPTION_RESOURCE_ID,
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -120,8 +121,8 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() {
|
|||||||
val visibleModel = latest as KeyguardQuickAffordanceModel.Visible
|
val visibleModel = latest as KeyguardQuickAffordanceModel.Visible
|
||||||
assertThat(visibleModel.configKey).isEqualTo(configKey)
|
assertThat(visibleModel.configKey).isEqualTo(configKey)
|
||||||
assertThat(visibleModel.icon).isEqualTo(ICON)
|
assertThat(visibleModel.icon).isEqualTo(ICON)
|
||||||
assertThat(visibleModel.contentDescriptionResourceId)
|
assertThat(visibleModel.icon.contentDescription)
|
||||||
.isEqualTo(CONTENT_DESCRIPTION_RESOURCE_ID)
|
.isEqualTo(ContentDescription.Resource(res = CONTENT_DESCRIPTION_RESOURCE_ID))
|
||||||
job.cancel()
|
job.cancel()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -131,7 +132,6 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() {
|
|||||||
quickAccessWallet.setState(
|
quickAccessWallet.setState(
|
||||||
KeyguardQuickAffordanceConfig.State.Visible(
|
KeyguardQuickAffordanceConfig.State.Visible(
|
||||||
icon = ICON,
|
icon = ICON,
|
||||||
contentDescriptionResourceId = CONTENT_DESCRIPTION_RESOURCE_ID,
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -150,8 +150,8 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() {
|
|||||||
val visibleModel = latest as KeyguardQuickAffordanceModel.Visible
|
val visibleModel = latest as KeyguardQuickAffordanceModel.Visible
|
||||||
assertThat(visibleModel.configKey).isEqualTo(configKey)
|
assertThat(visibleModel.configKey).isEqualTo(configKey)
|
||||||
assertThat(visibleModel.icon).isEqualTo(ICON)
|
assertThat(visibleModel.icon).isEqualTo(ICON)
|
||||||
assertThat(visibleModel.contentDescriptionResourceId)
|
assertThat(visibleModel.icon.contentDescription)
|
||||||
.isEqualTo(CONTENT_DESCRIPTION_RESOURCE_ID)
|
.isEqualTo(ContentDescription.Resource(res = CONTENT_DESCRIPTION_RESOURCE_ID))
|
||||||
job.cancel()
|
job.cancel()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -161,7 +161,6 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() {
|
|||||||
homeControls.setState(
|
homeControls.setState(
|
||||||
KeyguardQuickAffordanceConfig.State.Visible(
|
KeyguardQuickAffordanceConfig.State.Visible(
|
||||||
icon = ICON,
|
icon = ICON,
|
||||||
contentDescriptionResourceId = CONTENT_DESCRIPTION_RESOURCE_ID,
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -182,7 +181,6 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() {
|
|||||||
homeControls.setState(
|
homeControls.setState(
|
||||||
KeyguardQuickAffordanceConfig.State.Visible(
|
KeyguardQuickAffordanceConfig.State.Visible(
|
||||||
icon = ICON,
|
icon = ICON,
|
||||||
contentDescriptionResourceId = CONTENT_DESCRIPTION_RESOURCE_ID,
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -197,7 +195,14 @@ class KeyguardQuickAffordanceInteractorTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val ICON: ContainedDrawable = mock()
|
private val ICON: Icon = mock {
|
||||||
|
whenever(this.contentDescription)
|
||||||
|
.thenReturn(
|
||||||
|
ContentDescription.Resource(
|
||||||
|
res = CONTENT_DESCRIPTION_RESOURCE_ID,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
private const val CONTENT_DESCRIPTION_RESOURCE_ID = 1337
|
private const val CONTENT_DESCRIPTION_RESOURCE_ID = 1337
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import androidx.test.filters.SmallTest
|
|||||||
import com.android.internal.widget.LockPatternUtils
|
import com.android.internal.widget.LockPatternUtils
|
||||||
import com.android.systemui.SysuiTestCase
|
import com.android.systemui.SysuiTestCase
|
||||||
import com.android.systemui.animation.ActivityLaunchAnimator
|
import com.android.systemui.animation.ActivityLaunchAnimator
|
||||||
import com.android.systemui.containeddrawable.ContainedDrawable
|
import com.android.systemui.common.shared.model.Icon
|
||||||
import com.android.systemui.doze.util.BurnInHelperWrapper
|
import com.android.systemui.doze.util.BurnInHelperWrapper
|
||||||
import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository
|
import com.android.systemui.keyguard.data.repository.FakeKeyguardRepository
|
||||||
import com.android.systemui.keyguard.domain.interactor.KeyguardBottomAreaInteractor
|
import com.android.systemui.keyguard.domain.interactor.KeyguardBottomAreaInteractor
|
||||||
@@ -505,7 +505,6 @@ class KeyguardBottomAreaViewModelTest : SysuiTestCase() {
|
|||||||
}
|
}
|
||||||
KeyguardQuickAffordanceConfig.State.Visible(
|
KeyguardQuickAffordanceConfig.State.Visible(
|
||||||
icon = testConfig.icon ?: error("Icon is unexpectedly null!"),
|
icon = testConfig.icon ?: error("Icon is unexpectedly null!"),
|
||||||
contentDescriptionResourceId = CONTENT_DESCRIPTION_RESOURCE_ID,
|
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
KeyguardQuickAffordanceConfig.State.Hidden
|
KeyguardQuickAffordanceConfig.State.Hidden
|
||||||
@@ -543,7 +542,7 @@ class KeyguardBottomAreaViewModelTest : SysuiTestCase() {
|
|||||||
private data class TestConfig(
|
private data class TestConfig(
|
||||||
val isVisible: Boolean,
|
val isVisible: Boolean,
|
||||||
val isClickable: Boolean = false,
|
val isClickable: Boolean = false,
|
||||||
val icon: ContainedDrawable? = null,
|
val icon: Icon? = null,
|
||||||
val canShowWhileLocked: Boolean = false,
|
val canShowWhileLocked: Boolean = false,
|
||||||
val intent: Intent? = null,
|
val intent: Intent? = null,
|
||||||
) {
|
) {
|
||||||
@@ -555,6 +554,5 @@ class KeyguardBottomAreaViewModelTest : SysuiTestCase() {
|
|||||||
companion object {
|
companion object {
|
||||||
private const val DEFAULT_BURN_IN_OFFSET = 5
|
private const val DEFAULT_BURN_IN_OFFSET = 5
|
||||||
private const val RETURNED_BURN_IN_OFFSET = 3
|
private const val RETURNED_BURN_IN_OFFSET = 3
|
||||||
private const val CONTENT_DESCRIPTION_RESOURCE_ID = 1337
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user