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

Commit 9adace19 authored by Michael Mikhail's avatar Michael Mikhail Committed by Automerger Merge Worker
Browse files

Merge "Check False tap within False touch in SeekBar" into tm-qpr-dev am: 17f47db7

parents 6559eb36 17f47db7
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()))