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
This commit is contained in:
Pawan Wagh
2024-05-14 19:06:54 +00:00
parent d652d54d93
commit 6de4093876
2 changed files with 15 additions and 0 deletions

View File

@@ -44,6 +44,7 @@ import com.android.internal.content.PackageMonitor;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.accessibility.AccessibilityUtil.AccessibilityServiceFragmentType; import com.android.settings.accessibility.AccessibilityUtil.AccessibilityServiceFragmentType;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.development.Enable16kUtils;
import com.android.settings.inputmethod.PhysicalKeyboardFragment; import com.android.settings.inputmethod.PhysicalKeyboardFragment;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.BaseSearchIndexProvider; 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_TIME_FOR_LOGGING = "start_time_to_log_a11y_tool";
static final String EXTRA_METRICS_CATEGORY = "metrics_category"; 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 // Timeout before we update the services if packages are added/removed
// since the AccessibilityManagerService has to do that processing first // since the AccessibilityManagerService has to do that processing first
// to generate the AccessibilityServiceInfo we need for proper // to generate the AccessibilityServiceInfo we need for proper
@@ -488,6 +491,11 @@ public class AccessibilitySettings extends DashboardFragment implements
String[] services = getResources().getStringArray(key); String[] services = getResources().getStringArray(key);
PreferenceCategory category = mCategoryToPrefCategoryMap.get(categoryKey); PreferenceCategory category = mCategoryToPrefCategoryMap.get(categoryKey);
for (int i = 0; i < services.length; i++) { 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]); ComponentName component = ComponentName.unflattenFromString(services[i]);
mPreBundledServiceComponentToCategoryMap.put(component, category); mPreBundledServiceComponentToCategoryMap.put(component, category);
} }

View File

@@ -16,6 +16,7 @@
package com.android.settings.accessibility; 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 static com.android.settingslib.widget.TwoTargetPreference.ICON_SIZE_MEDIUM;
import android.accessibilityservice.AccessibilityServiceInfo; import android.accessibilityservice.AccessibilityServiceInfo;
@@ -37,6 +38,7 @@ import androidx.core.content.ContextCompat;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.development.Enable16kUtils;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtilsInternal; import com.android.settingslib.RestrictedLockUtilsInternal;
@@ -89,6 +91,11 @@ public class RestrictedPreferenceHelper {
final AccessibilityServiceInfo info = installedServices.get(i); final AccessibilityServiceInfo info = installedServices.get(i);
final ResolveInfo resolveInfo = info.getResolveInfo(); final ResolveInfo resolveInfo = info.getResolveInfo();
final String packageName = resolveInfo.serviceInfo.packageName; 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, final ComponentName componentName = new ComponentName(packageName,
resolveInfo.serviceInfo.name); resolveInfo.serviceInfo.name);