1
0
Fork 0
mirror of https://github.com/M66B/FairEmail.git synced 2025-03-15 08:29:24 +00:00

Allow cancelling TTS

This commit is contained in:
M66B 2024-08-27 10:31:30 +02:00
parent 9106ce19d3
commit 15b0289fd5
3 changed files with 13 additions and 4 deletions

View file

@ -1315,7 +1315,7 @@ public class EntityRule {
sb.append(context.getString(R.string.title_rule_tts_content))
.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 {

View file

@ -3635,6 +3635,14 @@ public class FragmentMessages extends FragmentBase
}
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();
args.putLong("id", message.id);
@ -3671,7 +3679,7 @@ public class FragmentMessages extends FragmentBase
@Override
protected void onExecuted(Bundle args, String text) {
if (text != null)
TTSHelper.speak(getContext(), "tts:" + message.id, text, message.language);
TTSHelper.speak(getContext(), "tts:" + message.id, text, message.language, true);
}
@Override

View file

@ -41,7 +41,8 @@ public class TTSHelper {
@NonNull final Context context,
@NonNull final String utteranceId,
@NonNull final String text,
final String language) {
final String language,
final boolean flush) {
Locale locale = (language == null ? Locale.getDefault() : new Locale(language));
@ -55,7 +56,7 @@ public class TTSHelper {
" available=" + available +
" utterance=" + utteranceId +
" 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) {
Log.e(ex);
}