From 17ff2b25a5fb8b1c10174bffe21e17f73abba59d Mon Sep 17 00:00:00 2001 From: Qi Cao Date: Thu, 27 Jan 2022 14:51:35 -0800 Subject: [PATCH] Made following changes to Settings: - Moved the Voice Input setting from Digital assistant app to Languages & input. - Bundled Voice Input and Text-to-speech settings together under Speech category. Bug: 218609449 Test: refactoring CL. Existing unit tests still pass. Change-Id: I3107a410ed35685f5f1081cbe448b105b5c79c24 --- res/values/strings.xml | 3 + res/xml/language_and_input.xml | 28 +++++---- res/xml/manage_assist.xml | 5 -- .../applications/assist/ManageAssist.java | 1 - .../DefaultVoiceInputPicker.java | 20 ++++--- ...DefaultVoiceInputPreferenceController.java | 10 ++-- .../language/LanguageAndInputSettings.java | 16 +++-- .../assist => language}/VoiceInputHelper.java | 58 +++++++++++-------- 8 files changed, 81 insertions(+), 60 deletions(-) rename src/com/android/settings/{applications/assist => language}/DefaultVoiceInputPicker.java (85%) rename src/com/android/settings/{applications/assist => language}/DefaultVoiceInputPreferenceController.java (95%) rename src/com/android/settings/{applications/assist => language}/VoiceInputHelper.java (77%) diff --git a/res/values/strings.xml b/res/values/strings.xml index a50c51a5386..e2402ab140e 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -4983,6 +4983,9 @@ Default + + Speech + Pointer speed diff --git a/res/xml/language_and_input.xml b/res/xml/language_and_input.xml index f2b6d8a1df9..c99d5911686 100644 --- a/res/xml/language_and_input.xml +++ b/res/xml/language_and_input.xml @@ -38,8 +38,6 @@ android:name="classname" android:value="com.android.settings.applications.appinfo.AppLocaleDetails" /> - - + + + + + + + @@ -79,20 +93,12 @@ - - - - - - mAvailableRecognition; - // TODO: Remove this superclass as we only have 1 class now (RecognizerInfo). - static public class BaseInfo implements Comparable { - public final ServiceInfo service; - public final ComponentName componentName; - public final String key; - public final ComponentName settings; - public final CharSequence label; - public final String labelStr; - public final CharSequence appLabel; + /** + * Base info of the Voice Input provider. + * + * TODO: Remove this superclass as we only have 1 class now (RecognizerInfo). + */ + public static class BaseInfo implements Comparable { + public final ServiceInfo mService; + public final ComponentName mComponentName; + public final String mKey; + public final ComponentName mSettings; + public final CharSequence mLabel; + public final String mLabelStr; + public final CharSequence mAppLabel; - public BaseInfo(PackageManager pm, ServiceInfo _service, String _settings) { - service = _service; - componentName = new ComponentName(_service.packageName, _service.name); - key = componentName.flattenToShortString(); - settings = _settings != null - ? new ComponentName(_service.packageName, _settings) : null; - label = _service.loadLabel(pm); - labelStr = label.toString(); - appLabel = _service.applicationInfo.loadLabel(pm); + public BaseInfo(PackageManager pm, ServiceInfo service, String settings) { + mService = service; + mComponentName = new ComponentName(service.packageName, service.name); + mKey = mComponentName.flattenToShortString(); + mSettings = settings != null + ? new ComponentName(service.packageName, settings) : null; + mLabel = service.loadLabel(pm); + mLabelStr = mLabel.toString(); + mAppLabel = service.applicationInfo.loadLabel(pm); } @Override - public int compareTo(Object another) { - return labelStr.compareTo(((BaseInfo) another).labelStr); + public int compareTo(BaseInfo another) { + return mLabelStr.compareTo(another.mLabelStr); } } - static public class RecognizerInfo extends BaseInfo { + /** Info of the speech recognizer (i.e. recognition service). */ + public static class RecognizerInfo extends BaseInfo { public final boolean mSelectableAsDefault; public RecognizerInfo(PackageManager pm, @@ -96,6 +102,7 @@ public final class VoiceInputHelper { PackageManager.GET_META_DATA); } + /** Draws the UI of the Voice Input picker page. */ public void buildUi() { // Get the currently selected recognizer from the secure setting. String currentSetting = Settings.Secure.getString( @@ -120,8 +127,8 @@ public final class VoiceInputHelper { try (XmlResourceParser parser = si.loadXmlMetaData(mContext.getPackageManager(), RecognitionService.SERVICE_META_DATA)) { if (parser == null) { - throw new XmlPullParserException("No " + RecognitionService.SERVICE_META_DATA + - " meta-data for " + si.packageName); + throw new XmlPullParserException("No " + RecognitionService.SERVICE_META_DATA + + " meta-data for " + si.packageName); } Resources res = mContext.getPackageManager().getResourcesForApplication( @@ -132,6 +139,7 @@ public final class VoiceInputHelper { int type; while ((type = parser.next()) != XmlPullParser.END_DOCUMENT && type != XmlPullParser.START_TAG) { + // Intentionally do nothing. } String nodeName = parser.getName();