Skip to content

Commit

Permalink
#241 add latin & greek letters to symbols
Browse files Browse the repository at this point in the history
  • Loading branch information
zuevval committed Aug 29, 2020
1 parent cd85d9d commit 69a56a1
Show file tree
Hide file tree
Showing 3 changed files with 114 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,23 @@ val prepopulationData by data(
}

decks {
deck(DeckTags.all) { true } // This deck should always exist
deck(DeckTags.all) { true } // This deck should always exist
deck(DeckTags.allWithRus) { data ->
data is Symbol && data.type in listOf(
SymbolType.ru,
SymbolType.special,
SymbolType.digit
)
}
deck(DeckTags.ruLetters) { data ->
data is Symbol && data.type == SymbolType.ru
}
deck(DeckTags.latinLetters) { data ->
data is Symbol && data.type == SymbolType.latin
}
deck(DeckTags.greekLetters) { data ->
data is Symbol && data.type == SymbolType.greek
}
deck(DeckTags.special) { data ->
data is Symbol && data.type == SymbolType.special
}
Expand All @@ -74,7 +87,10 @@ object StepAnnotation {

object DeckTags {
const val all = "all"
const val allWithRus = "all_with_rus"
const val ruLetters = "ru_letters"
const val latinLetters = "latin_letters"
const val greekLetters = "greek_letters"
const val digits = "digits"
const val special = "special"
}
Expand All @@ -83,7 +99,10 @@ val Context.deckTagToName: Map<String, String> by lazyWithContext {
DeckTags.run {
mapOf(
all to getString(R.string.deck_name_all),
allWithRus to getString(R.string.deck_name_all_with_ru),
ruLetters to getString(R.string.deck_name_ru_letters),
latinLetters to getString(R.string.deck_name_latin_letters),
greekLetters to getString(R.string.deck_name_greek_letters),
digits to getString(R.string.deck_name_digits),
special to getString(R.string.deck_name_special_symbols)
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,15 @@ import com.github.braillesystems.learnbraille.utils.rules
*
* Always use this variable to get materials.
*/

// TODO write a migration for lat, greek

val content by materials {
+ruSymbols
+specialSymbols
+uebDigits
+latinLetters
+greekLetters
}

val knownMaterials by known(
Expand All @@ -44,6 +49,16 @@ val Context.inputSymbolPrintRules by rules<Context, Char, String>(
uebDigits.map::containsKey to { c: Char -> t.format(c) }
},

{
val t = getString(R.string.input_latin_letter_intro_template)
latinLetters.map::containsKey to { c: Char -> t.format(c) }
},

{
val t = getString(R.string.input_greek_letter_intro_template)
greekLetters.map::containsKey to { c: Char -> t.format(c) }
},

{
val other = getString(R.string.input_special_intro_template)
val numSign = getString(R.string.input_special_intro_num_sign)
Expand All @@ -63,6 +78,8 @@ val Context.inputSymbolPrintRules by rules<Context, Char, String>(
)

val Context.showSymbolPrintRules by rules<Context, Char, String>(
// TODO reduce repeated code

{
val t = getString(R.string.show_letter_intro_template)
ruSymbols.map::containsKey to { c: Char -> t.format(c) }
Expand All @@ -73,6 +90,16 @@ val Context.showSymbolPrintRules by rules<Context, Char, String>(
uebDigits.map::containsKey to { c: Char -> t.format(c) }
},

{
val t = getString(R.string.show_latin_letter_intro_template)
latinLetters.map::containsKey to { c: Char -> t.format(c) }
},

{
val t = getString(R.string.show_greek_letter_intro_template)
greekLetters.map::containsKey to { c: Char -> t.format(c) }
},

{
val other = getString(R.string.show_special_intro_template)
val numSign = getString(R.string.show_special_intro_num_sign)
Expand All @@ -94,6 +121,8 @@ val Context.showSymbolPrintRules by rules<Context, Char, String>(

object SymbolType {
const val ru = "ru"
const val latin = "Latin"
const val greek = "greek"
const val special = "special"
const val digit = "digit"
}
Expand Down Expand Up @@ -153,3 +182,61 @@ private val uebDigits by symbols(SymbolType.digit) {
symbol(char = '9', brailleDots = BrailleDots(E, F, E, F, E, E))
symbol(char = '0', brailleDots = BrailleDots(E, F, E, F, F, E))
}

private val latinLetters by symbols(SymbolType.latin) {
symbol(char = 'A', brailleDots = BrailleDots(F, E, E, E, E, E))
symbol(char = 'B', brailleDots = BrailleDots(F, F, E, E, E, E))
symbol(char = 'C', brailleDots = BrailleDots(F, E, E, F, E, E))
symbol(char = 'D', brailleDots = BrailleDots(F, E, E, F, F, E))
symbol(char = 'E', brailleDots = BrailleDots(F, E, E, E, F, E))
symbol(char = 'F', brailleDots = BrailleDots(F, F, E, F, E, E))
symbol(char = 'G', brailleDots = BrailleDots(F, F, E, F, F, E))
symbol(char = 'H', brailleDots = BrailleDots(F, F, E, E, F, E))
symbol(char = 'I', brailleDots = BrailleDots(E, F, E, F, E, E))
symbol(char = 'J', brailleDots = BrailleDots(E, F, E, F, F, E))
symbol(char = 'K', brailleDots = BrailleDots(F, E, F, E, E, E))
symbol(char = 'L', brailleDots = BrailleDots(F, F, F, E, E, E))
symbol(char = 'M', brailleDots = BrailleDots(F, E, F, F, E, E))
symbol(char = 'N', brailleDots = BrailleDots(F, E, F, F, F, E))
symbol(char = 'O', brailleDots = BrailleDots(F, E, F, E, F, E))
symbol(char = 'P', brailleDots = BrailleDots(F, F, F, F, E, E))
symbol(char = 'Q', brailleDots = BrailleDots(F, F, F, F, F, E))
symbol(char = 'R', brailleDots = BrailleDots(F, F, F, E, F, E))
symbol(char = 'S', brailleDots = BrailleDots(E, F, F, F, E, E))
symbol(char = 'T', brailleDots = BrailleDots(E, F, F, F, F, E))
symbol(char = 'U', brailleDots = BrailleDots(F, E, F, E, E, F))
symbol(char = 'V', brailleDots = BrailleDots(F, F, F, E, E, F))
symbol(char = 'W', brailleDots = BrailleDots(E, F, E, F, F, F))
symbol(char = 'X', brailleDots = BrailleDots(F, E, F, F, E, F))
symbol(char = 'Y', brailleDots = BrailleDots(F, E, F, F, F, F))
symbol(char = 'Z', brailleDots = BrailleDots(F, E, F, E, F, F))
}

private val greekLetters by symbols(SymbolType.greek) {
// Note: A - Alpha (Unicode char 0399); A - English (0041); А - Russian
// You may check the code by copying and pasting at https://r12a.github.io/app-conversion/
symbol(char = 'Α', brailleDots = BrailleDots(F, E, E, E, E, E))
symbol(char = 'Β', brailleDots = BrailleDots(F, F, E, E, E, E))
symbol(char = 'Γ', brailleDots = BrailleDots(F, F, E, F, F, E))
symbol(char = 'Δ', brailleDots = BrailleDots(F, E, E, F, F, E))
symbol(char = 'Ε', brailleDots = BrailleDots(F, E, E, E, F, E))
symbol(char = 'Ζ', brailleDots = BrailleDots(F, E, F, E, F, F))
symbol(char = 'Η', brailleDots = BrailleDots(E, F, E, F, F, E))
symbol(char = 'Θ', brailleDots = BrailleDots(F, F, E, E, F, E))
symbol(char = 'Ι', brailleDots = BrailleDots(E, F, E, F, E, E))
symbol(char = 'Κ', brailleDots = BrailleDots(F, E, F, E, E, E))
symbol(char = 'Λ', brailleDots = BrailleDots(F, F, F, E, E, E))
symbol(char = 'Μ', brailleDots = BrailleDots(F, E, F, F, E, E))
symbol(char = 'Ν', brailleDots = BrailleDots(F, E, F, F, F, E))
symbol(char = 'Ξ', brailleDots = BrailleDots(F, E, F, F, E, F))
symbol(char = 'Ο', brailleDots = BrailleDots(F, E, F, E, F, E))
symbol(char = 'Π', brailleDots = BrailleDots(F, F, F, F, E, E))
symbol(char = 'Ρ', brailleDots = BrailleDots(F, F, F, E, F, E))
symbol(char = 'Σ', brailleDots = BrailleDots(E, F, F, F, E, E))
symbol(char = 'Τ', brailleDots = BrailleDots(E, F, F, F, F, E))
symbol(char = 'Υ', brailleDots = BrailleDots(F, E, F, E, E, F))
symbol(char = 'Φ', brailleDots = BrailleDots(F, F, E, F, E, E))
symbol(char = 'Χ', brailleDots = BrailleDots(F, E, E, F, E, E))
symbol(char = 'Ψ', brailleDots = BrailleDots(F, E, F, F, F, F))
symbol(char = 'Ω', brailleDots = BrailleDots(E, F, E, F, F, F))
}
7 changes: 7 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@
<string name="input_dots_hint_6">точка 6 справа снизу</string>

<string name="input_letter_intro_template">Введите букву: %s</string>
<string name="input_latin_letter_intro_template">Введите латинскую букву: %s</string>
<string name="input_greek_letter_intro_template">Введите греческую букву: %s</string>
<string name="input_digit_intro_template">Введите цифру: %s</string>
<string name="input_special_intro_template">Введите символ: %s</string>
<string name="input_special_intro_num_sign">Введите цифровой знак</string>
Expand All @@ -43,6 +45,8 @@
<string name="input_special_intro_comma">Введите запятую</string>

<string name="show_letter_intro_template">Буква %s</string>
<string name="show_latin_letter_intro_template">Латинская буква %s</string>
<string name="show_greek_letter_intro_template">Греческая буква %s</string>
<string name="show_digit_intro_template">Цифра %s</string>
<string name="show_special_intro_template">Символ %s</string>
<string name="show_special_intro_num_sign">Цифровой знак</string>
Expand Down Expand Up @@ -74,7 +78,10 @@
</string>

<string name="deck_name_all">Все символы</string>
<string name="deck_name_all_with_ru">Все символы, кроме латинских и греческих букв</string>
<string name="deck_name_ru_letters">Русские буквы</string>
<string name="deck_name_latin_letters">Латинские буквы</string>
<string name="deck_name_greek_letters">Греческие буквы</string>
<string name="deck_name_digits">Цифры</string>
<string name="deck_name_special_symbols">Специальные символы</string>

Expand Down

0 comments on commit 69a56a1

Please sign in to comment.