From 6de4093876dd102803ac029766869592cf92489b Mon Sep 17 00:00:00 2001 From: Pawan Wagh Date: Tue, 14 May 2024 19:06:54 +0000 Subject: [PATCH] Turn off voice access in 16KB mode VoiceAccess doesn't support the 16KB mode yet. Skipping voice accesss service when in page-agnostic mode. Test: m Settings && adb install -r $ANDROID_PRODUCT_OUT/system_ext/priv-app/Settings/Settings.apk Bug: 335443194 Bug: 340231742 Change-Id: If4deae48aaa221c843af5eb65208659ad38a08b2 --- .../settings/accessibility/AccessibilitySettings.java | 8 ++++++++ .../accessibility/RestrictedPreferenceHelper.java | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/src/com/android/settings/accessibility/AccessibilitySettings.java b/src/com/android/settings/accessibility/AccessibilitySettings.java index 35fe6e4e600..2295dee8272 100644 --- a/src/com/android/settings/accessibility/AccessibilitySettings.java +++ b/src/com/android/settings/accessibility/AccessibilitySettings.java @@ -44,6 +44,7 @@ import com.android.internal.content.PackageMonitor; import com.android.settings.R; import com.android.settings.accessibility.AccessibilityUtil.AccessibilityServiceFragmentType; import com.android.settings.dashboard.DashboardFragment; +import com.android.settings.development.Enable16kUtils; import com.android.settings.inputmethod.PhysicalKeyboardFragment; import com.android.settings.overlay.FeatureFactory; import com.android.settings.search.BaseSearchIndexProvider; @@ -98,6 +99,8 @@ public class AccessibilitySettings extends DashboardFragment implements static final String EXTRA_TIME_FOR_LOGGING = "start_time_to_log_a11y_tool"; static final String EXTRA_METRICS_CATEGORY = "metrics_category"; + public static final String VOICE_ACCESS_SERVICE = "android.apps.accessibility.voiceaccess"; + // Timeout before we update the services if packages are added/removed // since the AccessibilityManagerService has to do that processing first // to generate the AccessibilityServiceInfo we need for proper @@ -488,6 +491,11 @@ public class AccessibilitySettings extends DashboardFragment implements String[] services = getResources().getStringArray(key); PreferenceCategory category = mCategoryToPrefCategoryMap.get(categoryKey); for (int i = 0; i < services.length; i++) { + // TODO(b/335443194) Voice access is not available in 16kB mode. + if (services[i].contains(VOICE_ACCESS_SERVICE) + && Enable16kUtils.isPageAgnosticModeOn(getContext())) { + continue; + } ComponentName component = ComponentName.unflattenFromString(services[i]); mPreBundledServiceComponentToCategoryMap.put(component, category); } diff --git a/src/com/android/settings/accessibility/RestrictedPreferenceHelper.java b/src/com/android/settings/accessibility/RestrictedPreferenceHelper.java index c806c0bc5a8..7455eea51ce 100644 --- a/src/com/android/settings/accessibility/RestrictedPreferenceHelper.java +++ b/src/com/android/settings/accessibility/RestrictedPreferenceHelper.java @@ -16,6 +16,7 @@ package com.android.settings.accessibility; +import static com.android.settings.accessibility.AccessibilitySettings.VOICE_ACCESS_SERVICE; import static com.android.settingslib.widget.TwoTargetPreference.ICON_SIZE_MEDIUM; import android.accessibilityservice.AccessibilityServiceInfo; @@ -37,6 +38,7 @@ import androidx.core.content.ContextCompat; import com.android.settings.R; import com.android.settings.Utils; +import com.android.settings.development.Enable16kUtils; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtilsInternal; @@ -89,6 +91,11 @@ public class RestrictedPreferenceHelper { final AccessibilityServiceInfo info = installedServices.get(i); final ResolveInfo resolveInfo = info.getResolveInfo(); final String packageName = resolveInfo.serviceInfo.packageName; + // TODO(b/335443194) Voice access is not available in 16kB mode. + if (packageName.contains(VOICE_ACCESS_SERVICE) + && Enable16kUtils.isPageAgnosticModeOn(mContext)) { + continue; + } final ComponentName componentName = new ComponentName(packageName, resolveInfo.serviceInfo.name);