summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java50
-rw-r--r--packages/SystemUI/src/com/android/systemui/shade/QuickSettingsController.java32
-rw-r--r--packages/SystemUI/src/com/android/systemui/shade/data/repository/ShadeRepository.kt42
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerBaseTest.java4
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/shade/data/repository/ShadeRepositoryImplTest.kt18
-rw-r--r--packages/SystemUI/tests/utils/src/com/android/systemui/shade/data/repository/FakeShadeRepository.kt17
6 files changed, 122 insertions, 41 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java
index 79b4791259a8..a8deebdc784d 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java
@@ -235,7 +235,6 @@ import kotlin.Unit;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.List;
import java.util.Optional;
import java.util.function.Consumer;
@@ -367,7 +366,6 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
private float mExpandedHeight = 0;
/** The current squish amount for the predictive back animation */
private float mCurrentBackProgress = 0.0f;
- private boolean mTracking;
@Deprecated
private KeyguardBottomAreaView mKeyguardBottomArea;
private boolean mExpanding;
@@ -999,7 +997,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
// cause blurring. This will eventually be re-enabled by the panel view on
// ACTION_UP, since the user's finger might still be down after a swipe to
// unlock gesture, and we don't want that to cause blurring either.
- mDepthController.setBlursDisabledForUnlock(mTracking);
+ mDepthController.setBlursDisabledForUnlock(isTracking());
if (playingCannedAnimation && !isWakeAndUnlockNotFromDream) {
// Hide the panel so it's not in the way or the surface behind the
@@ -2542,10 +2540,10 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
private void onHeightUpdated(float expandedHeight) {
if (expandedHeight <= 0) {
mShadeLog.logExpansionChanged("onHeightUpdated: fully collapsed.",
- mExpandedFraction, isExpanded(), mTracking, mExpansionDragDownAmountPx);
+ mExpandedFraction, isExpanded(), isTracking(), mExpansionDragDownAmountPx);
} else if (isFullyExpanded()) {
mShadeLog.logExpansionChanged("onHeightUpdated: fully expanded.",
- mExpandedFraction, isExpanded(), mTracking, mExpansionDragDownAmountPx);
+ mExpandedFraction, isExpanded(), isTracking(), mExpansionDragDownAmountPx);
}
if (!mQsController.getExpanded() || mQsController.isExpandImmediate()
|| mIsExpandingOrCollapsing && mQsController.getExpandedWhenExpandingStarted()) {
@@ -2738,7 +2736,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
mAnimateAfterExpanding = animate;
mUpdateFlingOnLayout = false;
abortAnimations();
- if (mTracking) {
+ if (isTracking()) {
// The panel is expanded after this call.
onTrackingStopped(true /* expands */);
}
@@ -2825,7 +2823,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
private void onTrackingStarted() {
endClosing();
- mTracking = true;
+ mShadeRepository.setLegacyShadeTracking(true);
mTrackingStartedListener.onTrackingStarted();
notifyExpandingStarted();
updateExpansionAndVisibility();
@@ -2839,7 +2837,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
}
private void onTrackingStopped(boolean expand) {
- mTracking = false;
+ mShadeRepository.setLegacyShadeTracking(false);
updateExpansionAndVisibility();
if (expand) {
@@ -3011,7 +3009,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
}
private void updateExpandedHeight(float expandedHeight) {
- if (mTracking) {
+ if (isTracking()) {
mNotificationStackScrollLayoutController
.setExpandingVelocity(getCurrentExpandVelocity());
}
@@ -3100,7 +3098,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
mTouchDisabled = disabled;
if (mTouchDisabled) {
cancelHeightAnimator();
- if (mTracking) {
+ if (isTracking()) {
onTrackingStopped(true /* expanded */);
}
notifyExpandingFinished();
@@ -3339,7 +3337,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
@Override
public void blockExpansionForCurrentTouch() {
- mBlockingExpansionForCurrentTouch = mTracking;
+ mBlockingExpansionForCurrentTouch = isTracking();
}
@Override
@@ -3353,7 +3351,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
ipw.print("mIsLaunchAnimationRunning="); ipw.println(mIsLaunchAnimationRunning);
ipw.print("mOverExpansion="); ipw.println(mOverExpansion);
ipw.print("mExpandedHeight="); ipw.println(mExpandedHeight);
- ipw.print("mTracking="); ipw.println(mTracking);
+ ipw.print("isTracking()="); ipw.println(isTracking());
ipw.print("mExpanding="); ipw.println(mExpanding);
ipw.print("mSplitShadeEnabled="); ipw.println(mSplitShadeEnabled);
ipw.print("mKeyguardNotificationBottomPadding=");
@@ -3691,7 +3689,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
mQsController.beginJankMonitoring(isFullyCollapsed());
}
mInitialOffsetOnTouch = expandedHeight;
- if (!mTracking || isFullyCollapsed()) {
+ if (!isTracking() || isFullyCollapsed()) {
mInitialExpandY = newY;
mInitialExpandX = newX;
} else {
@@ -3709,7 +3707,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
mShadeLog.logEndMotionEvent("endMotionEvent called", forceCancel, false);
mTrackingPointer = -1;
mAmbientState.setSwipingUp(false);
- if ((mTracking && mTouchSlopExceeded) || Math.abs(x - mInitialExpandX) > mTouchSlop
+ if ((isTracking() && mTouchSlopExceeded) || Math.abs(x - mInitialExpandX) > mTouchSlop
|| Math.abs(y - mInitialExpandY) > mTouchSlop
|| (!isFullyExpanded() && !isFullyCollapsed())
|| event.getActionMasked() == MotionEvent.ACTION_CANCEL || forceCancel) {
@@ -3873,7 +3871,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
return;
}
- if (mTracking && !(mBlockingExpansionForCurrentTouch
+ if (isTracking() && !(mBlockingExpansionForCurrentTouch
|| mQsController.isTrackingBlocked())) {
return;
}
@@ -3899,7 +3897,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
float maxPanelHeight = getMaxPanelTransitionDistance();
if (mHeightAnimator == null) {
// Split shade has its own overscroll logic
- if (mTracking) {
+ if (isTracking()) {
float overExpansionPixels = Math.max(0, h - maxPanelHeight);
setOverExpansionInternal(overExpansionPixels, true /* isFromGesture */);
}
@@ -3986,12 +3984,12 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
}
public boolean isTracking() {
- return mTracking;
+ return mShadeRepository.getLegacyShadeTracking().getValue();
}
@Override
public boolean canBeCollapsed() {
- return !isFullyCollapsed() && !mTracking && !mClosing;
+ return !isFullyCollapsed() && !isTracking() && !mClosing;
}
@Override
@@ -4083,7 +4081,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
@Override
public void updateExpansionAndVisibility() {
mShadeExpansionStateManager.onPanelExpansionChanged(
- mExpandedFraction, isExpanded(), mTracking, mExpansionDragDownAmountPx);
+ mExpandedFraction, isExpanded(), isTracking(), mExpansionDragDownAmountPx);
updateVisibility();
}
@@ -4093,7 +4091,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
return mExpandedFraction > 0f
|| mInstantExpanding
|| isPanelVisibleBecauseOfHeadsUp()
- || mTracking
+ || isTracking()
|| mHeightAnimator != null
|| isPanelVisibleBecauseScrimIsAnimatingOff()
&& !mIsSpringBackAnimation;
@@ -4796,7 +4794,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
+ " mAnimatingOnDown: true, mClosing: true");
return true;
}
- if (!mTracking || isFullyCollapsed()) {
+ if (!isTracking() || isFullyCollapsed()) {
mInitialExpandY = y;
mInitialExpandX = x;
} else {
@@ -4973,7 +4971,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
// If dragging should not expand the notifications shade, then return false.
if (!mNotificationsDragEnabled) {
- if (mTracking) {
+ if (isTracking()) {
// Turn off tracking if it's on or the shade can get stuck in the down position.
onTrackingStopped(true /* expand */);
}
@@ -5099,7 +5097,9 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
&& (Math.abs(h) > Math.abs(x - mInitialExpandX)
|| mIgnoreXTouchSlop)) {
mTouchSlopExceeded = true;
- if (mGestureWaitForTouchSlop && !mTracking && !mCollapsedAndHeadsUpOnDown) {
+ if (mGestureWaitForTouchSlop
+ && !isTracking()
+ && !mCollapsedAndHeadsUpOnDown) {
if (mInitialOffsetOnTouch != 0f) {
startExpandMotion(x, y, false /* startTracking */, mExpandedHeight);
h = 0;
@@ -5114,7 +5114,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
mTouchAboveFalsingThreshold = true;
mUpwardsWhenThresholdReached = isDirectionUpwards(x, y);
}
- if ((!mGestureWaitForTouchSlop || mTracking)
+ if ((!mGestureWaitForTouchSlop || isTracking())
&& !(mBlockingExpansionForCurrentTouch
|| mQsController.isTrackingBlocked())) {
// Count h==0 as part of swipe-up,
@@ -5140,7 +5140,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
}
break;
}
- return !mGestureWaitForTouchSlop || mTracking;
+ return !mGestureWaitForTouchSlop || isTracking();
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/shade/QuickSettingsController.java b/packages/SystemUI/src/com/android/systemui/shade/QuickSettingsController.java
index b2bbffdb5453..792984360032 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/QuickSettingsController.java
+++ b/packages/SystemUI/src/com/android/systemui/shade/QuickSettingsController.java
@@ -199,8 +199,6 @@ public class QuickSettingsController implements Dumpable {
private float mInitialTouchY;
/** whether current touch Y delta is above falsing threshold */
private boolean mTouchAboveFalsingThreshold;
- /** whether we are tracking a touch on QS container */
- private boolean mTracking;
/** pointerId of the pointer we're currently tracking */
private int mTrackingPointer;
@@ -596,7 +594,7 @@ public class QuickSettingsController implements Dumpable {
@VisibleForTesting
boolean isTracking() {
- return mTracking;
+ return mShadeRepository.getLegacyQsTracking().getValue();
}
public boolean getFullyExpanded() {
@@ -609,10 +607,14 @@ public class QuickSettingsController implements Dumpable {
// split shade as there QS are always expanded so every collapsing motion is motion from
// expanded QS to closed panel
return mExpandImmediate || (mExpanded
- && !mTracking && !isExpansionAnimating()
+ && !isTracking() && !isExpansionAnimating()
&& !mExpansionFromOverscroll);
}
+ private void setTracking(boolean tracking) {
+ mShadeRepository.setLegacyQsTracking(tracking);
+ }
+
private boolean isQsFragmentCreated() {
return mQs != null;
}
@@ -1597,7 +1599,7 @@ public class QuickSettingsController implements Dumpable {
if (action == MotionEvent.ACTION_DOWN && expandedShadeCollapsedQs) {
// Down in the empty area while fully expanded - go to QS.
mShadeLog.logMotionEvent(event, "handleQsTouch: down action, QS tracking enabled");
- mTracking = true;
+ setTracking(true);
traceQsJank(true, false);
mConflictingExpansionGesture = true;
onExpansionStarted();
@@ -1612,9 +1614,9 @@ public class QuickSettingsController implements Dumpable {
// as sometimes the qsExpansionFraction can be a tiny value instead of 0 when in QQS.
if (!mSplitShadeEnabled && !mLastShadeFlingWasExpanding
&& computeExpansionFraction() <= 0.01 && mShadeExpandedFraction < 1.0) {
- mTracking = false;
+ setTracking(false);
}
- if (!isExpandImmediate() && mTracking) {
+ if (!isExpandImmediate() && isTracking()) {
onTouch(event);
if (!mConflictingExpansionGesture && !mSplitShadeEnabled) {
return true;
@@ -1658,7 +1660,7 @@ public class QuickSettingsController implements Dumpable {
if (shouldQuickSettingsIntercept(event.getX(), event.getY(), -1)) {
mShadeLog.logMotionEvent(event,
"handleQsDown: down action, QS tracking enabled");
- mTracking = true;
+ setTracking(true);
onExpansionStarted();
mInitialHeightOnTouch = mExpansionHeight;
mInitialTouchY = event.getY();
@@ -1684,7 +1686,7 @@ public class QuickSettingsController implements Dumpable {
switch (event.getActionMasked()) {
case MotionEvent.ACTION_DOWN:
mShadeLog.logMotionEvent(event, "onQsTouch: down action, QS tracking enabled");
- mTracking = true;
+ setTracking(true);
traceQsJank(true, false);
mInitialTouchY = y;
mInitialTouchX = x;
@@ -1721,7 +1723,7 @@ public class QuickSettingsController implements Dumpable {
case MotionEvent.ACTION_CANCEL:
mShadeLog.logMotionEvent(event,
"onQsTouch: up/cancel action, QS tracking disabled");
- mTracking = false;
+ setTracking(false);
mTrackingPointer = -1;
trackMovement(event);
float fraction = computeExpansionFraction();
@@ -1776,7 +1778,7 @@ public class QuickSettingsController implements Dumpable {
mInitialHeightOnTouch = mExpansionHeight;
mShadeLog.logMotionEvent(event,
"onQsIntercept: down action, QS tracking enabled");
- mTracking = true;
+ setTracking(true);
traceQsJank(true, false);
mNotificationStackScrollLayoutController.cancelLongPress();
}
@@ -1795,7 +1797,7 @@ public class QuickSettingsController implements Dumpable {
case MotionEvent.ACTION_MOVE:
final float h = y - mInitialTouchY;
trackMovement(event);
- if (mTracking) {
+ if (isTracking()) {
// Already tracking because onOverscrolled was called. We need to update here
// so we don't stop for a frame until the next touch event gets handled in
// onTouchEvent.
@@ -1815,7 +1817,7 @@ public class QuickSettingsController implements Dumpable {
mInitialTouchX, mInitialTouchY, h)) {
mPanelView.getParent().requestDisallowInterceptTouchEvent(true);
mShadeLog.onQsInterceptMoveQsTrackingEnabled(h);
- mTracking = true;
+ setTracking(true);
traceQsJank(true, false);
onExpansionStarted();
mPanelViewControllerLazy.get().notifyExpandingFinished();
@@ -1835,7 +1837,7 @@ public class QuickSettingsController implements Dumpable {
case MotionEvent.ACTION_UP:
trackMovement(event);
mShadeLog.logMotionEvent(event, "onQsIntercept: up action, QS tracking disabled");
- mTracking = false;
+ setTracking(false);
break;
}
return false;
@@ -2061,7 +2063,7 @@ public class QuickSettingsController implements Dumpable {
ipw.print("mTouchAboveFalsingThreshold=");
ipw.println(mTouchAboveFalsingThreshold);
ipw.print("mTracking=");
- ipw.println(mTracking);
+ ipw.println(isTracking());
ipw.print("mTrackingPointer=");
ipw.println(mTrackingPointer);
ipw.print("mExpanded=");
diff --git a/packages/SystemUI/src/com/android/systemui/shade/data/repository/ShadeRepository.kt b/packages/SystemUI/src/com/android/systemui/shade/data/repository/ShadeRepository.kt
index 947259a79345..52a99af3eee4 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/data/repository/ShadeRepository.kt
+++ b/packages/SystemUI/src/com/android/systemui/shade/data/repository/ShadeRepository.kt
@@ -56,6 +56,30 @@ interface ShadeRepository {
@Deprecated("Use ShadeInteractor.shadeExpansion instead")
val legacyShadeExpansion: StateFlow<Float>
+ /**
+ * NotificationPanelViewController.mTracking as a flow. "Tracking" means that the user is moving
+ * the shade up or down with a pointer. Going forward, this concept will be replaced by checks
+ * for whether a transition was driven by user input instead of whether a pointer is currently
+ * touching the screen, i.e. after the user has lifted their finger to fling the shade, these
+ * values would be different.
+ */
+ @Deprecated("Use ShadeInteractor instead") val legacyShadeTracking: StateFlow<Boolean>
+
+ /**
+ * QuickSettingsController.mTracking as a flow. "Tracking" means that the user is moving quick
+ * settings up or down with a pointer. Going forward, this concept will be replaced by checks
+ * for whether a transition was driven by user input instead of whether a pointer is currently
+ * touching the screen, i.e. after the user has lifted their finger to fling the QS, these
+ * values would be different.
+ */
+ @Deprecated("Use ShadeInteractor instead") val legacyQsTracking: StateFlow<Boolean>
+
+ /** Sets whether the user is moving Quick Settings with a pointer */
+ fun setLegacyQsTracking(legacyQsTracking: Boolean)
+
+ /** Sets whether the user is moving the shade with a pointer */
+ fun setLegacyShadeTracking(tracking: Boolean)
+
/** Amount shade has expanded with regard to the UDFPS location */
val udfpsTransitionToFullShadeProgress: StateFlow<Float>
@@ -123,6 +147,24 @@ constructor(shadeExpansionStateManager: ShadeExpansionStateManager) : ShadeRepos
@Deprecated("Use ShadeInteractor.shadeExpansion instead")
override val legacyShadeExpansion: StateFlow<Float> = _legacyShadeExpansion.asStateFlow()
+ private val _legacyShadeTracking = MutableStateFlow(false)
+ @Deprecated("Use ShadeInteractor instead")
+ override val legacyShadeTracking: StateFlow<Boolean> = _legacyShadeTracking.asStateFlow()
+
+ private val _legacyQsTracking = MutableStateFlow(false)
+ @Deprecated("Use ShadeInteractor instead")
+ override val legacyQsTracking: StateFlow<Boolean> = _legacyQsTracking.asStateFlow()
+
+ @Deprecated("Should only be called by NPVC and tests")
+ override fun setLegacyQsTracking(legacyQsTracking: Boolean) {
+ _legacyQsTracking.value = legacyQsTracking
+ }
+
+ @Deprecated("Should only be called by NPVC and tests")
+ override fun setLegacyShadeTracking(tracking: Boolean) {
+ _legacyShadeTracking.value = tracking
+ }
+
override fun setQsExpansion(qsExpansion: Float) {
_qsExpansion.value = qsExpansion
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerBaseTest.java b/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerBaseTest.java
index 74e917d38f72..0f5f141b6d46 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerBaseTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerBaseTest.java
@@ -120,6 +120,7 @@ import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.plugins.qs.QS;
import com.android.systemui.qs.QSFragment;
import com.android.systemui.screenrecord.RecordingController;
+import com.android.systemui.shade.data.repository.FakeShadeRepository;
import com.android.systemui.shade.data.repository.ShadeRepository;
import com.android.systemui.shade.domain.interactor.ShadeInteractor;
import com.android.systemui.shade.transition.ShadeTransitionController;
@@ -320,7 +321,6 @@ public class NotificationPanelViewControllerBaseTest extends SysuiTestCase {
mEmptySpaceClickListenerCaptor;
@Mock protected ActivityStarter mActivityStarter;
@Mock protected KeyguardFaceAuthInteractor mKeyguardFaceAuthInteractor;
- @Mock protected ShadeRepository mShadeRepository;
@Mock private ShadeInteractor mShadeInteractor;
@Mock private JavaAdapter mJavaAdapter;
@Mock private CastController mCastController;
@@ -341,6 +341,7 @@ public class NotificationPanelViewControllerBaseTest extends SysuiTestCase {
protected Handler mMainHandler;
protected View.OnLayoutChangeListener mLayoutChangeListener;
protected KeyguardStatusViewController mKeyguardStatusViewController;
+ protected ShadeRepository mShadeRepository;
protected final FalsingManagerFake mFalsingManager = new FalsingManagerFake();
protected final Optional<SysUIUnfoldComponent> mSysUIUnfoldComponent = Optional.empty();
@@ -362,6 +363,7 @@ public class NotificationPanelViewControllerBaseTest extends SysuiTestCase {
mFakeKeyguardRepository = keyguardInteractorDeps.getRepository();
mKeyguardBottomAreaInteractor = new KeyguardBottomAreaInteractor(mFakeKeyguardRepository);
mKeyguardInteractor = keyguardInteractorDeps.getKeyguardInteractor();
+ mShadeRepository = new FakeShadeRepository();
SystemClock systemClock = new FakeSystemClock();
mStatusBarStateController = new StatusBarStateControllerImpl(mUiEventLogger, mDumpManager,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/data/repository/ShadeRepositoryImplTest.kt b/packages/SystemUI/tests/src/com/android/systemui/shade/data/repository/ShadeRepositoryImplTest.kt
index e086712308b6..19d59fd4f1b1 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/shade/data/repository/ShadeRepositoryImplTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/shade/data/repository/ShadeRepositoryImplTest.kt
@@ -151,6 +151,24 @@ class ShadeRepositoryImplTest : SysuiTestCase() {
}
@Test
+ fun updateLegacyShadeTracking() =
+ testScope.runTest {
+ assertThat(underTest.legacyShadeTracking.value).isEqualTo(false)
+
+ underTest.setLegacyShadeTracking(true)
+ assertThat(underTest.legacyShadeTracking.value).isEqualTo(true)
+ }
+
+ @Test
+ fun updateLegacyQsTracking() =
+ testScope.runTest {
+ assertThat(underTest.legacyQsTracking.value).isEqualTo(false)
+
+ underTest.setLegacyQsTracking(true)
+ assertThat(underTest.legacyQsTracking.value).isEqualTo(true)
+ }
+
+ @Test
fun updateUdfpsTransitionToFullShadeProgress() =
testScope.runTest {
assertThat(underTest.udfpsTransitionToFullShadeProgress.value).isEqualTo(0f)
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/shade/data/repository/FakeShadeRepository.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/shade/data/repository/FakeShadeRepository.kt
index 08152a3c49cd..e72544a24740 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/shade/data/repository/FakeShadeRepository.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/shade/data/repository/FakeShadeRepository.kt
@@ -40,6 +40,23 @@ class FakeShadeRepository : ShadeRepository {
@Deprecated("Use ShadeInteractor instead")
override val legacyShadeExpansion = _legacyShadeExpansion
+ private val _legacyShadeTracking = MutableStateFlow(false)
+ @Deprecated("Use ShadeInteractor instead")
+ override val legacyShadeTracking = _legacyShadeTracking
+
+ private val _legacyQsTracking = MutableStateFlow(false)
+ @Deprecated("Use ShadeInteractor instead") override val legacyQsTracking = _legacyQsTracking
+
+ @Deprecated("Should only be called by NPVC and tests")
+ override fun setLegacyQsTracking(legacyQsTracking: Boolean) {
+ _legacyQsTracking.value = legacyQsTracking
+ }
+
+ @Deprecated("Should only be called by NPVC and tests")
+ override fun setLegacyShadeTracking(tracking: Boolean) {
+ _legacyShadeTracking.value = tracking
+ }
+
fun setShadeModel(model: ShadeModel) {
_shadeModel.value = model
}