Получить направление чтения локали (Android) - PullRequest
0 голосов
/ 01 апреля 2020

Мое приложение получает с сервера список кодов языков интерфейса, которые могут отображать клиенты (iOS / Android / Web). До сих пор в нашем приложении Android требовалось отфильтровывать языки RTL (арабский c, ...) и сохранять только языки LTR (французский, английский sh, ...).

Как я могу получить направление чтения локали?

Я попробовал два метода, которые я нашел, но они возвращают LTR для арабского c, что не то, что я хочу (я даже не понимаю, почему это так ответь честно):

val ar1 = Character.getDirectionality(Locale("ar-EG").getDisplayName().get(0))
val ar2 = TextUtils.getLayoutDirectionFromLocale(Locale("ar-EG"))
// both returns 0 -> LAYOUT_DIRECTION_LTR -- Not what I expect

val en1 = Character.getDirectionality(Locale("en-GB").getDisplayName().get(0))
val en2 = TextUtils.getLayoutDirectionFromLocale(Locale("en-GB"))
// both returns 0 -> LAYOUT_DIRECTION_LTR -- What I expect

Спасибо.

1 Ответ

0 голосов
/ 02 апреля 2020

Хорошо ... так ... бывает, что я использовал этот код в модульных тестах (хотел попробовать подход "сначала модульные тесты"). Проблема заключается в том, что TextUtils необходимо смоделировать, если вы этого не сделаете, то поведение, которое я использовал в модульном тесте, не является ожидаемым.

Если вы используете этот фрагмент кода в коде самого приложения оно работает как шарм.

Новичок ie до Android ... beuheuheu ...

...