Skip to content

Commit ba2a85a

Browse files
authored
Merge pull request #82692 from Procyonae/AccessabilityServicesWarningAllowIgnoringFalsePositives
Allow ignoring false positives on the Android accessability services warning
2 parents a249d54 + 39e5080 commit ba2a85a

File tree

3 files changed

+30
-1
lines changed

3 files changed

+30
-1
lines changed

android/app/src/main/java/com/cleverraven/cataclysmdda/CataclysmDDA_Helpers.java

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
package com.cleverraven.cataclysmdda;
22

3+
import java.util.HashSet;
34
import java.util.List;
5+
import java.util.Set;
46

57
import android.content.Context;
68
import android.view.accessibility.AccessibilityManager;
79
import android.accessibilityservice.AccessibilityService;
810
import android.accessibilityservice.AccessibilityServiceInfo;
911
import android.content.pm.ServiceInfo;
12+
import android.content.SharedPreferences;
13+
import android.preference.PreferenceManager;
1014
import android.widget.Toast;
1115

1216
public class CataclysmDDA_Helpers {
@@ -19,11 +23,28 @@ public static List<AccessibilityServiceInfo> getEnabledAccessibilityServiceInfo(
1923
public static String getEnabledAccessibilityServiceNames(Context context) {
2024
List<AccessibilityServiceInfo> enabledServicesInfo = getEnabledAccessibilityServiceInfo( context );
2125
String service_names = "";
26+
Set<String> false_positives = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext()).getStringSet("Accessibility Service Info False Positives", new HashSet<String>());
2227
for (AccessibilityServiceInfo enabledService : enabledServicesInfo) {
2328
ServiceInfo enabledServiceInfo = enabledService.getResolveInfo().serviceInfo;
2429
String service_name = enabledServiceInfo.name;
25-
service_names = service_names + "\n" + service_name;
30+
if( !false_positives.contains( service_name ) ) {
31+
service_names = service_names + "\n" + service_name;
32+
}
2633
}
2734
return service_names;
2835
}
36+
37+
public static void saveAccessibilityServiceInfoFalsePositives(Context context) {
38+
List<AccessibilityServiceInfo> enabledServicesInfo = getEnabledAccessibilityServiceInfo( context );
39+
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
40+
// Purposeful copy to avoid some nonsense
41+
Set<String> false_positives = new HashSet<String>(preferences.getStringSet("Accessibility Service Info False Positives", new HashSet<String>()));
42+
for (AccessibilityServiceInfo enabledService : enabledServicesInfo) {
43+
ServiceInfo enabledServiceInfo = enabledService.getResolveInfo().serviceInfo;
44+
false_positives.add( enabledServiceInfo.name );
45+
}
46+
SharedPreferences.Editor editor = preferences.edit();
47+
editor.putStringSet("Accessibility Service Info False Positives", false_positives);
48+
editor.commit();
49+
}
2950
}

android/app/src/main/java/com/cleverraven/cataclysmdda/SplashScreen.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,13 @@ public void onClick(DialogInterface dialog, int id) {
162162
dialog.dismiss();
163163
return;
164164
}
165+
})
166+
.setNegativeButton(getString(R.string.ignoreFalsePostives), new DialogInterface.OnClickListener() {
167+
public void onClick(DialogInterface dialog, int id) {
168+
CataclysmDDA_Helpers.saveAccessibilityServiceInfoFalsePositives(getApplicationContext());
169+
SplashScreen.this.installOrRun();
170+
return;
171+
}
165172
}).create();
166173
}
167174

android/app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
<string name="helpMessage">"Swipe" for directional movement (hold for virtual joystick). "Tap" to confirm selection in menu or Pause one turn in-game (hold to Pause several turns in-game). "Double tap" to cancel or go back in menus (works like Escape key). "Pinch" to zoom in/out (in-game). Use hardware "Back" button to toggle virtual keyboard (hold to toggle keyboard shortcuts).</string>
77
<string name="accessibilityServicesTitle">Accessibility Services Warning</string>
88
<string name="accessibilityServicesMessage">If swipe commands and shortcuts menus are not working in game, you might want to disable one of the following accessibility services/software that interact with touchscreen (swipe assists, auto-clickers, one-handed mode, etc.):\n%1$s</string>
9+
<string name="ignoreFalsePostives">Mark as false positive(s)</string>
910
<string name="softwareRendering">Software rendering</string>
1011
<string name="forceFullscreen">Force fullscreen</string>
1112
<string name="trapBackButton">Trap Back button</string>

0 commit comments

Comments
 (0)