Loading packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +5 −21 Original line number Diff line number Diff line Loading @@ -29,7 +29,6 @@ import static com.android.systemui.classifier.Classifier.BOUNCER_UNLOCK; import static com.android.systemui.classifier.Classifier.GENERIC; import static com.android.systemui.classifier.Classifier.QUICK_SETTINGS; import static com.android.systemui.classifier.Classifier.UNLOCK; import static com.android.systemui.flags.Flags.ONE_WAY_HAPTICS_API_MIGRATION; import static com.android.systemui.navigationbar.gestural.Utilities.isTrackpadScroll; import static com.android.systemui.navigationbar.gestural.Utilities.isTrackpadThreeFingerSwipe; import static com.android.systemui.shade.ShadeExpansionStateManagerKt.STATE_CLOSED; Loading @@ -41,7 +40,6 @@ import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_Q import static com.android.systemui.statusbar.StatusBarState.KEYGUARD; import static com.android.systemui.statusbar.StatusBarState.SHADE; import static com.android.systemui.statusbar.StatusBarState.SHADE_LOCKED; import static com.android.systemui.statusbar.VibratorHelper.TOUCH_VIBRATION_ATTRIBUTES; import static com.android.systemui.statusbar.notification.stack.StackStateAnimator.ANIMATION_DURATION_FOLD_TO_AOD; import static com.android.systemui.util.DumpUtilsKt.asIndenting; import static com.android.systemui.util.kotlin.JavaAdapterKt.collectFlow; Loading @@ -64,7 +62,6 @@ import android.graphics.Region; import android.os.Bundle; import android.os.Handler; import android.os.PowerManager; import android.os.Process; import android.os.Trace; import android.os.UserManager; import android.os.VibrationEffect; Loading Loading @@ -2841,16 +2838,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump } if (!mStatusBarStateController.isDozing()) { if (mFeatureFlags.isEnabled(ONE_WAY_HAPTICS_API_MIGRATION)) { mVibratorHelper.performHapticFeedback(mView, HapticFeedbackConstants.REJECT); } else { mVibratorHelper.vibrate( Process.myUid(), mView.getContext().getPackageName(), ADDITIONAL_TAP_REQUIRED_VIBRATION_EFFECT, "falsing-additional-tap-required", TOUCH_VIBRATION_ATTRIBUTES); } } } Loading Loading @@ -3678,14 +3666,10 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump private void maybeVibrateOnOpening(boolean openingWithTouch) { if (mVibrateOnOpening && mBarState != KEYGUARD && mBarState != SHADE_LOCKED) { if (!openingWithTouch || !mHasVibratedOnOpen) { if (mFeatureFlags.isEnabled(ONE_WAY_HAPTICS_API_MIGRATION)) { mVibratorHelper.performHapticFeedback( mView, HapticFeedbackConstants.GESTURE_START ); } else { mVibratorHelper.vibrate(VibrationEffect.EFFECT_TICK); } mHasVibratedOnOpen = true; mShadeLog.v("Vibrating on opening, mHasVibratedOnOpen=true"); } Loading packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerBaseTest.java +0 −1 Original line number Diff line number Diff line Loading @@ -374,7 +374,6 @@ public class NotificationPanelViewControllerBaseTest extends SysuiTestCase { mFeatureFlags.set(Flags.TRACKPAD_GESTURE_FEATURES, false); mFeatureFlags.set(Flags.LOCKSCREEN_ENABLE_LANDSCAPE, false); mFeatureFlags.set(Flags.QS_USER_DETAIL_SHORTCUT, false); mFeatureFlags.set(Flags.ONE_WAY_HAPTICS_API_MIGRATION, false); mFeatureFlags.set(Flags.MIGRATE_CLOCKS_TO_BLUEPRINT, false); mSetFlagsRule.disableFlags(KeyguardShadeMigrationNssl.FLAG_NAME); Loading packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerWithCoroutinesTest.kt +2 −56 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package com.android.systemui.shade import android.os.VibrationEffect import android.testing.AndroidTestingRunner import android.testing.TestableLooper import android.view.HapticFeedbackConstants Loading @@ -26,13 +25,10 @@ import androidx.test.filters.SmallTest import com.android.internal.util.CollectionUtils import com.android.keyguard.KeyguardClockSwitch.LARGE import com.android.systemui.coroutines.collectLastValue import com.android.systemui.flags.Flags.ONE_WAY_HAPTICS_API_MIGRATION import com.android.systemui.res.R import com.android.systemui.statusbar.StatusBarState.KEYGUARD import com.android.systemui.statusbar.StatusBarState.SHADE import com.android.systemui.statusbar.StatusBarState.SHADE_LOCKED import com.android.systemui.statusbar.VibratorHelper import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.eq import com.android.systemui.util.mockito.whenever import com.google.common.truth.Truth.assertThat Loading Loading @@ -62,9 +58,6 @@ class NotificationPanelViewControllerWithCoroutinesTest : override fun getMainDispatcher() = Dispatchers.Main.immediate private val ADDITIONAL_TAP_REQUIRED_VIBRATION_EFFECT = VibrationEffect.get(VibrationEffect.EFFECT_STRENGTH_MEDIUM, false) @Test fun testDisableUserSwitcherAfterEnabling_returnsViewStubToTheViewHierarchy() = runTest { launch(Dispatchers.Main.immediate) { givenViewAttached() } Loading Loading @@ -158,31 +151,8 @@ class NotificationPanelViewControllerWithCoroutinesTest : } @Test fun doubleTapRequired_onKeyguard_oneWayHapticsDisabled_usesOldVibrate() = runTest { launch(Dispatchers.Main.immediate) { mFeatureFlags.set(ONE_WAY_HAPTICS_API_MIGRATION, false) val listener = getFalsingTapListener() mStatusBarStateController.setState(KEYGUARD) listener.onAdditionalTapRequired() val packageName = mView.context.packageName verify(mKeyguardIndicationController).showTransientIndication(anyInt()) verify(mVibratorHelper) .vibrate( any(), eq(packageName), eq(ADDITIONAL_TAP_REQUIRED_VIBRATION_EFFECT), eq("falsing-additional-tap-required"), eq(VibratorHelper.TOUCH_VIBRATION_ATTRIBUTES) ) } advanceUntilIdle() } @Test fun doubleTapRequired_onKeyguard_oneWayHapticsEnabled_usesPerformHapticFeedback() = runTest { fun doubleTapRequired_onKeyguard_usesPerformHapticFeedback() = runTest { launch(Dispatchers.Main.immediate) { mFeatureFlags.set(ONE_WAY_HAPTICS_API_MIGRATION, true) val listener = getFalsingTapListener() mStatusBarStateController.setState(KEYGUARD) Loading @@ -208,32 +178,8 @@ class NotificationPanelViewControllerWithCoroutinesTest : } @Test fun doubleTapRequired_shadeLocked_oneWayHapticsDisabled_usesOldVibrate() = runTest { launch(Dispatchers.Main.immediate) { mFeatureFlags.set(ONE_WAY_HAPTICS_API_MIGRATION, false) val listener = getFalsingTapListener() val packageName = mView.context.packageName mStatusBarStateController.setState(SHADE_LOCKED) listener.onAdditionalTapRequired() verify(mVibratorHelper) .vibrate( any(), eq(packageName), eq(ADDITIONAL_TAP_REQUIRED_VIBRATION_EFFECT), eq("falsing-additional-tap-required"), eq(VibratorHelper.TOUCH_VIBRATION_ATTRIBUTES) ) verify(mTapAgainViewController).show() } advanceUntilIdle() } @Test fun doubleTapRequired_shadeLocked_oneWayHapticsEnabled_usesPerformHapticFeedback() = runTest { fun doubleTapRequired_shadeLocked_usesPerformHapticFeedback() = runTest { launch(Dispatchers.Main.immediate) { mFeatureFlags.set(ONE_WAY_HAPTICS_API_MIGRATION, true) val listener = getFalsingTapListener() mStatusBarStateController.setState(SHADE_LOCKED) Loading Loading
packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +5 −21 Original line number Diff line number Diff line Loading @@ -29,7 +29,6 @@ import static com.android.systemui.classifier.Classifier.BOUNCER_UNLOCK; import static com.android.systemui.classifier.Classifier.GENERIC; import static com.android.systemui.classifier.Classifier.QUICK_SETTINGS; import static com.android.systemui.classifier.Classifier.UNLOCK; import static com.android.systemui.flags.Flags.ONE_WAY_HAPTICS_API_MIGRATION; import static com.android.systemui.navigationbar.gestural.Utilities.isTrackpadScroll; import static com.android.systemui.navigationbar.gestural.Utilities.isTrackpadThreeFingerSwipe; import static com.android.systemui.shade.ShadeExpansionStateManagerKt.STATE_CLOSED; Loading @@ -41,7 +40,6 @@ import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_Q import static com.android.systemui.statusbar.StatusBarState.KEYGUARD; import static com.android.systemui.statusbar.StatusBarState.SHADE; import static com.android.systemui.statusbar.StatusBarState.SHADE_LOCKED; import static com.android.systemui.statusbar.VibratorHelper.TOUCH_VIBRATION_ATTRIBUTES; import static com.android.systemui.statusbar.notification.stack.StackStateAnimator.ANIMATION_DURATION_FOLD_TO_AOD; import static com.android.systemui.util.DumpUtilsKt.asIndenting; import static com.android.systemui.util.kotlin.JavaAdapterKt.collectFlow; Loading @@ -64,7 +62,6 @@ import android.graphics.Region; import android.os.Bundle; import android.os.Handler; import android.os.PowerManager; import android.os.Process; import android.os.Trace; import android.os.UserManager; import android.os.VibrationEffect; Loading Loading @@ -2841,16 +2838,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump } if (!mStatusBarStateController.isDozing()) { if (mFeatureFlags.isEnabled(ONE_WAY_HAPTICS_API_MIGRATION)) { mVibratorHelper.performHapticFeedback(mView, HapticFeedbackConstants.REJECT); } else { mVibratorHelper.vibrate( Process.myUid(), mView.getContext().getPackageName(), ADDITIONAL_TAP_REQUIRED_VIBRATION_EFFECT, "falsing-additional-tap-required", TOUCH_VIBRATION_ATTRIBUTES); } } } Loading Loading @@ -3678,14 +3666,10 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump private void maybeVibrateOnOpening(boolean openingWithTouch) { if (mVibrateOnOpening && mBarState != KEYGUARD && mBarState != SHADE_LOCKED) { if (!openingWithTouch || !mHasVibratedOnOpen) { if (mFeatureFlags.isEnabled(ONE_WAY_HAPTICS_API_MIGRATION)) { mVibratorHelper.performHapticFeedback( mView, HapticFeedbackConstants.GESTURE_START ); } else { mVibratorHelper.vibrate(VibrationEffect.EFFECT_TICK); } mHasVibratedOnOpen = true; mShadeLog.v("Vibrating on opening, mHasVibratedOnOpen=true"); } Loading
packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerBaseTest.java +0 −1 Original line number Diff line number Diff line Loading @@ -374,7 +374,6 @@ public class NotificationPanelViewControllerBaseTest extends SysuiTestCase { mFeatureFlags.set(Flags.TRACKPAD_GESTURE_FEATURES, false); mFeatureFlags.set(Flags.LOCKSCREEN_ENABLE_LANDSCAPE, false); mFeatureFlags.set(Flags.QS_USER_DETAIL_SHORTCUT, false); mFeatureFlags.set(Flags.ONE_WAY_HAPTICS_API_MIGRATION, false); mFeatureFlags.set(Flags.MIGRATE_CLOCKS_TO_BLUEPRINT, false); mSetFlagsRule.disableFlags(KeyguardShadeMigrationNssl.FLAG_NAME); Loading
packages/SystemUI/tests/src/com/android/systemui/shade/NotificationPanelViewControllerWithCoroutinesTest.kt +2 −56 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package com.android.systemui.shade import android.os.VibrationEffect import android.testing.AndroidTestingRunner import android.testing.TestableLooper import android.view.HapticFeedbackConstants Loading @@ -26,13 +25,10 @@ import androidx.test.filters.SmallTest import com.android.internal.util.CollectionUtils import com.android.keyguard.KeyguardClockSwitch.LARGE import com.android.systemui.coroutines.collectLastValue import com.android.systemui.flags.Flags.ONE_WAY_HAPTICS_API_MIGRATION import com.android.systemui.res.R import com.android.systemui.statusbar.StatusBarState.KEYGUARD import com.android.systemui.statusbar.StatusBarState.SHADE import com.android.systemui.statusbar.StatusBarState.SHADE_LOCKED import com.android.systemui.statusbar.VibratorHelper import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.eq import com.android.systemui.util.mockito.whenever import com.google.common.truth.Truth.assertThat Loading Loading @@ -62,9 +58,6 @@ class NotificationPanelViewControllerWithCoroutinesTest : override fun getMainDispatcher() = Dispatchers.Main.immediate private val ADDITIONAL_TAP_REQUIRED_VIBRATION_EFFECT = VibrationEffect.get(VibrationEffect.EFFECT_STRENGTH_MEDIUM, false) @Test fun testDisableUserSwitcherAfterEnabling_returnsViewStubToTheViewHierarchy() = runTest { launch(Dispatchers.Main.immediate) { givenViewAttached() } Loading Loading @@ -158,31 +151,8 @@ class NotificationPanelViewControllerWithCoroutinesTest : } @Test fun doubleTapRequired_onKeyguard_oneWayHapticsDisabled_usesOldVibrate() = runTest { launch(Dispatchers.Main.immediate) { mFeatureFlags.set(ONE_WAY_HAPTICS_API_MIGRATION, false) val listener = getFalsingTapListener() mStatusBarStateController.setState(KEYGUARD) listener.onAdditionalTapRequired() val packageName = mView.context.packageName verify(mKeyguardIndicationController).showTransientIndication(anyInt()) verify(mVibratorHelper) .vibrate( any(), eq(packageName), eq(ADDITIONAL_TAP_REQUIRED_VIBRATION_EFFECT), eq("falsing-additional-tap-required"), eq(VibratorHelper.TOUCH_VIBRATION_ATTRIBUTES) ) } advanceUntilIdle() } @Test fun doubleTapRequired_onKeyguard_oneWayHapticsEnabled_usesPerformHapticFeedback() = runTest { fun doubleTapRequired_onKeyguard_usesPerformHapticFeedback() = runTest { launch(Dispatchers.Main.immediate) { mFeatureFlags.set(ONE_WAY_HAPTICS_API_MIGRATION, true) val listener = getFalsingTapListener() mStatusBarStateController.setState(KEYGUARD) Loading @@ -208,32 +178,8 @@ class NotificationPanelViewControllerWithCoroutinesTest : } @Test fun doubleTapRequired_shadeLocked_oneWayHapticsDisabled_usesOldVibrate() = runTest { launch(Dispatchers.Main.immediate) { mFeatureFlags.set(ONE_WAY_HAPTICS_API_MIGRATION, false) val listener = getFalsingTapListener() val packageName = mView.context.packageName mStatusBarStateController.setState(SHADE_LOCKED) listener.onAdditionalTapRequired() verify(mVibratorHelper) .vibrate( any(), eq(packageName), eq(ADDITIONAL_TAP_REQUIRED_VIBRATION_EFFECT), eq("falsing-additional-tap-required"), eq(VibratorHelper.TOUCH_VIBRATION_ATTRIBUTES) ) verify(mTapAgainViewController).show() } advanceUntilIdle() } @Test fun doubleTapRequired_shadeLocked_oneWayHapticsEnabled_usesPerformHapticFeedback() = runTest { fun doubleTapRequired_shadeLocked_usesPerformHapticFeedback() = runTest { launch(Dispatchers.Main.immediate) { mFeatureFlags.set(ONE_WAY_HAPTICS_API_MIGRATION, true) val listener = getFalsingTapListener() mStatusBarStateController.setState(SHADE_LOCKED) Loading