Skip to content

Commit 6e3c171

Browse files
committed
#1904 feat: inform the user how to enable the accessibility service with PRO mode or ADB
1 parent 86576af commit 6e3c171

4 files changed

Lines changed: 5 additions & 132 deletions

File tree

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44

55
## Added
66

7-
- #1915 ask user to remove "adb shell" from Shell command
7+
- #1915 ask user to remove "adb shell" from Shell command.
8+
- #1904 inform the user how to enable the accessibility service with PRO mode or ADB.
89

910
## Bug fixes
1011

base/src/main/java/io/github/sds100/keymapper/base/onboarding/SetupAccessibilityServiceDialog.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ private fun CantFindAccessibilitySettingsDialog(
167167
},
168168
confirmButton = {
169169
TextButton(onClick = onOpenGuide) {
170-
Text(stringResource(R.string.pos_start_service_with_adb_guide))
170+
Text(stringResource(R.string.pos_start_service_with_pro_mode))
171171
}
172172
},
173173
dismissButton = {

base/src/main/java/io/github/sds100/keymapper/base/utils/ui/ViewModelHelper.kt

Lines changed: 0 additions & 128 deletions
Original file line numberDiff line numberDiff line change
@@ -8,134 +8,6 @@ import io.github.sds100.keymapper.system.SystemError
88
import io.github.sds100.keymapper.system.permissions.Permission
99

1010
object ViewModelHelper {
11-
suspend fun handleKeyMapperCrashedDialog(
12-
resourceProvider: ResourceProvider,
13-
dialogProvider: DialogProvider,
14-
restartService: () -> Boolean,
15-
ignoreCrashed: () -> Unit,
16-
) {
17-
val dialog = DialogModel.Alert(
18-
title = resourceProvider.getString(R.string.dialog_title_key_mapper_crashed),
19-
message = resourceProvider.getText(R.string.dialog_message_key_mapper_crashed),
20-
positiveButtonText = resourceProvider.getString(
21-
R.string.dialog_button_read_dont_kill_my_app_yes,
22-
),
23-
negativeButtonText = resourceProvider.getString(
24-
R.string.dialog_button_read_dont_kill_my_app_no,
25-
),
26-
neutralButtonText = resourceProvider.getString(R.string.pos_restart),
27-
)
28-
29-
val response = dialogProvider.showDialog("app_crashed_prompt", dialog) ?: return
30-
31-
when (response) {
32-
DialogResponse.POSITIVE -> {
33-
val popup =
34-
DialogModel.OpenUrl(resourceProvider.getString(R.string.url_dont_kill_my_app))
35-
dialogProvider.showDialog("dont_kill_my_app", popup)
36-
}
37-
38-
DialogResponse.NEGATIVE -> ignoreCrashed()
39-
40-
DialogResponse.NEUTRAL -> restartService()
41-
}
42-
}
43-
44-
suspend fun showAccessibilityServiceExplanationDialog(
45-
resourceProvider: ResourceProvider,
46-
dialogProvider: DialogProvider,
47-
): DialogResponse {
48-
val dialog = DialogModel.Alert(
49-
title = resourceProvider.getString(
50-
R.string.dialog_title_accessibility_service_explanation,
51-
),
52-
message = resourceProvider.getString(
53-
R.string.dialog_message_accessibility_service_explanation,
54-
),
55-
positiveButtonText = resourceProvider.getString(R.string.enable),
56-
negativeButtonText = resourceProvider.getString(R.string.neg_cancel),
57-
)
58-
59-
val response =
60-
dialogProvider.showDialog("accessibility_service_explanation", dialog)
61-
?: return DialogResponse.NEGATIVE
62-
63-
return response
64-
}
65-
66-
suspend fun handleCantFindAccessibilitySettings(
67-
resourceProvider: ResourceProvider,
68-
dialogProvider: DialogProvider,
69-
) {
70-
val dialog = DialogModel.Alert(
71-
title = resourceProvider.getString(
72-
R.string.dialog_title_cant_find_accessibility_settings_page,
73-
),
74-
message = resourceProvider.getText(
75-
R.string.dialog_message_cant_find_accessibility_settings_page,
76-
),
77-
positiveButtonText = resourceProvider.getString(
78-
R.string.pos_start_service_with_adb_guide,
79-
),
80-
negativeButtonText = resourceProvider.getString(R.string.neg_cancel),
81-
)
82-
83-
val response =
84-
dialogProvider.showDialog("cant_find_accessibility_settings", dialog) ?: return
85-
86-
if (response == DialogResponse.POSITIVE) {
87-
val url =
88-
resourceProvider.getString(R.string.url_cant_find_accessibility_settings_issue)
89-
val openUrlPopup = DialogModel.OpenUrl(url)
90-
91-
dialogProvider.showDialog("url_cant_find_accessibility_settings_issue", openUrlPopup)
92-
}
93-
}
94-
95-
suspend fun handleAccessibilityServiceStoppedDialog(
96-
resourceProvider: ResourceProvider,
97-
dialogProvider: DialogProvider,
98-
startService: () -> Boolean,
99-
) {
100-
val explanationResponse =
101-
showAccessibilityServiceExplanationDialog(resourceProvider, dialogProvider)
102-
103-
if (explanationResponse != DialogResponse.POSITIVE) {
104-
return
105-
}
106-
107-
if (!startService.invoke()) {
108-
handleCantFindAccessibilitySettings(resourceProvider, dialogProvider)
109-
}
110-
}
111-
112-
suspend fun handleAccessibilityServiceCrashedDialog(
113-
resourceProvider: ResourceProvider,
114-
dialogProvider: DialogProvider,
115-
restartService: () -> Boolean,
116-
) {
117-
val dialog = DialogModel.Alert(
118-
title = resourceProvider.getString(
119-
R.string.dialog_title_accessibility_service_explanation,
120-
),
121-
message = resourceProvider.getString(
122-
R.string.dialog_message_restart_accessibility_service,
123-
),
124-
positiveButtonText = resourceProvider.getString(R.string.pos_restart),
125-
negativeButtonText = resourceProvider.getString(R.string.neg_cancel),
126-
)
127-
128-
val response = dialogProvider.showDialog("accessibility_service_explanation", dialog)
129-
130-
if (response != DialogResponse.POSITIVE) {
131-
return
132-
}
133-
134-
if (!restartService.invoke()) {
135-
handleCantFindAccessibilitySettings(resourceProvider, dialogProvider)
136-
}
137-
}
138-
13911
suspend fun showFixErrorDialog(
14012
resourceProvider: ResourceProvider,
14113
dialogProvider: DialogProvider,

base/src/main/res/values/strings.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,7 @@
432432
<string name="dialog_title_write_secure_settings">Grant WRITE_SECURE_SETTINGS permission</string>
433433
<string name="dialog_message_write_secure_settings">You will need to use PRO mode to grant this permission.</string>
434434

435-
<string name="dialog_message_cant_find_accessibility_settings_page">Your device doesn\'t seem to have an accessibility services settings page. Tap \"guide\" to read the online guide that explains how to fix this.</string>
435+
<string name="dialog_message_cant_find_accessibility_settings_page">Your device doesn\'t seem to have an accessibility services settings page. You can set up PRO mode or run the ADB command \"adb shell pm grant io.github.sds100.keymapper android.permission.WRITE_SECURE_SETTINGS\".</string>
436436
<string name="dialog_message_parallel_trigger_order">You must hold down the keys in the order that they are listed.</string>
437437
<string name="dialog_message_sequence_trigger_explanation">There is a timeout to input this trigger. You can change this timeout in the "Options" tab.</string>
438438
<string name="tip_parallel_trigger_title">How to use this trigger</string>
@@ -490,7 +490,7 @@
490490

491491
<string name="pos_done">Done</string>
492492
<string name="pos_kill">Kill</string>
493-
<string name="pos_start_service_with_adb_guide">Guide</string>
493+
<string name="pos_start_service_with_pro_mode">Use PRO mode</string>
494494
<string name="pos_change_location">Change</string>
495495
<string name="pos_turn_off_stock_battery_optimisation">Fix partially</string>
496496
<string name="pos_ok">Ok</string>

0 commit comments

Comments
 (0)