1
0
Fork 0
No description
Find a file
Dimo Karaivanov 78b6681812
Total engine refactoring (#44)
* totally refactored the Languages, the Database and the IME module. New and more clear folder/package structure

* CharMap and LangHelper are no more

* removed many unused icons, translations and other resources

* deleted the old keymap samples

* Update user-manual.md

* Preferences are stored in Preferences, not in the database.

* removed some unclear and unused settings from the Preferences screen and the code.

* fixed issues with displaying the UI

* removed all non-English words and words with foreign spelling from the English dictionary

* 0 now works as it should in all modes.

* a more clear newline character in suggestions view

* last used input mode is now preserved and restored the next time

* removed the smiley and symbol dialogs

* capsMode -> textCase

* language names are no longer translated

* updated build instructions

* better use of threads for DB operations

* current text candidate is as long as the sequence, to make it more intuitive

* single characters are added to the end of the suggestion, when there are no more in the database

* Added ѝ to Bulgarian character map

* disabled adding words in a user-friendly manner

* when adding a new word is not possible, a toast message appears, for better user experience

* an error is logged when there are duplicate language IDs

* settings -> settings_legacy

* custom Logger class for easier debugging and no logcat flood in the Release version

* removed unnecessary single letters and invalid words from the dictionaries

* more translations cleanup; also corrected some weird translations

* upgraded gradle
2022-10-03 15:28:24 +03:00
!RAW New logo and updated documentation (#33) 2022-07-23 15:13:18 +03:00
assets Total engine refactoring (#44) 2022-10-03 15:28:24 +03:00
docs Total engine refactoring (#44) 2022-10-03 15:28:24 +03:00
gradle/wrapper Total engine refactoring (#44) 2022-10-03 15:28:24 +03:00
res Total engine refactoring (#44) 2022-10-03 15:28:24 +03:00
src Total engine refactoring (#44) 2022-10-03 15:28:24 +03:00
.editorconfig New beginning (#1) 2022-07-11 08:56:30 +03:00
.gitignore Total engine refactoring (#44) 2022-10-03 15:28:24 +03:00
AndroidManifest.xml Total engine refactoring (#44) 2022-10-03 15:28:24 +03:00
build.gradle Total engine refactoring (#44) 2022-10-03 15:28:24 +03:00
gradle.properties Make it buildable in 2022 (#41) 2022-06-14 10:39:56 +10:00
gradlew New beginning (#1) 2022-07-11 08:56:30 +03:00
gradlew.bat Added Gradle build files, changed dict filenames 2013-11-23 17:49:24 +11:00
LICENSE.txt added missing main license and fixed several broken/missing documentation links 2022-07-31 08:35:23 +03:00
proguard-project.txt Initial commit 2013-07-02 15:35:21 +10:00
project.properties Make it buildable in 2022 (#41) 2022-06-14 10:39:56 +10:00
README.md Total engine refactoring (#44) 2022-10-03 15:28:24 +03:00

Traditional T9

TT9 is an IME (Input Method Editor) for Android devices with hardware keypad. It supports multiple languages and predictive text typing. NOTE: TT9 is not usable on touchscreen-only devices.

This is a clone of the original project by Clam-.

Building

The recommended way of building is using Android Studio. As the of time of writing this, the current version is Android Studio Chipmunk | 2021.2.1 Patch 1.

Building a Debug .apk

If you have not configure Android Studio yet, follow the official manual, then follow the simple steps below to get the project running.

  • Import the project in Android Studio.
  • Prevent the "Default Activity not found" issue. The app does not have a default view or a launcher icon. For this reason, you must configure Android Studio not to launch anything after installing, otherwise it will fail with "Default Activity not found" or a similar message. To do so:
    • Open "Edit Configurations..." (Press Shift 3 times and select it from the command list)
    • Go to "General" tab.
    • Change "Launch Options" to "Nothing"
    • Hit "OK"

That's it! Now you should be able to deploy and debug the app on your device.

You can find more info in this Github issue.

Building a Release .apk

The project is configured to build an unsigned release variant by default.

  • Select the "release" variant from Android Studio options (Build -> Select Build Variant...)
  • Build -> Rebuild Project. After that, just ignore all warnings until you get to the end of the process.
  • Find the .apk in the generated 'build/' folder.

Note that it may not be possible to install an unsigned .apk on newer versions of Android. You must either manually sign it or build a signed one instead.

Building a Signed .apk

Make sure you have a signing key. If you don't have one, follow the official manual.

  • Select Build -> Generate Signed Bundle / APK....
  • Select APK and proceed to the next screen.
  • Enter your key details (or create a new one) and continue to the next screen.
  • Choose the "Release" variant, then click Finish to start building.
  • Android Studio will tell you where the .apk is, but if it does not, try looking for it in the release/ folder.

Adding a new language

To support a new language one needs to:

  • Add status icons
    • Create a proper icon for each screen size. The icon needs to contain the abbreviation of the language. (e.g. "En" for "English").
    • The font must be Roboto Lt at an adequate size to fit the icon square with minimum padding.
    • The text must be white and the background must be transparent as per the official Android guide.
    • To simplify the process, you could use Android Studio. It has a built-in icon generator accessible by right-cicking on "drawable" folder -> New -> Image Asset. Then choose "Icon Type": "Notification Icons", "Asset Type": Text, "Trim": No, "Padding": 0%.
  • Find a suitable dictionary and add it to assets folder.
  • Create a new language class in languages/definitions/. Make sure to set all properties. The ID must be the next available one. Currently, the range is limited between 1 and 31, so there can be 31 languages in total.
  • Add the new language to the list in LanguageCollection.java. You only need to add it in one place, in the constructor. Please, be nice and maintain the alphabetical order.
  • Add a new entry in res/values/const.xml. Make sure the new ID matches the one in the language class.
  • Add new entries in res/values/arrays.xml.
  • Add translations in res/values/strings-your-lang. The Android Studio translation editor is very handy.

Using the app

See the user manual.

Word Lists

Here is detailed information and licenses about the word lists used:

License