/morse-code-keyboard

An Android soft keyboard using Morse code.

Primary LanguageJava

Morse code IME

The Morse code input method editor is a soft keyboard for Android phones that replaces the default stock keyboard with one that only has two buttons - a dot and a dash. Many thanks to Google for sharing this great idea as Gmail Tap on April Fool's day 2012. This is a rough implementation of this idea.

You can tap it in the morning,
You can tap it at night,
You can tap in the bathroom,
It's a dot and a dash to have a conversation with the whole world.
-- Todd Smith, Gmail Tap Product Lead

This is very cool because, as mentioned in the Gmail Tap video, people with larger fingers can now type quickly without error.

(Tested only on a Motorola Atrix.)

Screenshot

International Morse code

Character Code Character Code
A · - N -- ·
B -- · · ·  O -- -- --
C -- · -- ·  P  · -- -- ·
D -- · ·  Q -- -- · --
E ·  R  · -- ·
F · · -- ·  S  · · ·
G -- -- ·  T --
H  · · · · U  · · --
I  · · V  · · · --
J  · -- --  W  · -- --
K -- · -- X -- · · --
L  · -- · · Y -- · -- --
M -- -- Z -- -- · ·

Extra codes for digits and common punctuation

Character Code Character Code
1  · -- -- -- -- .  · -- · -- · --
2  · · -- -- -- ,  -- -- · · -- --
3  · · · -- -- ?  · · -- -- · ·
4  · · · · -- '  · -- -- -- -- ·
5  · · · · · !  -- · -- · -- --
6  -- · · · · /  -- · · -- ·
7  -- -- · · · (  -- · -- -- ·
8  -- -- -- · · )  -- · -- -- · --
9  -- -- -- -- · &  · -- · · ·
0  -- -- -- -- -- :  -- -- -- · · ·
;  -- · -- · -- -  -- · · · · --
_  · · -- -- · -- | · -- · · -- ·
$  · · · -- · · -- @  · -- -- · -- ·

And two procedural signals

Code Meaning Code Meaning
 · -- · -- Newline  · -- · -- · End-of-transmisson (EOT)

Building and installing

To build from source, Ant, the JDK, and the Android SDK are all required.

  1. android update project -p .
  2. ant debug
  3. adb -d install ./bin/MorseCodeKeyboard-debug.apk

Once the .apk file has been installed, open Settings > Language and Keyboard on the device. Select the checkbox beside Morse code and accept the warning. Select the Input Method preference option and choose Morse code to change to the new keyboard. All done.

The delete key behaviour

The delete key behaviour may seem a bit weird at first. What it does is this: if you enter a sequence of dots and dashes and then press delete, it will empty the composing text (as in the dots/dashes), not just the last character. It deletes the whole sequence that was entered, not just the last dot/dash. In the event that no sequence was entered and the delete key is pressed, it will then delete the previous character. This should become intuitive after a bit of use.

TODO

  • Holo-style UI update
  • Accelerating delete
  • Blind tapping implementation
  • Haptic feedback and/or position one key above the other