Неофициальная модификация Android-клавиатуры LeanType с автоматической вставкой SMS-кодов и улучшенными контекстными подсказками на русском языке.
Проект создан для личного использования и опубликован в открытом доступе.
После перехода с iPhone на Android меня раздражала одна вещь: на iPhone коды подтверждения из SMS удобно появлялись над клавиатурой, а на Android это работало далеко не всегда.
Мне хотелось, чтобы входящий SMS-код автоматически появлялся в строке подсказок и его можно было вставить одним нажатием, независимо от того, поддерживает ли конкретное приложение стандартное автозаполнение Android.
В итоге я решил навайбкодить собственное решение на основе открытой клавиатуры LeanType. Заодно добавил более продвинутые контекстные подсказки на русском языке.
Никакого большого проекта из этого делать не планировал — просто сделал то, чего мне самому не хватало, и решил поделиться исходниками (может пригодятся кому-то).
Проверено на: CMF Phone 1, Android 16 (Nothing OS 4.0).
На других устройствах и версиях Android работоспособность не проверялась.
- Автоматическое распознавание одноразовых кодов из входящих SMS.
- Отображение кода в панели подсказок клавиатуры.
- Вставка кода одним нажатием.
- Автоматическое удаление кода из памяти через 120 секунд.
- Не требуется доступ к истории SMS.
Функция использует разрешение RECEIVE_SMS и включается в настройках клавиатуры.
- Предсказание следующего слова с учётом предыдущих слов.
- Локальная модель на основе биграмм и триграмм.
- Персональная история ввода.
- Совместная работа с существующей системой автокоррекции.
Все предсказания обрабатываются непосредственно на устройстве, без подключения к интернету.
Приложение распространяется в виде APK-файла, собранного в режиме Debug, и не публикуется в Google Play.
При установке Android может показать предупреждение о безопасности или заблокировать установку из неизвестного источника. Это связано с установкой APK вне Google Play, а не с наличием вредоносного кода.
Для установки может потребоваться:
- Разрешить установку приложений из выбранного источника (например, браузера или файлового менеджера).
- Если Google Play Protect показывает предупреждение, внимательно ознакомиться с ним. Продолжать установку следует только в том случае, если APK скачан из официального релиза этого репозитория и вы доверяете его содержимому.
- После установки включить клавиатуру LeanType в настройках Android и выбрать её в качестве текущей.
- Для работы функции автоматической подстановки SMS-кодов предоставить клавиатуре разрешение на получение SMS (
RECEIVE_SMS). При необходимости разрешение можно выдать вручную в настройках приложения.
Важно: разрешение на получение SMS необходимо только для функции подстановки кодов. Обработка кодов выполняется локально, без отправки данных на сервер. Приложение не запрашивает разрешение на чтение всей истории SMS (READ_SMS).
Проверено на: CMF Phone 1, Android 16 (Nothing OS 4.0). Поведение предупреждений и порядок выдачи разрешений могут отличаться на других устройствах.
Готовую сборку APK можно скачать только в разделе Releases.
Необходимы JDK 17, Android SDK (compileSdk 36) и Android NDK 28.0.13004108.
Сборка на Windows:
.\gradlew.bat :app:assembleOfflineDebugСборка на Linux:
./gradlew :app:assembleOfflineDebugГотовый APK будет находиться в app/build/outputs/apk/offline/debug/.
После установки необходимо самостоятельно настроить LeanType под себя.
Обратите внимание:
- Словари для нужных языков необходимо скачать и установить самостоятельно через настройки LeanType.
- Языки ввода, раскладки, автокоррекция и другие параметры настраиваются пользователем.
- Дополнительные возможности оригинального LeanType работают по тем же принципам, что и в исходном приложении.
- Для автоматической подстановки SMS-кодов необходимо отдельно включить соответствующую функцию и предоставить разрешение на получение SMS.
Я не изменял систему первоначальной настройки LeanType и не добавлял автоматическую загрузку словарей.
Мои изменения касаются прежде всего обработки SMS-кодов и контекстных подсказок на русском языке. Локальная модель предсказания следующего слова уже включена в сборку, но она не заменяет обычные словари LeanType.
Если возникают вопросы по стандартным настройкам клавиатуры, рекомендую обратиться к оригинальному проекту LeanType.
Клавиатура работает без доступа к интернету.
Обработка вводимого текста, формирование подсказок и распознавание SMS-кодов выполняются локально.
Одноразовые SMS-коды временно хранятся в оперативной памяти и не добавляются в историю буфера обмена.
Проект основан на LeanType и распространяется с сохранением лицензии GPL-3.0.
Для обучения русской языковой модели использовались предложения из корпуса Tatoeba.
Дополнительная информация об авторстве и лицензиях находится в файлах THIRD_PARTY_NOTICES.md, MODEL_CARD.md и LICENSE.
Это личный экспериментальный форк, опубликованный «как есть».
Регулярные обновления, техническая поддержка и дальнейшее развитие проекта не планируются.