Merge "Extension to VibratorHelper to use the new oneway haptics API" into udc-qpr-dev

This commit is contained in:
Juan Sebastian Martinez
2023-07-21 22:34:52 +00:00
committed by Android (Google) Code Review
2 changed files with 35 additions and 0 deletions

View File

@@ -23,6 +23,7 @@ import android.os.Process;
import android.os.VibrationAttributes; import android.os.VibrationAttributes;
import android.os.VibrationEffect; import android.os.VibrationEffect;
import android.os.Vibrator; import android.os.Vibrator;
import android.view.View;
import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting;
@@ -151,4 +152,20 @@ public class VibratorHelper {
BIOMETRIC_ERROR_VIBRATION_EFFECT, reason, BIOMETRIC_ERROR_VIBRATION_EFFECT, reason,
HARDWARE_FEEDBACK_VIBRATION_ATTRIBUTES); HARDWARE_FEEDBACK_VIBRATION_ATTRIBUTES);
} }
/**
* Perform a vibration using a view and the one-way API with flags
* @see View#performHapticFeedback(int feedbackConstant, int flags)
*/
public void performHapticFeedback(@NonNull View view, int feedbackConstant, int flags) {
view.performHapticFeedback(feedbackConstant, flags);
}
/**
* Perform a vibration using a view and the one-way API
* @see View#performHapticFeedback(int feedbackConstant)
*/
public void performHapticFeedback(@NonNull View view, int feedbackConstant) {
view.performHapticFeedback(feedbackConstant);
}
} }

View File

@@ -6,6 +6,8 @@ import android.os.VibrationAttributes
import android.os.VibrationEffect import android.os.VibrationEffect
import android.os.Vibrator import android.os.Vibrator
import android.testing.AndroidTestingRunner import android.testing.AndroidTestingRunner
import android.view.HapticFeedbackConstants
import android.view.View
import androidx.test.filters.SmallTest import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase import com.android.systemui.SysuiTestCase
import com.android.systemui.util.mockito.eq import com.android.systemui.util.mockito.eq
@@ -33,6 +35,7 @@ class VibratorHelperTest : SysuiTestCase() {
@Mock lateinit var vibrator: Vibrator @Mock lateinit var vibrator: Vibrator
@Mock lateinit var executor: Executor @Mock lateinit var executor: Executor
@Mock lateinit var view: View
@Captor lateinit var backgroundTaskCaptor: ArgumentCaptor<Runnable> @Captor lateinit var backgroundTaskCaptor: ArgumentCaptor<Runnable>
lateinit var vibratorHelper: VibratorHelper lateinit var vibratorHelper: VibratorHelper
@@ -71,6 +74,21 @@ class VibratorHelperTest : SysuiTestCase() {
verifyAsync().vibrate(any(VibrationEffect::class.java)) verifyAsync().vibrate(any(VibrationEffect::class.java))
} }
@Test
fun testPerformHapticFeedback() {
val constant = HapticFeedbackConstants.CONFIRM
vibratorHelper.performHapticFeedback(view, constant)
verify(view).performHapticFeedback(eq(constant))
}
@Test
fun testPerformHapticFeedback_withFlags() {
val constant = HapticFeedbackConstants.CONFIRM
val flag = HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING
vibratorHelper.performHapticFeedback(view, constant, flag)
verify(view).performHapticFeedback(eq(constant), eq(flag))
}
@Test @Test
fun testHasVibrator() { fun testHasVibrator() {
assertThat(vibratorHelper.hasVibrator()).isTrue() assertThat(vibratorHelper.hasVibrator()).isTrue()