• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2023 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.systemui.shade
18 
19 import android.view.MotionEvent
20 import com.android.systemui.shade.domain.interactor.PanelExpansionInteractor
21 import com.android.systemui.shade.domain.interactor.ShadeBackActionInteractor
22 import com.android.systemui.shade.domain.interactor.ShadeLockscreenInteractor
23 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow
24 import com.android.systemui.statusbar.phone.HeadsUpAppearanceController
25 import java.util.function.Consumer
26 import javax.inject.Inject
27 import kotlinx.coroutines.flow.MutableStateFlow
28 import kotlinx.coroutines.flow.flowOf
29 
30 /** Empty implementation of ShadeViewController for variants with no shade. */
31 open class ShadeViewControllerEmptyImpl @Inject constructor() :
32     ShadeViewController,
33     ShadeBackActionInteractor,
34     ShadeLockscreenInteractor,
35     PanelExpansionInteractor {
expandToNotificationsnull36     @Deprecated("Use ShadeInteractor instead") override fun expandToNotifications() {}
37 
38     @Deprecated("Use ShadeInteractor instead") override val isExpanded: Boolean = false
39     override val isPanelExpanded: Boolean = false
40 
animateCollapseQsnull41     override fun animateCollapseQs(fullyCollapse: Boolean) {}
42 
canBeCollapsednull43     override fun canBeCollapsed(): Boolean = false
44 
45     @Deprecated("Use ShadeAnimationInteractor instead") override val isCollapsing: Boolean = false
46     @Deprecated("Use !ShadeInteractor.isAnyExpanded instead")
47     override val isFullyCollapsed: Boolean = false
48     override val isTracking: Boolean = false
49     override val isViewEnabled: Boolean = false
50 
51     override fun shouldHideStatusBarIconsWhenExpanded() = false
52 
53     @Deprecated("Not supported by scenes") override fun blockExpansionForCurrentTouch() {}
54 
startExpandLatencyTrackingnull55     override fun startExpandLatencyTracking() {}
56 
resetViewsnull57     override fun resetViews(animate: Boolean) {}
58 
59     override val barState: Int = 0
60 
onBackPressednull61     override fun onBackPressed() {}
62 
63     @Deprecated("According to b/318376223, shade predictive back is not be supported.")
onBackProgressednull64     override fun onBackProgressed(progressFraction: Float) {}
65 
setAlphanull66     override fun setAlpha(alpha: Int, animate: Boolean) {}
67 
setAlphaChangeAnimationEndActionnull68     override fun setAlphaChangeAnimationEndAction(r: Runnable) {}
69 
setPulsingnull70     @Deprecated("Not supported by scenes") override fun setPulsing(pulsing: Boolean) {}
71 
setQsScrimEnablednull72     override fun setQsScrimEnabled(qsScrimEnabled: Boolean) {}
73 
updateSystemUiStateFlagsnull74     override fun updateSystemUiStateFlags() {}
75 
updateTouchableRegionnull76     override fun updateTouchableRegion() {}
77 
transitionToExpandedShadenull78     override fun transitionToExpandedShade(delay: Long) {}
79 
resetViewGroupFadenull80     @Deprecated("Not supported by scenes") override fun resetViewGroupFade() {}
81 
setOverStretchAmountnull82     @Deprecated("Not supported by scenes") override fun setOverStretchAmount(amount: Float) {}
83 
84     @Deprecated("TODO(b/325072511) delete this")
setKeyguardStatusBarAlphanull85     override fun setKeyguardStatusBarAlpha(alpha: Float) {}
86 
showAodUinull87     override fun showAodUi() {}
88 
89     @Deprecated(
90         "depends on the state you check, use {@link #isShadeFullyExpanded()},\n" +
91             "{@link #isOnAod()}, {@link #isOnKeyguard()} instead."
92     )
93     override val isFullyExpanded = false
94 
handleExternalTouchnull95     override fun handleExternalTouch(event: MotionEvent): Boolean {
96         return false
97     }
98 
handleExternalInterceptTouchnull99     override fun handleExternalInterceptTouch(event: MotionEvent): Boolean {
100         return false
101     }
102 
startInputFocusTransfernull103     override fun startInputFocusTransfer() {}
104 
cancelInputFocusTransfernull105     override fun cancelInputFocusTransfer() {}
106 
finishInputFocusTransfernull107     override fun finishInputFocusTransfer(velocity: Float) {}
108 
109     @Deprecated("Temporary a11y solution until dual shade launch b/371224114")
onStatusBarLongPressnull110     override fun onStatusBarLongPress(event: MotionEvent) {}
111 
112     override val shadeHeadsUpTracker = ShadeHeadsUpTrackerEmptyImpl()
113     override val shadeFoldAnimator = ShadeFoldAnimatorEmptyImpl()
114     @Deprecated("Use SceneInteractor.currentScene instead.")
115     override val legacyPanelExpansion = flowOf(0f)
116     override val udfpsTransitionToFullShadeProgress = MutableStateFlow(0f)
117 }
118 
119 class ShadeHeadsUpTrackerEmptyImpl : ShadeHeadsUpTracker {
addTrackingHeadsUpListenernull120     override fun addTrackingHeadsUpListener(listener: Consumer<ExpandableNotificationRow>) {}
121 
removeTrackingHeadsUpListenernull122     override fun removeTrackingHeadsUpListener(listener: Consumer<ExpandableNotificationRow>) {}
123 
setHeadsUpAppearanceControllernull124     override fun setHeadsUpAppearanceController(
125         headsUpAppearanceController: HeadsUpAppearanceController?
126     ) {}
127 
128     override val trackedHeadsUpNotification: ExpandableNotificationRow? = null
129 }
130 
131 class ShadeFoldAnimatorEmptyImpl : ShadeFoldAnimator {
prepareFoldToAodAnimationnull132     override fun prepareFoldToAodAnimation() {}
133 
startFoldToAodAnimationnull134     override fun startFoldToAodAnimation(
135         startAction: Runnable,
136         endAction: Runnable,
137         cancelAction: Runnable,
138     ) {}
139 
cancelFoldToAodAnimationnull140     override fun cancelFoldToAodAnimation() {}
141 }
142