@@ -11,6 +11,7 @@ import io.github.sds100.keymapper.base.onboarding.OnboardingTapTarget
1111import io.github.sds100.keymapper.base.onboarding.OnboardingTipDelegate
1212import io.github.sds100.keymapper.base.onboarding.OnboardingUseCase
1313import io.github.sds100.keymapper.base.onboarding.SetupAccessibilityServiceDelegate
14+ import io.github.sds100.keymapper.base.trigger.EvdevTriggerKey
1415import io.github.sds100.keymapper.base.utils.getFullMessage
1516import io.github.sds100.keymapper.base.utils.isFixable
1617import io.github.sds100.keymapper.base.utils.navigation.NavDestination
@@ -29,7 +30,6 @@ import io.github.sds100.keymapper.common.utils.mapData
2930import io.github.sds100.keymapper.common.utils.onFailure
3031import io.github.sds100.keymapper.system.SystemError
3132import io.github.sds100.keymapper.system.permissions.Permission
32- import javax.inject.Inject
3333import kotlinx.coroutines.flow.MutableStateFlow
3434import kotlinx.coroutines.flow.SharingStarted
3535import kotlinx.coroutines.flow.StateFlow
@@ -42,6 +42,7 @@ import kotlinx.coroutines.flow.map
4242import kotlinx.coroutines.flow.stateIn
4343import kotlinx.coroutines.flow.update
4444import kotlinx.coroutines.launch
45+ import javax.inject.Inject
4546
4647@HiltViewModel
4748class ConfigActionsViewModel @Inject constructor(
@@ -261,6 +262,7 @@ class ConfigActionsViewModel @Inject constructor(
261262 )
262263
263264 RepeatMode .LIMIT_REACHED -> config.setActionStopRepeatingWhenLimitReached(uid)
265+
264266 RepeatMode .TRIGGER_PRESSED_AGAIN ->
265267 config.setActionStopRepeatingWhenTriggerPressedAgain(uid)
266268 }
@@ -395,10 +397,17 @@ class ConfigActionsViewModel @Inject constructor(
395397 Int .MAX_VALUE
396398 }
397399
400+ val showRepeatRateWarning =
401+ keyMap.isRepeatingActionsAllowed() &&
402+ action.data is ActionData .InputKeyEvent &&
403+ (action.repeatRate ? : defaultRepeatRate) < 20 &&
404+ keyMap.trigger.keys.any { it is EvdevTriggerKey }
405+
398406 return ActionOptionsState (
399407 showEditButton = action.data.isEditable(),
400408
401409 showRepeat = keyMap.isRepeatingActionsAllowed(),
410+ showRepeatRateWarning = showRepeatRateWarning,
402411 isRepeatChecked = action.repeat,
403412
404413 showRepeatRate = keyMap.isChangingActionRepeatRateAllowed(action),
@@ -470,6 +479,7 @@ data class ActionOptionsState(
470479 val isRepeatChecked : Boolean ,
471480
472481 val showRepeatRate : Boolean ,
482+ val showRepeatRateWarning : Boolean ,
473483 val repeatRate : Int ,
474484 val defaultRepeatRate : Int ,
475485
0 commit comments