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

Commit bcd19b64 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Skip falsing for desktop devices" into main

parents 0abc592f d0848580
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -210,6 +210,13 @@ public class BrightLineFalsingManagerTest extends SysuiTestCase {
        assertThat(mBrightLineFalsingManager.isFalseTouch(Classifier.GENERIC)).isFalse();
    }

    @Test
    public void testSkipDesktopDevices() {
        assertThat(mBrightLineFalsingManager.isFalseTouch(Classifier.GENERIC)).isTrue();
        when(mFalsingDataProvider.isDesktop()).thenReturn(true);
        assertThat(mBrightLineFalsingManager.isFalseTouch(Classifier.GENERIC)).isFalse();
    }

    @Test
    @DisableFlags(Flags.FLAG_NON_TOUCHSCREEN_DEVICES_BYPASS_FALSING)
    public void testTrackpadGesture() {
+5 −2
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.view.MotionEvent;
import androidx.test.uiautomator.Configurator;

import com.android.systemui.SysuiTestCase;
import com.android.systemui.desktop.domain.interactor.DesktopInteractor;
import com.android.systemui.dock.DockManagerFake;
import com.android.systemui.statusbar.policy.BatteryController;

@@ -44,7 +45,8 @@ public class ClassifierTest extends SysuiTestCase {
    private BatteryController mBatteryController;
    private FoldStateListener mFoldStateListener = new FoldStateListener(mContext);
    private final DockManagerFake mDockManager = new DockManagerFake();

    @Mock
    private DesktopInteractor mDesktopInteractor;
    public void setup() {
        MockitoAnnotations.initMocks(this);
        DisplayMetrics displayMetrics = new DisplayMetrics();
@@ -53,7 +55,8 @@ public class ClassifierTest extends SysuiTestCase {
        displayMetrics.widthPixels = 1000;
        displayMetrics.heightPixels = 1000;
        mDataProvider = new FalsingDataProvider(
                displayMetrics, mBatteryController, mFoldStateListener, mDockManager, false);
                displayMetrics, mBatteryController, mFoldStateListener, mDockManager,
                mDesktopInteractor, false);
    }

    @After
+1 −0
Original line number Diff line number Diff line
@@ -395,6 +395,7 @@ public class BrightLineFalsingManager implements FalsingManager {
                || mDataProvider.isFromTrackpad()
                || mDataProvider.isFromKeyboard()
                || !mDataProvider.isTouchScreenSource()
                || mDataProvider.isDesktop()
                || mDataProvider.isUnfolded()
                || mDataProvider.isShowingCommunalHub();
    }
+9 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import android.view.MotionEvent.PointerProperties;

import com.android.systemui.Flags;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.desktop.domain.interactor.DesktopInteractor;
import com.android.systemui.dock.DockManager;
import com.android.systemui.statusbar.policy.BatteryController;

@@ -53,6 +54,8 @@ public class FalsingDataProvider {
    private BatteryController mBatteryController;
    private final FoldStateListener mFoldStateListener;
    private final DockManager mDockManager;

    private final DesktopInteractor mDesktopInteractor;
    private boolean mIsFoldableDevice;
    private final float mXdpi;
    private final float mYdpi;
@@ -82,6 +85,7 @@ public class FalsingDataProvider {
            BatteryController batteryController,
            FoldStateListener foldStateListener,
            DockManager dockManager,
            DesktopInteractor desktopInteractor,
            @Named(IS_FOLDABLE_DEVICE) boolean isFoldableDevice) {
        mXdpi = displayMetrics.xdpi;
        mYdpi = displayMetrics.ydpi;
@@ -90,6 +94,7 @@ public class FalsingDataProvider {
        mBatteryController = batteryController;
        mFoldStateListener = foldStateListener;
        mDockManager = dockManager;
        mDesktopInteractor = desktopInteractor;
        mIsFoldableDevice = isFoldableDevice;

        FalsingClassifier.logInfo("xdpi, ydpi: " + getXdpi() + ", " + getYdpi());
@@ -502,6 +507,10 @@ public class FalsingDataProvider {
        return mIsFoldableDevice && Boolean.FALSE.equals(mFoldStateListener.getFolded());
    }

    public boolean isDesktop() {
        return mDesktopInteractor.isDesktopFeatureSetEnabled().getValue();
    }

    /** Implement to be alerted abotu the beginning and ending of falsing tracking. */
    public interface SessionListener {
        /** Called when the lock screen is shown and falsing-tracking begins. */
+15 −1
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@ package com.android.systemui.classifier;

import static com.google.common.truth.Truth.assertThat;

import static kotlinx.coroutines.flow.StateFlowKt.MutableStateFlow;

import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.Mockito.mock;
@@ -41,6 +43,7 @@ import androidx.test.filters.SmallTest;

import com.android.systemui.Flags;
import com.android.systemui.classifier.FalsingDataProvider.GestureFinalizedListener;
import com.android.systemui.desktop.domain.interactor.DesktopInteractor;
import com.android.systemui.dock.DockManagerFake;
import com.android.systemui.statusbar.policy.BatteryController;

@@ -62,6 +65,8 @@ public class FalsingDataProviderTest extends ClassifierTest {
    private BatteryController mBatteryController;
    @Mock
    private FoldStateListener mFoldStateListener;
    @Mock
    private DesktopInteractor mDesktopInteractor;
    private final DockManagerFake mDockManager = new DockManagerFake();
    private DisplayMetrics mDisplayMetrics;
    private IInputManager mIInputManager;
@@ -343,6 +348,15 @@ public class FalsingDataProviderTest extends ClassifierTest {
        assertThat(mDataProvider.isDocked()).isTrue();
    }

    @Test
    public void test_isDesktop() {
        when(mDesktopInteractor.isDesktopFeatureSetEnabled()).thenReturn(MutableStateFlow(false));
        assertThat(mDataProvider.isDesktop()).isFalse();

        when(mDesktopInteractor.isDesktopFeatureSetEnabled()).thenReturn(MutableStateFlow(true));
        assertThat(mDataProvider.isDesktop()).isTrue();
    }

    @Test
    public void test_GestureFinalizedListener() {
        GestureFinalizedListener listener = mock(GestureFinalizedListener.class);
@@ -501,6 +515,6 @@ public class FalsingDataProviderTest extends ClassifierTest {

    private FalsingDataProvider createWithFoldCapability(boolean foldable) {
        return new FalsingDataProvider(mDisplayMetrics, mBatteryController, mFoldStateListener,
                mDockManager, foldable);
                mDockManager, mDesktopInteractor, foldable);
    }
}