Merge "Making changes to TTS pitch and rate also apply to work profiles"

This commit is contained in:
Joshua Imbriani
2019-06-26 15:23:32 +00:00
committed by Android (Google) Code Review

View File

@@ -26,7 +26,10 @@ import android.content.ContentResolver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.SearchIndexableResource; import android.provider.SearchIndexableResource;
import android.provider.Settings.Secure;
import android.speech.tts.TextToSpeech; import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.EngineInfo; import android.speech.tts.TextToSpeech.EngineInfo;
import android.speech.tts.TtsEngines; import android.speech.tts.TtsEngines;
@@ -44,6 +47,7 @@ import com.android.settings.SettingsActivity;
import com.android.settings.SettingsPreferenceFragment; import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable; import com.android.settings.search.Indexable;
import com.android.settings.Utils;
import com.android.settings.widget.GearPreference; import com.android.settings.widget.GearPreference;
import com.android.settings.widget.SeekBarPreference; import com.android.settings.widget.SeekBarPreference;
import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.search.SearchIndexable;
@@ -148,6 +152,11 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment
*/ */
private final TextToSpeech.OnInitListener mInitListener = this::onInitEngine; private final TextToSpeech.OnInitListener mInitListener = this::onInitEngine;
/**
* A UserManager used to set settings for both person and work profiles for a user
*/
private UserManager mUserManager;
@Override @Override
public int getMetricsCategory() { public int getMetricsCategory() {
return SettingsEnums.TTS_TEXT_TO_SPEECH; return SettingsEnums.TTS_TEXT_TO_SPEECH;
@@ -176,6 +185,9 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment
.setButton2OnClickListener(v -> resetTts()) .setButton2OnClickListener(v -> resetTts())
.setButton1Enabled(true); .setButton1Enabled(true);
mUserManager = (UserManager) getActivity()
.getApplicationContext().getSystemService(Context.USER_SERVICE);
if (savedInstanceState == null) { if (savedInstanceState == null) {
mLocalePreference.setEnabled(false); mLocalePreference.setEnabled(false);
mLocalePreference.setEntries(new CharSequence[0]); mLocalePreference.setEntries(new CharSequence[0]);
@@ -670,8 +682,7 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment
private void updateSpeechRate(int speechRateSeekBarProgress) { private void updateSpeechRate(int speechRateSeekBarProgress) {
mDefaultRate = getValueFromSeekBarProgress(KEY_DEFAULT_RATE, speechRateSeekBarProgress); mDefaultRate = getValueFromSeekBarProgress(KEY_DEFAULT_RATE, speechRateSeekBarProgress);
try { try {
android.provider.Settings.Secure.putInt( updateTTSSetting(TTS_DEFAULT_RATE, mDefaultRate);
getContentResolver(), TTS_DEFAULT_RATE, mDefaultRate);
if (mTts != null) { if (mTts != null) {
mTts.setSpeechRate(mDefaultRate / 100.0f); mTts.setSpeechRate(mDefaultRate / 100.0f);
} }
@@ -685,8 +696,7 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment
private void updateSpeechPitchValue(int speechPitchSeekBarProgress) { private void updateSpeechPitchValue(int speechPitchSeekBarProgress) {
mDefaultPitch = getValueFromSeekBarProgress(KEY_DEFAULT_PITCH, speechPitchSeekBarProgress); mDefaultPitch = getValueFromSeekBarProgress(KEY_DEFAULT_PITCH, speechPitchSeekBarProgress);
try { try {
android.provider.Settings.Secure.putInt( updateTTSSetting(TTS_DEFAULT_PITCH, mDefaultPitch);
getContentResolver(), TTS_DEFAULT_PITCH, mDefaultPitch);
if (mTts != null) { if (mTts != null) {
mTts.setPitch(mDefaultPitch / 100.0f); mTts.setPitch(mDefaultPitch / 100.0f);
} }
@@ -697,6 +707,16 @@ public class TextToSpeechSettings extends SettingsPreferenceFragment
return; return;
} }
private void updateTTSSetting(String key, int value) {
Secure.putInt(
getContentResolver(), key, value);
final int managedProfileUserId =
Utils.getManagedProfileId(mUserManager, UserHandle.myUserId());
if (managedProfileUserId != UserHandle.USER_NULL) {
Secure.putIntForUser(getContentResolver(), key, value, managedProfileUserId);
}
}
private void updateWidgetState(boolean enable) { private void updateWidgetState(boolean enable) {
getActivity().runOnUiThread(() -> { getActivity().runOnUiThread(() -> {
mActionButtons.setButton1Enabled(enable); mActionButtons.setButton1Enabled(enable);