Coverage Summary for Class: ForcedHapticFeedbackKt (com.vsevolodganin.clicktrack.utils.compose)
Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
ForcedHapticFeedbackKt |
0%
(0/2)
|
0%
(0/6)
|
0%
(0/7)
|
0%
(0/103)
|
ForcedHapticFeedbackKt$ForcedHapticFeedback$1 |
0%
(0/2)
|
0%
(0/6)
|
0%
(0/7)
|
0%
(0/26)
|
Total |
0%
(0/4)
|
0%
(0/12)
|
0%
(0/14)
|
0%
(0/129)
|
package com.vsevolodganin.clicktrack.utils.compose
import android.os.Build
import android.view.HapticFeedbackConstants
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.hapticfeedback.HapticFeedback
import androidx.compose.ui.hapticfeedback.HapticFeedbackType
import androidx.compose.ui.hapticfeedback.HapticFeedbackType.Companion.LongPress
import androidx.compose.ui.hapticfeedback.HapticFeedbackType.Companion.TextHandleMove
import androidx.compose.ui.platform.LocalHapticFeedback
import androidx.compose.ui.platform.LocalView
@Composable
actual fun ForcedHapticFeedback(content: @Composable () -> Unit) {
val view = LocalView.current
CompositionLocalProvider(
LocalHapticFeedback provides object : HapticFeedback {
override fun performHapticFeedback(hapticFeedbackType: HapticFeedbackType) {
view.performHapticFeedback(
when (hapticFeedbackType) {
LongPress -> HapticFeedbackConstants.LONG_PRESS
TextHandleMove -> if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
HapticFeedbackConstants.TEXT_HANDLE_MOVE
} else {
return
}
else -> return
},
@Suppress("DEPRECATION") // TODO: Fix deprecation
HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING,
)
}
},
) {
content()
}
}