Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b33a454c authored by Darrell Shi's avatar Darrell Shi
Browse files

Disable falsing when communal hub is showing

Bug: 315194778
Fix: 315194778
Test: atest BrightLineFalsingManagerTest
Test: verify that tapping on the communal hub doesn't trigger falsing
Flag: ACONFIG com.android.systemui.communal_hub STAGING
Change-Id: Iced3bc2cd95b20f48067d10a50811c8db0b8ffd7
parent fda620ae
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -67,7 +67,7 @@ class CommunalInteractorCommunalDisabledTest : SysuiTestCase() {

    @Test
    fun isCommunalEnabled_false() =
        testScope.runTest { assertThat(underTest.isCommunalEnabled).isFalse() }
        testScope.runTest { assertThat(underTest.isCommunalEnabled.value).isFalse() }

    @Test
    fun isCommunalAvailable_whenStorageUnlock_false() =
+1 −1
Original line number Diff line number Diff line
@@ -123,7 +123,7 @@ class CommunalInteractorTest : SysuiTestCase() {
        testScope.runTest {
            userRepository.setSelectedUserInfo(mainUser)
            runCurrent()
            assertThat(underTest.isCommunalEnabled).isTrue()
            assertThat(underTest.isCommunalEnabled.value).isTrue()
        }

    @Test
+2 −1
Original line number Diff line number Diff line
@@ -93,11 +93,13 @@ public class BrightLineFalsingManager implements FalsingManager {
        @Override
        public void onSessionEnded() {
            mLastProximityEvent = null;
            mHistoryTracker.removeBeliefListener(mBeliefListener);
            mClassifiers.forEach(FalsingClassifier::onSessionEnded);
        }

        @Override
        public void onSessionStarted() {
            mHistoryTracker.addBeliefListener(mBeliefListener);
            mClassifiers.forEach(FalsingClassifier::onSessionStarted);
        }
    };
@@ -200,7 +202,6 @@ public class BrightLineFalsingManager implements FalsingManager {

        mDataProvider.addSessionListener(mSessionListener);
        mDataProvider.addGestureCompleteListener(mGestureFinalizedListener);
        mHistoryTracker.addBeliefListener(mBeliefListener);
    }

    @Override
+24 −2
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import androidx.annotation.VisibleForTesting;

import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.keyguard.KeyguardUpdateMonitorCallback;
import com.android.systemui.communal.domain.interactor.CommunalInteractor;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.dock.DockManager;
@@ -39,6 +40,7 @@ import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChang
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.user.domain.interactor.SelectedUserInteractor;
import com.android.systemui.util.concurrency.DelayableExecutor;
import com.android.systemui.util.kotlin.BooleanFlowOperators;
import com.android.systemui.util.kotlin.JavaAdapter;
import com.android.systemui.util.sensors.ProximitySensor;
import com.android.systemui.util.sensors.ThresholdSensor;
@@ -67,6 +69,7 @@ class FalsingCollectorImpl implements FalsingCollector {
    private final StatusBarStateController mStatusBarStateController;
    private final KeyguardStateController mKeyguardStateController;
    private final Lazy<ShadeInteractor> mShadeInteractorLazy;
    private final Lazy<CommunalInteractor> mCommunalInteractorLazy;
    private final BatteryController mBatteryController;
    private final DockManager mDockManager;
    private final DelayableExecutor mMainExecutor;
@@ -76,6 +79,7 @@ class FalsingCollectorImpl implements FalsingCollector {

    private int mState;
    private boolean mShowingAod;
    private boolean mShowingCommunalHub;
    private boolean mScreenOn;
    private boolean mSessionStarted;
    private MotionEvent mPendingDownEvent;
@@ -145,7 +149,8 @@ class FalsingCollectorImpl implements FalsingCollector {
            @Main DelayableExecutor mainExecutor,
            JavaAdapter javaAdapter,
            SystemClock systemClock,
            Lazy<SelectedUserInteractor> userInteractor) {
            Lazy<SelectedUserInteractor> userInteractor,
            Lazy<CommunalInteractor> communalInteractorLazy) {
        mFalsingDataProvider = falsingDataProvider;
        mFalsingManager = falsingManager;
        mKeyguardUpdateMonitor = keyguardUpdateMonitor;
@@ -160,6 +165,7 @@ class FalsingCollectorImpl implements FalsingCollector {
        mJavaAdapter = javaAdapter;
        mSystemClock = systemClock;
        mUserInteractor = userInteractor;
        mCommunalInteractorLazy = communalInteractorLazy;
    }

    @Override
@@ -176,6 +182,13 @@ class FalsingCollectorImpl implements FalsingCollector {
                mShadeInteractorLazy.get().isQsExpanded(),
                this::onQsExpansionChanged
        );
        final CommunalInteractor communalInteractor = mCommunalInteractorLazy.get();
        mJavaAdapter.alwaysCollectFlow(
                BooleanFlowOperators.INSTANCE.and(
                        communalInteractor.isCommunalEnabled(),
                        communalInteractor.isCommunalShowing()),
                this::onShowingCommunalHubChanged
        );

        mBatteryController.addCallback(mBatteryListener);
        mDockManager.addListener(mDockEventListener);
@@ -205,6 +218,12 @@ class FalsingCollectorImpl implements FalsingCollector {
        }
    }

    private void onShowingCommunalHubChanged(boolean isShowing) {
        logDebug("REAL: onShowingCommunalHubChanged(" + isShowing + ")");
        mShowingCommunalHub = isShowing;
        updateSessionActive();
    }

    @Override
    public boolean shouldEnforceBouncer() {
        return false;
@@ -333,7 +352,10 @@ class FalsingCollectorImpl implements FalsingCollector {
    }

    private boolean shouldSessionBeActive() {
        return mScreenOn && (mState == StatusBarState.KEYGUARD) && !mShowingAod;
        return mScreenOn
                && (mState == StatusBarState.KEYGUARD)
                && !mShowingAod
                && !mShowingCommunalHub;
    }

    private void updateSessionActive() {
+2 −3
Original line number Diff line number Diff line
@@ -74,7 +74,7 @@ constructor(
    mediaRepository: CommunalMediaRepository,
    smartspaceRepository: SmartspaceRepository,
    keyguardInteractor: KeyguardInteractor,
    private val communalSettingsInteractor: CommunalSettingsInteractor,
    communalSettingsInteractor: CommunalSettingsInteractor,
    private val appWidgetHost: CommunalAppWidgetHost,
    private val editWidgetsActivityStarter: EditWidgetsActivityStarter,
    @CommunalLog logBuffer: LogBuffer,
@@ -88,8 +88,7 @@ constructor(
    val editModeOpen: StateFlow<Boolean> = _editModeOpen.asStateFlow()

    /** Whether communal features are enabled. */
    val isCommunalEnabled: Boolean
        get() = communalSettingsInteractor.isCommunalEnabled.value
    val isCommunalEnabled: StateFlow<Boolean> = communalSettingsInteractor.isCommunalEnabled

    /** Whether communal features are enabled and available. */
    val isCommunalAvailable: Flow<Boolean> =
Loading