Por que o UtteranceProgressListener não é uma interface?
Estou brincando com os recursos TTS do Android e a classe TextToSpeech tem esse método para definir um ouvinte que é notificado assim que o TextToSpeech termina de ser reproduzido:
public int setOnUtteranceCompletedListener(TextToSpeech.OnUtteranceCompletedListener listener)
Mas oOnUtteranceCompletedListener
é definido comopublic abstract class
. Como meuMainActivity
já estende a atividade, não pode estenderOnUtteranceCompletedListener
também. Eu poderia usar o método mais antigo com umOnUtteranceCompletedListener
, mas isso está obsoleto:
public int setOnUtteranceCompletedListener (TextToSpeech.OnUtteranceCompletedListener listener)`
Por que éOnUtteranceCompletedListener
não definido comopublic static interface
? Estou pensando em escrever meu próprioUtteranceProgressListenerImpl
, que então apenas chamará oMainActivity
s onDone
método. É este o caminho certo ou existe uma alternativa melhor / mais limpa?
private class UtteranceProgressListenerImpl extends UtteranceProgressListener {
private MainActivity mainActivity;
UtteranceProgressListenerImpl(MainActivity mA) {
mainActivity = mA;
}
@Override
public void onDone(String utteranceId) {
mainActivity.onDone(utteranceId);
}
@Override
public void onError(String utteranceId) { /* empty */ }
@Override
public void onStart(String utteranceId) { /* empty */ }
}