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

Bug: 148837311
Test: Manual test
Change-Id: I57e0ed33bebc41cde99008bb2ed014c63194c52a
This commit is contained in:
menghanli
2020-02-10 15:29:37 +08:00
committed by Menghan Li
parent 764e05ddfe
commit 04a46cb7c6
5 changed files with 35 additions and 47 deletions

View File

@@ -49,6 +49,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;
@@ -257,11 +258,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);
@@ -269,6 +274,7 @@ public class AccessibilitySettings extends DashboardFragment {
return (TextUtils.isEmpty(serviceSummary))
? serviceState
: stateSummaryCombo;
}
@VisibleForTesting
@@ -377,13 +383,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);
}
@@ -403,7 +414,7 @@ public class AccessibilitySettings extends DashboardFragment {
preference.setEnabled(true);
}
switch (AccessibilityUtil.getAccessibilityServiceFragmentType(info)) {
switch (fragmentType) {
case AccessibilityServiceFragmentType.LEGACY:
preference.setFragment(
LegacyAccessibilityServicePreferenceFragment.class.getName());
@@ -514,6 +525,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(