Skip to content

Commit f17ac60

Browse files
committed
refactor: split extensions into different files
1 parent 74689a6 commit f17ac60

File tree

3 files changed

+159
-146
lines changed

3 files changed

+159
-146
lines changed

app/src/main/kotlin/org/fossify/keyboard/extensions/Context.kt renamed to app/src/main/kotlin/org/fossify/keyboard/extensions/ContextExt.kt

Lines changed: 0 additions & 146 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package org.fossify.keyboard.extensions
33
import android.app.KeyguardManager
44
import android.content.ClipboardManager
55
import android.content.Context
6-
import android.graphics.Color
76
import android.inputmethodservice.InputMethodService
87
import android.os.IBinder
98
import android.os.UserManager
@@ -21,15 +20,12 @@ import androidx.core.content.res.ResourcesCompat
2120
import com.google.android.material.dialog.MaterialAlertDialogBuilder
2221
import org.fossify.commons.databinding.DialogTitleBinding
2322
import org.fossify.commons.extensions.baseConfig
24-
import org.fossify.commons.extensions.darkenColor
2523
import org.fossify.commons.extensions.getColoredDrawableWithColor
2624
import org.fossify.commons.extensions.getProperBackgroundColor
2725
import org.fossify.commons.extensions.getProperPrimaryColor
2826
import org.fossify.commons.extensions.getProperTextColor
2927
import org.fossify.commons.extensions.isBlackAndWhiteTheme
3028
import org.fossify.commons.extensions.isDynamicTheme
31-
import org.fossify.commons.extensions.isSystemInDarkMode
32-
import org.fossify.commons.extensions.lightenColor
3329
import org.fossify.commons.extensions.updateTextColors
3430
import org.fossify.commons.helpers.isNougatPlus
3531
import org.fossify.commons.models.RadioItem
@@ -38,49 +34,6 @@ import org.fossify.keyboard.R
3834
import org.fossify.keyboard.databases.ClipsDatabase
3935
import org.fossify.keyboard.helpers.Config
4036
import org.fossify.keyboard.helpers.INPUT_METHOD_SUBTYPE_VOICE
41-
import org.fossify.keyboard.helpers.LANGUAGE_ARABIC
42-
import org.fossify.keyboard.helpers.LANGUAGE_BELARUSIAN_CYRL
43-
import org.fossify.keyboard.helpers.LANGUAGE_BELARUSIAN_LATN
44-
import org.fossify.keyboard.helpers.LANGUAGE_BENGALI
45-
import org.fossify.keyboard.helpers.LANGUAGE_BULGARIAN
46-
import org.fossify.keyboard.helpers.LANGUAGE_CENTRAL_KURDISH
47-
import org.fossify.keyboard.helpers.LANGUAGE_CHUVASH
48-
import org.fossify.keyboard.helpers.LANGUAGE_CZECH_QWERTY
49-
import org.fossify.keyboard.helpers.LANGUAGE_CZECH_QWERTZ
50-
import org.fossify.keyboard.helpers.LANGUAGE_DANISH
51-
import org.fossify.keyboard.helpers.LANGUAGE_DUTCH
52-
import org.fossify.keyboard.helpers.LANGUAGE_ENGLISH_ASSET
53-
import org.fossify.keyboard.helpers.LANGUAGE_ENGLISH_COLEMAK
54-
import org.fossify.keyboard.helpers.LANGUAGE_ENGLISH_COLEMAKDH
55-
import org.fossify.keyboard.helpers.LANGUAGE_ENGLISH_DVORAK
56-
import org.fossify.keyboard.helpers.LANGUAGE_ENGLISH_NIRO
57-
import org.fossify.keyboard.helpers.LANGUAGE_ENGLISH_QWERTZ
58-
import org.fossify.keyboard.helpers.LANGUAGE_ENGLISH_SOUL
59-
import org.fossify.keyboard.helpers.LANGUAGE_ENGLISH_WORKMAN
60-
import org.fossify.keyboard.helpers.LANGUAGE_ESPERANTO
61-
import org.fossify.keyboard.helpers.LANGUAGE_FRENCH_AZERTY
62-
import org.fossify.keyboard.helpers.LANGUAGE_FRENCH_BEPO
63-
import org.fossify.keyboard.helpers.LANGUAGE_GERMAN
64-
import org.fossify.keyboard.helpers.LANGUAGE_GERMAN_QWERTZ
65-
import org.fossify.keyboard.helpers.LANGUAGE_GREEK
66-
import org.fossify.keyboard.helpers.LANGUAGE_HEBREW
67-
import org.fossify.keyboard.helpers.LANGUAGE_ITALIAN
68-
import org.fossify.keyboard.helpers.LANGUAGE_KABYLE_AZERTY
69-
import org.fossify.keyboard.helpers.LANGUAGE_LATVIAN
70-
import org.fossify.keyboard.helpers.LANGUAGE_LITHUANIAN
71-
import org.fossify.keyboard.helpers.LANGUAGE_NORWEGIAN
72-
import org.fossify.keyboard.helpers.LANGUAGE_POLISH
73-
import org.fossify.keyboard.helpers.LANGUAGE_PORTUGUESE
74-
import org.fossify.keyboard.helpers.LANGUAGE_PORTUGUESE_HCESAR
75-
import org.fossify.keyboard.helpers.LANGUAGE_ROMANIAN
76-
import org.fossify.keyboard.helpers.LANGUAGE_RUSSIAN
77-
import org.fossify.keyboard.helpers.LANGUAGE_SLOVENIAN
78-
import org.fossify.keyboard.helpers.LANGUAGE_SPANISH
79-
import org.fossify.keyboard.helpers.LANGUAGE_SWEDISH
80-
import org.fossify.keyboard.helpers.LANGUAGE_TURKISH
81-
import org.fossify.keyboard.helpers.LANGUAGE_TURKISH_Q
82-
import org.fossify.keyboard.helpers.LANGUAGE_UKRAINIAN
83-
import org.fossify.keyboard.helpers.LANGUAGE_VIETNAMESE_TELEX
8437
import org.fossify.keyboard.interfaces.ClipsDao
8538

8639
val Context.config: Config get() = Config.newInstance(applicationContext.safeStorageContext)
@@ -115,43 +68,6 @@ fun Context.getCurrentClip(): String? {
11568
return clipboardManager.primaryClip?.getItemAt(0)?.text?.toString()
11669
}
11770

118-
fun Context.getKeyboardBackgroundColor(): Int {
119-
val color = if (isDynamicTheme()) {
120-
resources.getColor(R.color.you_keyboard_background_color, theme)
121-
} else {
122-
getProperBackgroundColor().darkenColor(2)
123-
}
124-
125-
// use darker background color when key borders are enabled
126-
if (config.showKeyBorders) {
127-
val darkerColor = color.darkenColor(2)
128-
return if (darkerColor == Color.WHITE) {
129-
resources.getColor(R.color.md_grey_200, theme)
130-
} else {
131-
darkerColor
132-
}
133-
}
134-
135-
return color
136-
}
137-
138-
fun Context.getStrokeColor(): Int {
139-
return if (isDynamicTheme()) {
140-
if (isSystemInDarkMode()) {
141-
resources.getColor(R.color.md_grey_800, theme)
142-
} else {
143-
resources.getColor(R.color.md_grey_400, theme)
144-
}
145-
} else {
146-
val lighterColor = safeStorageContext.getProperBackgroundColor().lightenColor()
147-
if (lighterColor == Color.WHITE || lighterColor == Color.BLACK) {
148-
resources.getColor(R.color.divider_grey, theme)
149-
} else {
150-
lighterColor
151-
}
152-
}
153-
}
154-
15571
fun Context.getKeyboardDialogBuilder() = if (safeStorageContext.isDynamicTheme()) {
15672
MaterialAlertDialogBuilder(this, R.style.MyKeyboard_Alert)
15773
} else {
@@ -273,68 +189,6 @@ fun Context.setupKeyboardDialogStuff(
273189
}
274190
}
275191

276-
fun Context.getSelectedLanguagesSorted(): List<Int> {
277-
return config.selectedLanguages
278-
.map { it to getKeyboardLanguageText(it) }
279-
.sortedBy { it.second }
280-
.map { it.first }
281-
}
282-
283-
fun Context.getKeyboardLanguagesRadioItems(): ArrayList<RadioItem> {
284-
return getSelectedLanguagesSorted()
285-
.map { RadioItem(it, getKeyboardLanguageText(it)) }
286-
.toMutableList() as ArrayList<RadioItem>
287-
}
288-
289-
fun Context.getKeyboardLanguageText(language: Int): String {
290-
return when (language) {
291-
LANGUAGE_ARABIC -> getString(R.string.translation_arabic)
292-
LANGUAGE_BELARUSIAN_CYRL -> "${getString(R.string.translation_belarusian)} (Cyrillic)"
293-
LANGUAGE_BELARUSIAN_LATN -> "${getString(R.string.translation_belarusian)} (Latin)"
294-
LANGUAGE_BENGALI -> getString(R.string.translation_bengali)
295-
LANGUAGE_BULGARIAN -> getString(R.string.translation_bulgarian)
296-
LANGUAGE_CENTRAL_KURDISH -> getString(R.string.translation_central_kurdish)
297-
LANGUAGE_CHUVASH -> getString(R.string.translation_chuvash)
298-
LANGUAGE_CZECH_QWERTY -> "${getString(R.string.translation_czech)} (QWERTY)"
299-
LANGUAGE_CZECH_QWERTZ -> "${getString(R.string.translation_czech)} (QWERTZ)"
300-
LANGUAGE_DANISH -> getString(R.string.translation_danish)
301-
LANGUAGE_DUTCH -> getString(R.string.translation_dutch)
302-
LANGUAGE_ENGLISH_ASSET -> "${getString(R.string.translation_english)} (Asset)"
303-
LANGUAGE_ENGLISH_COLEMAK -> "${getString(R.string.translation_english)} (Colemak)"
304-
LANGUAGE_ENGLISH_COLEMAKDH -> "${getString(R.string.translation_english)} (Colemak-DH)"
305-
LANGUAGE_ENGLISH_DVORAK -> "${getString(R.string.translation_english)} (DVORAK)"
306-
LANGUAGE_ENGLISH_NIRO -> "${getString(R.string.translation_english)} (Niro)"
307-
LANGUAGE_ENGLISH_QWERTZ -> "${getString(R.string.translation_english)} (QWERTZ)"
308-
LANGUAGE_ENGLISH_SOUL -> "${getString(R.string.translation_english)} (Soul)"
309-
LANGUAGE_ENGLISH_WORKMAN -> "${getString(R.string.translation_english)} (Workman)"
310-
LANGUAGE_ESPERANTO -> getString(R.string.translation_esperanto)
311-
LANGUAGE_FRENCH_AZERTY -> "${getString(R.string.translation_french)} (AZERTY)"
312-
LANGUAGE_FRENCH_BEPO -> "${getString(R.string.translation_french)} (BEPO)"
313-
LANGUAGE_GERMAN -> getString(R.string.translation_german)
314-
LANGUAGE_GERMAN_QWERTZ -> "${getString(R.string.translation_german)} (QWERTZ)"
315-
LANGUAGE_GREEK -> getString(R.string.translation_greek)
316-
LANGUAGE_HEBREW -> getString(R.string.translation_hebrew)
317-
LANGUAGE_ITALIAN -> getString(R.string.translation_italian)
318-
LANGUAGE_KABYLE_AZERTY -> "${getString(R.string.translation_kabyle)} (AZERTY)"
319-
LANGUAGE_LATVIAN -> getString(R.string.translation_latvian)
320-
LANGUAGE_LITHUANIAN -> getString(R.string.translation_lithuanian)
321-
LANGUAGE_NORWEGIAN -> getString(R.string.translation_norwegian)
322-
LANGUAGE_POLISH -> getString(R.string.translation_polish)
323-
LANGUAGE_PORTUGUESE -> getString(R.string.translation_portuguese)
324-
LANGUAGE_PORTUGUESE_HCESAR -> "${getString(R.string.translation_portuguese)} (HCESAR)"
325-
LANGUAGE_ROMANIAN -> getString(R.string.translation_romanian)
326-
LANGUAGE_RUSSIAN -> getString(R.string.translation_russian)
327-
LANGUAGE_SLOVENIAN -> getString(R.string.translation_slovenian)
328-
LANGUAGE_SPANISH -> getString(R.string.translation_spanish)
329-
LANGUAGE_SWEDISH -> getString(R.string.translation_swedish)
330-
LANGUAGE_TURKISH -> getString(R.string.translation_turkish)
331-
LANGUAGE_TURKISH_Q -> "${getString(R.string.translation_turkish)} (Q)"
332-
LANGUAGE_UKRAINIAN -> getString(R.string.translation_ukrainian)
333-
LANGUAGE_VIETNAMESE_TELEX -> "${getString(R.string.translation_vietnamese)} (Telex)"
334-
else -> "${getString(R.string.translation_english)} (QWERTY)"
335-
}
336-
}
337-
338192
fun Context.getVoiceInputMethods(imm: InputMethodManager = inputMethodManager): List<Pair<InputMethodInfo, InputMethodSubtype>> {
339193
return imm.enabledInputMethodList.flatMap { im ->
340194
imm.getEnabledInputMethodSubtypeList(im, true)
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
package org.fossify.keyboard.extensions
2+
3+
import android.annotation.SuppressLint
4+
import android.content.Context
5+
import org.fossify.commons.models.RadioItem
6+
import org.fossify.keyboard.R
7+
import org.fossify.keyboard.helpers.LANGUAGE_ARABIC
8+
import org.fossify.keyboard.helpers.LANGUAGE_BELARUSIAN_CYRL
9+
import org.fossify.keyboard.helpers.LANGUAGE_BELARUSIAN_LATN
10+
import org.fossify.keyboard.helpers.LANGUAGE_BENGALI
11+
import org.fossify.keyboard.helpers.LANGUAGE_BULGARIAN
12+
import org.fossify.keyboard.helpers.LANGUAGE_CENTRAL_KURDISH
13+
import org.fossify.keyboard.helpers.LANGUAGE_CHUVASH
14+
import org.fossify.keyboard.helpers.LANGUAGE_CZECH_QWERTY
15+
import org.fossify.keyboard.helpers.LANGUAGE_CZECH_QWERTZ
16+
import org.fossify.keyboard.helpers.LANGUAGE_DANISH
17+
import org.fossify.keyboard.helpers.LANGUAGE_DUTCH
18+
import org.fossify.keyboard.helpers.LANGUAGE_ENGLISH_ASSET
19+
import org.fossify.keyboard.helpers.LANGUAGE_ENGLISH_COLEMAK
20+
import org.fossify.keyboard.helpers.LANGUAGE_ENGLISH_COLEMAKDH
21+
import org.fossify.keyboard.helpers.LANGUAGE_ENGLISH_DVORAK
22+
import org.fossify.keyboard.helpers.LANGUAGE_ENGLISH_NIRO
23+
import org.fossify.keyboard.helpers.LANGUAGE_ENGLISH_QWERTZ
24+
import org.fossify.keyboard.helpers.LANGUAGE_ENGLISH_SOUL
25+
import org.fossify.keyboard.helpers.LANGUAGE_ENGLISH_WORKMAN
26+
import org.fossify.keyboard.helpers.LANGUAGE_ESPERANTO
27+
import org.fossify.keyboard.helpers.LANGUAGE_FRENCH_AZERTY
28+
import org.fossify.keyboard.helpers.LANGUAGE_FRENCH_BEPO
29+
import org.fossify.keyboard.helpers.LANGUAGE_GERMAN
30+
import org.fossify.keyboard.helpers.LANGUAGE_GERMAN_QWERTZ
31+
import org.fossify.keyboard.helpers.LANGUAGE_GREEK
32+
import org.fossify.keyboard.helpers.LANGUAGE_HEBREW
33+
import org.fossify.keyboard.helpers.LANGUAGE_ITALIAN
34+
import org.fossify.keyboard.helpers.LANGUAGE_KABYLE_AZERTY
35+
import org.fossify.keyboard.helpers.LANGUAGE_LATVIAN
36+
import org.fossify.keyboard.helpers.LANGUAGE_LITHUANIAN
37+
import org.fossify.keyboard.helpers.LANGUAGE_NORWEGIAN
38+
import org.fossify.keyboard.helpers.LANGUAGE_POLISH
39+
import org.fossify.keyboard.helpers.LANGUAGE_PORTUGUESE
40+
import org.fossify.keyboard.helpers.LANGUAGE_PORTUGUESE_HCESAR
41+
import org.fossify.keyboard.helpers.LANGUAGE_ROMANIAN
42+
import org.fossify.keyboard.helpers.LANGUAGE_RUSSIAN
43+
import org.fossify.keyboard.helpers.LANGUAGE_SLOVENIAN
44+
import org.fossify.keyboard.helpers.LANGUAGE_SPANISH
45+
import org.fossify.keyboard.helpers.LANGUAGE_SWEDISH
46+
import org.fossify.keyboard.helpers.LANGUAGE_TURKISH
47+
import org.fossify.keyboard.helpers.LANGUAGE_TURKISH_Q
48+
import org.fossify.keyboard.helpers.LANGUAGE_UKRAINIAN
49+
import org.fossify.keyboard.helpers.LANGUAGE_VIETNAMESE_TELEX
50+
51+
fun Context.getSelectedLanguagesSorted(): List<Int> {
52+
return config.selectedLanguages
53+
.map { it to getKeyboardLanguageText(it) }
54+
.sortedBy { it.second }
55+
.map { it.first }
56+
}
57+
58+
fun Context.getKeyboardLanguagesRadioItems(): ArrayList<RadioItem> {
59+
return getSelectedLanguagesSorted()
60+
.map { RadioItem(it, getKeyboardLanguageText(it)) }
61+
.toMutableList() as ArrayList<RadioItem>
62+
}
63+
64+
@Suppress("CyclomaticComplexMethod")
65+
fun Context.getKeyboardLanguageText(language: Int): String {
66+
return when (language) {
67+
LANGUAGE_ARABIC -> getString(R.string.translation_arabic)
68+
LANGUAGE_BELARUSIAN_CYRL -> "${getString(R.string.translation_belarusian)} (Cyrillic)"
69+
LANGUAGE_BELARUSIAN_LATN -> "${getString(R.string.translation_belarusian)} (Latin)"
70+
LANGUAGE_BENGALI -> getString(R.string.translation_bengali)
71+
LANGUAGE_BULGARIAN -> getString(R.string.translation_bulgarian)
72+
LANGUAGE_CENTRAL_KURDISH -> getString(R.string.translation_central_kurdish)
73+
LANGUAGE_CHUVASH -> getString(R.string.translation_chuvash)
74+
LANGUAGE_CZECH_QWERTY -> "${getString(R.string.translation_czech)} (QWERTY)"
75+
LANGUAGE_CZECH_QWERTZ -> "${getString(R.string.translation_czech)} (QWERTZ)"
76+
LANGUAGE_DANISH -> getString(R.string.translation_danish)
77+
LANGUAGE_DUTCH -> getString(R.string.translation_dutch)
78+
LANGUAGE_ENGLISH_ASSET -> "${getString(R.string.translation_english)} (Asset)"
79+
LANGUAGE_ENGLISH_COLEMAK -> "${getString(R.string.translation_english)} (Colemak)"
80+
LANGUAGE_ENGLISH_COLEMAKDH -> "${getString(R.string.translation_english)} (Colemak-DH)"
81+
LANGUAGE_ENGLISH_DVORAK -> "${getString(R.string.translation_english)} (DVORAK)"
82+
LANGUAGE_ENGLISH_NIRO -> "${getString(R.string.translation_english)} (Niro)"
83+
LANGUAGE_ENGLISH_QWERTZ -> "${getString(R.string.translation_english)} (QWERTZ)"
84+
LANGUAGE_ENGLISH_SOUL -> "${getString(R.string.translation_english)} (Soul)"
85+
LANGUAGE_ENGLISH_WORKMAN -> "${getString(R.string.translation_english)} (Workman)"
86+
LANGUAGE_ESPERANTO -> getString(R.string.translation_esperanto)
87+
LANGUAGE_FRENCH_AZERTY -> "${getString(R.string.translation_french)} (AZERTY)"
88+
LANGUAGE_FRENCH_BEPO -> "${getString(R.string.translation_french)} (BEPO)"
89+
LANGUAGE_GERMAN -> getString(R.string.translation_german)
90+
LANGUAGE_GERMAN_QWERTZ -> "${getString(R.string.translation_german)} (QWERTZ)"
91+
LANGUAGE_GREEK -> getString(R.string.translation_greek)
92+
LANGUAGE_HEBREW -> getString(R.string.translation_hebrew)
93+
LANGUAGE_ITALIAN -> getString(R.string.translation_italian)
94+
LANGUAGE_KABYLE_AZERTY -> "${getString(R.string.translation_kabyle)} (AZERTY)"
95+
LANGUAGE_LATVIAN -> getString(R.string.translation_latvian)
96+
LANGUAGE_LITHUANIAN -> getString(R.string.translation_lithuanian)
97+
LANGUAGE_NORWEGIAN -> getString(R.string.translation_norwegian)
98+
LANGUAGE_POLISH -> getString(R.string.translation_polish)
99+
LANGUAGE_PORTUGUESE -> getString(R.string.translation_portuguese)
100+
LANGUAGE_PORTUGUESE_HCESAR -> "${getString(R.string.translation_portuguese)} (HCESAR)"
101+
LANGUAGE_ROMANIAN -> getString(R.string.translation_romanian)
102+
LANGUAGE_RUSSIAN -> getString(R.string.translation_russian)
103+
LANGUAGE_SLOVENIAN -> getString(R.string.translation_slovenian)
104+
LANGUAGE_SPANISH -> getString(R.string.translation_spanish)
105+
LANGUAGE_SWEDISH -> getString(R.string.translation_swedish)
106+
LANGUAGE_TURKISH -> getString(R.string.translation_turkish)
107+
LANGUAGE_TURKISH_Q -> "${getString(R.string.translation_turkish)} (Q)"
108+
LANGUAGE_UKRAINIAN -> getString(R.string.translation_ukrainian)
109+
LANGUAGE_VIETNAMESE_TELEX -> "${getString(R.string.translation_vietnamese)} (Telex)"
110+
else -> "${getString(R.string.translation_english)} (QWERTY)"
111+
}
112+
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package org.fossify.keyboard.extensions
2+
3+
import android.content.Context
4+
import android.graphics.Color
5+
import org.fossify.commons.extensions.darkenColor
6+
import org.fossify.commons.extensions.getProperBackgroundColor
7+
import org.fossify.commons.extensions.isDynamicTheme
8+
import org.fossify.commons.extensions.isSystemInDarkMode
9+
import org.fossify.commons.extensions.lightenColor
10+
import org.fossify.keyboard.R
11+
12+
fun Context.getKeyboardBackgroundColor(): Int {
13+
val color = if (isDynamicTheme()) {
14+
resources.getColor(R.color.you_keyboard_background_color, theme)
15+
} else {
16+
getProperBackgroundColor().darkenColor(2)
17+
}
18+
19+
// use darker background color when key borders are enabled
20+
if (config.showKeyBorders) {
21+
val darkerColor = color.darkenColor(2)
22+
return if (darkerColor == Color.WHITE) {
23+
resources.getColor(R.color.md_grey_200, theme)
24+
} else {
25+
darkerColor
26+
}
27+
}
28+
29+
return color
30+
}
31+
32+
fun Context.getStrokeColor(): Int {
33+
return if (isDynamicTheme()) {
34+
if (isSystemInDarkMode()) {
35+
resources.getColor(R.color.md_grey_800, theme)
36+
} else {
37+
resources.getColor(R.color.md_grey_400, theme)
38+
}
39+
} else {
40+
val lighterColor = safeStorageContext.getProperBackgroundColor().lightenColor()
41+
if (lighterColor == Color.WHITE || lighterColor == Color.BLACK) {
42+
resources.getColor(R.color.divider_grey, theme)
43+
} else {
44+
lighterColor
45+
}
46+
}
47+
}

0 commit comments

Comments
 (0)