/slidetext/src/com/google/marvin/slidetext/SlideText.java

http://eyes-free.googlecode.com/ · Java · 70 lines · 34 code · 12 blank · 24 comment · 2 complexity · 5423728ae3f098f14b1294e1b55ff3e3 MD5 · raw file

  1. package com.google.marvin.slidetext;
  2. import com.google.tts.TTS;
  3. import android.app.Activity;
  4. import android.media.AudioManager;
  5. import android.os.Bundle;
  6. import android.view.View;
  7. /**
  8. * Enables the user to type text without looking at the phone.
  9. *
  10. * There are 4 layers, with each layer having 8 characters arranged in a ring.
  11. * Each layer has 2 entry points, arranged at opposite sides of the ring. When
  12. * you first touch down, you choose which layer you want to enter by selecting
  13. * either of the entry points. The entry points are letters themselves, so after
  14. * entering a layer, if you immediately lift up, you will type the character you
  15. * entered on. Otherwise, you can proceed through the ring, move over the letter
  16. * that you want, and lift up.
  17. *
  18. * ASCII diagrams of the layers: Layer 0: a i q _ y u m e
  19. *
  20. * Layer 1: a b c h d g f e
  21. *
  22. * Layer 2: p i j o k n m l
  23. *
  24. * Layer 3: w x q v r u t s
  25. *
  26. * Layer 4: , ! MODE _ y . ? z
  27. *
  28. * @author clchen@google.com (Charles L. Chen)
  29. */
  30. public class SlideText extends Activity {
  31. private SlideText self;
  32. private SlideTextView mView;
  33. public TTS tts;
  34. /** Called when the activity is first created. */
  35. @Override
  36. public void onCreate(Bundle savedInstanceState) {
  37. super.onCreate(savedInstanceState);
  38. self = this;
  39. tts = new TTS(this, ttsInitListener, true);
  40. setVolumeControlStream(AudioManager.STREAM_MUSIC);
  41. }
  42. private TTS.InitListener ttsInitListener = new TTS.InitListener() {
  43. public void onInit(int version) {
  44. String pkgName = SlideText.class.getPackage().getName();
  45. tts.addSpeech("Nothing to delete", pkgName, R.raw.nothing_to_delete);
  46. if (mView != null) {
  47. mView.setVisibility(View.GONE);
  48. }
  49. mView = new SlideTextView(self);
  50. self.setContentView(mView);
  51. }
  52. };
  53. @Override
  54. protected void onDestroy() {
  55. tts.shutdown();
  56. super.onDestroy();
  57. }
  58. }