Merge "Change version of Android after which platform haptics are called." into androidx-main
diff --git a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/rotary/Haptics.kt b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/rotary/Haptics.kt
index 28bce2c..96cac7a 100644
--- a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/rotary/Haptics.kt
+++ b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/rotary/Haptics.kt
@@ -62,7 +62,7 @@
hapticsEnabled: Boolean
): RotaryHapticHandler =
if (hapticsEnabled) {
- if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.UPSIDE_DOWN_CAKE)
+ if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.VANILLA_ICE_CREAM)
rememberCustomRotaryHapticHandler(scrollableState)
else rememberPlatformRotaryHapticHandler(scrollableState)
} else rememberDisabledRotaryHapticHandler()
@@ -171,7 +171,7 @@
* @param hapticsChannel Channel to which haptic events will be sent
* @param hapticsThresholdPx A scroll threshold after which haptic is produced.
*/
-private class CustomRotaryHapticHandler(
+internal class CustomRotaryHapticHandler(
private val scrollableState: ScrollableState,
private val hapticsChannel: Channel<RotaryHapticsType>,
private val hapticsThresholdPx: Long = 50
diff --git a/wear/compose/compose-foundation/src/test/kotlin/androidx/wear/compose/foundation/rotary/HapticsTest.kt b/wear/compose/compose-foundation/src/test/kotlin/androidx/wear/compose/foundation/rotary/HapticsTest.kt
index ed52c17..2700d9d 100644
--- a/wear/compose/compose-foundation/src/test/kotlin/androidx/wear/compose/foundation/rotary/HapticsTest.kt
+++ b/wear/compose/compose-foundation/src/test/kotlin/androidx/wear/compose/foundation/rotary/HapticsTest.kt
@@ -18,8 +18,11 @@
import android.R
import android.app.Activity
+import android.os.Build
import android.provider.Settings
import android.view.View
+import androidx.compose.foundation.gestures.rememberScrollableState
+import androidx.compose.ui.test.junit4.createComposeRule
import kotlinx.coroutines.channels.BufferOverflow
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.delay
@@ -29,6 +32,7 @@
import kotlinx.coroutines.test.runTest
import org.junit.Assert.assertEquals
import org.junit.Before
+import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.JUnit4
@@ -127,6 +131,9 @@
@RunWith(RobolectricTestRunner::class)
class HapticsTest {
+
+ @get:Rule val rule = createComposeRule()
+
@Test
@Config(sdk = [33])
fun testPixelWatch1Wear4() {
@@ -211,6 +218,17 @@
assertEquals(HapticConstants.GalaxyWatchConstants, getHapticConstants())
}
+ @Test
+ @Config(sdk = [Build.VERSION_CODES.VANILLA_ICE_CREAM, Build.VERSION_CODES.UPSIDE_DOWN_CAKE])
+ fun testCustomHapticsHandler() {
+ var rotaryHapticsHandler: RotaryHapticHandler? = null
+ rule.setContent {
+ val scrollableState = rememberScrollableState { 0f }
+ rotaryHapticsHandler = rememberRotaryHapticHandler(scrollableState, true)
+ }
+ assertEquals(rotaryHapticsHandler?.javaClass, CustomRotaryHapticHandler::class.java)
+ }
+
private fun getHapticConstants(): HapticConstants {
val activity = Robolectric.buildActivity(Activity::class.java).get()
val view = activity.findViewById<View>(R.id.content)