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

Commit 61479cde authored by menghanli's avatar menghanli
Browse files

Integrate new accessibility tileService attr into settings

- Accessibilty service: AccessibilityService_tileService
- Accesibility shortcut: AccessibilityShortcutTarget_tileService

Bug: 216614718
Test: manual test
Change-Id: I24baff13300dfc9a242fcfffe0a4888575ca0c9f
parent 0d6909dc
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -221,6 +221,13 @@ public class AccessibilityDetailsSettingsFragment extends InstrumentedFragment {
            extras.putString(AccessibilitySettings.EXTRA_SETTINGS_COMPONENT_NAME,
                    new ComponentName(packageName, settingsClassName).flattenToString());
        }

        final String tileServiceClassName = info.getTileServiceClassName();
        if (!TextUtils.isEmpty(tileServiceClassName)) {
            extras.putString(AccessibilitySettings.EXTRA_TILE_SERVICE_COMPONENT_NAME,
                    new ComponentName(packageName, tileServiceClassName).flattenToString());
        }

        extras.putParcelable(AccessibilitySettings.EXTRA_COMPONENT_NAME, componentName);
        extras.putInt(AccessibilitySettings.EXTRA_ANIMATED_IMAGE_RES, info.getAnimatedImageRes());

+39 −2
Original line number Diff line number Diff line
@@ -97,6 +97,7 @@ public class AccessibilitySettings extends DashboardFragment {
    static final String EXTRA_SETTINGS_TITLE = "settings_title";
    static final String EXTRA_COMPONENT_NAME = "component_name";
    static final String EXTRA_SETTINGS_COMPONENT_NAME = "settings_component_name";
    static final String EXTRA_TILE_SERVICE_COMPONENT_NAME = "tile_service_component_name";
    static final String EXTRA_VIDEO_RAW_RESOURCE_ID = "video_resource";
    static final String EXTRA_LAUNCHED_FROM_SUW = "from_suw";
    static final String EXTRA_ANIMATED_IMAGE_RES = "animated_image_res";
@@ -573,11 +574,13 @@ public class AccessibilitySettings extends DashboardFragment {
                        serviceEnabled);
                final String htmlDescription = info.loadHtmlDescription(mPm);
                final String settingsClassName = info.getSettingsActivityName();
                final String tileServiceClassName = info.getTileServiceClassName();

                putBasicExtras(preference, prefKey, title, description, imageRes, htmlDescription,
                        componentName);
                putServiceExtras(preference, resolveInfo, serviceEnabled);
                putSettingsExtras(preference, packageName, settingsClassName);
                putTileServiceExtras(preference, packageName, tileServiceClassName);

                preferenceList.add(preference);
            }
@@ -631,10 +634,13 @@ public class AccessibilitySettings extends DashboardFragment {
                final int imageRes = info.getAnimatedImageRes();
                final String htmlDescription = info.loadHtmlDescription(mPm);
                final String settingsClassName = info.getSettingsActivityName();
                final String tileServiceClassName = info.getTileServiceClassName();

                putBasicExtras(preference, prefKey, title, description, imageRes, htmlDescription,
                        componentName);
                putSettingsExtras(preference, componentName.getPackageName(), settingsClassName);
                putTileServiceExtras(preference, componentName.getPackageName(),
                        tileServiceClassName);

                preferenceList.add(preference);
            }
@@ -730,7 +736,11 @@ public class AccessibilitySettings extends DashboardFragment {
        /**
         * Puts the service extras into {@link RestrictedPreference}'s getExtras().
         *
         * Called by {@link AccessibilityServiceInfo} for now.
         * <p><b>Note:</b> Called by {@link AccessibilityServiceInfo}.</p>
         *
         * @param preference The preference we are configuring.
         * @param resolveInfo The service resolve info.
         * @param serviceEnabled Whether the accessibility service is enabled.
         */
        private void putServiceExtras(RestrictedPreference preference, ResolveInfo resolveInfo,
                Boolean serviceEnabled) {
@@ -743,7 +753,12 @@ public class AccessibilitySettings extends DashboardFragment {
        /**
         * Puts the settings extras into {@link RestrictedPreference}'s getExtras().
         *
         * Called when settings UI is needed.
         * <p><b>Note:</b> Called when settings UI is needed.</p>
         *
         * @param preference The preference we are configuring.
         * @param packageName Package of accessibility feature.
         * @param settingsClassName The component name of an activity that allows the user to modify
         *                          the settings for this accessibility feature.
         */
        private void putSettingsExtras(RestrictedPreference preference, String packageName,
                String settingsClassName) {
@@ -756,5 +771,27 @@ public class AccessibilitySettings extends DashboardFragment {
                        new ComponentName(packageName, settingsClassName).flattenToString());
            }
        }

        /**
         * Puts the information about a particular application
         * {@link android.service.quicksettings.TileService} into {@link RestrictedPreference}'s
         * getExtras().
         *
         * <p><b>Note:</b> Called when a tooltip of
         * {@link android.service.quicksettings.TileService} is needed.</p>
         *
         * @param preference The preference we are configuring.
         * @param packageName Package of accessibility feature.
         * @param tileServiceClassName The component name of tileService is associated with this
         *                             accessibility feature.
         */
        private void putTileServiceExtras(RestrictedPreference preference, String packageName,
                String tileServiceClassName) {
            final Bundle extras = preference.getExtras();
            if (!TextUtils.isEmpty(tileServiceClassName)) {
                extras.putString(EXTRA_TILE_SERVICE_COMPONENT_NAME,
                        new ComponentName(packageName, tileServiceClassName).flattenToString());
            }
        }
    }
}
+9 −1
Original line number Diff line number Diff line
@@ -53,6 +53,7 @@ public class LaunchAccessibilityActivityPreferenceFragment extends ToggleFeature
    private static final String TAG = "LaunchA11yActivity";
    private static final String EMPTY_STRING = "";
    protected static final String KEY_LAUNCH_PREFERENCE = "launch_preference";
    private ComponentName mTileComponentName;

    @Override
    public int getMetricsCategory() {
@@ -108,6 +109,13 @@ public class LaunchAccessibilityActivityPreferenceFragment extends ToggleFeature
                AccessibilitySettings.EXTRA_SETTINGS_TITLE);
        mSettingsIntent = TextUtils.isEmpty(settingsTitle) ? null : getSettingsIntent(arguments);
        mSettingsTitle = (mSettingsIntent == null) ? null : settingsTitle;

        // Tile service.
        if (arguments.containsKey(AccessibilitySettings.EXTRA_TILE_SERVICE_COMPONENT_NAME)) {
            final String tileServiceComponentName = arguments.getString(
                    AccessibilitySettings.EXTRA_TILE_SERVICE_COMPONENT_NAME);
            mTileComponentName = ComponentName.unflattenFromString(tileServiceComponentName);
        }
    }

    @Override
@@ -118,7 +126,7 @@ public class LaunchAccessibilityActivityPreferenceFragment extends ToggleFeature

    @Override
    ComponentName getTileComponentName() {
        return null;
        return mTileComponentName;
    }

    @Override
+8 −1
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@ public class ToggleAccessibilityServicePreferenceFragment extends
    private static final String EMPTY_STRING = "";

    private Dialog mWarningDialog;
    private ComponentName mTileComponentName;
    private BroadcastReceiver mPackageRemovedReceiver;
    private boolean mDisabledStateLogged = false;
    private long mStartTimeMillsForLogging = 0;
@@ -240,7 +241,7 @@ public class ToggleAccessibilityServicePreferenceFragment extends

    @Override
    ComponentName getTileComponentName() {
        return null;
        return mTileComponentName;
    }

    @Override
@@ -387,6 +388,12 @@ public class ToggleAccessibilityServicePreferenceFragment extends
        mPackageName = getAccessibilityServiceInfo().getResolveInfo().loadLabel(
                getPackageManager());

        if (arguments.containsKey(AccessibilitySettings.EXTRA_TILE_SERVICE_COMPONENT_NAME)) {
            final String tileServiceComponentName = arguments.getString(
                    AccessibilitySettings.EXTRA_TILE_SERVICE_COMPONENT_NAME);
            mTileComponentName = ComponentName.unflattenFromString(tileServiceComponentName);
        }

        mStartTimeMillsForLogging = arguments.getLong(AccessibilitySettings.EXTRA_TIME_FOR_LOGGING);
    }