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

Commit e6cccc1c authored by Menghan Li's avatar Menghan Li Committed by Android (Google) Code Review
Browse files

Merge "Fix unbundled accessibility features settings crash when launched"

parents 90ece439 f76e31fe
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.R;
import com.android.settings.core.InstrumentedFragment;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.accessibility.AccessibilityUtils;

import java.util.List;
@@ -230,6 +231,10 @@ public class AccessibilityDetailsSettingsFragment extends InstrumentedFragment {
                    new ComponentName(packageName, tileServiceClassName).flattenToString());
        }

        final int metricsCategory = FeatureFactory.getFactory(getActivity().getApplicationContext())
                .getAccessibilityMetricsFeatureProvider()
                .getDownloadedFeatureMetricsCategory(componentName);
        extras.putInt(AccessibilitySettings.EXTRA_METRICS_CATEGORY, metricsCategory);
        extras.putParcelable(AccessibilitySettings.EXTRA_COMPONENT_NAME, componentName);
        extras.putInt(AccessibilitySettings.EXTRA_ANIMATED_IMAGE_RES, info.getAnimatedImageRes());

+1 −0
Original line number Diff line number Diff line
@@ -87,6 +87,7 @@ public class AccessibilitySettings extends DashboardFragment {
    static final String EXTRA_ANIMATED_IMAGE_RES = "animated_image_res";
    static final String EXTRA_HTML_DESCRIPTION = "html_description";
    static final String EXTRA_TIME_FOR_LOGGING = "start_time_to_log_a11y_tool";
    static final String EXTRA_METRICS_CATEGORY = "metrics_category";

    // Timeout before we update the services if packages are added/removed
    // since the AccessibilityManagerService has to do that processing first
+1 −10
Original line number Diff line number Diff line
@@ -42,7 +42,6 @@ import androidx.preference.Preference;

import com.android.settings.R;
import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
import com.android.settings.overlay.FeatureFactory;

import java.util.ArrayList;
import java.util.List;
@@ -58,15 +57,7 @@ public class LaunchAccessibilityActivityPreferenceFragment extends ToggleFeature

    @Override
    public int getMetricsCategory() {
        // Retrieve from getArguments() directly because this function will be executed from
        // onAttach(), but variable mComponentName only available after onProcessArguments()
        // which comes from onCreateView().
        final ComponentName componentName = getArguments().getParcelable(
                AccessibilitySettings.EXTRA_COMPONENT_NAME);

        return FeatureFactory.getFactory(getActivity().getApplicationContext())
                .getAccessibilityMetricsFeatureProvider()
                .getDownloadedFeatureMetricsCategory(componentName);
        return getArguments().getInt(AccessibilitySettings.EXTRA_METRICS_CATEGORY);
    }

    @Override
+11 −3
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ import androidx.core.content.ContextCompat;

import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtilsInternal;
import com.android.settingslib.RestrictedPreference;
@@ -118,9 +119,12 @@ public class RestrictedPreferenceHelper {
            final String htmlDescription = info.loadHtmlDescription(mPm);
            final String settingsClassName = info.getSettingsActivityName();
            final String tileServiceClassName = info.getTileServiceName();
            final int metricsCategory = FeatureFactory.getFactory(mContext)
                    .getAccessibilityMetricsFeatureProvider()
                    .getDownloadedFeatureMetricsCategory(componentName);

            putBasicExtras(preference, prefKey, title, intro, description, imageRes,
                    htmlDescription, componentName);
                    htmlDescription, componentName, metricsCategory);
            putServiceExtras(preference, resolveInfo, serviceEnabled);
            putSettingsExtras(preference, packageName, settingsClassName);
            putTileServiceExtras(preference, packageName, tileServiceClassName);
@@ -178,9 +182,12 @@ public class RestrictedPreferenceHelper {
            final String htmlDescription = info.loadHtmlDescription(mPm);
            final String settingsClassName = info.getSettingsActivityName();
            final String tileServiceClassName = info.getTileServiceName();
            final int metricsCategory = FeatureFactory.getFactory(mContext)
                    .getAccessibilityMetricsFeatureProvider()
                    .getDownloadedFeatureMetricsCategory(componentName);

            putBasicExtras(preference, prefKey, title, intro, description, imageRes,
                    htmlDescription, componentName);
                    htmlDescription, componentName, metricsCategory);
            putSettingsExtras(preference, componentName.getPackageName(), settingsClassName);
            putTileServiceExtras(preference, componentName.getPackageName(),
                    tileServiceClassName);
@@ -265,7 +272,7 @@ public class RestrictedPreferenceHelper {
    /** Puts the basic extras into {@link RestrictedPreference}'s getExtras(). */
    private void putBasicExtras(RestrictedPreference preference, String prefKey,
            CharSequence title, CharSequence intro, CharSequence summary, int imageRes,
            String htmlDescription, ComponentName componentName) {
            String htmlDescription, ComponentName componentName, int metricsCategory) {
        final Bundle extras = preference.getExtras();
        extras.putString(AccessibilitySettings.EXTRA_PREFERENCE_KEY, prefKey);
        extras.putCharSequence(AccessibilitySettings.EXTRA_TITLE, title);
@@ -274,6 +281,7 @@ public class RestrictedPreferenceHelper {
        extras.putParcelable(AccessibilitySettings.EXTRA_COMPONENT_NAME, componentName);
        extras.putInt(AccessibilitySettings.EXTRA_ANIMATED_IMAGE_RES, imageRes);
        extras.putString(AccessibilitySettings.EXTRA_HTML_DESCRIPTION, htmlDescription);
        extras.putInt(AccessibilitySettings.EXTRA_METRICS_CATEGORY, metricsCategory);
    }

    /**
+1 −10
Original line number Diff line number Diff line
@@ -49,7 +49,6 @@ import androidx.annotation.Nullable;
import com.android.settings.R;
import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.accessibility.AccessibilityUtils;

import java.util.List;
@@ -71,15 +70,7 @@ public class ToggleAccessibilityServicePreferenceFragment extends

    @Override
    public int getMetricsCategory() {
        // Retrieve from getArguments() directly because this function will be executed from
        // onAttach(), but variable mComponentName only available after onProcessArguments()
        // which comes from onCreateView().
        final ComponentName componentName = getArguments().getParcelable(
                AccessibilitySettings.EXTRA_COMPONENT_NAME);

        return FeatureFactory.getFactory(getActivity().getApplicationContext())
                .getAccessibilityMetricsFeatureProvider()
                .getDownloadedFeatureMetricsCategory(componentName);
        return getArguments().getInt(AccessibilitySettings.EXTRA_METRICS_CATEGORY);
    }

    @Override