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

This commit is contained in:
Menghan Li
2020-02-13 15:33:48 +00:00
committed by Android (Google) Code Review
5 changed files with 35 additions and 47 deletions

View File

@@ -48,6 +48,7 @@ import com.android.internal.content.PackageMonitor;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.accessibility.AccessibilityUtil.AccessibilityServiceFragmentType; import com.android.settings.accessibility.AccessibilityUtil.AccessibilityServiceFragmentType;
import com.android.settings.accessibility.AccessibilityUtil.State;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.display.DarkUIPreferenceController; import com.android.settings.display.DarkUIPreferenceController;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
@@ -254,11 +255,15 @@ public class AccessibilitySettings extends DashboardFragment {
} }
public static CharSequence getServiceSummary(Context context, AccessibilityServiceInfo info, public static CharSequence getServiceSummary(Context context, AccessibilityServiceInfo info,
boolean serviceEnabled) { @State int state) {
final String serviceState = serviceEnabled 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_enabled)
: context.getString(R.string.accessibility_summary_state_disabled); : context.getString(R.string.accessibility_summary_state_disabled);
final CharSequence serviceSummary = info.loadSummary(context.getPackageManager());
final String stateSummaryCombo = context.getString( final String stateSummaryCombo = context.getString(
R.string.preference_summary_default_combination, R.string.preference_summary_default_combination,
serviceState, serviceSummary); serviceState, serviceSummary);
@@ -266,6 +271,7 @@ public class AccessibilitySettings extends DashboardFragment {
return (TextUtils.isEmpty(serviceSummary)) return (TextUtils.isEmpty(serviceSummary))
? serviceState ? serviceState
: stateSummaryCombo; : stateSummaryCombo;
} }
@VisibleForTesting @VisibleForTesting
@@ -371,13 +377,18 @@ public class AccessibilitySettings extends DashboardFragment {
description = getString(R.string.accessibility_service_default_description); description = getString(R.string.accessibility_service_default_description);
} }
final int fragmentType = AccessibilityUtil.getAccessibilityServiceFragmentType(info);
if (serviceEnabled && info.crashed) { if (serviceEnabled && info.crashed) {
// Update the summaries for services that have crashed. // Update the summaries for services that have crashed.
preference.setSummary(R.string.accessibility_summary_state_stopped); preference.setSummary(R.string.accessibility_summary_state_stopped);
description = getString(R.string.accessibility_description_state_stopped); description = getString(R.string.accessibility_description_state_stopped);
} else { } else {
int serviceState = serviceEnabled ? State.ON : State.OFF;
if (fragmentType == AccessibilityServiceFragmentType.INVISIBLE) {
serviceState = State.UNKNOWN;
}
final CharSequence serviceSummary = getServiceSummary(getContext(), info, final CharSequence serviceSummary = getServiceSummary(getContext(), info,
serviceEnabled); serviceState);
preference.setSummary(serviceSummary); preference.setSummary(serviceSummary);
} }
@@ -397,7 +408,7 @@ public class AccessibilitySettings extends DashboardFragment {
preference.setEnabled(true); preference.setEnabled(true);
} }
switch (AccessibilityUtil.getAccessibilityServiceFragmentType(info)) { switch (fragmentType) {
case AccessibilityServiceFragmentType.LEGACY: case AccessibilityServiceFragmentType.LEGACY:
preference.setFragment( preference.setFragment(
LegacyAccessibilityServicePreferenceFragment.class.getName()); LegacyAccessibilityServicePreferenceFragment.class.getName());
@@ -508,6 +519,8 @@ public class AccessibilitySettings extends DashboardFragment {
experimentalCategory.removePreference(mDisplayDaltonizerPreferenceScreen); experimentalCategory.removePreference(mDisplayDaltonizerPreferenceScreen);
mDisplayDaltonizerPreferenceScreen.setOrder( mDisplayDaltonizerPreferenceScreen.setOrder(
mDisplayMagnificationPreferenceScreen.getOrder() + 1); mDisplayMagnificationPreferenceScreen.getOrder() + 1);
mDisplayDaltonizerPreferenceScreen.setSummary(AccessibilityUtil.getSummary(
getContext(), Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED));
mToggleInversionPreference.setOrder( mToggleInversionPreference.setOrder(
mDisplayDaltonizerPreferenceScreen.getOrder() + 1); mDisplayDaltonizerPreferenceScreen.getOrder() + 1);
mToggleLargePointerIconPreference.setOrder( mToggleLargePointerIconPreference.setOrder(

View File

@@ -16,6 +16,10 @@
package com.android.settings.accessibility; 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.accessibilityservice.AccessibilityServiceInfo;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.ContentResolver; import android.content.ContentResolver;
@@ -23,6 +27,7 @@ import android.content.Context;
import android.provider.Settings; import android.provider.Settings;
import android.view.accessibility.AccessibilityManager; import android.view.accessibility.AccessibilityManager;
import com.android.settings.accessibility.AccessibilityUtil.AccessibilityServiceFragmentType;
import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.TogglePreferenceController;
import com.android.settingslib.accessibility.AccessibilityUtils; import com.android.settingslib.accessibility.AccessibilityUtils;
@@ -39,8 +44,7 @@ public class AccessibilitySlicePreferenceController extends TogglePreferenceCont
private final ComponentName mComponentName; private final ComponentName mComponentName;
private final int ON = 1; private static final String EMPTY_STRING = "";
private final int OFF = 0;
public AccessibilitySlicePreferenceController(Context context, String preferenceKey) { public AccessibilitySlicePreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey); super(context, preferenceKey);
@@ -55,8 +59,13 @@ public class AccessibilitySlicePreferenceController extends TogglePreferenceCont
@Override @Override
public CharSequence getSummary() { public CharSequence getSummary() {
final AccessibilityServiceInfo serviceInfo = getAccessibilityServiceInfo(); final AccessibilityServiceInfo serviceInfo = getAccessibilityServiceInfo();
return serviceInfo == null int serviceState = isChecked() ? ON : OFF;
? "" : AccessibilitySettings.getServiceSummary(mContext, serviceInfo, isChecked()); if (AccessibilityUtil.getAccessibilityServiceFragmentType(serviceInfo)
== AccessibilityServiceFragmentType.INVISIBLE) {
serviceState = UNKNOWN;
}
return serviceInfo == null ? EMPTY_STRING : AccessibilitySettings.getServiceSummary(
mContext, serviceInfo, serviceState);
} }
@Override @Override

View File

@@ -98,6 +98,7 @@ final class AccessibilityUtil {
/** Denotes the accessibility enabled status */ /** Denotes the accessibility enabled status */
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
public @interface State { public @interface State {
int UNKNOWN = -1;
int OFF = 0; int OFF = 0;
int ON = 1; int ON = 1;
} }

View File

@@ -19,15 +19,10 @@ package com.android.settings.accessibility;
import android.content.Context; import android.content.Context;
import android.provider.Settings; import android.provider.Settings;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.google.common.primitives.Ints;
/** Controller that shows and updates the color correction summary. */ /** Controller that shows and updates the color correction summary. */
public class DaltonizerPreferenceController extends BasePreferenceController { public class DaltonizerPreferenceController extends BasePreferenceController {
private static final String DALTONIZER_TYPE = Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER;
private static final String DALTONIZER_ENABLED = private static final String DALTONIZER_ENABLED =
Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED; Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED;
@@ -42,21 +37,6 @@ public class DaltonizerPreferenceController extends BasePreferenceController {
@Override @Override
public CharSequence getSummary() { public CharSequence getSummary() {
final String[] daltonizerSummaries = mContext.getResources().getStringArray( return AccessibilityUtil.getSummary(mContext, DALTONIZER_ENABLED);
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);
} }
} }

View File

@@ -18,7 +18,6 @@ package com.android.settings.accessibility;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.provider.Settings;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
@@ -41,22 +40,8 @@ public class MagnificationPreferenceController extends BasePreferenceController
@Override @Override
public CharSequence getSummary() { public CharSequence getSummary() {
final boolean tripleTapEnabled = Settings.Secure.getInt(mContext.getContentResolver(), return mContext.getResources().getText(
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, 0) == 1; R.string.accessibility_screen_magnification_navbar_title);
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);
} }
@Override @Override