From a6308c09a83e0c3bacedb5ead38ce944b2ac4ed0 Mon Sep 17 00:00:00 2001 From: Kevin Chang Date: Mon, 15 Jul 2019 16:23:51 +0800 Subject: [PATCH] Change string of switchbar and installed service category title Bug: 122897712 Test: Visual Change-Id: I0f56b4b7375e651a74189dd17e6b3bd8b99ccfca --- res/values/strings.xml | 4 ++-- ...cessibilityShortcutPreferenceFragment.java | 8 ++++++++ ...ccessibilityServicePreferenceFragment.java | 10 ++++++++++ .../ToggleAutoclickPreferenceFragment.java | 7 +++++++ .../ToggleDaltonizerPreferenceFragment.java | 5 +++-- .../ToggleFeaturePreferenceFragment.java | 2 +- ...ScreenMagnificationPreferenceFragment.java | 7 +++++++ .../android/settings/widget/SwitchBar.java | 20 +++++++++++-------- .../settings/widget/SwitchBarTest.java | 18 +++++++++++++++++ 9 files changed, 68 insertions(+), 13 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 46c5d0a73c4..bdb2e57208a 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -4685,7 +4685,7 @@ Interaction controls - Downloaded services + Downloaded apps Experimental @@ -4809,7 +4809,7 @@ Touch feedback - Use service + Use %1$s Use color correction diff --git a/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java b/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java index 95a2b76c2f2..ab855bc3811 100644 --- a/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java +++ b/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java @@ -34,6 +34,7 @@ import androidx.preference.SwitchPreference; import com.android.internal.accessibility.AccessibilityShortcutController; import com.android.settings.R; +import com.android.settings.widget.SwitchBar; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settingslib.search.Indexable; import com.android.settingslib.accessibility.AccessibilityUtils; @@ -126,6 +127,13 @@ public class AccessibilityShortcutPreferenceFragment extends ToggleFeaturePrefer updatePreferences(); } + @Override + protected void updateSwitchBarText(SwitchBar switchBar) { + final String switchBarText = getString(R.string.accessibility_service_master_switch_title, + getString(R.string.accessibility_global_gesture_preference_title)); + switchBar.setSwitchBarText(switchBarText, switchBarText); + } + private void updatePreferences() { ContentResolver cr = getContentResolver(); Context context = getContext(); diff --git a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java index 1556beceeaa..f30af54fc36 100644 --- a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java @@ -44,6 +44,7 @@ import android.view.accessibility.AccessibilityManager; import com.android.internal.widget.LockPatternUtils; import com.android.settings.R; import com.android.settings.password.ConfirmDeviceCredentialActivity; +import com.android.settings.widget.SwitchBar; import com.android.settings.widget.ToggleSwitch; import com.android.settings.widget.ToggleSwitch.OnBeforeCheckedChangeListener; import com.android.settingslib.accessibility.AccessibilityUtils; @@ -211,6 +212,15 @@ public class ToggleAccessibilityServicePreferenceFragment extends ToggleFeatureP } } + @Override + protected void updateSwitchBarText(SwitchBar switchBar) { + final AccessibilityServiceInfo info = getAccessibilityServiceInfo(); + final String switchBarText = (info == null) ? "" : + getString(R.string.accessibility_service_master_switch_title, + info.getResolveInfo().loadLabel(getPackageManager())); + switchBar.setSwitchBarText(switchBarText, switchBarText); + } + private void updateSwitchBarToggleSwitch() { final boolean checked = AccessibilityUtils.getEnabledServicesFromSettings(getActivity()) .contains(mComponentName); diff --git a/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java index df72cffdfac..45dd39ee3fe 100644 --- a/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java @@ -172,6 +172,13 @@ public class ToggleAutoclickPreferenceFragment extends ToggleFeaturePreferenceFr return false; } + @Override + protected void updateSwitchBarText(SwitchBar switchBar) { + final String switchBarText = getString(R.string.accessibility_service_master_switch_title, + getString(R.string.accessibility_autoclick_preference_title)); + switchBar.setSwitchBarText(switchBarText, switchBarText); + } + /** * Converts seek bar preference progress value to autoclick delay associated with it. */ diff --git a/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java index c5376eb0a8e..e02a74a59bd 100644 --- a/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java @@ -105,8 +105,9 @@ public class ToggleDaltonizerPreferenceFragment extends ToggleFeaturePreferenceF @Override protected void updateSwitchBarText(SwitchBar switchBar) { - switchBar.setSwitchBarText(R.string.accessibility_daltonizer_master_switch_title, - R.string.accessibility_daltonizer_master_switch_title); + final String switchBarText = getString(R.string.accessibility_service_master_switch_title, + getString(R.string.accessibility_display_daltonizer_preference_title)); + switchBar.setSwitchBarText(switchBarText, switchBarText); } private void initPreferences() { diff --git a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java index 314a577f216..a4b18787fdb 100644 --- a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java @@ -58,10 +58,10 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference SettingsActivity activity = (SettingsActivity) getActivity(); mSwitchBar = activity.getSwitchBar(); - updateSwitchBarText(mSwitchBar); mToggleSwitch = mSwitchBar.getSwitch(); onProcessArguments(getArguments()); + updateSwitchBarText(mSwitchBar); // Show the "Settings" menu as if it were a preference screen if (mSettingsTitle != null && mSettingsIntent != null) { diff --git a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java index ec3ebcc1a68..c7269d17632 100644 --- a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java @@ -227,6 +227,13 @@ public class ToggleScreenMagnificationPreferenceFragment extends mSwitchBar.removeOnSwitchChangeListener(this); } + @Override + protected void updateSwitchBarText(SwitchBar switchBar) { + final String switchBarText = getString(R.string.accessibility_service_master_switch_title, + getString(R.string.accessibility_screen_magnification_title)); + switchBar.setSwitchBarText(switchBarText, switchBarText); + } + @Override protected void onProcessArguments(Bundle arguments) { super.onProcessArguments(arguments); diff --git a/src/com/android/settings/widget/SwitchBar.java b/src/com/android/settings/widget/SwitchBar.java index 0dd59e62c98..de0d98b4a37 100644 --- a/src/com/android/settings/widget/SwitchBar.java +++ b/src/com/android/settings/widget/SwitchBar.java @@ -77,14 +77,12 @@ public class SwitchBar extends LinearLayout implements CompoundButton.OnCheckedC private TextView mTextView; private String mLabel; private String mSummary; + private String mOnText; + private String mOffText; @ColorInt private int mBackgroundColor; @ColorInt private int mBackgroundActivatedColor; - @StringRes - private int mOnTextId; - @StringRes - private int mOffTextId; private boolean mLoggingIntialized; private boolean mDisabledByAdmin; @@ -178,14 +176,20 @@ public class SwitchBar extends LinearLayout implements CompoundButton.OnCheckedC } public void setTextViewLabelAndBackground(boolean isChecked) { - mLabel = getResources().getString(isChecked ? mOnTextId : mOffTextId); + mLabel = isChecked ? mOnText : mOffText; setBackgroundColor(isChecked ? mBackgroundActivatedColor : mBackgroundColor); updateText(); } - public void setSwitchBarText(int onText, int offText) { - mOnTextId = onText; - mOffTextId = offText; + public void setSwitchBarText(int onTextId, int offTextId) { + mOnText = getResources().getString(onTextId); + mOffText = getResources().getString(offTextId); + setTextViewLabelAndBackground(isChecked()); + } + + public void setSwitchBarText(String onText, String offText) { + mOnText = onText; + mOffText = offText; setTextViewLabelAndBackground(isChecked()); } diff --git a/tests/robotests/src/com/android/settings/widget/SwitchBarTest.java b/tests/robotests/src/com/android/settings/widget/SwitchBarTest.java index f1862222ee4..31cb9665c7d 100644 --- a/tests/robotests/src/com/android/settings/widget/SwitchBarTest.java +++ b/tests/robotests/src/com/android/settings/widget/SwitchBarTest.java @@ -84,6 +84,24 @@ public class SwitchBarTest { .isEqualTo(mContext.getString(onText)); } + @Test + public void setCheck_customLabelWithStringType_shouldUpdateTextAndBackground() { + final String onText = mContext.getString( + R.string.accessibility_service_master_switch_title); + final String offText = mContext.getString( + R.string.accessibility_service_master_switch_title); + final TextView switchBarTextView = ((TextView) mBar.findViewById(R.id.switch_text)); + + mBar.setSwitchBarText(onText, offText); + + assertThat(switchBarTextView.getText()).isEqualTo(offText); + + mBar.setChecked(true); + + assertThat(mBar.getBackground()).isInstanceOf(ColorDrawable.class); + assertThat(switchBarTextView.getText()).isEqualTo(onText); + } + @Test public void disabledByAdmin_shouldDelegateToRestrictedIcon() { mBar.setDisabledByAdmin(new EnforcedAdmin());