Merge "Check False tap within False touch in SeekBar" into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
17f47db7ef
@@ -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.BACK_GESTURE;
|
||||||
import static com.android.systemui.classifier.Classifier.GENERIC;
|
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.FalsingManagerProxy.FALSING_SUCCESS;
|
||||||
import static com.android.systemui.classifier.FalsingModule.BRIGHT_LINE_GESTURE_CLASSIFERS;
|
import static com.android.systemui.classifier.FalsingModule.BRIGHT_LINE_GESTURE_CLASSIFERS;
|
||||||
|
|
||||||
@@ -220,6 +221,11 @@ public class BrightLineFalsingManager implements FalsingManager {
|
|||||||
return r;
|
return r;
|
||||||
}).collect(Collectors.toList());
|
}).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]);
|
logDebug("False Gesture (type: " + interactionType + "): " + localResult[0]);
|
||||||
|
|
||||||
return localResult[0];
|
return localResult[0];
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ import androidx.lifecycle.MutableLiveData
|
|||||||
import com.android.systemui.classifier.Classifier.MEDIA_SEEKBAR
|
import com.android.systemui.classifier.Classifier.MEDIA_SEEKBAR
|
||||||
import com.android.systemui.dagger.qualifiers.Background
|
import com.android.systemui.dagger.qualifiers.Background
|
||||||
import com.android.systemui.plugins.FalsingManager
|
import com.android.systemui.plugins.FalsingManager
|
||||||
import com.android.systemui.plugins.FalsingManager.LOW_PENALTY
|
|
||||||
import com.android.systemui.statusbar.NotificationMediaManager
|
import com.android.systemui.statusbar.NotificationMediaManager
|
||||||
import com.android.systemui.util.concurrency.RepeatableExecutor
|
import com.android.systemui.util.concurrency.RepeatableExecutor
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
@@ -333,11 +332,7 @@ class SeekBarViewModel @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onStopTrackingTouch(bar: SeekBar) {
|
override fun onStopTrackingTouch(bar: SeekBar) {
|
||||||
// in addition to the normal functionality of both functions.
|
if (falsingManager.isFalseTouch(MEDIA_SEEKBAR)) {
|
||||||
// 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)) {
|
|
||||||
viewModel.onSeekFalse()
|
viewModel.onSeekFalse()
|
||||||
}
|
}
|
||||||
viewModel.onSeek(bar.progress.toLong())
|
viewModel.onSeek(bar.progress.toLong())
|
||||||
|
|||||||
@@ -144,6 +144,35 @@ public class BrightLineClassifierTest extends SysuiTestCase {
|
|||||||
assertThat(mBrightLineFalsingManager.isFalseTouch(0)).isTrue();
|
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
|
@Test
|
||||||
public void testIsFalseTouch_ClassifierBRejects() {
|
public void testIsFalseTouch_ClassifierBRejects() {
|
||||||
when(mClassifierB.classifyGesture(anyInt(), anyDouble(), anyDouble()))
|
when(mClassifierB.classifyGesture(anyInt(), anyDouble(), anyDouble()))
|
||||||
|
|||||||
Reference in New Issue
Block a user