diff options
| author | 2023-08-03 23:44:27 +0000 | |
|---|---|---|
| committer | 2023-08-03 23:44:27 +0000 | |
| commit | 004d03bd1f4dba484bb29a27c99d38dad874c7f4 (patch) | |
| tree | abff8ddf4f03289215adc0da60b25467977da6cb | |
| parent | cf27af8183558a6093f176a27a68345a4904edb5 (diff) | |
| parent | 2b3d6b0c9c125e65742680b98a602072eb21afb6 (diff) | |
Merge "Using performHapticFeedback on ChipbarCoordinator." into udc-qpr-dev am: 2b3d6b0c9c
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/24270073
Change-Id: I94088f33e6c17cb0d420498d413719788136e474
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
4 files changed, 47 insertions, 8 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/temporarydisplay/chipbar/ChipbarCoordinator.kt b/packages/SystemUI/src/com/android/systemui/temporarydisplay/chipbar/ChipbarCoordinator.kt index 7aeba666c95a..f0aae0f83722 100644 --- a/packages/SystemUI/src/com/android/systemui/temporarydisplay/chipbar/ChipbarCoordinator.kt +++ b/packages/SystemUI/src/com/android/systemui/temporarydisplay/chipbar/ChipbarCoordinator.kt @@ -48,6 +48,8 @@ import com.android.systemui.common.ui.binder.TintedIconViewBinder import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.dump.DumpManager +import com.android.systemui.flags.FeatureFlags +import com.android.systemui.flags.Flags.ONE_WAY_HAPTICS_API_MIGRATION import com.android.systemui.plugins.FalsingManager import com.android.systemui.statusbar.VibratorHelper import com.android.systemui.statusbar.policy.ConfigurationController @@ -94,6 +96,7 @@ constructor( wakeLockBuilder: WakeLock.Builder, systemClock: SystemClock, tempViewUiEventLogger: TemporaryViewUiEventLogger, + private val featureFlags: FeatureFlags, ) : TemporaryViewDisplayController<ChipbarInfo, ChipbarLogger>( context, @@ -231,14 +234,18 @@ constructor( maybeGetAccessibilityFocus(newInfo, currentView) // ---- Haptics ---- - newInfo.vibrationEffect?.let { - vibratorHelper.vibrate( - Process.myUid(), - context.getApplicationContext().getPackageName(), - it, - newInfo.windowTitle, - VIBRATION_ATTRIBUTES, - ) + if (featureFlags.isEnabled(ONE_WAY_HAPTICS_API_MIGRATION)) { + vibratorHelper.performHapticFeedback(parent, newInfo.vibrationConstant) + } else { + newInfo.vibrationEffect?.let { + vibratorHelper.vibrate( + Process.myUid(), + context.getApplicationContext().getPackageName(), + it, + newInfo.windowTitle, + VIBRATION_ATTRIBUTES, + ) + } } } diff --git a/packages/SystemUI/src/com/android/systemui/temporarydisplay/chipbar/ChipbarInfo.kt b/packages/SystemUI/src/com/android/systemui/temporarydisplay/chipbar/ChipbarInfo.kt index 1d50241f4586..f24d5263ff89 100644 --- a/packages/SystemUI/src/com/android/systemui/temporarydisplay/chipbar/ChipbarInfo.kt +++ b/packages/SystemUI/src/com/android/systemui/temporarydisplay/chipbar/ChipbarInfo.kt @@ -17,6 +17,7 @@ package com.android.systemui.temporarydisplay.chipbar import android.os.VibrationEffect +import android.view.HapticFeedbackConstants import android.view.View import androidx.annotation.AttrRes import com.android.internal.logging.InstanceId @@ -42,6 +43,7 @@ data class ChipbarInfo( val text: Text, val endItem: ChipbarEndItem?, val vibrationEffect: VibrationEffect? = null, + val vibrationConstant: Int = HapticFeedbackConstants.NO_HAPTICS, val allowSwipeToDismiss: Boolean = false, override val windowTitle: String, override val wakeReason: String, diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/sender/MediaTttSenderCoordinatorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/sender/MediaTttSenderCoordinatorTest.kt index ea25f712f06a..c7a74da0a87d 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/sender/MediaTttSenderCoordinatorTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/sender/MediaTttSenderCoordinatorTest.kt @@ -40,6 +40,8 @@ import com.android.systemui.SysuiTestCase import com.android.systemui.classifier.FalsingCollector import com.android.systemui.common.shared.model.Text.Companion.loadText import com.android.systemui.dump.DumpManager +import com.android.systemui.flags.FakeFeatureFlags +import com.android.systemui.flags.Flags.ONE_WAY_HAPTICS_API_MIGRATION import com.android.systemui.media.taptotransfer.MediaTttFlags import com.android.systemui.plugins.FalsingManager import com.android.systemui.statusbar.CommandQueue @@ -111,6 +113,7 @@ class MediaTttSenderCoordinatorTest : SysuiTestCase() { private lateinit var uiEventLogger: MediaTttSenderUiEventLogger private lateinit var tempViewUiEventLogger: TemporaryViewUiEventLogger private val defaultTimeout = context.resources.getInteger(R.integer.heads_up_notification_decay) + private val featureFlags = FakeFeatureFlags() @Before fun setUp() { @@ -160,7 +163,9 @@ class MediaTttSenderCoordinatorTest : SysuiTestCase() { fakeWakeLockBuilder, fakeClock, tempViewUiEventLogger, + featureFlags ) + featureFlags.set(ONE_WAY_HAPTICS_API_MIGRATION, false) chipbarCoordinator.start() underTest = diff --git a/packages/SystemUI/tests/src/com/android/systemui/temporarydisplay/chipbar/ChipbarCoordinatorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/temporarydisplay/chipbar/ChipbarCoordinatorTest.kt index 03834e057418..8c21fac82dfe 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/temporarydisplay/chipbar/ChipbarCoordinatorTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/temporarydisplay/chipbar/ChipbarCoordinatorTest.kt @@ -21,6 +21,7 @@ import android.os.VibrationAttributes import android.os.VibrationEffect import android.testing.AndroidTestingRunner import android.testing.TestableLooper +import android.view.HapticFeedbackConstants import android.view.MotionEvent import android.view.View import android.view.ViewGroup @@ -41,6 +42,8 @@ import com.android.systemui.common.shared.model.Icon import com.android.systemui.common.shared.model.Text import com.android.systemui.common.shared.model.TintedIcon import com.android.systemui.dump.DumpManager +import com.android.systemui.flags.FakeFeatureFlags +import com.android.systemui.flags.Flags.ONE_WAY_HAPTICS_API_MIGRATION import com.android.systemui.plugins.FalsingManager import com.android.systemui.statusbar.VibratorHelper import com.android.systemui.statusbar.policy.ConfigurationController @@ -91,6 +94,7 @@ class ChipbarCoordinatorTest : SysuiTestCase() { private lateinit var fakeExecutor: FakeExecutor private lateinit var uiEventLoggerFake: UiEventLoggerFake private lateinit var uiEventLogger: TemporaryViewUiEventLogger + private val featureFlags = FakeFeatureFlags() @Before fun setUp() { @@ -127,8 +131,10 @@ class ChipbarCoordinatorTest : SysuiTestCase() { fakeWakeLockBuilder, fakeClock, uiEventLogger, + featureFlags ) underTest.start() + featureFlags.set(ONE_WAY_HAPTICS_API_MIGRATION, false) } @Test @@ -488,6 +494,23 @@ class ChipbarCoordinatorTest : SysuiTestCase() { ) } + @Test + fun displayView_oneWayHapticsEnabled_usesPerformHapticFeedback() { + featureFlags.set(ONE_WAY_HAPTICS_API_MIGRATION, true) + val constant: Int = HapticFeedbackConstants.CONFIRM + underTest.displayView( + createChipbarInfo( + Icon.Resource(R.id.check_box, null), + Text.Loaded("text"), + endItem = null, + vibrationEffect = null, + vibrationConstant = constant + ) + ) + + verify(vibratorHelper).performHapticFeedback(any(), eq(constant)) + } + /** Regression test for b/266119467. */ @Test fun displayView_animationFailure_viewsStillBecomeVisible() { @@ -706,12 +729,14 @@ class ChipbarCoordinatorTest : SysuiTestCase() { endItem: ChipbarEndItem?, vibrationEffect: VibrationEffect? = null, allowSwipeToDismiss: Boolean = false, + vibrationConstant: Int = HapticFeedbackConstants.NO_HAPTICS, ): ChipbarInfo { return ChipbarInfo( TintedIcon(startIcon, tint = null), text, endItem, vibrationEffect, + vibrationConstant, allowSwipeToDismiss, windowTitle = WINDOW_TITLE, wakeReason = WAKE_REASON, |