Skip to content

Commit 99503eb

Browse files
committed
#1566 hide fix button for floating button deleted error
1 parent c208929 commit 99503eb

File tree

7 files changed

+41
-43
lines changed

7 files changed

+41
-43
lines changed

app/src/main/java/io/github/sds100/keymapper/mappings/keymaps/KeyMapListItemCreator.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import io.github.sds100.keymapper.mappings.keymaps.trigger.TriggerMode
2424
import io.github.sds100.keymapper.system.devices.InputDeviceUtils
2525
import io.github.sds100.keymapper.system.inputevents.InputEventUtils
2626
import io.github.sds100.keymapper.util.Error
27+
import io.github.sds100.keymapper.util.isFixable
2728
import io.github.sds100.keymapper.util.ui.ResourceProvider
2829
import io.github.sds100.keymapper.util.ui.compose.ComposeChipModel
2930
import io.github.sds100.keymapper.util.ui.compose.ComposeIconInfo
@@ -149,7 +150,7 @@ class KeyMapListItemCreator(
149150
val chip = if (error == null) {
150151
ComposeChipModel.Normal(id = action.uid, text = chipText, icon = icon)
151152
} else {
152-
ComposeChipModel.Error(action.uid, chipText, error)
153+
ComposeChipModel.Error(action.uid, chipText, error, isFixable = error.isFixable)
153154
}
154155

155156
yield(chip)

app/src/main/java/io/github/sds100/keymapper/mappings/keymaps/KeyMapListScreen.kt

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,7 @@ private fun KeyMapListItem(
296296
ErrorChip(
297297
onClick = { onTriggerErrorClick(error) },
298298
text = getTriggerErrorMessage(error),
299+
enabled = error.isFixable,
299300
)
300301
}
301302
}
@@ -486,14 +487,19 @@ private fun ActionConstraintChip(
486487
)
487488
}
488489

489-
is ComposeChipModel.Error -> ErrorChip(onClick = { onFixClick(model.error) }, model.text)
490+
is ComposeChipModel.Error -> ErrorChip(
491+
onClick = { onFixClick(model.error) },
492+
model.text,
493+
model.isFixable,
494+
)
490495
}
491496
}
492497

493498
@Composable
494499
private fun ErrorChip(
495500
onClick: () -> Unit,
496501
text: String,
502+
enabled: Boolean,
497503
) {
498504
CompactChip(
499505
text = text,
@@ -507,6 +513,7 @@ private fun ErrorChip(
507513
containerColor = MaterialTheme.colorScheme.errorContainer,
508514
contentColor = MaterialTheme.colorScheme.onErrorContainer,
509515
onClick = onClick,
516+
enabled = enabled,
510517
)
511518
}
512519

@@ -517,35 +524,29 @@ private fun CompactChip(
517524
icon: (@Composable () -> Unit)? = null,
518525
containerColor: Color = MaterialTheme.colorScheme.surfaceContainer,
519526
contentColor: Color = MaterialTheme.colorScheme.onSurface,
520-
) {
521-
Surface(
522-
modifier = modifier.height(chipHeight),
523-
color = containerColor,
524-
shape = AssistChipDefaults.shape,
525-
) {
526-
CompactChipContent(icon, text, contentColor)
527-
}
528-
}
529-
530-
@Composable
531-
private fun CompactChip(
532-
modifier: Modifier = Modifier,
533-
text: String,
534-
icon: (@Composable () -> Unit)? = null,
535-
containerColor: Color = MaterialTheme.colorScheme.surfaceContainer,
536-
contentColor: Color = MaterialTheme.colorScheme.onSurface,
537-
onClick: () -> Unit,
527+
onClick: (() -> Unit)? = null,
528+
enabled: Boolean = false,
538529
) {
539530
CompositionLocalProvider(
540531
LocalMinimumInteractiveComponentSize provides 16.dp,
541532
) {
542-
Surface(
543-
modifier = modifier.height(chipHeight),
544-
color = containerColor,
545-
shape = AssistChipDefaults.shape,
546-
onClick = onClick,
547-
) {
548-
CompactChipContent(icon, text, contentColor)
533+
if (onClick == null || !enabled) {
534+
Surface(
535+
modifier = modifier.height(chipHeight),
536+
color = containerColor,
537+
shape = AssistChipDefaults.shape,
538+
) {
539+
CompactChipContent(icon, text, contentColor)
540+
}
541+
} else {
542+
Surface(
543+
modifier = modifier.height(chipHeight),
544+
color = containerColor,
545+
shape = AssistChipDefaults.shape,
546+
onClick = onClick,
547+
) {
548+
CompactChipContent(icon, text, contentColor)
549+
}
549550
}
550551
}
551552
}

app/src/main/java/io/github/sds100/keymapper/mappings/keymaps/trigger/BaseConfigTriggerViewModel.kt

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -598,7 +598,7 @@ abstract class BaseConfigTriggerViewModel(
598598
}
599599
}
600600

601-
fun onTriggerErrorClick(error: TriggerError) {
601+
open fun onTriggerErrorClick(error: TriggerError) {
602602
coroutineScope.launch {
603603
when (error) {
604604
TriggerError.DND_ACCESS_DENIED ->
@@ -609,12 +609,6 @@ abstract class BaseConfigTriggerViewModel(
609609
fixError = { displayKeyMap.fixTriggerError(error) },
610610
)
611611

612-
TriggerError.ASSISTANT_TRIGGER_NOT_PURCHASED,
613-
TriggerError.FLOATING_BUTTONS_NOT_PURCHASED,
614-
-> {
615-
showAdvancedTriggersBottomSheet = true
616-
}
617-
618612
TriggerError.DPAD_IME_NOT_SELECTED -> {
619613
showDpadTriggerSetupBottomSheet = true
620614
}

app/src/main/java/io/github/sds100/keymapper/mappings/keymaps/trigger/TriggerError.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,21 @@ package io.github.sds100.keymapper.mappings.keymaps.trigger
33
/**
44
* Created by sds100 on 04/04/2021.
55
*/
6-
enum class TriggerError {
7-
DND_ACCESS_DENIED,
8-
SCREEN_OFF_ROOT_DENIED,
9-
CANT_DETECT_IN_PHONE_CALL,
6+
enum class TriggerError(val isFixable: Boolean) {
7+
DND_ACCESS_DENIED(isFixable = true),
8+
SCREEN_OFF_ROOT_DENIED(isFixable = true),
9+
CANT_DETECT_IN_PHONE_CALL(isFixable = true),
1010

1111
// This error appears when a key map has an assistant trigger but the user hasn't purchased
1212
// the product.
13-
ASSISTANT_TRIGGER_NOT_PURCHASED,
13+
ASSISTANT_TRIGGER_NOT_PURCHASED(isFixable = true),
1414

1515
/**
1616
* A Key Mapper IME must be used for DPAD triggers to work.
1717
*/
18-
DPAD_IME_NOT_SELECTED,
18+
DPAD_IME_NOT_SELECTED(isFixable = true),
1919

20-
FLOATING_BUTTON_DELETED,
20+
FLOATING_BUTTON_DELETED(isFixable = false),
2121

22-
FLOATING_BUTTONS_NOT_PURCHASED,
22+
FLOATING_BUTTONS_NOT_PURCHASED(isFixable = true),
2323
}

app/src/main/java/io/github/sds100/keymapper/mappings/keymaps/trigger/TriggerKeyListItem.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ fun TriggerKeyListItem(
186186
CompositionLocalProvider(
187187
LocalMinimumInteractiveComponentSize provides 16.dp,
188188
) {
189-
if (model.error != null) {
189+
if (model.error != null && model.error?.isFixable ?: false) {
190190
FilledTonalButton(
191191
modifier = Modifier.padding(start = 8.dp, end = 8.dp),
192192
onClick = { onFixClick(model.error!!) },

app/src/main/java/io/github/sds100/keymapper/util/ErrorUtils.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ val Error.isFixable: Boolean
173173
is Error.PermissionDenied,
174174
is Error.ShizukuNotStarted,
175175
is Error.CantDetectKeyEventsInPhoneCall,
176+
176177
-> true
177178

178179
else -> false

app/src/main/java/io/github/sds100/keymapper/util/ui/compose/ComposeChipModel.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,6 @@ sealed class ComposeChipModel {
1414
override val id: String,
1515
override val text: String,
1616
val error: io.github.sds100.keymapper.util.Error,
17+
val isFixable: Boolean = true,
1718
) : ComposeChipModel()
1819
}

0 commit comments

Comments
 (0)