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

Commit 6de40938 authored by Pawan Wagh's avatar Pawan Wagh
Browse files

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
parent d652d54d
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -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);
        }
+7 −0
Original line number Diff line number Diff line
@@ -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);