Merge "Remove on/off information if the services cannot toggle service on/off"
This commit is contained in:
@@ -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(
|
||||||
|
@@ -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
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
@@ -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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user