Эмодзи2
Последнее обновление | Стабильный релиз | Кандидат на релиз | Бета-релиз | Альфа-релиз |
---|---|---|---|---|
4 июня 2025 г. | 1.5.0 | - | - | 1.6.0-альфа01 |
Объявление зависимостей
Чтобы добавить зависимость от Emoji2, необходимо добавить репозиторий Google Maven в свой проект. Прочтите репозиторий Google Maven для получения дополнительной информации.
Добавьте зависимости для необходимых артефактов в файл build.gradle
для вашего приложения или модуля:
классный
dependencies { def emoji2_version = "1.5.0" implementation "androidx.emoji2:emoji2:$emoji2_version" implementation "androidx.emoji2:emoji2-views:$emoji2_version" implementation "androidx.emoji2:emoji2-views-helper:$emoji2_version" }
Котлин
dependencies { val emoji2_version = "1.5.0" implementation("androidx.emoji2:emoji2:$emoji2_version") implementation("androidx.emoji2:emoji2-views:$emoji2_version") implementation("androidx.emoji2:emoji2-views-helper:$emoji2_version") }
Дополнительную информацию о зависимостях см. в разделе Добавление зависимостей сборки .
Обратная связь
Ваши отзывы помогают сделать Jetpack лучше. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.
Более подробную информацию смотрите в документации Issue Tracker .
Emoji2 Emojipicker Версия 1.0
Версия 1.5.0
4 сентября 2024 г.
Выпущен androidx.emoji2:emoji2-*:1.5.0
. Версия 1.5.0 содержит эти коммиты .
Важные изменения по сравнению с версией 1.4.0
- Поддержка emoji 15.1 и двунаправленного селектора emoji UI. Простое нажатие на двунаправленный переключатель позволяет пользователям переключаться между левыми и правыми версиями emoji.
- Поддержка селектора эмодзи с несколькими оттенками кожи. Долгое нажатие на эмодзи пары открывает селектор эмодзи с несколькими людьми для нулевого состояния. Когда пользователь нажимает на левую половину эмодзи, предварительный просмотр эмодзи в правом нижнем углу будет обновлен соответствующим образом. Когда пользователь выбирает обе половины эмодзи, предварительный просмотр эмодзи в правом нижнем углу покажет весь эмодзи, и пользователь сможет ввести его.
Версия 1.0.0-альфа03
8 марта 2023 г.
Выпущен androidx.emoji2:emoji2-emojipicker:1.0.0-alpha03
. Версия 1.0.0-alpha03 содержит эти коммиты.
Исправление ошибок
- Удалены ненужные ресурсы и уменьшен размер библиотеки примерно на 0,3 МБ.
Версия 1.0.0-альфа02
22 февраля 2023 г.
Выпущен androidx.emoji2:emoji2-emojipicker:1.0.0-alpha02
. Версия 1.0.0-alpha02 содержит эти коммиты.
Изменения API
- Добавлен новый API для клиентов Java, позволяющий предоставлять последние эмодзи. ( I39d10 )
Исправление ошибок
- Обновление ресурсов эмодзи для поддержки эмодзи 15.0 ( Ib4eb3 )
- При выборе эмодзи из всплывающего окна, обновить все идентичные эмодзи на вновь выбранный эмодзи (кроме строки последних эмодзи). Также озвучить эмодзи при нажатии. ( I892c6 )
- Подождите, пока загрузится emojicompat, прежде чем показывать
EmojiPickerView
. ( I29e03 )
Версия 1.0.0-альфа01
25 января 2023 г.
Выпущен androidx.emoji2:emoji2-emojipicker:1.0.0-alpha01
. Версия 1.0.0-alpha01 содержит эти коммиты.
Новые возможности
- Представлен выборщик эмодзи, который обеспечивает единообразный пользовательский опыт с последними эмодзи на устройствах и в приложениях Android OS OEM. Он обеспечивает поддержку последних эмодзи и пользовательский интерфейс выбора эмодзи, включая варианты тонов кожи и поддержку совместимых эмодзи.
Изменения API
- Представлен класс
EmojiPickerView
, который предоставляет актуальные эмодзи в вертикальном прокручиваемом виде с кликабельным горизонтальным заголовком. - Столбцы сетки выбора эмодзи можно задать с помощью атрибута XML
emojiGridColumns
или функцииsetEmojiGridColumns()
. - Строки сетки выбора эмодзи можно задать с помощью XML-атрибута
emojiGridRows
или функцииsetEmojiGridRows()
. - Слушатель выбранного эмодзи может быть установлен с помощью
setOnEmojiPickedListener()
, и прослушиватель будет получать уведомления всякий раз, когда пользователь нажимает на любой эмодзи. - Поставщик последних эмодзи может быть предоставлен с помощью
setRecentEmojiProvider()
. Это необязательная функция. Если поставщик последних эмодзи не установлен, библиотека будет использовать поставщика последних эмодзи по умолчанию. Поведение по умолчанию определяется следующим образом: 1) все выбранные эмодзи будут сохранены на уровне приложения в общих настройках. 2) средство выбора отобразит не более 3 строк выбранных эмодзи, дедупликации, в обратном хронологическом порядке. - Представлен класс
EmojiViewItem
, который содержит отображаемые эмодзи и их варианты. - Представлен интерфейс
RecentEmojiProvider
, который может быть реализован для предоставления списка последних эмодзи.recentEmojiProvider
отвечает за предоставление эмодзи в категории «Недавно использованные».
Версия 1.6
Версия 1.6.0-альфа01
4 июня 2025 г.
Выпущен androidx.emoji2:emoji2-*:1.6.0-alpha01
. Версия 1.6.0-alpha01 содержит эти коммиты .
Новые возможности
- Обновления данных Emoji 16.0 ( Ifc878 )
- Добавление суффикса «эмодзи» к описанию контента
Исправление ошибок
- Эта библиотека теперь использует аннотации nullness JSpecify , которые являются type-use. Разработчики Kotlin должны использовать следующие аргументы компилятора для обеспечения правильного использования:
-Xjspecify-annotations=strict
,-Xtype-enhancement-improvements-strict-mode
( Id07e7 , b/326456246 )
Версия 1.5
Версия 1.5.0
4 сентября 2024 г.
Выпущен androidx.emoji2:emoji2-*:1.5.0
. Версия 1.5.0 содержит эти коммиты .
Важные изменения по сравнению с версией 1.4.0
- Поддержка emoji 15.1 и двунаправленного селектора emoji UI. Простое нажатие на двунаправленный переключатель позволяет пользователям переключаться между левыми и правыми версиями emoji.
- Поддержка селектора эмодзи с несколькими оттенками кожи. Долгое нажатие на эмодзи пары открывает селектор эмодзи с несколькими людьми для нулевого состояния. Когда пользователь нажимает на левую половину эмодзи, предварительный просмотр эмодзи в правом нижнем углу будет обновлен соответствующим образом. Когда пользователь выбирает обе половины эмодзи, предварительный просмотр эмодзи в правом нижнем углу покажет весь эмодзи, и пользователь сможет ввести его.
Версия 1.5.0-rc01
21 августа 2024 г.
Выпущен androidx.emoji2:emoji2-*:1.5.0-rc01
. Версия 1.5.0-rc01 содержит эти коммиты .
Новые возможности
- Поддержка emoji 15.1 и двунаправленного селектора emoji UI. Простое нажатие на двунаправленный переключатель позволяет пользователям переключаться между левыми и правыми версиями emoji.
- Поддержка селектора эмодзи с несколькими оттенками кожи. Длительное нажатие на эмодзи пары открывает селектор эмодзи с несколькими людьми для нулевого состояния. Когда пользователь нажимает на левую половину эмодзи, предварительный просмотр эмодзи в правом нижнем углу будет обновлен соответствующим образом. Когда пользователь выбирает обе половины эмодзи, предварительный просмотр покажет весь эмодзи, и пользователь может ввести его.
Исправление ошибок
- Удалено ручное описание доступа к новым API платформы, поскольку это происходит автоматически через моделирование API при использовании R8 с AGP 7.3 или более поздней версии (например, R8 версии 3.3) и для всех сборок при использовании AGP 8.1 или более поздней версии (например, D8 версии 8.1). Клиентам, не использующим AGP, рекомендуется обновиться до D8 версии 8.1 или более поздней версии. Подробнее см. в этой статье . ( If6b4c , b/345472586 )
- Выбор вкладки и индикатор
EmojiPickerView
обновляются на один клик позже. ( 146b02 , b/288261054 ) - Выбор и индикатор вкладок
EmojiPickerView
неисправны. ( 5e1f14 , b/273883688 )
Версия 1.5.0-beta01
10 июля 2024 г.
Выпущен androidx.emoji2:emoji2-*:1.5.0-beta01
. Версия 1.5.0-beta01 содержит эти коммиты .
Новые возможности
- Поддержка эмодзи 15.1 и двунаправленного интерфейса выбора эмодзи.
- Поддержка редизайна выбора нескольких оттенков кожи.
Исправление ошибок
- Выбор вкладки и индикатор
EmojiPickerView
обновляются на один клик позже. ( 146b02 , b/288261054 ) - Выбор и индикатор вкладок
EmojiPickerView
неисправны. ( 5e1f14 , b/273883688 )
Версия 1.5.0-альфа01
13 декабря 2023 г.
Выпущен androidx.emoji2:emoji2-*:1.5.0-alpha01
. Версия 1.5.0-alpha01 содержит эти коммиты.
Новые возможности
-
emoji2-bundled
содержит обновленный шрифт эмодзи для поддержки Emoji 15.1.
Изменения API
- Добавьте исполнителей для управления потоком обратного вызова для
InitCallback
. ( I32b67 ) -
BundledEmojiCompatConfig
теперь использует исполнитель для управления потоками загрузки. ( I00e81 )
Версия 1.4
Версия 1.4.0
9 августа 2023 г.
Выпущен androidx.emoji2:emoji2-*:1.4.0
. Версия 1.4.0 содержит эти коммиты.
Важные изменения по сравнению с версией 1.3.0
- Представлена библиотека выбора эмодзи. Ознакомьтесь с документацией разработчика для получения более подробной информации.
Версия 1.4.0-rc01
26 июля 2023 г.
Выпущен androidx.emoji2:emoji2-*:1.4.0-rc01
. Версия 1.4.0-rc01 содержит эти коммиты.
Изменения API
- Ввести список
registerSource
( Iae92f ) - Обратная связь от API Council: переименовано
TransitionManager.seekTo()
вcreateSeekController()
. Пожалуйста, исправьте предыдущий комментарий о добавленииTransitionManager.seekTo()
вTransitionManager.createSeekController()
. ( Idbeb1 ) - Добавлен
ExerciseRouteResult
, который не является суперклассом дляData
,NoData
иConsentRequiredStates
. ДобавленExerciseRoute
как отдельный класс, который содержит данные о местоположении для маршрута. ( I22eed ) - Представлен
PagerLayoutInfo
с информацией, собранной после прохода измерения в Pager. Также представлен PageInfo, информация об одной измеренной странице в Pager. ( Iad003 , b/283098900 )
Исправление ошибок
- Мы обновили цвета для
Button
,IconButton
иTextButton
в соответствии с дизайном Material3. Семантическая роль дляButton
,IconButton
иTextButton
теперь может быть переопределена с помощьюModifier.semantics
. ( Ib2495 ) - Исправлен выбор вкладки
EmojiPickerView
и обновление индикатора на один клик позже. ( I4db04 ) -
FileNotFoundException
при отображении средства выбора эмодзи ( I353e4 ) - Перехватите исключение
WindowManager.BadTokenException
при использованииEmojiPickerView
( I0a144 )
Версия 1.4.0-beta05
7 июня 2023 г.
Выпущен androidx.emoji2:emoji2-*:1.4.0-beta05
. Версия 1.4.0-beta05 содержит эти коммиты.
Исправление ошибок
- Исправлена ошибка, появившаяся в 1.3, из-за которой
MetricsAffectingSpans
, такие какRelativeSizeSpan
, применялись дважды. Один раз во время текстовой компоновки и еще раз внутриEmojiSpan.draw
. Результатом было неправильное рисование размера, видимое, если какой-либо из параметров размера текста был изменен диапазоном. ( b/283208650 )
Версия 1.4.0-beta04
24 мая 2023 г.
Выпущен androidx.emoji2:emoji2-*:1.4.0-beta04
. Версия 1.4.0-beta04 содержит эти коммиты.
В этом выпуске исправлена ошибка, существовавшая с версии 1.0, когда представления с неосновным обработчиком выдавали исключение при попытке обновить диапазоны эмодзи после завершения загрузки шрифта. Обходного пути нет, если эта ошибка затронула вас, обновитесь до этой версии или более поздней.
Исправление ошибок
- Обратные вызовы инициализации
EmojiCompat
теперь будут использовать обработчик из каждого представления, учитывая представления, не находящиеся в основном потоке. ( Iccbcf )
Версия 1.4.0-beta03
10 мая 2023 г.
Выпущен androidx.emoji2:emoji2-*:1.4.0-beta03
. Версия 1.4.0-beta03 содержит эти коммиты.
Исправление ошибок
- Исправлен сбой всплывающего окна выбора эмодзи. ( 0acc8e )
- Вызвать ранние исключения в
EmojiCompat getEmojiStart/getEmojiEnd
. ( 26177f )
Версия 1.4.0-beta02
19 апреля 2023 г.
Выпущен androidx.emoji2:emoji2-*:1.4.0-beta02
. Версия 1.4.0-beta02 содержит эти коммиты.
Исправление ошибок
- Обновление базовых файлов lint ( Iaa212 )
Версия 1.4.0-beta01
5 апреля 2023 г.
Выпущен androidx.emoji2:emoji2-*:1.4.0-beta01
. Версия 1.4.0-beta01 содержит эти коммиты.
Новые возможности
androidx.emoji2:emoji2-emojipicker
Emoji Picker — это решение пользовательского интерфейса, которое предлагает современный внешний вид, актуальные эмодзи и простоту использования. Пользователи могут просматривать и выбирать эмодзи и их варианты или выбирать из недавно использованных эмодзи. С помощью этой библиотеки приложения от разных OEM-производителей могут предоставлять своим пользователям инклюзивный и унифицированный опыт работы с эмодзи без необходимости разработчикам создавать и поддерживать собственный инструмент выбора эмодзи с нуля.
Актуальные эмодзи
Новые эмодзи выпускаются каждый год, и мы выборочно включаем их в Emoji Picker. Чтобы обеспечить обратную совместимость, мы проводим точную внутреннюю проверку рендеринга эмодзи, чтобы исключить тофу. Это гарантирует совместимость библиотеки с различными версиями Android и устройствами.
Липкие варианты
Длительное нажатие на эмодзи отобразит меню вариантов, например, разные полы или оттенки кожи. Выбранный вами вариант будет сохранен в селекторе эмодзи, а последний выбранный вариант будет использован на главной панели. С помощью этой функции пользователи могут отправлять свои предпочтительные варианты эмодзи всего одним нажатием.
Последние эмодзи
RecentEmojiProvider
отвечает за предоставление эмодзи в категории «Недавно использованные». В библиотеке есть поставщик недавних эмодзи по умолчанию, который удовлетворяет наиболее распространенному варианту использования:
- Все выбранные эмодзи сохраняются на уровне приложения в общих настройках.
- В селекторе отображается не более 3 строк выбранных эмодзи без дубликатов в обратном хронологическом порядке.
Если этого поведения по умолчанию достаточно, то вам не нужно устанавливать метод setRecentEmojiProvider()
.
Работа с EmojiCompat
Если приложение имеет экземпляр EmojiCompat
, он будет использоваться в средстве выбора эмодзи для отображения как можно большего количества эмодзи. Если EmojiCompat
отключен, средство выбора эмодзи все равно будет работать нормально.
Как пользоваться библиотекой
Чтобы использовать библиотеку, разработчик приложения должен
Импортируйте
androidx.emoji2:emojipicker:$version
вbuild.gradle
.dependencies { implementation "androidx.emoji2:emojipicker:$version" }
Расширьте представление выбора эмодзи и при необходимости установите
emojiGridRows
иemojiGridColumns
на основе желаемого размера каждой ячейки эмодзи.- Вы можете оставить их неустановленными, по умолчанию установлено 9
emojiGridColumns
, строки будут рассчитываться на основе высоты родительского представления иemojiGridColumns
- Вы можете установить
emojiGridRows
как плавающее значение, чтобы указать, что при прокрутке вниз в XML есть еще эмодзи.
- Вы можете оставить их неустановленными, по умолчанию установлено 9
в коде
val emojiPickerView = EmojiPickerView(context).apply {
emojiGridColumns = 15
layoutParams = ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
)
}
findViewById(R.id.emoji_picker_layout).addView(emojiPickerView)
Предположим, вы хотите добавить выбранные эмодзи в EditText, используйте
setOnEmojiPickedListener()
emojiPickerView.setOnEmojiPickedListener { findViewById
(R.id.edit_text).append(it.emoji) } При желании можно установить
RecentEmojiProvider
, см. пример реализации в примере приложения.При желании настройте стили. Создайте свой собственный стиль, чтобы переопределить общие атрибуты темы, и примените стиль к
EmojiPickerView
. Например, переопределениеcolorControlNormal
изменит цвет значка категории.<style name="CustomStyle" > <item name="colorControlNormal">#FFC0CB</item> </style> <androidx.emoji2.emojipicker.EmojiPickerView android:id="@+id/emoji_picker" android:layout_width="match_parent" android:layout_height="match_parent" android:theme="@style/CustomStyle" app:emojiGridColumns="9" />
Пример реализации смотрите в примере приложения.
Полную информацию о API можно найти здесь .
Пример приложения
В этом примере приложения демонстрируются основные варианты использования, а также следующие дополнительные сценарии:
- Вид был переформатирован, поскольку
emojiGridRows
иemojiGridColumns
были сброшены. - Последний поставщик эмодзи переопределяется для сортировки по частоте.
- Настройка стиля.
Изменения API
Библиотека Emoji Picker была обновлена следующими новыми API:
- Класс
EmojiPickerView
, который предоставляет актуальные эмодзи в вертикальном прокручиваемом виде с кликабельным горизонтальным заголовком. - Возможность задать количество столбцов и строк в сетке выбора эмодзи с помощью XML-атрибутов
emojiGridColumns
иemojiGridRows
или методовsetEmojiGridColumns()
иsetEmojiGridRows()
. - Возможность установки слушателя выбранного эмодзи с помощью метода
setOnEmojiPickedListener()
. Слушатель будет уведомлен всякий раз, когда пользователь нажимает на любой эмодзи. - Возможность предоставления недавнего поставщика эмодзи через метод
setRecentEmojiProvider()
. Это необязательная функция. Если недавний поставщик эмодзи не установлен, библиотека будет использовать недавний поставщик эмодзи по умолчанию. Поведение по умолчанию определяется следующим образом:- Все выбранные эмодзи будут сохранены на уровне приложения в общих настройках.
- В окне выбора будет отображено не более 3 строк выбранных эмодзи без дубликатов в обратном хронологическом порядке.
- Класс
EmojiViewItem
, который содержит отображаемые эмодзи и их варианты. - Интерфейс
RecentEmojiProvider
, который может быть реализован для предоставления списка последних эмодзи.recentEmojiProvider
отвечает за предоставление эмодзи в категории «Недавно использованные». - Интерфейс
RecentEmojiAsyncProvider
, который может быть реализован для предоставления списка последних эмодзи.RecentEmojiAsyncProvider
отвечает за предоставление эмодзи в категории «Недавно использованные». Этот интерфейс эквивалентенRecentEmojiProvider
, который позволяет клиентам переопределять методgetRecentEmojiListAsync()
для предоставления последних эмодзи. - Класс
RecentEmojiProviderAdapter
, который является адаптером дляRecentEmojiAsyncProvider
и реализуетRecentEmojiProvider
.
Версия 1.4.0-альфа01
22 марта 2023 г.
Выпущен androidx.emoji2:emoji2-*:1.4.0-alpha01
. Версия 1.4.0-alpha01 содержит эти коммиты.
Исправление ошибок
- Исправление тестов, отключение тестов на нестабильную работу и очистка.
Версия 1.3
Версия 1.3.0
22 марта 2023 г.
Выпущен androidx.emoji2:emoji2-*:1.3.0
. Версия 1.3.0 содержит эти коммиты.
Важные изменения по сравнению с версией 1.2.0
- Этот выпуск позволяет Compose Foundation
1.4.0
и выше включить интеграцию emoji2. - Он также обеспечивает функции замены
EmojiSpans
пользовательским кодом рисования, а также поддержку исключений эмодзи, определенных в Android.
Версия 1.3.0-rc01
8 марта 2023 г.
Выпущен androidx.emoji2:emoji2-*:1.3.0-rc01
. Версия 1.3.0-rc01 содержит эти коммиты.
Новые возможности
- Эта версия поддерживает интеграцию emoji2 compose.
Изменения API
- Заменить интервалы на пользовательский код рисования.
- Запрос исключений системы.
Исправление ошибок
- И исправлена ошибка, из-за которой фоновые области не применялись правильно за
EmojiSopans
.
Версия 1.3.0-beta03
23 февраля 2023 г.
Выпущены androidx.emoji2:emoji2-bundled:1.3.0-beta03
, androidx.emoji2:emoji2-views:1.3.0-beta03
и androidx.emoji2:emoji2-views-helper:1.3.0-beta03
.
22 февраля 2023 г.
Выпущен androidx.emoji2:emoji2:1.3.0-beta03
. Версия 1.3.0-beta03 содержит эти коммиты.
Новые возможности
- Никаких изменений. Этот релиз предназначен для подготовки к интеграции компоновки.
Версия 1.3.0-beta02
8 февраля 2023 г.
Выпущен androidx.emoji2:emoji2-*:1.3.0-beta02
. Версия 1.3.0-beta02 содержит эти коммиты.
Новые возможности
- Этот выпуск представляет собой стабилизацию для поддержки интеграции Compose.
Версия 1.3.0-beta01
25 января 2023 г.
Выпущен androidx.emoji2:emoji2-*:1.3.0-beta01
. Версия 1.3.0-beta01 содержит эти коммиты.
Новые возможности
- Запрос исключений системы.
- Замена интервалов для пользовательского кода рисования.
- И исправлена ошибка, из-за которой фоновые области не применялись правильно за
EmojiSopans
. - В этом выпуске добавлены API, необходимые для поддержки
EmojiCompat
в Compose. Ожидайте поддержку Compose для emoji compat в ближайшем будущем выпуске.
Версия 1.3.0-альфа01
11 января 2023 г.
Выпущен androidx.emoji2:emoji2-*:1.3.0-alpha01
. Версия 1.3.0-alpha01 содержит эти коммиты.
Новые API для низкоуровневых взаимодействий
- Запрос исключений системы
- Замена интервалов для пользовательского кода рисования
- И исправлена ошибка, из-за которой фоновые области не применялись правильно за
EmojiSopans
. - В этом выпуске добавлены API, необходимые для поддержки
EmojiCompat
в Compose. Ожидайте поддержку Compose для emoji compat в ближайшем будущем выпуске.
Изменения API
- Добавлена возможность запрашивать системные исключения для
TypefaceEmojiRasterizer
. ( I5653e ) - Добавлен новый API
EmojiCompat.SpanFactory
для замены поведенияEmojiSpan
по умолчанию на пользовательский код отрисовки и изменения размера. ( Ib69d9 ) - Добавлен
EmojiCompat
в Compose ( I96f37 , b/139326806 )
Исправление ошибок
- Emoji2 теперь будет правильно отрисовывать фоны из
BackgroundSpan
. ( Ide6a8 , b/230525134 ) - Финализация API AppCompat для 1.5.0-beta01 ( I2a43d , b/236866227 )
Версия 1.2
Версия 1.2.0
10 августа 2022 г.
Выпущен androidx.emoji2:emoji2-*:1.2.0
. Версия 1.2.0 содержит эти коммиты.
Важные изменения по сравнению с версией 1.1.0
Это релиз с исправлением ошибок. Никаких новых функций или API не добавлено с версии 1.1.0.
Однако приложения, использующие PrecomputedText
или TextView.setText(char[])
должны отдать приоритет переходу на эту версию.
Исправлены следующие ошибки:
-
Emoji2
добавит эмодзи вPrecomputedText
, отбросив ранее рассчитанную текстовую компоновку. ( I47d06 , b/211231958 ) - Исправление сбоя редактора обратного переноса с Android P на
EditText
, настроенный на использование emoji2. ( Ifd709 , b/216891011 ) - Исправлен сбой, когда emoji2 загружает шрифт и используется
TextView.setText(char[])
. ( Id511e , b/206859724 )
Версия 1.2.0-rc01
27 июля 2022 г.
Выпущен androidx.emoji2:emoji2-*:1.2.0-rc01
. Версия 1.2.0-rc01 содержит эти коммиты.
- Никаких изменений с момента последней бета-версии.
Версия 1.2.0-beta01
13 июля 2022 г.
Выпущен androidx.emoji2:emoji2-*:1.2.0-beta01
. Версия 1.2.0-beta01 содержит эти коммиты.
Новые возможности
- Никаких изменений по сравнению с предыдущей версией (данный выпуск предназначен для поддержки выпуска AppCompat).
Версия 1.2.0-альфа04
20 апреля 2022 г.
Выпущен androidx.emoji2:emoji2-*:1.2.0-alpha04
. Версия 1.2.0-alpha04 содержит эти коммиты.
Новые возможности
- Никаких изменений в этом выпуске.
Версия 1.2.0-альфа03
6 апреля 2022 г.
Выпущен androidx.emoji2:emoji2-*:1.2.0-alpha03
. Версия 1.2.0-alpha03 содержит эти коммиты.
Новые возможности
- Никаких изменений по сравнению с предыдущей версией (данный релиз предназначен для поддержки релиза appcompat).
Версия 1.2.0-альфа02
23 марта 2022 г.
Выпущен androidx.emoji2:emoji2-*:1.2.0-alpha02
. Версия 1.2.0-alpha02 содержит эти коммиты.
Исправление ошибок
- Emoji2 добавит эмодзи в
PrecomputedText
, отбросив ранее рассчитанную текстовую компоновку. ( I47d06 , b/211231958 ) - Исправление сбоя редактора обратного переноса с Android P на EditText, настроенный на использование emoji2. ( Ifd709 , b/216891011 )
- Исправлен сбой, когда emoji2 загружает шрифт и используется
TextView.setText(char[])
. ( Id511e , b/206859724 )
Версия 1.2.0-альфа01
23 февраля 2022 г.
Выпущен androidx.emoji2:emoji2-*:1.2.0-alpha01
. Версия 1.2.0-alpha01 содержит эти коммиты.
Никаких изменений с версии 1.1.0.
1.1
Версия 1.1.0
23 февраля 2022 г.
Выпущен androidx.emoji2:emoji2-*:1.1.0
. Версия 1.1.0 содержит эти коммиты.
Важные изменения с версии 1.0.0
- emoji2-bundled содержит шрифт emoji 14
- Новый API
getEmojiMatch
возвращает точную информацию для клавиатур, чтобы решить, как будет отображаться эмодзи при наличии шрифта emojicompat, который находится за системным шрифтом. - Исправление ошибки
NumberKeyListener
, благодаря которому ввод цифр корректно фильтрует символы.
Версия 1.1.0-rc01
9 февраля 2022 г.
Выпущен androidx.emoji2:emoji2-*:1.1.0-rc01
. Версия 1.1.0-rc01 содержит эти коммиты.
Новые возможности
Никаких изменений по сравнению с бета-версией.
Новые функции по сравнению с emoji2 1.0.0:
-
emoji2-bundled
содержит шрифт emoji 14 - Новый API
getEmojiMatch
возвращает точную информацию для клавиатур, чтобы решить, как будет отображаться эмодзи при наличии шрифта emojicompat, который находится за системным шрифтом. - Исправление ошибки
NumberKeyListener
, которая позволяет корректно фильтровать символы при вводе цифр.
Версия 1.1.0-beta01
26 января 2022 г.
Выпущен androidx.emoji2:emoji2-*:1.1.0-beta01
. Версия 1.1.0-beta01 содержит эти коммиты.
Исправление ошибок
- androidx-emoji2 beta01 release. Никаких изменений по сравнению с alpha01 ( Ic61d9 )
Версия 1.1.0-альфа01
15 декабря 2021 г.
Выпущен androidx.emoji2:emoji2-*:1.1.0-alpha01
. Версия 1.1.0-alpha01 содержит эти коммиты.
Новые возможности
-
emoji2-bundled
содержит шрифт emoji 14 - Новый API
getEmojiMatch
возвращает точную информацию для клавиатур, чтобы решить, как будет отображаться эмодзи при наличии шрифта emojicompat, который находится за системным шрифтом. - Исправление ошибки
NumberKeyListener
, которая позволяет корректно фильтровать символы при вводе цифр.
Изменения API
- Добавлен новый API
getEmojiMatch
, позволяющий клавиатурам более точно определять соответствие эмодзи в emojicompat. - Устарейте
hasEmojiGlyph
, так как его возвращаемое логическое значение неточно при тестировании со шрифтом, который старше шрифта эмодзи платформы. Замените наgetEmojiMatch
. ( Ie693d )
Исправление ошибок
- Emoji2 не будет заключать в оболочку экземпляры
NumberKeyListener
, позволяя настраивать локаль с помощьюTextView
. - Appcompat не будет переносить экземпляры
NumberKeyListener
, переданные вsetKeyListener
, что позволяетTextView
правильно настраивать локаль дляNumberKeyListeners
. ( Ibf113 , b/207119921 )
1.0
Версия 1.0.1
15 декабря 2021 г.
Выпущен androidx.emoji2:emoji2-*:1.0.1
. Версия 1.0.1 содержит эти коммиты.
Исправление ошибок
-
Emoji2
не будет заключать в оболочку экземплярыNumberKeyListener
, позволяя настраивать локаль с помощьюTextView
. - Appcompat не будет переносить экземпляры
NumberKeyListener
, переданные вsetKeyListener
, что позволяетTextView
правильно настраивать локаль дляNumberKeyListeners
. ( Ibf113 , b/207119921 )
Версия 1.0.0
17 ноября 2021 г.
Выпущен androidx.emoji2:emoji2-*:1.0.0
. Версия 1.0.0 содержит эти коммиты.
Основные особенности 1.0.0
androidx.emoji2 заменяет androidx.emoji с дополнительными возможностями:
- Уменьшение размера APK по сравнению с androidx.emoji
- Автоматическая конфигурация
- Добавлено как зависимость к appcompat 1.4
Для получения дополнительной информации об androidx.emoji2 см. раздел Поддержка современных эмодзи и наш доклад на саммите разработчиков Android Отображение ВСЕХ эмодзи в вашем приложении Android Dev Summit.
Версия 1.0.0-rc01
27 октября 2021 г.
Выпущен androidx.emoji2:emoji2-*:1.0.0-rc01
. Версия 1.0.0-rc01 содержит эти коммиты.
- Никаких изменений с версии beta02.
Emoji2 Версия 1.0.0-beta01
15 сентября 2021 г.
Выпущен androidx.emoji2:emoji2-*:1.0.0-beta01
. Версия 1.0.0-beta01 содержит эти коммиты.
Изменения API
Добавлен
setLoadingExecutor
вFontRequestEmojiCompatConfig
, который заменяет предыдущий APIsetHandler
. Этот API позволяет приложениям настраиватьFontRequestEmojiCompatConfig
для использования любого фонового исполнителя.Это изменение является критическим по сравнению с
androidx.emoji:emoji
, поэтомуsetHandler
сохраняется как устаревший API без операции для облегчения миграции. ( I6cd48 )EmojiCompat правильно устанавливает
EditorInfo.extras
на Android 11- Пользовательские виджеты, использующие IME, не являющиеся подклассами EditText, могут вызывать
EmojiCompat.updateEditorInfo
, чтобы сообщить IME, что они поддерживают обработку EmojiCompat. ( I1ea9b )
- Пользовательские виджеты, использующие IME, не являющиеся подклассами EditText, могут вызывать
Исправление ошибок
- Исправлен
DefaultEmojiCompatConfig
для правильного поиска поставщика шрифтов эмодзи в API 19 и 28. Это исправляет ошибку, появившуюся в emoji2 1.0.0-alpha01. ( Ib33d8 , b/197906329 )
Версия 1.0.0-альфа03
30 июня 2021 г.
Выпущен androidx.emoji2:emoji2-*:1.0.0-alpha03
. Версия 1.0.0-alpha03 содержит эти коммиты.
Новые возможности
Этот выпуск содержит исправление ошибок и стабилизацию.
- EmojiEditTextHelper теперь позволяет передавать
null
как KeyListener. Это позволяет платформенному поведению разрешать nulls применяться к эмодзи, поддерживающим реализации EditText. - При использовании EmojiCompatInitializer начальная задержка запуска улучшается, чтобы срабатывать после возобновления первой Activity. Это позволяет запуску приложения происходить без конфликта и позволяет избежать загрузки шрифта для запуска приложений, которые никогда не показывают пользовательский интерфейс. После небольшой задержки EmojiCompat создаст поток для загрузки шрифта эмодзи.
- Добавлена новая зависимость от
androidx.lifecycle:lifecycle-process
изandroidx.emoji2:emoji2
для реализации задержки. Это окажет незначительное влияние на размер APK для приложений, которые уже включают жизненный цикл (например, приложения с appcompat).
Изменения API
- Разрешить null KeyListener в AppCompatEditText. Это отменяет ненулевую аннотацию, добавленную в AppCompatEditText в 1.4.0-alpha01, и восстанавливает предыдущее поведение при передаче null. ( I21482 , b/189559345 )
Исправление ошибок
- Измените EmojiCompatInitializer, чтобы задержка загрузки шрифта составляла 500 мс после первого
Activity.onResume
. Это позволяет активности выполнятьApplication.onCreate
иActivity.onCreate
без конфликта, при этом гарантируя, что шрифт эмодзи будет загружен вскоре после запуска приложения. ( I4bff7 )
Версия 1.0.0-альфа02
2 июня 2021 г.
Выпущены androidx.emoji2:emoji2:1.0.0-alpha02
, androidx.emoji2:emoji2-views:1.0.0-alpha02
и androidx.emoji2:emoji2-views-helper:1.0.0-alpha02
. Версия 1.0.0-alpha02 содержит эти коммиты.
Изменения API
- Переименован пакет в
emoji2-views-helper
вandroidx.emoji2.viewsintegration
. Это критическое изменение для AppCompat1.4.0-alpha01
, и приложения должны обеспечить обновление зависимости AppCompat для использования новой версии emoji2. ( Ie8397 )
Версия 1.0.0-альфа01
18 мая 2021 г.
Выпущены androidx.emoji2:emoji2:1.0.0-alpha01
, androidx.emoji2:emoji2-views:1.0.0-alpha01
и androidx.emoji2:emoji2-views-helper:1.0.0-alpha01
. Версия 1.0.0-alpha01 содержит эти коммиты.
Возможности этого первоначального выпуска
Интеграция emojicompat рекомендуется для всех приложений для поддержки современных эмодзи из API19. Весь пользовательский контент в вашем приложении содержит 🎉.
EmojiCompat перешел от артефактов androidx.emoji
к новому androidx.emoji2
, который сейчас находится в alpha01. Новые артефакты заменяют предыдущую версию.
emoji2
добавлен как зависимость к AppCompat, начиная с версии AppCompat 1.4.0-alpha01
, и включен по умолчанию для представлений AppCompat.
Артефакт emoji2
представляет новую автоматическую конфигурацию с использованием библиотеки androidx.startup
. Вам больше не нужно писать какой-либо 👨🏽💻 код для отображения 🐻❄️.
Изменения в emoji2 по сравнению с emoji
- Добавлена новая автоматическая конфигурация
EmojiCompatInitializer
с использованиемandroidx.startup
. - Добавлена новая конфигурация по умолчанию, которая использует местоположение службы для поиска поставщика загружаемых шрифтов в
DefaultEmojiCompatConfiguration
. - Классы перенесены из пакета
androidx.emoji
вandroidx.emoji2
. - Разделите
EmojiTextView
и связанные представления на отдельный артефактemoji2-views
. Это следует использовать только в том случае, если ваше приложение не использует appcompat. - Извлеченные помощники для интеграции emojicompat в пользовательские представления в отдельный артефакт
emoji2-views-helper
. - Добавлены аннотации о допустимости значений NULL.
- Помощники в
emoji2-views-helper
теперь можно использовать, даже еслиEmojiCompat
не инициализирован (ранее они вызывали исключение).
Какую зависимость следует добавить?
- Приложения с AppCompat следует обновить до версии AppCompat
1.4.0-alpha01
или выше. - Приложения без AppCompat, использующие
TextView
/EditText
из платформы, должны использоватьEmojiTextView
и связанные классы изemoji2-views
.
Как поддерживать пользовательские представления
- Приложения с AppCompat должны расширять
AppCompatTextView
,AppCompatButton
и т. д. вместо платформенныхTextView
и т. д. - Приложения без AppCompat должны добавлять зависимость
androidx.emoji2:emoji2-views-helper
и использовать помощников для интеграции с пользовательскими подклассамиTextView
илиEditText
.
Настройка автоматической инициализации
Приложения могут отключить автоматическую инициализацию, добавив в манифест следующее:
android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" android:exported="false" tools:node="merge"> android:name="androidx.emoji2.text.EmojiCompatInitializer" tools:node="remove" /> Это отключает автоматическую настройку, и вы можете передать пользовательскую конфигурацию в
EmojiCompat.init
. Конфигурация по умолчанию для системы может быть извлеченаDefaultEmojiCompatConfig.create(context)
для дальнейшей настройки перед передачей вEmojiCompat.init
.