Loading packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractor.kt +9 −8 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ package com.android.systemui.keyguard.domain.interactor import android.content.Intent import com.android.internal.widget.LockPatternUtils import com.android.systemui.animation.ActivityLaunchAnimator import com.android.systemui.animation.Expandable import com.android.systemui.dagger.SysUISingleton import com.android.systemui.keyguard.domain.model.KeyguardQuickAffordanceModel import com.android.systemui.keyguard.domain.model.KeyguardQuickAffordancePosition Loading Loading @@ -67,19 +67,19 @@ constructor( * * @param configKey The configuration key corresponding to the [KeyguardQuickAffordanceModel] of * the affordance that was clicked * @param animationController An optional controller for the activity-launch animation * @param expandable An optional [Expandable] for the activity- or dialog-launch animation */ fun onQuickAffordanceClicked( configKey: KClass<out KeyguardQuickAffordanceConfig>, animationController: ActivityLaunchAnimator.Controller?, expandable: Expandable?, ) { @Suppress("UNCHECKED_CAST") val config = registry.get(configKey as KClass<Nothing>) when (val result = config.onQuickAffordanceClicked(animationController)) { when (val result = config.onQuickAffordanceClicked(expandable)) { is KeyguardQuickAffordanceConfig.OnClickedResult.StartActivity -> launchQuickAffordance( intent = result.intent, canShowWhileLocked = result.canShowWhileLocked, animationController = animationController expandable = expandable, ) is KeyguardQuickAffordanceConfig.OnClickedResult.Handled -> Unit } Loading @@ -104,6 +104,7 @@ constructor( KeyguardQuickAffordanceModel.Visible( configKey = configs[index]::class, icon = visibleState.icon, toggle = visibleState.toggle, ) } else { KeyguardQuickAffordanceModel.Hidden Loading @@ -114,7 +115,7 @@ constructor( private fun launchQuickAffordance( intent: Intent, canShowWhileLocked: Boolean, animationController: ActivityLaunchAnimator.Controller?, expandable: Expandable?, ) { @LockPatternUtils.StrongAuthTracker.StrongAuthFlags val strongAuthFlags = Loading @@ -130,13 +131,13 @@ constructor( activityStarter.postStartActivityDismissingKeyguard( intent, 0 /* delay */, animationController expandable?.activityLaunchController(), ) } else { activityStarter.startActivity( intent, true /* dismissShade */, animationController, expandable?.activityLaunchController(), true /* showOverLockscreenWhenLocked */, ) } Loading packages/SystemUI/src/com/android/systemui/keyguard/domain/model/KeyguardQuickAffordanceModel.kt +3 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.systemui.keyguard.domain.model import com.android.systemui.common.shared.model.Icon import com.android.systemui.keyguard.domain.quickaffordance.KeyguardQuickAffordanceConfig import com.android.systemui.keyguard.shared.quickaffordance.KeyguardQuickAffordanceToggleState import kotlin.reflect.KClass /** Loading @@ -35,5 +36,7 @@ sealed class KeyguardQuickAffordanceModel { val configKey: KClass<out KeyguardQuickAffordanceConfig>, /** An icon for the affordance. */ val icon: Icon, /** The toggle state for the affordance. */ val toggle: KeyguardQuickAffordanceToggleState, ) : KeyguardQuickAffordanceModel() } packages/SystemUI/src/com/android/systemui/keyguard/domain/quickaffordance/HomeControlsKeyguardQuickAffordanceConfig.kt +2 −2 Original line number Diff line number Diff line Loading @@ -20,7 +20,7 @@ package com.android.systemui.keyguard.domain.quickaffordance import android.content.Context import android.content.Intent import androidx.annotation.DrawableRes import com.android.systemui.animation.ActivityLaunchAnimator import com.android.systemui.animation.Expandable import com.android.systemui.common.coroutine.ChannelExt.trySendWithFailureLogging import com.android.systemui.common.coroutine.ConflatedCallbackFlow.conflatedCallbackFlow import com.android.systemui.common.shared.model.ContentDescription Loading Loading @@ -61,7 +61,7 @@ constructor( } override fun onQuickAffordanceClicked( animationController: ActivityLaunchAnimator.Controller?, expandable: Expandable?, ): KeyguardQuickAffordanceConfig.OnClickedResult { return KeyguardQuickAffordanceConfig.OnClickedResult.StartActivity( intent = Loading packages/SystemUI/src/com/android/systemui/keyguard/domain/quickaffordance/KeyguardQuickAffordanceConfig.kt +6 −4 Original line number Diff line number Diff line Loading @@ -18,8 +18,9 @@ package com.android.systemui.keyguard.domain.quickaffordance import android.content.Intent import com.android.systemui.animation.ActivityLaunchAnimator import com.android.systemui.animation.Expandable import com.android.systemui.common.shared.model.Icon import com.android.systemui.keyguard.shared.quickaffordance.KeyguardQuickAffordanceToggleState import kotlinx.coroutines.flow.Flow /** Defines interface that can act as data source for a single quick affordance model. */ Loading @@ -27,9 +28,7 @@ interface KeyguardQuickAffordanceConfig { val state: Flow<State> fun onQuickAffordanceClicked( animationController: ActivityLaunchAnimator.Controller? ): OnClickedResult fun onQuickAffordanceClicked(expandable: Expandable?): OnClickedResult /** * Encapsulates the state of a "quick affordance" in the keyguard bottom area (for example, a Loading @@ -44,6 +43,9 @@ interface KeyguardQuickAffordanceConfig { data class Visible( /** An icon for the affordance. */ val icon: Icon, /** The toggle state for the affordance. */ val toggle: KeyguardQuickAffordanceToggleState = KeyguardQuickAffordanceToggleState.NotSupported, ) : State() } Loading packages/SystemUI/src/com/android/systemui/keyguard/domain/quickaffordance/QrCodeScannerKeyguardQuickAffordanceConfig.kt +2 −2 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ package com.android.systemui.keyguard.domain.quickaffordance import com.android.systemui.R import com.android.systemui.animation.ActivityLaunchAnimator import com.android.systemui.animation.Expandable import com.android.systemui.common.coroutine.ChannelExt.trySendWithFailureLogging import com.android.systemui.common.coroutine.ConflatedCallbackFlow.conflatedCallbackFlow import com.android.systemui.common.shared.model.ContentDescription Loading Loading @@ -66,7 +66,7 @@ constructor( } override fun onQuickAffordanceClicked( animationController: ActivityLaunchAnimator.Controller?, expandable: Expandable?, ): KeyguardQuickAffordanceConfig.OnClickedResult { return KeyguardQuickAffordanceConfig.OnClickedResult.StartActivity( intent = controller.intent, Loading Loading
packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardQuickAffordanceInteractor.kt +9 −8 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ package com.android.systemui.keyguard.domain.interactor import android.content.Intent import com.android.internal.widget.LockPatternUtils import com.android.systemui.animation.ActivityLaunchAnimator import com.android.systemui.animation.Expandable import com.android.systemui.dagger.SysUISingleton import com.android.systemui.keyguard.domain.model.KeyguardQuickAffordanceModel import com.android.systemui.keyguard.domain.model.KeyguardQuickAffordancePosition Loading Loading @@ -67,19 +67,19 @@ constructor( * * @param configKey The configuration key corresponding to the [KeyguardQuickAffordanceModel] of * the affordance that was clicked * @param animationController An optional controller for the activity-launch animation * @param expandable An optional [Expandable] for the activity- or dialog-launch animation */ fun onQuickAffordanceClicked( configKey: KClass<out KeyguardQuickAffordanceConfig>, animationController: ActivityLaunchAnimator.Controller?, expandable: Expandable?, ) { @Suppress("UNCHECKED_CAST") val config = registry.get(configKey as KClass<Nothing>) when (val result = config.onQuickAffordanceClicked(animationController)) { when (val result = config.onQuickAffordanceClicked(expandable)) { is KeyguardQuickAffordanceConfig.OnClickedResult.StartActivity -> launchQuickAffordance( intent = result.intent, canShowWhileLocked = result.canShowWhileLocked, animationController = animationController expandable = expandable, ) is KeyguardQuickAffordanceConfig.OnClickedResult.Handled -> Unit } Loading @@ -104,6 +104,7 @@ constructor( KeyguardQuickAffordanceModel.Visible( configKey = configs[index]::class, icon = visibleState.icon, toggle = visibleState.toggle, ) } else { KeyguardQuickAffordanceModel.Hidden Loading @@ -114,7 +115,7 @@ constructor( private fun launchQuickAffordance( intent: Intent, canShowWhileLocked: Boolean, animationController: ActivityLaunchAnimator.Controller?, expandable: Expandable?, ) { @LockPatternUtils.StrongAuthTracker.StrongAuthFlags val strongAuthFlags = Loading @@ -130,13 +131,13 @@ constructor( activityStarter.postStartActivityDismissingKeyguard( intent, 0 /* delay */, animationController expandable?.activityLaunchController(), ) } else { activityStarter.startActivity( intent, true /* dismissShade */, animationController, expandable?.activityLaunchController(), true /* showOverLockscreenWhenLocked */, ) } Loading
packages/SystemUI/src/com/android/systemui/keyguard/domain/model/KeyguardQuickAffordanceModel.kt +3 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.systemui.keyguard.domain.model import com.android.systemui.common.shared.model.Icon import com.android.systemui.keyguard.domain.quickaffordance.KeyguardQuickAffordanceConfig import com.android.systemui.keyguard.shared.quickaffordance.KeyguardQuickAffordanceToggleState import kotlin.reflect.KClass /** Loading @@ -35,5 +36,7 @@ sealed class KeyguardQuickAffordanceModel { val configKey: KClass<out KeyguardQuickAffordanceConfig>, /** An icon for the affordance. */ val icon: Icon, /** The toggle state for the affordance. */ val toggle: KeyguardQuickAffordanceToggleState, ) : KeyguardQuickAffordanceModel() }
packages/SystemUI/src/com/android/systemui/keyguard/domain/quickaffordance/HomeControlsKeyguardQuickAffordanceConfig.kt +2 −2 Original line number Diff line number Diff line Loading @@ -20,7 +20,7 @@ package com.android.systemui.keyguard.domain.quickaffordance import android.content.Context import android.content.Intent import androidx.annotation.DrawableRes import com.android.systemui.animation.ActivityLaunchAnimator import com.android.systemui.animation.Expandable import com.android.systemui.common.coroutine.ChannelExt.trySendWithFailureLogging import com.android.systemui.common.coroutine.ConflatedCallbackFlow.conflatedCallbackFlow import com.android.systemui.common.shared.model.ContentDescription Loading Loading @@ -61,7 +61,7 @@ constructor( } override fun onQuickAffordanceClicked( animationController: ActivityLaunchAnimator.Controller?, expandable: Expandable?, ): KeyguardQuickAffordanceConfig.OnClickedResult { return KeyguardQuickAffordanceConfig.OnClickedResult.StartActivity( intent = Loading
packages/SystemUI/src/com/android/systemui/keyguard/domain/quickaffordance/KeyguardQuickAffordanceConfig.kt +6 −4 Original line number Diff line number Diff line Loading @@ -18,8 +18,9 @@ package com.android.systemui.keyguard.domain.quickaffordance import android.content.Intent import com.android.systemui.animation.ActivityLaunchAnimator import com.android.systemui.animation.Expandable import com.android.systemui.common.shared.model.Icon import com.android.systemui.keyguard.shared.quickaffordance.KeyguardQuickAffordanceToggleState import kotlinx.coroutines.flow.Flow /** Defines interface that can act as data source for a single quick affordance model. */ Loading @@ -27,9 +28,7 @@ interface KeyguardQuickAffordanceConfig { val state: Flow<State> fun onQuickAffordanceClicked( animationController: ActivityLaunchAnimator.Controller? ): OnClickedResult fun onQuickAffordanceClicked(expandable: Expandable?): OnClickedResult /** * Encapsulates the state of a "quick affordance" in the keyguard bottom area (for example, a Loading @@ -44,6 +43,9 @@ interface KeyguardQuickAffordanceConfig { data class Visible( /** An icon for the affordance. */ val icon: Icon, /** The toggle state for the affordance. */ val toggle: KeyguardQuickAffordanceToggleState = KeyguardQuickAffordanceToggleState.NotSupported, ) : State() } Loading
packages/SystemUI/src/com/android/systemui/keyguard/domain/quickaffordance/QrCodeScannerKeyguardQuickAffordanceConfig.kt +2 −2 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ package com.android.systemui.keyguard.domain.quickaffordance import com.android.systemui.R import com.android.systemui.animation.ActivityLaunchAnimator import com.android.systemui.animation.Expandable import com.android.systemui.common.coroutine.ChannelExt.trySendWithFailureLogging import com.android.systemui.common.coroutine.ConflatedCallbackFlow.conflatedCallbackFlow import com.android.systemui.common.shared.model.ContentDescription Loading Loading @@ -66,7 +66,7 @@ constructor( } override fun onQuickAffordanceClicked( animationController: ActivityLaunchAnimator.Controller?, expandable: Expandable?, ): KeyguardQuickAffordanceConfig.OnClickedResult { return KeyguardQuickAffordanceConfig.OnClickedResult.StartActivity( intent = controller.intent, Loading