summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Juan Sebastian Martinez <juansmartinez@google.com> 2023-08-03 23:44:27 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2023-08-03 23:44:27 +0000
commit004d03bd1f4dba484bb29a27c99d38dad874c7f4 (patch)
treeabff8ddf4f03289215adc0da60b25467977da6cb
parentcf27af8183558a6093f176a27a68345a4904edb5 (diff)
parent2b3d6b0c9c125e65742680b98a602072eb21afb6 (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>
-rw-r--r--packages/SystemUI/src/com/android/systemui/temporarydisplay/chipbar/ChipbarCoordinator.kt23
-rw-r--r--packages/SystemUI/src/com/android/systemui/temporarydisplay/chipbar/ChipbarInfo.kt2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/sender/MediaTttSenderCoordinatorTest.kt5
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/temporarydisplay/chipbar/ChipbarCoordinatorTest.kt25
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,