OSDN Git Service

Change string of switchbar and installed service category title
authorKevin Chang <kevincpchang@google.com>
Mon, 6 May 2019 05:31:05 +0000 (13:31 +0800)
committerKevin Chang <kevincpchang@google.com>
Tue, 14 May 2019 03:47:19 +0000 (11:47 +0800)
Bug: 122897712
Test: Visual
Change-Id: I4e15ebc8b91c58d24aadb7e665c6692ebcd627a8

res/values/strings.xml
src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
src/com/android/settings/widget/SwitchBar.java

index 1b24912..be4f791 100644 (file)
     <!-- Title for the accessibility preference category of interaction control services and settings. [CHAR LIMIT=50] -->
     <string name="interaction_control_category_title">Interaction controls</string>
     <!-- Title for the accessibility preference category of services downloaded by the user. [CHAR LIMIT=50] -->
-    <string name="user_installed_services_category_title">Downloaded services</string>
+    <string name="user_installed_services_category_title">Downloaded apps</string>
     <!-- Title for the accessibility preference category of settings considered to be experimental, meaning they might be changed or removed in the future. [CHAR LIMIT=50] -->
     <string name="experimental_category_title">Experimental</string>
     <!-- Title for feature flags dashboard where developers can turn on experimental features [CHAR LIMIT=50] -->
     <!-- Title for accessibility preference for configuring touch feedback vibrations. -->
     <string name="accessibility_touch_vibration_title">Touch feedback</string>
     <!-- Used in the acessibilty service settings to control turning on/off the service entirely -->
-    <string name="accessibility_service_master_switch_title">Use service</string>
+    <string name="accessibility_service_master_switch_title">Use <xliff:g id="service" example="TalkBack">%1$s</xliff:g></string>
     <!-- Used in the Color correction settings screen to control turning on/off the feature entirely -->
     <string name="accessibility_daltonizer_master_switch_title">Use color correction</string>
     <!-- Used in the Captions settings screen to control turning on/off the feature entirely -->
     </string>
 
     <!-- Title for the action perform in accessibility dialog. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_service_action_perform_title">View and platform actions</string>
+    <string name="accessibility_service_action_perform_title">View and perform actions</string>
 
     <!-- Description for the action perform in accessibility dialog. [CHAR LIMIT=NONE] -->
     <string name="accessibility_service_action_perform_description">It can track your interactions
index b28d8b5..4fe6507 100644 (file)
@@ -86,6 +86,16 @@ public class ToggleAccessibilityServicePreferenceFragment
     }
 
     @Override
+    public void onViewCreated(View view, Bundle savedInstanceState) {
+        super.onViewCreated(view, savedInstanceState);
+        mSwitchBar.setLabelDelegate((boolean isChecked) -> {
+            final AccessibilityServiceInfo info = getAccessibilityServiceInfo();
+            return getString(R.string.accessibility_service_master_switch_title,
+                    info.getResolveInfo().loadLabel(getPackageManager()));
+        });
+    }
+
+    @Override
     public void onResume() {
         mSettingsContentObserver.register(getContentResolver());
         updateSwitchBarToggleSwitch();
@@ -120,7 +130,7 @@ public class ToggleAccessibilityServicePreferenceFragment
                 return serviceInfo;
             }
         }
-        return null;
+        throw new IllegalStateException("ServiceInfo is not found.");
     }
 
     @Override
@@ -128,18 +138,12 @@ public class ToggleAccessibilityServicePreferenceFragment
         switch (dialogId) {
             case DIALOG_ID_ENABLE_WARNING: {
                 final AccessibilityServiceInfo info = getAccessibilityServiceInfo();
-                if (info == null) {
-                    return null;
-                }
                 mDialog = AccessibilityServiceWarning
                         .createCapabilitiesDialog(getActivity(), info, this);
                 break;
             }
             case DIALOG_ID_DISABLE_WARNING: {
                 AccessibilityServiceInfo info = getAccessibilityServiceInfo();
-                if (info == null) {
-                    return null;
-                }
                 mDialog = AccessibilityServiceWarning
                         .createDisableDialog(getActivity(), info, this);
                 break;
index f8743d1..3341304 100644 (file)
@@ -61,6 +61,16 @@ public class SwitchBar extends LinearLayout implements CompoundButton.OnCheckedC
         void onSwitchChanged(Switch switchView, boolean isChecked);
     }
 
+    public interface LabelDelegate {
+        /**
+         * Called to create label and set the title with Accessibility
+         * service name to the textView of switchBar.
+         *
+         * @param isChecked  The checked state of switchView.
+         */
+        String createLabel(boolean isChecked);
+    }
+
     private static final int[] XML_ATTRIBUTES = {
             R.attr.switchBarMarginStart,
             R.attr.switchBarMarginEnd,
@@ -90,6 +100,7 @@ public class SwitchBar extends LinearLayout implements CompoundButton.OnCheckedC
     private boolean mDisabledByAdmin;
     private EnforcedAdmin mEnforcedAdmin = null;
     private String mMetricsTag;
+    private LabelDelegate mLabelDelegate;
 
 
     public SwitchBar(Context context) {
@@ -178,7 +189,11 @@ public class SwitchBar extends LinearLayout implements CompoundButton.OnCheckedC
     }
 
     public void setTextViewLabelAndBackground(boolean isChecked) {
-        mLabel = getResources().getString(isChecked ? mOnTextId : mOffTextId);
+        if(mLabelDelegate != null) {
+            mLabel = mLabelDelegate.createLabel(isChecked);
+        } else {
+            mLabel = getResources().getString(isChecked ? mOnTextId : mOffTextId);
+        }
         setBackgroundColor(isChecked ? mBackgroundActivatedColor : mBackgroundColor);
         updateText();
     }
@@ -383,4 +398,9 @@ public class SwitchBar extends LinearLayout implements CompoundButton.OnCheckedC
 
         requestLayout();
     }
+
+    public void setLabelDelegate(LabelDelegate labelDelegate) {
+        mLabelDelegate = labelDelegate;
+        setTextViewLabelAndBackground(isChecked());
+    }
 }