From 5bb4ef7c4591b17db6366e029bcb33543b338d94 Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Fri, 5 Apr 2019 13:44:37 -0700 Subject: [PATCH] Clean up tts preference layout. Deleted the custom tts layout and use preference_radio directly. Fixes: 129994473 Test: visual Change-Id: Ifc50e0cf9f805776e0529ffd5d672283f28a1d15 --- res/layout/preference_tts_engine.xml | 34 ----------------- .../settings/tts/TtsEnginePreference.java | 38 ++++++++----------- .../tts/TtsEnginePreferenceFragment.java | 6 +-- 3 files changed, 17 insertions(+), 61 deletions(-) delete mode 100644 res/layout/preference_tts_engine.xml diff --git a/res/layout/preference_tts_engine.xml b/res/layout/preference_tts_engine.xml deleted file mode 100644 index 19401f06cff..00000000000 --- a/res/layout/preference_tts_engine.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - diff --git a/src/com/android/settings/tts/TtsEnginePreference.java b/src/com/android/settings/tts/TtsEnginePreference.java index 7dc00fea6c9..6ea414dd4b7 100644 --- a/src/com/android/settings/tts/TtsEnginePreference.java +++ b/src/com/android/settings/tts/TtsEnginePreference.java @@ -18,7 +18,6 @@ package com.android.settings.tts; import android.content.Context; import android.content.DialogInterface; -import android.content.Intent; import android.speech.tts.TextToSpeech.EngineInfo; import android.util.Log; import android.widget.Checkable; @@ -30,7 +29,6 @@ import androidx.preference.Preference; import androidx.preference.PreferenceViewHolder; import com.android.settings.R; -import com.android.settings.SettingsActivity; public class TtsEnginePreference extends Preference { @@ -54,21 +52,20 @@ public class TtsEnginePreference extends Preference { */ private volatile boolean mPreventRadioButtonCallbacks; - private RadioButton mRadioButton; - private Intent mVoiceCheckData; - private final CompoundButton.OnCheckedChangeListener mRadioChangeListener = - new CompoundButton.OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - onRadioButtonClicked(buttonView, isChecked); - } - }; + new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + onRadioButtonClicked(buttonView, isChecked); + } + }; - public TtsEnginePreference(Context context, EngineInfo info, RadioButtonGroupState state, - SettingsActivity prefActivity) { + public TtsEnginePreference(Context context, EngineInfo info, RadioButtonGroupState state) { super(context); - setLayoutResource(R.layout.preference_tts_engine); + + setWidgetLayoutResource(R.layout.preference_widget_radiobutton); + setLayoutResource(R.layout.preference_radio); + setIconSpaceReserved(false); mSharedState = state; mEngineInfo = info; @@ -87,9 +84,8 @@ public class TtsEnginePreference extends Preference { "setSharedState()"); } - final RadioButton rb = (RadioButton) view.findViewById(R.id.tts_engine_radiobutton); + final RadioButton rb = view.itemView.findViewById(android.R.id.checkbox); rb.setOnCheckedChangeListener(mRadioChangeListener); - rb.setText(mEngineInfo.label); boolean isChecked = getKey().equals(mSharedState.getCurrentKey()); if (isChecked) { @@ -99,12 +95,6 @@ public class TtsEnginePreference extends Preference { mPreventRadioButtonCallbacks = true; rb.setChecked(isChecked); mPreventRadioButtonCallbacks = false; - - mRadioButton = rb; - } - - public void setVoiceDataDetails(Intent data) { - mVoiceCheckData = data; } private boolean shouldDisplayDataAlert() { @@ -145,7 +135,7 @@ public class TtsEnginePreference extends Preference { public void onClick(DialogInterface dialog, int which) { makeCurrentEngine(buttonView); } - },new DialogInterface.OnClickListener() { + }, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // Undo the click. @@ -176,9 +166,11 @@ public class TtsEnginePreference extends Preference { */ public interface RadioButtonGroupState { String getCurrentKey(); + Checkable getCurrentChecked(); void setCurrentKey(String key); + void setCurrentChecked(Checkable current); } diff --git a/src/com/android/settings/tts/TtsEnginePreferenceFragment.java b/src/com/android/settings/tts/TtsEnginePreferenceFragment.java index 43bb4590e27..244e5b154c6 100644 --- a/src/com/android/settings/tts/TtsEnginePreferenceFragment.java +++ b/src/com/android/settings/tts/TtsEnginePreferenceFragment.java @@ -15,7 +15,6 @@ import android.widget.Checkable; import androidx.preference.PreferenceCategory; import com.android.settings.R; -import com.android.settings.SettingsActivity; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.Indexable; @@ -87,12 +86,10 @@ public class TtsEnginePreferenceFragment extends SettingsPreferenceFragment mEnginePreferenceCategory.removeAll(); - SettingsActivity activity = (SettingsActivity) getActivity(); - List engines = mEnginesHelper.getEngines(); for (EngineInfo engine : engines) { TtsEnginePreference enginePref = - new TtsEnginePreference(getPrefContext(), engine, this, activity); + new TtsEnginePreference(getPrefContext(), engine, this); mEnginePreferenceCategory.addPreference(enginePref); } } @@ -161,6 +158,7 @@ public class TtsEnginePreferenceFragment extends SettingsPreferenceFragment public void onUpdateEngine(int status) { if (status == TextToSpeech.SUCCESS) { Log.d( + TAG, "Updating engine: Successfully bound to the engine: " + mTts.getCurrentEngine());