Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8064e70a authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Fix the duplicate components in edit shortcut menu list." into rvc-dev...

Merge "Fix the duplicate components in edit shortcut menu list." into rvc-dev am: 22a0b13e am: 084b7b3a am: 92b4a480

Change-Id: I840f64a159221d45b624a478dc4f593096ea8a85
parents a8c14ef9 92b4a480
Loading
Loading
Loading
Loading
+30 −2
Original line number Diff line number Diff line
@@ -169,13 +169,41 @@ public class AccessibilityButtonChooserActivity extends Activity {
    private static List<AccessibilityButtonTarget> getInstalledServiceTargets(
            @NonNull Context context) {
        final List<AccessibilityButtonTarget> targets = new ArrayList<>();
        targets.addAll(getAccessibilityServiceTargets(context));
        targets.addAll(getAccessibilityActivityTargets(context));
        targets.addAll(getAccessibilityFilteredTargets(context));
        targets.addAll(getWhiteListingServiceTargets(context));

        return targets;
    }

    private static List<AccessibilityButtonTarget> getAccessibilityFilteredTargets(
            @NonNull Context context) {
        final List<AccessibilityButtonTarget> serviceTargets =
                getAccessibilityServiceTargets(context);
        final List<AccessibilityButtonTarget> activityTargets =
                getAccessibilityActivityTargets(context);

        for (AccessibilityButtonTarget activityTarget : activityTargets) {
            serviceTargets.removeIf(serviceTarget -> {
                final ComponentName serviceComponentName =
                        ComponentName.unflattenFromString(serviceTarget.getId());
                final ComponentName activityComponentName =
                        ComponentName.unflattenFromString(activityTarget.getId());
                final boolean isSamePackageName = activityComponentName.getPackageName().equals(
                        serviceComponentName.getPackageName());
                final boolean isSameLabel = activityTarget.getLabel().equals(
                        serviceTarget.getLabel());

                return isSamePackageName && isSameLabel;
            });
        }

        final List<AccessibilityButtonTarget> targets = new ArrayList<>();
        targets.addAll(serviceTargets);
        targets.addAll(activityTargets);

        return targets;
    }

    private static List<AccessibilityButtonTarget> getAccessibilityServiceTargets(
            @NonNull Context context) {
        final AccessibilityManager ams = context.getSystemService(AccessibilityManager.class);