found the answer…
Turns out that the TTS resources I found online were using a single TTS string source, so the third parameter in tts.speak(String text, int queueMode, HashMap params) was set to null.
to anybody having this issue in the future:
if you set the third param to null, there’s no ID for the UtteranceProgressListener to track. The fix was creating and initializing a hashmap, then adding to the included array for each new TTS with a new ID could be tracked. Here’s the code:
HashMap<String, String> map = new HashMap<String, String>();
then, before calling tts.speak…
map.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "UniqueID");
then you can call speak with all params…
tts.speak(text, TextToSpeech.QUEUE_FLUSH, map);