Allow cancelling TTS

pull/216/head
M66B 1 year ago
parent 9106ce19d3
commit 15b0289fd5

@ -1315,7 +1315,7 @@ public class EntityRule {
sb.append(context.getString(R.string.title_rule_tts_content)) sb.append(context.getString(R.string.title_rule_tts_content))
.append(' ').append(preview); .append(' ').append(preview);
TTSHelper.speak(context, "rule:" + message.id, sb.toString(), message.language); TTSHelper.speak(context, "rule:" + message.id, sb.toString(), message.language, false);
} }
private boolean onActionSnooze(Context context, EntityMessage message, JSONObject jargs) throws JSONException { private boolean onActionSnooze(Context context, EntityMessage message, JSONObject jargs) throws JSONException {

@ -3635,6 +3635,14 @@ public class FragmentMessages extends FragmentBase
} }
private void onSwipeTTS(final @NonNull TupleMessageEx message) { private void onSwipeTTS(final @NonNull TupleMessageEx message) {
boolean tts = iProperties.getValue("tts", message.id, false);
iProperties.setValue("tts", message.id, !tts);
if (tts) {
TTSHelper.speak(getContext(), "tts:" + message.id, "", message.language, true);
return;
}
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putLong("id", message.id); args.putLong("id", message.id);
@ -3671,7 +3679,7 @@ public class FragmentMessages extends FragmentBase
@Override @Override
protected void onExecuted(Bundle args, String text) { protected void onExecuted(Bundle args, String text) {
if (text != null) if (text != null)
TTSHelper.speak(getContext(), "tts:" + message.id, text, message.language); TTSHelper.speak(getContext(), "tts:" + message.id, text, message.language, true);
} }
@Override @Override

@ -41,7 +41,8 @@ public class TTSHelper {
@NonNull final Context context, @NonNull final Context context,
@NonNull final String utteranceId, @NonNull final String utteranceId,
@NonNull final String text, @NonNull final String text,
final String language) { final String language,
final boolean flush) {
Locale locale = (language == null ? Locale.getDefault() : new Locale(language)); Locale locale = (language == null ? Locale.getDefault() : new Locale(language));
@ -55,7 +56,7 @@ public class TTSHelper {
" available=" + available + " available=" + available +
" utterance=" + utteranceId + " utterance=" + utteranceId +
" text=" + text); " text=" + text);
instance.speak(text, TextToSpeech.QUEUE_ADD, null, utteranceId); instance.speak(text, flush ? TextToSpeech.QUEUE_FLUSH : TextToSpeech.QUEUE_ADD, null, utteranceId);
} catch (Throwable ex) { } catch (Throwable ex) {
Log.e(ex); Log.e(ex);
} }

Loading…
Cancel
Save