diff --git a/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragment.java b/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragment.java index c3359e43aef..04db8253b03 100644 --- a/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragment.java +++ b/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragment.java @@ -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()); diff --git a/src/com/android/settings/accessibility/AccessibilitySettings.java b/src/com/android/settings/accessibility/AccessibilitySettings.java index 10081835714..23f8fd338a1 100644 --- a/src/com/android/settings/accessibility/AccessibilitySettings.java +++ b/src/com/android/settings/accessibility/AccessibilitySettings.java @@ -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 diff --git a/src/com/android/settings/accessibility/LaunchAccessibilityActivityPreferenceFragment.java b/src/com/android/settings/accessibility/LaunchAccessibilityActivityPreferenceFragment.java index 1f8374dbbbd..80d1ce0cdd0 100644 --- a/src/com/android/settings/accessibility/LaunchAccessibilityActivityPreferenceFragment.java +++ b/src/com/android/settings/accessibility/LaunchAccessibilityActivityPreferenceFragment.java @@ -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 diff --git a/src/com/android/settings/accessibility/RestrictedPreferenceHelper.java b/src/com/android/settings/accessibility/RestrictedPreferenceHelper.java index 4344accbfec..00339a1a9aa 100644 --- a/src/com/android/settings/accessibility/RestrictedPreferenceHelper.java +++ b/src/com/android/settings/accessibility/RestrictedPreferenceHelper.java @@ -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); } /** diff --git a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java index f1c0202538d..594117013a2 100644 --- a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java @@ -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