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

Commit 17f47db7 authored by Michael Mikhail's avatar Michael Mikhail Committed by Android (Google) Code Review
Browse files

Merge "Check False tap within False touch in SeekBar" into tm-qpr-dev

parents 5bfca357 be8667d9
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.systemui.classifier;

import static com.android.systemui.classifier.Classifier.BACK_GESTURE;
import static com.android.systemui.classifier.Classifier.GENERIC;
import static com.android.systemui.classifier.Classifier.MEDIA_SEEKBAR;
import static com.android.systemui.classifier.FalsingManagerProxy.FALSING_SUCCESS;
import static com.android.systemui.classifier.FalsingModule.BRIGHT_LINE_GESTURE_CLASSIFERS;

@@ -220,6 +221,11 @@ public class BrightLineFalsingManager implements FalsingManager {
            return r;
        }).collect(Collectors.toList());

        // check for false tap if it is a seekbar interaction
        if (interactionType == MEDIA_SEEKBAR) {
            localResult[0] &= isFalseTap(LOW_PENALTY);
        }

        logDebug("False Gesture (type: " + interactionType + "): " + localResult[0]);

        return localResult[0];
+1 −6
Original line number Diff line number Diff line
@@ -33,7 +33,6 @@ import androidx.lifecycle.MutableLiveData
import com.android.systemui.classifier.Classifier.MEDIA_SEEKBAR
import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.plugins.FalsingManager
import com.android.systemui.plugins.FalsingManager.LOW_PENALTY
import com.android.systemui.statusbar.NotificationMediaManager
import com.android.systemui.util.concurrency.RepeatableExecutor
import javax.inject.Inject
@@ -333,11 +332,7 @@ class SeekBarViewModel @Inject constructor(
        }

        override fun onStopTrackingTouch(bar: SeekBar) {
            // in addition to the normal functionality of both functions.
            // isFalseTouch returns true if there is a real/false tap since it is not a move.
            // isFalseTap returns true if there is a real/false move since it is not a tap.
            if (falsingManager.isFalseTouch(MEDIA_SEEKBAR) &&
                    falsingManager.isFalseTap(LOW_PENALTY)) {
            if (falsingManager.isFalseTouch(MEDIA_SEEKBAR)) {
                viewModel.onSeekFalse()
            }
            viewModel.onSeek(bar.progress.toLong())
+29 −0
Original line number Diff line number Diff line
@@ -144,6 +144,35 @@ public class BrightLineClassifierTest extends SysuiTestCase {
        assertThat(mBrightLineFalsingManager.isFalseTouch(0)).isTrue();
    }

    @Test
    public void testIsFalseTouch_SeekBar_FalseTouch() {
        when(mClassifierA.classifyGesture(anyInt(), anyDouble(), anyDouble()))
                .thenReturn(mFalsedResult);
        when(mSingleTapClassfier.isTap(any(List.class), anyDouble())).thenReturn(mFalsedResult);
        assertThat(mBrightLineFalsingManager.isFalseTouch(Classifier.MEDIA_SEEKBAR)).isTrue();
    }

    @Test
    public void testIsFalseTouch_SeekBar_RealTouch() {
        when(mSingleTapClassfier.isTap(any(List.class), anyDouble())).thenReturn(mFalsedResult);
        assertThat(mBrightLineFalsingManager.isFalseTouch(Classifier.MEDIA_SEEKBAR)).isFalse();
    }

    @Test
    public void testIsFalseTouch_SeekBar_FalseTap() {
        when(mClassifierA.classifyGesture(anyInt(), anyDouble(), anyDouble()))
                .thenReturn(mFalsedResult);
        when(mSingleTapClassfier.isTap(any(List.class), anyDouble())).thenReturn(mFalsedResult);
        assertThat(mBrightLineFalsingManager.isFalseTouch(Classifier.MEDIA_SEEKBAR)).isTrue();
    }

    @Test
    public void testIsFalseTouch_SeekBar_RealTap() {
        when(mClassifierA.classifyGesture(anyInt(), anyDouble(), anyDouble()))
                .thenReturn(mFalsedResult);
        assertThat(mBrightLineFalsingManager.isFalseTouch(Classifier.MEDIA_SEEKBAR)).isFalse();
    }

    @Test
    public void testIsFalseTouch_ClassifierBRejects() {
        when(mClassifierB.classifyGesture(anyInt(), anyDouble(), anyDouble()))