Merge "Using performHapticFeedback on ChipbarCoordinator." into udc-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
2b3d6b0c9c
@@ -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,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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 =
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user