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

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

Merge "Remove on/off information if the services cannot toggle service on/off"

parents ca7ca559 04a46cb7
Loading
Loading
Loading
Loading
+18 −5
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@ import com.android.internal.content.PackageMonitor;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.accessibility.AccessibilityUtil.AccessibilityServiceFragmentType;
import com.android.settings.accessibility.AccessibilityUtil.State;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.display.DarkUIPreferenceController;
import com.android.settings.search.BaseSearchIndexProvider;
@@ -254,11 +255,15 @@ public class AccessibilitySettings extends DashboardFragment {
    }

    public static CharSequence getServiceSummary(Context context, AccessibilityServiceInfo info,
            boolean serviceEnabled) {
        final String serviceState = serviceEnabled
            @State int state) {
        final CharSequence serviceSummary = info.loadSummary(context.getPackageManager());
        if (state == State.UNKNOWN) {
            return serviceSummary;
        }

        final String serviceState = (state == State.ON)
                ? context.getString(R.string.accessibility_summary_state_enabled)
                : context.getString(R.string.accessibility_summary_state_disabled);
        final CharSequence serviceSummary = info.loadSummary(context.getPackageManager());
        final String stateSummaryCombo = context.getString(
                R.string.preference_summary_default_combination,
                serviceState, serviceSummary);
@@ -266,6 +271,7 @@ public class AccessibilitySettings extends DashboardFragment {
        return (TextUtils.isEmpty(serviceSummary))
                ? serviceState
                : stateSummaryCombo;

    }

    @VisibleForTesting
@@ -371,13 +377,18 @@ public class AccessibilitySettings extends DashboardFragment {
                description = getString(R.string.accessibility_service_default_description);
            }

            final int fragmentType = AccessibilityUtil.getAccessibilityServiceFragmentType(info);
            if (serviceEnabled && info.crashed) {
                // Update the summaries for services that have crashed.
                preference.setSummary(R.string.accessibility_summary_state_stopped);
                description = getString(R.string.accessibility_description_state_stopped);
            } else {
                int serviceState = serviceEnabled ? State.ON : State.OFF;
                if (fragmentType == AccessibilityServiceFragmentType.INVISIBLE) {
                    serviceState = State.UNKNOWN;
                }
                final CharSequence serviceSummary = getServiceSummary(getContext(), info,
                        serviceEnabled);
                        serviceState);
                preference.setSummary(serviceSummary);
            }

@@ -397,7 +408,7 @@ public class AccessibilitySettings extends DashboardFragment {
                preference.setEnabled(true);
            }

            switch (AccessibilityUtil.getAccessibilityServiceFragmentType(info)) {
            switch (fragmentType) {
                case AccessibilityServiceFragmentType.LEGACY:
                    preference.setFragment(
                            LegacyAccessibilityServicePreferenceFragment.class.getName());
@@ -508,6 +519,8 @@ public class AccessibilitySettings extends DashboardFragment {
            experimentalCategory.removePreference(mDisplayDaltonizerPreferenceScreen);
            mDisplayDaltonizerPreferenceScreen.setOrder(
                    mDisplayMagnificationPreferenceScreen.getOrder() + 1);
            mDisplayDaltonizerPreferenceScreen.setSummary(AccessibilityUtil.getSummary(
                    getContext(), Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED));
            mToggleInversionPreference.setOrder(
                    mDisplayDaltonizerPreferenceScreen.getOrder() + 1);
            mToggleLargePointerIconPreference.setOrder(
+13 −4
Original line number Diff line number Diff line
@@ -16,6 +16,10 @@

package com.android.settings.accessibility;

import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
import static com.android.settings.accessibility.AccessibilityUtil.State.UNKNOWN;

import android.accessibilityservice.AccessibilityServiceInfo;
import android.content.ComponentName;
import android.content.ContentResolver;
@@ -23,6 +27,7 @@ import android.content.Context;
import android.provider.Settings;
import android.view.accessibility.AccessibilityManager;

import com.android.settings.accessibility.AccessibilityUtil.AccessibilityServiceFragmentType;
import com.android.settings.core.TogglePreferenceController;
import com.android.settingslib.accessibility.AccessibilityUtils;

@@ -39,8 +44,7 @@ public class AccessibilitySlicePreferenceController extends TogglePreferenceCont

    private final ComponentName mComponentName;

    private final int ON = 1;
    private final int OFF = 0;
    private static final String EMPTY_STRING = "";

    public AccessibilitySlicePreferenceController(Context context, String preferenceKey) {
        super(context, preferenceKey);
@@ -55,8 +59,13 @@ public class AccessibilitySlicePreferenceController extends TogglePreferenceCont
    @Override
    public CharSequence getSummary() {
        final AccessibilityServiceInfo serviceInfo = getAccessibilityServiceInfo();
        return serviceInfo == null
                ? "" : AccessibilitySettings.getServiceSummary(mContext, serviceInfo, isChecked());
        int serviceState = isChecked() ? ON : OFF;
        if (AccessibilityUtil.getAccessibilityServiceFragmentType(serviceInfo)
                == AccessibilityServiceFragmentType.INVISIBLE) {
            serviceState = UNKNOWN;
        }
        return serviceInfo == null ? EMPTY_STRING : AccessibilitySettings.getServiceSummary(
                mContext, serviceInfo, serviceState);
    }

    @Override
+1 −0
Original line number Diff line number Diff line
@@ -98,6 +98,7 @@ final class AccessibilityUtil {
    /** Denotes the accessibility enabled status */
    @Retention(RetentionPolicy.SOURCE)
    public @interface State {
        int UNKNOWN = -1;
        int OFF = 0;
        int ON = 1;
    }
+1 −21
Original line number Diff line number Diff line
@@ -19,15 +19,10 @@ package com.android.settings.accessibility;
import android.content.Context;
import android.provider.Settings;

import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;

import com.google.common.primitives.Ints;

/** Controller that shows and updates the color correction summary. */
public class DaltonizerPreferenceController extends BasePreferenceController {

    private static final String DALTONIZER_TYPE = Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER;
    private static final String DALTONIZER_ENABLED =
            Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED;

@@ -42,21 +37,6 @@ public class DaltonizerPreferenceController extends BasePreferenceController {

    @Override
    public CharSequence getSummary() {
        final String[] daltonizerSummaries = mContext.getResources().getStringArray(
                R.array.daltonizer_mode_summaries);
        final int[] daltonizerValues = mContext.getResources().getIntArray(
                R.array.daltonizer_type_values);
        final int timeoutValue =
                DaltonizerRadioButtonPreferenceController.getSecureAccessibilityDaltonizerValue(
                        mContext.getContentResolver(), DALTONIZER_TYPE);
        final int idx = Ints.indexOf(daltonizerValues, timeoutValue);
        final String serviceSummary = daltonizerSummaries[idx == -1 ? 0 : idx];

        final CharSequence serviceState = AccessibilityUtil.getSummary(mContext,
                DALTONIZER_ENABLED);

        return mContext.getString(
                R.string.preference_summary_default_combination,
                serviceState, serviceSummary);
        return AccessibilityUtil.getSummary(mContext, DALTONIZER_ENABLED);
    }
}
+2 −17
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@ package com.android.settings.accessibility;

import android.content.Context;
import android.os.Bundle;
import android.provider.Settings;

import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
@@ -41,22 +40,8 @@ public class MagnificationPreferenceController extends BasePreferenceController

    @Override
    public CharSequence getSummary() {
        final boolean tripleTapEnabled = Settings.Secure.getInt(mContext.getContentResolver(),
                Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, 0) == 1;
        final boolean buttonEnabled = Settings.Secure.getInt(mContext.getContentResolver(),
                Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, 0) == 1;

        int summaryResId = 0;
        if (!tripleTapEnabled && !buttonEnabled) {
            summaryResId = R.string.accessibility_feature_state_off;
        } else if (!tripleTapEnabled && buttonEnabled) {
            summaryResId = R.string.accessibility_screen_magnification_navbar_title;
        } else if (tripleTapEnabled && !buttonEnabled) {
            summaryResId = R.string.accessibility_screen_magnification_gestures_title;
        } else {
            summaryResId = R.string.accessibility_screen_magnification_state_navbar_gesture;
        }
        return mContext.getResources().getText(summaryResId);
        return mContext.getResources().getText(
                R.string.accessibility_screen_magnification_navbar_title);
    }

    @Override