Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions app/src/keyboards/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,19 @@
android:name="android.view.im"
android:resource="@xml/method_german" />
</service>
<service
android:name=".services.GreekKeyboardIME"
android:exported="true"
android:label="Scribe"
android:permission="android.permission.BIND_INPUT_METHOD">
<intent-filter>
<action android:name="android.view.InputMethod" />
</intent-filter>

<meta-data
android:name="android.view.im"
android:resource="@xml/method_greek" />
</service>
<service
android:name=".services.PortugueseKeyboardIME"
android:exported="true"
Expand Down
40 changes: 40 additions & 0 deletions app/src/keyboards/java/be/scri/services/GreekKeyboardIME.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
// SPDX-License-Identifier: GPL-3.0-or-later

package be.scri.services

import android.text.InputType
import android.view.inputmethod.EditorInfo.IME_ACTION_NONE
import be.scri.R
import be.scri.helpers.KeyHandler
import be.scri.models.ScribeLanguage

/**
* The GreekKeyboardIME class provides the input method for the Greek language keyboard.
*/
class GreekKeyboardIME : GeneralKeyboardIME(ScribeLanguage.GREEK) {
override fun getKeyboardLayoutXML(): Int =
when {
isTablet() -> 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)
}
}
1 change: 1 addition & 0 deletions app/src/main/java/be/scri/models/ScribeLanguage.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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"),
Expand Down
161 changes: 161 additions & 0 deletions app/src/main/res/xml/keys_letters_greek.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard xmlns:app="http://schemas.android.com/apk/res-auto">

<!-- Row 1 -->
<Row>
<Key
app:keyEdgeFlags="left"
app:keyLabel="ς"
app:popupCharacters="1"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="1" />

<Key
app:keyLabel="ε"
app:popupCharacters="έ2"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="2" />

<Key
app:keyLabel="ρ"
app:popupCharacters="3"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="3" />

<Key
app:keyLabel="τ"
app:popupCharacters="4"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="4" />

<Key
app:keyLabel="υ"
app:popupCharacters="ύϋΰ5"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="5" />

<Key
app:keyLabel="θ"
app:popupCharacters="6"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="6" />

<Key
app:keyLabel="ι"
app:popupCharacters="ίϊΐ7"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="7" />

<Key
app:keyLabel="ο"
app:popupCharacters="ό8"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="8" />

<Key
app:keyEdgeFlags="right"
app:keyLabel="π"
app:popupCharacters="9"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="9" />
</Row>

<!-- Row 2 -->
<Row>
<Key
app:horizontalGap="5%"
app:keyEdgeFlags="left"
app:keyLabel="α"
app:popupCharacters="ά"
app:popupKeyboard="@xml/keyboard_popup_template" />

<Key
app:keyLabel="σ"
app:popupCharacters="ς"
app:popupKeyboard="@xml/keyboard_popup_template" />

<Key app:keyLabel="δ" />

<Key app:keyLabel="φ" />

<Key app:keyLabel="γ" />

<Key
app:keyLabel="η"
app:popupCharacters="ή"
app:popupKeyboard="@xml/keyboard_popup_template" />

<Key app:keyLabel="ξ" />

<Key app:keyLabel="κ" />

<Key
app:keyEdgeFlags="right"
app:keyLabel="λ" />
</Row>

<!-- Row 3 -->
<Row>
<Key
app:code="-1"
app:keyEdgeFlags="left"
app:keyIcon="@drawable/ic_caps_outline_vector"
app:keyWidth="15%p" />

<Key app:keyLabel="ζ" />
<Key app:keyLabel="χ" />
<Key app:keyLabel="ψ" />

<Key
app:keyLabel="ω"
app:popupCharacters="ώ"
app:popupKeyboard="@xml/keyboard_popup_template" />

<Key app:keyLabel="β" />
<Key app:keyLabel="ν" />
<Key app:keyLabel="μ" />

<Key
app:code="-5"
app:isRepeatable="true"
app:keyEdgeFlags="right"
app:keyIcon="@drawable/ic_clear_outline_vector"
app:keyWidth="15%p" />
</Row>

<!-- Row 4 -->
<Row>
<Key
app:code="-2"
app:keyEdgeFlags="left"
app:keyLabel="\?123"
app:keyWidth="15%p" />

<Key
app:keyLabel=","
app:keyWidth="10%p" />

<Key
app:code="-6"
app:keyIcon="@drawable/ic_emoji_vector"
app:keyWidth="10%p" />

<Key
app:code="32"
app:isRepeatable="true"
app:keyWidth="40%p" />

<Key
app:keyLabel="."
app:keyWidth="10%p"
app:popupCharacters=";:!?¿¡/()#!,?"
app:popupKeyboard="@xml/keyboard_popup_template" />

<Key
app:code="-4"
app:keyEdgeFlags="right"
app:keyIcon="@drawable/ic_enter_vector"
app:keyWidth="15%p" />
</Row>

</Keyboard>
Loading