diff --git a/CHANGELOG.md b/CHANGELOG.md index 1aceb2ea1..3f49067c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,7 +23,7 @@ Emojis for the following are chosen based on [gitmoji](https://gitmoji.dev/). ### ⌨️ Keyboards -- Keyboards for English, French, German, Italian, Portuguese, Russian, Spanish and Swedish. +- Keyboards for English, French, German, Greek, Italian, Portuguese, Russian, Spanish and Swedish. - Keyboards can easily be individually installed based on the language the user speaks ([#15](https://github.com/scribe-org/Scribe-Android/issues/15)). ### ✨ New Features diff --git a/app/src/keyboards/AndroidManifest.xml b/app/src/keyboards/AndroidManifest.xml index 1fa972448..7047da2c4 100644 --- a/app/src/keyboards/AndroidManifest.xml +++ b/app/src/keyboards/AndroidManifest.xml @@ -41,6 +41,19 @@ android:name="android.view.im" android:resource="@xml/method_german" /> + + + + + + + R.xml.keys_letters_greek_tablet + isPeriodAndCommaEnabled() -> R.xml.keys_letters_greek + else -> R.xml.keys_letters_greek_without_period_and_comma + } + + override val defaultConjugateModeType: String = "2x2" + override val defaultConjugateLayoutXML: Int = R.xml.conjugate_view_2x2 + + override val keyboardLetters: Int = 0 + override val keyboardSymbols: Int = 1 + override val keyboardSymbolShift: Int = 2 + + override var lastShiftPressTS: Long = 0L + override var keyboardMode: Int = keyboardLetters + override var inputTypeClass: Int = InputType.TYPE_CLASS_TEXT + override var enterKeyType: Int = IME_ACTION_NONE + override var switchToLetters: Boolean = false + + private val keyHandler by lazy { KeyHandler(this) } + + override fun onKey(code: Int) { + keyHandler.handleKey(code, language) + } +} diff --git a/app/src/main/java/be/scri/models/ScribeLanguage.kt b/app/src/main/java/be/scri/models/ScribeLanguage.kt index 448181a78..939f40fbc 100644 --- a/app/src/main/java/be/scri/models/ScribeLanguage.kt +++ b/app/src/main/java/be/scri/models/ScribeLanguage.kt @@ -15,6 +15,7 @@ enum class ScribeLanguage( ENGLISH("English", "EN"), FRENCH("French", "FR"), GERMAN("German", "DE"), + GREEK("Greek", "EL"), ITALIAN("Italian", "IT"), PORTUGUESE("Portuguese", "PT"), RUSSIAN("Russian", "RU"), diff --git a/app/src/main/res/xml/keys_letters_greek.xml b/app/src/main/res/xml/keys_letters_greek.xml new file mode 100644 index 000000000..ff6355997 --- /dev/null +++ b/app/src/main/res/xml/keys_letters_greek.xml @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/xml/keys_letters_greek_tablet.xml b/app/src/main/res/xml/keys_letters_greek_tablet.xml new file mode 100644 index 000000000..d38b93f78 --- /dev/null +++ b/app/src/main/res/xml/keys_letters_greek_tablet.xml @@ -0,0 +1,227 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/xml/keys_letters_greek_without_period_and_comma.xml b/app/src/main/res/xml/keys_letters_greek_without_period_and_comma.xml new file mode 100644 index 000000000..0cc416b05 --- /dev/null +++ b/app/src/main/res/xml/keys_letters_greek_without_period_and_comma.xml @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/xml/method_greek.xml b/app/src/main/res/xml/method_greek.xml new file mode 100644 index 000000000..e364213f9 --- /dev/null +++ b/app/src/main/res/xml/method_greek.xml @@ -0,0 +1,8 @@ + + +