/**
* Copyright (c) 2012 Todoroo Inc
*
* See the file "LICENSE" for the full license governing this code.
*/
package com.todoroo.astrid.voice;
import android.content.Intent;
import com.todoroo.andlib.utility.AndroidUtilities;
/**
* All API versions-friendly voice input / output.
* @author Tim Su <tim@todoroo.com>
*
*/
public class VoiceOutputService {
private static final int MIN_TTS_VERSION = 6;
private static VoiceOutputAssistant outputAssistant;
// --- voice output
public interface VoiceOutputAssistant {
public void checkIsTTSInstalled();
public boolean handleActivityResult(int requestCode, int resultCode, Intent data);
public void queueSpeak(String textToSpeak);
public void onDestroy();
}
public static class NullVoiceOutputAssistant implements VoiceOutputAssistant {
@Override
public void checkIsTTSInstalled() {
//
}
@Override
public boolean handleActivityResult(int requestCode, int resultCode,
Intent data) {
return false;
}
@Override
public void queueSpeak(String textToSpeak) {
//
}
@Override
public void onDestroy() {
//
}
}
public static VoiceOutputAssistant getVoiceOutputInstance() {
if(AndroidUtilities.getSdkVersion() >= MIN_TTS_VERSION) {
if (outputAssistant == null)
outputAssistant = new Api6VoiceOutputAssistant();
} else {
if(outputAssistant == null)
outputAssistant = new NullVoiceOutputAssistant();
}
return outputAssistant;
}
}