From f4627bb6082f7fdad187482d36e333b7e2d062b0 Mon Sep 17 00:00:00 2001 From: Rakesh Iyer Date: Fri, 2 Nov 2018 12:34:52 -0700 Subject: [PATCH] Disable controls during playback. The controls were enabled during playback earlier, however changing them did nothing to the current playout. Disable them during playout and re-enable them once playout is done. Bug: 77976922 Test: Repro case in linked bug. Change-Id: I0fbe1c97e794fccc49172ee7542018aeef956c8f --- .../android/settings/tts/TextToSpeechSettings.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/tts/TextToSpeechSettings.java b/src/com/android/settings/tts/TextToSpeechSettings.java index 866e5a8000b..cce871b4f33 100644 --- a/src/com/android/settings/tts/TextToSpeechSettings.java +++ b/src/com/android/settings/tts/TextToSpeechSettings.java @@ -251,15 +251,20 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment mTts.setOnUtteranceProgressListener(new UtteranceProgressListener() { @Override public void onStart(String utteranceId) { + updateWidgetState(false); } @Override public void onDone(String utteranceId) { + updateWidgetState(true); } @Override public void onError(String utteranceId) { Log.e(TAG, "Error while trying to synthesize sample text"); + // Re-enable just in case, although there isn't much hope that following synthesis + // requests are going to succeed. + updateWidgetState(true); } }); } @@ -696,9 +701,11 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment } private void updateWidgetState(boolean enable) { - mActionButtons.setButton1Enabled(enable); - mDefaultRatePref.setEnabled(enable); - mDefaultPitchPref.setEnabled(enable); + getActivity().runOnUiThread(() -> { + mActionButtons.setButton1Enabled(enable); + mDefaultRatePref.setEnabled(enable); + mDefaultPitchPref.setEnabled(enable); + }); } private void displayNetworkAlert() {