Misc fixes to TTS settings.
1. Remove an extra PreferenceGroup that was causing some spacing
issues.
2. Remove the animations when elements resize because this causes
items to slide around unnecessarily.
3. While we're in the file, lambda-ify some of the older code.
Bug: 77981482
Bug: 79897262
Test: Manually verified.
Change-Id: I9c79beea3a231ba62aeef3543802faebd775e128
diff --git a/res/xml/tts_settings.xml b/res/xml/tts_settings.xml
index 4a24154..e76cdb7 100644
--- a/res/xml/tts_settings.xml
+++ b/res/xml/tts_settings.xml
@@ -20,21 +20,17 @@
android:key="tts_settings_screen"
android:title="@string/tts_settings_title">
- <PreferenceCategory android:key="tts_engine_section">
+ <com.android.settings.widget.GearPreference
+ android:key="tts_engine_preference"
+ android:title="@string/tts_engine_preference_title"
+ android:fragment="com.android.settings.tts.TtsEnginePreferenceFragment"
+ settings:searchable="false"/>
- <com.android.settings.widget.GearPreference
- android:key="tts_engine_preference"
- android:title="@string/tts_engine_preference_title"
- android:fragment="com.android.settings.tts.TtsEnginePreferenceFragment"
- settings:searchable="false"/>
-
- <ListPreference
- android:key="tts_default_lang"
- android:title="@string/tts_default_lang_title"
- android:summary="@string/tts_default_lang_summary"
- android:persistent="false" />
-
- </PreferenceCategory>
+ <ListPreference
+ android:key="tts_default_lang"
+ android:title="@string/tts_default_lang_title"
+ android:summary="@string/tts_default_lang_summary"
+ android:persistent="false" />
<PreferenceCategory android:key="tts_general_section">
diff --git a/src/com/android/settings/tts/TextToSpeechSettings.java b/src/com/android/settings/tts/TextToSpeechSettings.java
index 0f10d28..866e5a8 100644
--- a/src/com/android/settings/tts/TextToSpeechSettings.java
+++ b/src/com/android/settings/tts/TextToSpeechSettings.java
@@ -147,12 +147,7 @@
* screen for the first time (as opposed to when a user changes his choice
* of engine).
*/
- private final TextToSpeech.OnInitListener mInitListener = new TextToSpeech.OnInitListener() {
- @Override
- public void onInit(int status) {
- onInitEngine(status);
- }
- };
+ private final TextToSpeech.OnInitListener mInitListener = this::onInitEngine;
@Override
public int getMetricsCategory() {
@@ -215,6 +210,11 @@
@Override
public void onResume() {
super.onResume();
+ // We tend to change the summary contents of our widgets, which at higher text sizes causes
+ // them to resize, which results in the recyclerview smoothly animating them at inopportune
+ // times. Disable the animation so widgets snap to their positions rather than sliding
+ // around while the user is interacting with it.
+ getListView().getItemAnimator().setMoveDuration(0);
if (mTts == null || mCurrentDefaultLocale == null) {
return;
@@ -323,7 +323,6 @@
if (mCurrentEngine != null) {
EngineInfo info = mEnginesHelper.getEngineInfo(mCurrentEngine);
-
Preference mEnginePreference = findPreference(KEY_TTS_ENGINE_PREFERENCE);
((GearPreference) mEnginePreference).setOnGearClickListener(this);
mEnginePreference.setSummary(info.label);
@@ -365,14 +364,7 @@
if (status == TextToSpeech.SUCCESS) {
if (DBG) Log.d(TAG, "TTS engine for settings screen initialized.");
checkDefaultLocale();
- getActivity()
- .runOnUiThread(
- new Runnable() {
- @Override
- public void run() {
- mLocalePreference.setEnabled(true);
- }
- });
+ getActivity().runOnUiThread(() -> mLocalePreference.setEnabled(true));
} else {
if (DBG) {
Log.d(TAG,
@@ -516,14 +508,7 @@
}
// Sort it
- Collections.sort(
- entryPairs,
- new Comparator<Pair<String, Locale>>() {
- @Override
- public int compare(Pair<String, Locale> lhs, Pair<String, Locale> rhs) {
- return lhs.first.compareToIgnoreCase(rhs.first);
- }
- });
+ Collections.sort(entryPairs, (lhs, rhs) -> lhs.first.compareToIgnoreCase(rhs.first));
// Get two arrays out of one of pairs
mSelectedLocaleIndex = 0; // Will point to the R.string.tts_lang_use_system value