| package com.sexy.sexypa;␊ | 
| ␊ | 
| import android.app.Activity;␊ | 
| import android.content.Context;␊ | 
| import android.content.Intent;␊ | 
| import android.graphics.Typeface;␊ | 
| import android.os.Bundle;␊ | 
| import android.os.Environment;␊ | 
| import android.speech.RecognizerIntent;␊ | 
| import android.speech.tts.TextToSpeech;␊ | 
| import android.view.View;␊ | 
| import android.widget.EditText;␊ | 
| import android.widget.TextView;␊ | 
| import android.widget.Toast;␊ | 
| ␊ | 
| ␊ | 
| import java.io.File;␊ | 
| import java.io.FileWriter;␊ | 
| import java.io.IOException;␊ | 
| import java.util.ArrayList;␊ | 
| import java.util.Locale;␊ | 
| import java.util.logging.Logger;␊ | 
| ␊ | 
| public class SexyPAActivity extends Activity implements View.OnClickListener, TextToSpeech.OnInitListener {␊ | 
| ␊ | 
| protected static final int REQUEST_OK = 1;␊ | 
| private TextToSpeech tts;␊ | 
| private String spoken = "";␊ | 
| ␊ | 
| @Override␊ | 
| protected void onCreate(Bundle savedInstanceState) {␊ | 
| super.onCreate(savedInstanceState);␊ | 
| setContentView(R.layout.sexy_pa);␊ | 
| findViewById(R.id.speak).setOnClickListener(this);␊ | 
| ␊ | 
| tts = new TextToSpeech(this, this);␊ | 
| findViewById(R.id.play).setOnClickListener(this);␊ | 
| //Typeface myFont = Typeface.createFromAsset(getAssets(), "fonts/Prata-Regular.ttf");␊ | 
| Typeface myFont = Typeface.createFromAsset(getAssets(), "fonts/AdventPro-Medium.ttf");␊ | 
| ␊ | 
| EditText spokenWord = (EditText)findViewById(R.id.editText1);␊ | 
| spokenWord.setTypeface(myFont);␊ | 
| ␊ | 
| createBookFile();␊ | 
| }␊ | 
| ␊ | 
| @Override␊ | 
| public void onClick(View v)␊ | 
| {␊ | 
| switch (v.getId())␊ | 
| {␊ | 
| case R.id.speak:␊ | 
| Intent i = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);␊ | 
| i.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, "en-US");␊ | 
| try␊ | 
| {␊ | 
| startActivityForResult(i, REQUEST_OK);␊ | 
| } catch (Exception e)␊ | 
| {␊ | 
| Toast.makeText(this, "Error initializing speech to text engine.", Toast.LENGTH_LONG).show();␊ | 
| }␊ | 
| break;␊ | 
| case R.id.play:␊ | 
| if (tts!=null)␊ | 
| {␊ | 
| String text = ((EditText)findViewById(R.id.editText1)).getText().toString();␊ | 
| if(text != null && text.equalsIgnoreCase("hello"))␊ | 
| {␊ | 
| if (!tts.isSpeaking())␊ | 
| {␊ | 
| tts.speak("Hello Scott, how was your night?", TextToSpeech.QUEUE_FLUSH, null);␊ | 
| }␊ | 
| ␊ | 
| }else if(text != null && text.equalsIgnoreCase("good"))␊ | 
| {␊ | 
| if(!tts.isSpeaking())␊ | 
| {␊ | 
| tts.speak("Cool, it is nice to see you today, man.", TextToSpeech.QUEUE_FLUSH, null);␊ | 
| }␊ | 
| }␊ | 
| else{␊ | 
| if(!tts.isSpeaking())␊ | 
| {␊ | 
| tts.speak("What? What? What? What?", TextToSpeech.QUEUE_FLUSH, null);␊ | 
| }␊ | 
| }␊ | 
| ␊ | 
| }␊ | 
| }␊ | 
| ␊ | 
| }␊ | 
| ␊ | 
| @Override␊ | 
| protected void onDestroy()␊ | 
| {␊ | 
| if (tts!=null)␊ | 
| {␊ | 
| tts.stop();␊ | 
| tts.shutdown();␊ | 
| }␊ | 
| super.onDestroy();␊ | 
| }␊ | 
| ␊ | 
| @Override␊ | 
| protected void onActivityResult(int requestCode, int resultCode, Intent data)␊ | 
| {␊ | 
| super.onActivityResult(requestCode, resultCode, data);␊ | 
| if (requestCode==REQUEST_OK  && resultCode==RESULT_OK)␊ | 
| {␊ | 
| ArrayList<String> thingsYouSaid = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);␊ | 
| spoken = thingsYouSaid.get(0);␊ | 
| ((TextView)findViewById(R.id.editText1)).setText(spoken);␊ | 
| }␊ | 
| }␊ | 
| ␊ | 
| ␊ | 
| @Override␊ | 
| public void onInit(int code)␊ | 
| {␊ | 
| if (code == TextToSpeech.SUCCESS)␊ | 
| {␊ | 
| tts.setLanguage(Locale.getDefault());␊ | 
| ␊ | 
| } else␊ | 
| {␊ | 
| tts = null;␊ | 
| Toast.makeText(this, "Failed to initialize TTS engine.",␊ | 
| Toast.LENGTH_SHORT).show();␊ | 
| }␊ | 
| }␊ | 
| ␊ | 
| public void createBookFile()␊ | 
| {␊ | 
| File folder = new File(Environment.getExternalStorageDirectory() + "/draft");␊ | 
| boolean success = true;␊ | 
| if (!folder.exists()) {␊ | 
| success = folder.mkdir();␊ | 
| }␊ | 
| if (success) {␊ | 
| writeToFile("Some Value", "book.txt");␊ | 
| } else {␊ | 
| // Do something else on failure␊ | 
| }␊ | 
| }␊ | 
| ␊ | 
| public void writeToFile(String text, String fileName)␊ | 
| {␊ | 
| Context context = getBaseContext();␊ | 
| try {␊ | 
| FileWriter out = new FileWriter(new File(context.getFilesDir(), fileName));␊ | 
| out.write(text);␊ | 
| out.close();␊ | 
| } catch (IOException e) {␊ | 
| ␊ | 
| }␊ | 
| }␊ | 
| ␊ | 
| ␊ | 
| ␊ | 
| ␊ | 
| }␊ |