Add haptic feedback to voice message record button (#1686)

This commit is contained in:
jonnyandrew 2023-10-30 12:01:39 +00:00 committed by GitHub
parent 84ddef3e6c
commit b1fffdc9e9

View file

@ -21,8 +21,10 @@ import androidx.compose.foundation.layout.size
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.hapticfeedback.HapticFeedbackType
import androidx.compose.ui.input.pointer.PointerEventType import androidx.compose.ui.input.pointer.PointerEventType
import androidx.compose.ui.input.pointer.pointerInput import androidx.compose.ui.input.pointer.pointerInput
import androidx.compose.ui.platform.LocalHapticFeedback
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.ElementPreview
@ -47,12 +49,26 @@ internal fun RecordButton(
) { ) {
val coroutineScope = rememberCoroutineScope() val coroutineScope = rememberCoroutineScope()
val pressState = rememberPressState() val pressState = rememberPressState()
val hapticFeedback = LocalHapticFeedback.current
val performHapticFeedback = {
hapticFeedback.performHapticFeedback(HapticFeedbackType.LongPress)
}
PressStateEffects( PressStateEffects(
pressState = pressState.value, pressState = pressState.value,
onPressStart = onPressStart, onPressStart = {
onLongPressEnd = onLongPressEnd, onPressStart()
onTap = onTap, performHapticFeedback()
},
onLongPressEnd = {
onLongPressEnd()
performHapticFeedback()
},
onTap = {
onTap()
performHapticFeedback()
},
) )
RecordButtonView( RecordButtonView(