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

Commit 24ef5973 authored by Alan Viverette's avatar Alan Viverette
Browse files

Remove dialog offering to download TalkBack

GMS devices are required to have at least one accessibility service
installed, and AOSP devices will not have Play Store, so this dialog
is obsolete.

BUG: 10429642
Change-Id: I08db466b305a4a73c35325656d143afdfcecf061
parent 38bd642e
Loading
Loading
Loading
Loading
+0 −9
Original line number Diff line number Diff line
@@ -3439,15 +3439,6 @@
    <!-- Title for the prompt shown as a placeholder if no accessibility serivices are installed. [CHAR LIMIT=50] -->
    <string name="accessibility_no_services_installed">No services installed</string>

    <!-- Title for the prompt that lets users know that they have no accessibility related apps
         installed and that they can install TalkBack from Market. [CHAR LIMIT=50] -->
    <string name="accessibility_service_no_apps_title">Need a screen reader?</string>
    <!-- Message for the prompt that lets users know that they have no accessibility related apps
         installed and that they can install TalkBack from Market. [CHAR LIMIT=NONE] -->
    <string name="accessibility_service_no_apps_message">TalkBack provides spoken feedback to
         help blind and low-vision users. Do you want to install it for free from Android
         Market?</string>

    <!-- Default description for an accessibility serivice if the latter doesn't provide one. [CHAR LIMIT=NONE] -->
    <string name="accessibility_service_default_description">No description provided.</string>

+0 −68
Original line number Diff line number Diff line
@@ -223,8 +223,6 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
        loadInstalledServices();
        updateAllPreferences();

        offerInstallAccessibilitySerivceOnce();

        mSettingsPackageMonitor.register(getActivity(), getActivity().getMainLooper(), false);
        mSettingsContentObserver.register(getContentResolver());
        if (RotationPolicy.isRotationSupported(getActivity())) {
@@ -572,72 +570,6 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
        }
    }

    private void offerInstallAccessibilitySerivceOnce() {
        // There is always one preference - if no services it is just a message.
        if (mServicesCategory.getPreference(0) != mNoServicesMessagePreference) {
            return;
        }
        SharedPreferences preferences = getActivity().getPreferences(Context.MODE_PRIVATE);
        final boolean offerInstallService = !preferences.getBoolean(
                KEY_INSTALL_ACCESSIBILITY_SERVICE_OFFERED_ONCE, false);
        if (offerInstallService) {
            String screenreaderMarketLink = SystemProperties.get(
                    SYSTEM_PROPERTY_MARKET_URL,
                    DEFAULT_SCREENREADER_MARKET_LINK);
            Uri marketUri = Uri.parse(screenreaderMarketLink);
            Intent marketIntent = new Intent(Intent.ACTION_VIEW, marketUri);

            if (getPackageManager().resolveActivity(marketIntent, 0) == null) {
                // Don't show the dialog if no market app is found/installed.
                return;
            }

            preferences.edit().putBoolean(KEY_INSTALL_ACCESSIBILITY_SERVICE_OFFERED_ONCE,
                    true).commit();
            // Notify user that they do not have any accessibility
            // services installed and direct them to Market to get TalkBack.
            showDialog(DIALOG_ID_NO_ACCESSIBILITY_SERVICES);
        }
    }

    @Override
    public Dialog onCreateDialog(int dialogId) {
        switch (dialogId) {
            case DIALOG_ID_NO_ACCESSIBILITY_SERVICES:
                return new AlertDialog.Builder(getActivity())
                .setTitle(R.string.accessibility_service_no_apps_title)
                        .setMessage(R.string.accessibility_service_no_apps_message)
                        .setPositiveButton(android.R.string.ok,
                                new DialogInterface.OnClickListener() {
                                    @Override
                                    public void onClick(DialogInterface dialog, int which) {
                                        // dismiss the dialog before launching
                                        // the activity otherwise the dialog
                                        // removal occurs after
                                        // onSaveInstanceState which triggers an
                                        // exception
                                        removeDialog(DIALOG_ID_NO_ACCESSIBILITY_SERVICES);
                                        String screenreaderMarketLink = SystemProperties.get(
                                                SYSTEM_PROPERTY_MARKET_URL,
                                                DEFAULT_SCREENREADER_MARKET_LINK);
                                        Uri marketUri = Uri.parse(screenreaderMarketLink);
                                        Intent marketIntent = new Intent(Intent.ACTION_VIEW,
                                                marketUri);
                                        try {
                                            startActivity(marketIntent);
                                        } catch (ActivityNotFoundException anfe) {
                                            Log.w(LOG_TAG, "Couldn't start play store activity",
                                                    anfe);
                                        }
                                    }
                                })
                        .setNegativeButton(android.R.string.cancel, null)
                        .create();
            default:
                return null;
        }
    }

    private void loadInstalledServices() {
        Set<ComponentName> installedServices = sInstalledServices;
        installedServices.clear();