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

Commit 4385655f authored by Daniel Norman's avatar Daniel Norman
Browse files

Remove usages of bugfix flag cleanup_accessibility_warning_dialog.

Flag has been in Trunkfood for over a month.

(This flag guarded a preliminary cleanup and minor bug fix for
b/303511250, but the actual feature for b/303511250 is tracked in a
different flag 'skip_accessibility_warning_dialog_for_trusted_services')

Bug: 303511250
Test: existing tests in Presubmit (no change to behavior)
Change-Id: Iccf439adb2806e988310f503fb3891a6bd022054
parent 1836f6d4
Loading
Loading
Loading
Loading
+33 −63
Original line number Diff line number Diff line
@@ -20,7 +20,6 @@ import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_SHOR
import static android.view.accessibility.AccessibilityManager.ShortcutType;

import static com.android.internal.accessibility.common.ShortcutConstants.ShortcutMenuMode;
import static com.android.internal.accessibility.dialog.AccessibilityTargetHelper.createEnableDialogContentView;
import static com.android.internal.accessibility.dialog.AccessibilityTargetHelper.getInstalledTargets;
import static com.android.internal.accessibility.dialog.AccessibilityTargetHelper.getTargets;
import static com.android.internal.accessibility.util.AccessibilityUtils.isUserSetupCompleted;
@@ -115,7 +114,6 @@ public class AccessibilityShortcutChooserActivity extends Activity {
    private void onTargetChecked(AdapterView<?> parent, View view, int position, long id) {
        final AccessibilityTarget target = mTargets.get(position);

        if (Flags.cleanupAccessibilityWarningDialog()) {
        if (target instanceof AccessibilityServiceTarget serviceTarget) {
            if (sendRestrictedDialogIntentIfNeeded(target)) {
                return;
@@ -134,22 +132,6 @@ public class AccessibilityShortcutChooserActivity extends Activity {
                return;
            }
        }
        } else {
            if (!target.isShortcutEnabled()) {
                if (target instanceof AccessibilityServiceTarget
                        || target instanceof AccessibilityActivityTarget) {
                    if (sendRestrictedDialogIntentIfNeeded(target)) {
                        return;
                    }
                }

                if (target instanceof AccessibilityServiceTarget) {
                    showPermissionDialogIfNeeded(this, (AccessibilityServiceTarget) target,
                            position, mTargetAdapter);
                    return;
                }
            }
        }

        target.onCheckedChanged(!target.isShortcutEnabled());
        mTargetAdapter.notifyDataSetChanged();
@@ -178,7 +160,6 @@ public class AccessibilityShortcutChooserActivity extends Activity {
            return;
        }

        if (Flags.cleanupAccessibilityWarningDialog()) {
        mPermissionDialog = AccessibilityServiceWarning
                .createAccessibilityServiceWarningDialog(context,
                        serviceTarget.getAccessibilityServiceInfo(),
@@ -198,17 +179,6 @@ public class AccessibilityShortcutChooserActivity extends Activity {
                            mPermissionDialog.dismiss();
                        });
        mPermissionDialog.setOnDismissListener(dialog -> mPermissionDialog = null);
        } else {
            mPermissionDialog = new AlertDialog.Builder(context)
                    .setView(createEnableDialogContentView(context, serviceTarget,
                            v -> {
                                mPermissionDialog.dismiss();
                                targetAdapter.notifyDataSetChanged();
                            },
                            v -> mPermissionDialog.dismiss()))
                    .setOnDismissListener(dialog -> mPermissionDialog = null)
                    .create();
        }
        mPermissionDialog.show();
    }

+0 −51
Original line number Diff line number Diff line
@@ -37,14 +37,8 @@ import android.content.Context;
import android.os.Build;
import android.os.UserHandle;
import android.provider.Settings;
import android.text.BidiFormatter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.accessibility.AccessibilityManager;
import android.view.accessibility.AccessibilityManager.ShortcutType;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import com.android.internal.R;
import com.android.internal.accessibility.common.ShortcutConstants.AccessibilityFragmentType;
@@ -52,7 +46,6 @@ import com.android.internal.accessibility.common.ShortcutConstants.Accessibility
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Locale;

/**
 * Collection of utilities for accessibility target.
@@ -297,50 +290,6 @@ public final class AccessibilityTargetHelper {
        }
    }

    /**
     * @deprecated Use {@link AccessibilityServiceWarning}.
     */
    @Deprecated
    static View createEnableDialogContentView(Context context,
            AccessibilityServiceTarget target, View.OnClickListener allowListener,
            View.OnClickListener denyListener) {
        final LayoutInflater inflater = (LayoutInflater) context.getSystemService(
                Context.LAYOUT_INFLATER_SERVICE);

        final View content = inflater.inflate(
                R.layout.accessibility_enable_service_warning, /* root= */ null);

        final ImageView dialogIcon = content.findViewById(
                R.id.accessibility_permissionDialog_icon);
        dialogIcon.setImageDrawable(target.getIcon());

        final TextView dialogTitle = content.findViewById(
                R.id.accessibility_permissionDialog_title);
        dialogTitle.setText(context.getString(R.string.accessibility_enable_service_title,
                getServiceName(context, target.getLabel())));

        final Button allowButton = content.findViewById(
                R.id.accessibility_permission_enable_allow_button);
        final Button denyButton = content.findViewById(
                R.id.accessibility_permission_enable_deny_button);
        allowButton.setOnClickListener((view) -> {
            target.onCheckedChanged(/* isChecked= */ true);
            allowListener.onClick(view);
        });
        denyButton.setOnClickListener((view) -> {
            target.onCheckedChanged(/* isChecked= */ false);
            denyListener.onClick(view);
        });

        return content;
    }

    // Gets the service name and bidi wrap it to protect from bidi side effects.
    private static CharSequence getServiceName(Context context, CharSequence label) {
        final Locale locale = context.getResources().getConfiguration().getLocales().get(0);
        return BidiFormatter.getInstance(locale).unicodeWrap(label);
    }

    /**
     * Determines if the{@link AccessibilityTarget} is allowed.
     */
+3 −26
Original line number Diff line number Diff line
@@ -25,7 +25,6 @@ import static androidx.test.espresso.assertion.ViewAssertions.matches;
import static androidx.test.espresso.matcher.RootMatchers.isDialog;
import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
import static androidx.test.espresso.matcher.ViewMatchers.withClassName;
import static androidx.test.espresso.matcher.ViewMatchers.withId;
import static androidx.test.espresso.matcher.ViewMatchers.withText;

import static com.google.common.truth.Truth.assertThat;
@@ -54,7 +53,6 @@ import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
import android.os.Bundle;
import android.os.Handler;
import android.platform.test.annotations.RequiresFlagsDisabled;
import android.platform.test.annotations.RequiresFlagsEnabled;
import android.platform.test.flag.junit.CheckFlagsRule;
import android.platform.test.flag.junit.DeviceFlagsValueProvider;
@@ -176,21 +174,6 @@ public class AccessibilityShortcutChooserActivityTest {
    }

    @Test
    @RequiresFlagsDisabled(Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
    public void selectTestService_oldPermissionDialog_deny_dialogIsHidden() {
        launchActivity();
        openShortcutsList();

        mDevice.findObject(By.text(TEST_LABEL)).clickAndWait(Until.newWindow(), UI_TIMEOUT_MS);
        onView(withText(DENY_LABEL)).perform(scrollTo(), click());
        InstrumentationRegistry.getInstrumentation().waitForIdleSync();

        onView(withId(R.id.accessibility_permissionDialog_title)).inRoot(isDialog()).check(
                doesNotExist());
    }

    @Test
    @RequiresFlagsEnabled(Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
    public void selectTestService_permissionDialog_allow_rowChecked() {
        launchActivity();
        openShortcutsList();
@@ -202,7 +185,6 @@ public class AccessibilityShortcutChooserActivityTest {
    }

    @Test
    @RequiresFlagsEnabled(Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
    public void selectTestService_permissionDialog_deny_rowNotChecked() {
        launchActivity();
        openShortcutsList();
@@ -214,7 +196,6 @@ public class AccessibilityShortcutChooserActivityTest {
    }

    @Test
    @RequiresFlagsEnabled(Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
    public void selectTestService_permissionDialog_uninstall_callsUninstaller_rowRemoved() {
        launchActivity();
        openShortcutsList();
@@ -228,7 +209,6 @@ public class AccessibilityShortcutChooserActivityTest {
    }

    @Test
    @RequiresFlagsEnabled(Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
    public void selectTestService_permissionDialog_notShownWhenNotRequired() throws Exception {
        when(mAccessibilityManagerService.isAccessibilityServiceWarningRequired(any()))
                .thenReturn(false);
@@ -243,7 +223,6 @@ public class AccessibilityShortcutChooserActivityTest {
    }

    @Test
    @RequiresFlagsEnabled(Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
    public void selectTestService_notPermittedByAdmin_blockedEvenIfNoWarningRequired()
            throws Exception {
        when(mAccessibilityManagerService.isAccessibilityServiceWarningRequired(any()))
@@ -380,12 +359,10 @@ public class AccessibilityShortcutChooserActivityTest {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            if (Flags.cleanupAccessibilityWarningDialog()) {
            // Setting the Theme is necessary here for the dialog to use the proper style
            // resources as designated in its layout XML.
            setTheme(R.style.Theme_DeviceDefault_DayNight);
        }
        }

        @Override
        public PackageManager getPackageManager() {
+0 −3
Original line number Diff line number Diff line
@@ -25,7 +25,6 @@ import android.accessibilityservice.AccessibilityServiceInfo;
import android.app.AlertDialog;
import android.content.Context;
import android.os.RemoteException;
import android.platform.test.annotations.RequiresFlagsEnabled;
import android.platform.test.flag.junit.CheckFlagsRule;
import android.platform.test.flag.junit.DeviceFlagsValueProvider;
import android.testing.AndroidTestingRunner;
@@ -57,8 +56,6 @@ import java.util.concurrent.atomic.AtomicBoolean;
 */
@RunWith(AndroidTestingRunner.class)
@TestableLooper.RunWithLooper
@RequiresFlagsEnabled(
        android.view.accessibility.Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
public class AccessibilityServiceWarningTest {
    private static final String A11Y_SERVICE_PACKAGE_LABEL = "TestA11yService";
    private static final String A11Y_SERVICE_SUMMARY = "TestA11yService summary";
+1 −7
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN;
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_NONE;
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW;
import static android.view.accessibility.Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG;
import static android.view.accessibility.Flags.FLAG_SKIP_ACCESSIBILITY_WARNING_DIALOG_FOR_TRUSTED_SERVICES;

import static com.android.internal.accessibility.AccessibilityShortcutController.ACCESSIBILITY_HEARING_AIDS_COMPONENT_NAME;
@@ -880,7 +879,6 @@ public class AccessibilityManagerServiceTest {
    }

    @Test
    @RequiresFlagsEnabled(FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
    public void testIsAccessibilityServiceWarningRequired_requiredByDefault() {
        mockManageAccessibilityGranted(mTestableContext);
        final AccessibilityServiceInfo info = mockAccessibilityServiceInfo(COMPONENT_NAME);
@@ -889,7 +887,6 @@ public class AccessibilityManagerServiceTest {
    }

    @Test
    @RequiresFlagsEnabled(FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
    public void testIsAccessibilityServiceWarningRequired_notRequiredIfAlreadyEnabled() {
        mockManageAccessibilityGranted(mTestableContext);
        final AccessibilityServiceInfo info_a = mockAccessibilityServiceInfo(COMPONENT_NAME);
@@ -904,7 +901,6 @@ public class AccessibilityManagerServiceTest {
    }

    @Test
    @RequiresFlagsEnabled(FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
    public void testIsAccessibilityServiceWarningRequired_notRequiredIfExistingShortcut() {
        mockManageAccessibilityGranted(mTestableContext);
        final AccessibilityServiceInfo info_a = mockAccessibilityServiceInfo(
@@ -925,9 +921,7 @@ public class AccessibilityManagerServiceTest {
    }

    @Test
    @RequiresFlagsEnabled({
            FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG,
            FLAG_SKIP_ACCESSIBILITY_WARNING_DIALOG_FOR_TRUSTED_SERVICES})
    @RequiresFlagsEnabled(FLAG_SKIP_ACCESSIBILITY_WARNING_DIALOG_FOR_TRUSTED_SERVICES)
    public void testIsAccessibilityServiceWarningRequired_notRequiredIfAllowlisted() {
        mockManageAccessibilityGranted(mTestableContext);
        final AccessibilityServiceInfo info_a = mockAccessibilityServiceInfo(