Управление доступными смайликами на клавиатуре для EditText - PullRequest
0 голосов
/ 16 апреля 2020

Я занимаюсь разработкой android приложения, в котором пользователи могут вводить эмодзи в androidx.emoji.widget.EmojiEditText. Я использую Emoji Compat с setReplaceAll(true) для рендеринга смайликов.

На моем телефоне я использую Gboard в качестве клавиатуры для ввода смайликов. Я заметил две проблемы на телефоне Samsung:

  • Gboard отображает только смайлики, которые доступны для всей системы, даже если мое приложение способно воспроизводить больше смайликов (благодаря смайлику compat). Например, попугай ? был добавлен в Unicode в 2018 году и не является частью системного шрифта моего телефона. Поэтому он не отображается в списке, и я не могу его напечатать.
  • Стили смайликов в стиле Gboard по умолчанию используются в моем системном стиле шрифта эмодзи, который отличается от шрифта Noto Color Emoji, который я использую в своем приложении через EmojiCompat.

Выглядит это так: samsung gboard

Однако, если я открою WhatsApp на том же телефоне, Gboard внезапно отобразит дополнительные смайлики (например, попугай ?) а также переключается на стиль Noto Color Emoji. Например: samsung gboard в whatsapp

Это заставляет меня думать, что должен быть какой-то механизм, чтобы сказать клавиатуре, какие эмодзи должны быть включены (например, версия Unicode) или какой стиль следует использовать. Мне не удалось найти что-либо о таком механизме, например, через параметры IME, InputType, EditorInfo, InputConnections или тому подобное. Возможно у Gboard есть EditorInfo#privateImeOptions?

Есть ли способ сообщить программной клавиатуре android о доступных смайликах, например, о поддерживаемой версии Unicode или что-то вроде EmojiCompats setReplaceAll(), чтобы она предоставляет пользователю все смайлики, а не только те, которые доступны в системе?

...