├── .gitignore ├── icon512.png ├── g1dasher.png ├── icon-120.png ├── n1dasher.png ├── dasher-promo.png ├── feature_graphic.png ├── src └── dasher │ ├── CAlphIO.java │ ├── Observer.java │ ├── applet │ ├── files.txt │ ├── colour.dtd │ ├── JDasher.java │ ├── font │ │ └── FontListener.java │ ├── JDasherMenuBarListener.java │ ├── JMouseInput.java │ ├── alphabet.dtd │ ├── ScreenOverlay.java │ ├── JSettings.java │ └── JDasherEdit.java │ ├── CMarkerScreen.java │ ├── Document.java │ ├── EditableDocument.java │ ├── CConversionHelper.java │ ├── android │ ├── SingleIMCheckBox.java │ ├── CheckBoxPreference.java │ ├── IntQueue.java │ ├── SettingsActivity.java │ ├── IMCheckBox.java │ ├── DualIMCheckBox.java │ ├── DasherActivity.java │ ├── TiltInput.java │ ├── InputTypes.java │ ├── AndroidKeyMap.java │ ├── CalibPreference.java │ └── SeekBarPreference.java │ ├── CDasherModule.java │ ├── CFileLogger.java │ ├── CDynamicFilter.java │ ├── CCannaConversionHelper.java │ ├── CUserLog.java │ ├── CDynamicButtons.java │ ├── CCompassMode.java │ ├── CScanning.java │ ├── CParameterNotFoundException.java │ ├── CDynamicPresses.java │ ├── SGroupInfo.java │ ├── CMenuMode.java │ ├── Esp_parameters.java │ ├── XMLFileParser.java │ ├── EParameters.java │ ├── CModuleManager.java │ ├── TwoButtonDynamicFilter.java │ ├── Opts.java │ ├── CButtonMode.java │ ├── CClickFilter.java │ ├── CCustomColours.java │ ├── COneDimensionalFilter.java │ ├── Ebp_parameters.java │ ├── CStylusFilter.java │ ├── CDasherButtons.java │ ├── CDasherInput.java │ ├── CDelayedDraw.java │ ├── CDasherScreen.java │ ├── CFrameRate.java │ ├── OneButtonDynamicFilter.java │ └── Elp_parameters.java ├── res ├── drawable-hdpi │ └── icon.png ├── drawable-ldpi │ └── icon.png ├── drawable-mdpi │ └── icon.png ├── values │ └── arrays.xml ├── layout │ ├── checkbox_tilt.xml │ ├── checkbox_compass.xml │ ├── checkbox_onebuttondynamic.xml │ ├── checkbox_twobuttondynamic.xml │ ├── checkbox_boxes.xml │ ├── checkbox_touch.xml │ ├── calibrate.xml │ └── install.xml ├── xml │ └── method.xml └── values-fr │ └── strings.xml ├── .classpath ├── README ├── assets ├── colour.dtd ├── alphabet.dtd ├── alphabet.swedish.xml ├── alphabet.dutch.xml ├── alphabet.spanish.xml ├── alphabet.englishC.xml └── alphabet.italian.xml ├── default.properties ├── xml.py ├── .project └── AndroidManifest.xml /.gitignore: -------------------------------------------------------------------------------- 1 | bin/ 2 | gen/ 3 | .settings/org.eclipse.jdt.core.prefs 4 | -------------------------------------------------------------------------------- /icon512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/acl33/AndroidDasher/HEAD/icon512.png -------------------------------------------------------------------------------- /g1dasher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/acl33/AndroidDasher/HEAD/g1dasher.png -------------------------------------------------------------------------------- /icon-120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/acl33/AndroidDasher/HEAD/icon-120.png -------------------------------------------------------------------------------- /n1dasher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/acl33/AndroidDasher/HEAD/n1dasher.png -------------------------------------------------------------------------------- /dasher-promo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/acl33/AndroidDasher/HEAD/dasher-promo.png -------------------------------------------------------------------------------- /feature_graphic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/acl33/AndroidDasher/HEAD/feature_graphic.png -------------------------------------------------------------------------------- /src/dasher/CAlphIO.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/acl33/AndroidDasher/HEAD/src/dasher/CAlphIO.java -------------------------------------------------------------------------------- /res/drawable-hdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/acl33/AndroidDasher/HEAD/res/drawable-hdpi/icon.png -------------------------------------------------------------------------------- /res/drawable-ldpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/acl33/AndroidDasher/HEAD/res/drawable-ldpi/icon.png -------------------------------------------------------------------------------- /res/drawable-mdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/acl33/AndroidDasher/HEAD/res/drawable-mdpi/icon.png -------------------------------------------------------------------------------- /src/dasher/Observer.java: -------------------------------------------------------------------------------- 1 | package dasher; 2 | 3 | public interface Observer { 4 | public void HandleEvent(T t); 5 | } 6 | -------------------------------------------------------------------------------- /src/dasher/applet/files.txt: -------------------------------------------------------------------------------- 1 | alphabet.dtd 2 | alphabet.english.xml 3 | colour.dtd 4 | colour.euroasian.xml 5 | training_english_GB.txt 6 | -------------------------------------------------------------------------------- /res/values/arrays.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Default 5 | LR 6 | RL 7 | TB 8 | BT 9 | 10 | -------------------------------------------------------------------------------- /.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | Port of Dasher as input method for Google Android OS. 2 | 3 | Distributed under terms of GPL License v3. 4 | 5 | Based on Chris Smowton's Java port, which is included in the main (C++) Dasher 6 | repository git.gnome.org/dasher 7 | 8 | Dasher website: www.inference.phy.cam.ac.uk/dasher 9 | Mobile Dasher (includes instructions to enable as Android IME): www.inference.phy.cam.ac.uk/dasher/MobileDasher.html 10 | -------------------------------------------------------------------------------- /assets/colour.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/dasher/applet/colour.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /res/layout/checkbox_tilt.xml: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /res/layout/checkbox_compass.xml: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /res/layout/checkbox_onebuttondynamic.xml: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /res/layout/checkbox_twobuttondynamic.xml: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /default.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system use, 7 | # "build.properties", and override values to adapt the script to your 8 | # project structure. 9 | 10 | # Project target. 11 | target=android-4 12 | # Indicates whether an apk should be generated for each density. 13 | split.density=false 14 | android.library.reference.1=../../sdk/source 15 | -------------------------------------------------------------------------------- /res/layout/checkbox_boxes.xml: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /res/layout/checkbox_touch.xml: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /src/dasher/CMarkerScreen.java: -------------------------------------------------------------------------------- 1 | package dasher; 2 | 3 | public interface CMarkerScreen extends CDasherScreen { 4 | 5 | /** 6 | * Informs the screen of certain drawing phases. 7 | *

8 | * A '0' will be sent when beginning to draw persistent 9 | * features (ie. those which should remain the same from 10 | * frame to frame), and a '1' will be sent prior to drawing 11 | * ephemeral details which should vanish if not redrawn next 12 | * frame. 13 | * 14 | * @param iMarker Marker number 15 | */ 16 | public abstract void SendMarker(int iMarker); 17 | 18 | /** 19 | * Signals the end of a frame. 20 | * 21 | */ 22 | public abstract void Display(); 23 | } 24 | -------------------------------------------------------------------------------- /xml.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import sys 4 | import re 5 | 6 | if len(sys.argv)!=2: 7 | print "Usage: python xml.py /path/to/dasher_strings.csv" 8 | print " Expects a two-column csv file, i.e. internal names and one language's worth" 9 | print " of translations. Outputs bulk of XML, but some changes needed by hand" 10 | sys.exit(1) 11 | 12 | def dequote(s): 13 | s=s.strip() 14 | if (s==""): return s 15 | if (s[0]=='"' and s[-1]=='"'): return s[1:-1] 16 | raise Error("Couldn't dequote "+s) 17 | 18 | with open(sys.argv[1],'r') as file: 19 | for line in file: 20 | i = line.find(',') 21 | if i==-1: 22 | raise Error("No comma in "+line) 23 | key=line[:i] 24 | s=dequote(line[i+1:]) 25 | if (s==""): 26 | print "" 27 | elif (key==""): 28 | print ""+s+"" 29 | else: 30 | print ""+s+"" 31 | -------------------------------------------------------------------------------- /src/dasher/Document.java: -------------------------------------------------------------------------------- 1 | package dasher; 2 | 3 | /** 4 | *

Representation of text in terms of java characters, i.e. unicode values 0-65535. 5 | * Unicode characters above this (i.e. 32-bits) are represented as TWO such characters, 6 | * at distinct (adjacent) offsets.

7 | *

IOW, much as Java Strings.

8 | * @author acl33 9 | * 10 | */ 11 | public interface Document { 12 | /** Get the character at the specified index, or null if the document does not contain 13 | * such an index. (Note, it is suggested to use Character.valueOf(...) to 14 | * reduce allocation.) 15 | * @param pos Position in the document (0=first). Note, if this method returns null for 16 | * some value of pos, it should also return null for all indices greater than that value. 17 | * @return Character object for the char at the specified index, or null if that's beyond 18 | * the end of the Document. 19 | */ 20 | public Character getCharAt(int pos); 21 | } 22 | -------------------------------------------------------------------------------- /res/layout/calibrate.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 11 | 12 | 16 | 17 | 21 | 22 |