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á oMainActivitys 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 */ }


}

questionAnswers(1)

yourAnswerToTheQuestion