Эмодзи2
Последнее обновление | Стабильный выпуск | Кандидат на выпуск | Бета-версия | Альфа-релиз |
---|---|---|---|---|
4 сентября 2024 г. | 1.5.0 | - | - | - |
Объявление зависимостей
Чтобы добавить зависимость от 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 лучше. Дайте нам знать, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.
Дополнительную информацию см. в документации по системе отслеживания проблем .
Emoji2 Emojipicker Версия 1.0
Версия 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 содержит эти коммиты.
Новые возможности
- Представлен инструмент выбора смайлов, который обеспечивает единый интерфейс пользователя с новейшими смайлами на OEM-устройствах и приложениях ОС Android. Он обеспечивает новейшую поддержку смайлов и пользовательский интерфейс выбора смайлов, включая варианты оттенков кожи и поддержку совместимости смайлов.
Изменения API
- Представлен класс
EmojiPickerView
, который предоставляет актуальные смайлы в вертикальном прокручиваемом виде с кликабельным горизонтальным заголовком. - Столбцы сетки выбора эмодзи можно установить с помощью XML-атрибута
emojiGridColumns
или функцииsetEmojiGridColumns()
. - Строки сетки выбора эмодзи можно задать с помощью XML-атрибута
emojiGridRows
или функцииsetEmojiGridRows()
. - Прослушиватель, выбранный для эмодзи, можно настроить с помощью
setOnEmojiPickedListener()
и прослушиватель будет получать уведомление всякий раз, когда пользователь нажимает на любой эмодзи. - Последний поставщик смайлов может быть предоставлен с помощью
setRecentEmojiProvider()
. Это дополнительная функция. Если поставщик последних смайлов не установлен, библиотекой будет использоваться поставщик последних смайлов по умолчанию. Поведение по умолчанию определяется следующим образом: 1) все выбранные смайлы будут сохранены для каждого приложения в общих настройках. 2) средство выбора отобразит не более 3 строк выбранных смайлов в обратном хронологическом порядке. - Представлен класс
EmojiViewItem
, который содержит отображаемые смайлы и их варианты смайлов. - Представлен интерфейс
RecentEmojiProvider
, который можно реализовать для предоставления списка последних смайлов.recentEmojiProvider
отвечает за предоставление смайлов в категории «Недавно использованные».
Версия 1.5
Версия 1.5.0
4 сентября 2024 г.
Выпущен androidx.emoji2:emoji2-*:1.5.0
. Версия 1.5.0 содержит эти коммиты .
Важные изменения с версии 1.4.0
- Поддержка эмодзи 15.1 и двунаправленного пользовательского интерфейса выбора эмодзи. Простой щелчок по двунаправленному переключателю позволяет пользователям переключаться между левыми и правыми версиями смайлов.
- Поддержка выбора смайлов с несколькими скинтонами. При длительном нажатии на пару смайлов открывается селектор смайлов для нескольких человек для нулевого состояния. Когда пользователь нажимает на левую половину смайлика, предварительный просмотр смайлика в правом нижнем углу будет соответствующим образом обновлен. Когда пользователь выбирает обе половины смайлика, предварительный просмотр смайлика в правом нижнем углу покажет весь смайлик, и затем пользователь сможет его ввести.
Версия 1.5.0-rc01
21 августа 2024 г.
Выпущен androidx.emoji2:emoji2-*:1.5.0-rc01
. Версия 1.5.0-rc01 содержит эти коммиты .
Новые возможности
- Поддержка эмодзи 15.1 и двунаправленного пользовательского интерфейса выбора эмодзи. Простой щелчок по двунаправленному переключателю позволяет пользователям переключаться между левыми и правыми версиями смайлов.
- Поддержка выбора смайлов с несколькими скинтонами. При длительном нажатии на пару смайлов открывается селектор смайлов для нескольких человек для нулевого состояния. Когда пользователь нажимает на левую половину смайлика, предварительный просмотр смайлика в правом нижнем углу будет соответствующим образом обновлен. Когда пользователь выбирает обе половины смайла, в предварительном просмотре отображается весь смайлик, и пользователь может затем ввести его.
Исправления ошибок
- Убрано ручное определение доступа к API новой платформы, поскольку это происходит автоматически посредством моделирования API при использовании R8 с AGP 7.3 или новее (например, R8 версии 3.3) и для всех сборок при использовании AGP 8.1 или новее (например, D8 версии 8.1). Клиентам, не использующим AGP, рекомендуется выполнить обновление до D8 версии 8.1 или более поздней. Более подробную информацию можно найти в этой статье . ( If6b4c , b/345472586 )
- Выбор вкладок и индикатор
EmojiPickerView
обновляются одним щелчком мыши. ( 146b02 , б/288261054 ) - Выбор вкладок и индикатор
EmojiPickerView
не работают. ( 5e1f14 , б/273883688 )
Версия 1.5.0-бета01
10 июля 2024 г.
Выпущен androidx.emoji2:emoji2-*:1.5.0-beta01
. Версия 1.5.0-beta01 содержит эти коммиты .
Новые возможности
- Поддержка Emoji 15.1 и двунаправленного пользовательского интерфейса выбора Emoji.
- Поддержка редизайна выбора нескольких скинов.
Исправления ошибок
- Выбор вкладок и индикатор
EmojiPickerView
обновляются одним щелчком мыши. ( 146b02 , б/288261054 ) - Выбор вкладок и индикатор
EmojiPickerView
не работают. ( 5e1f14 , б/273883688 )
Версия 1.5.0-альфа01
13 декабря 2023 г.
Выпущен androidx.emoji2:emoji2-*:1.5.0-alpha01
. Версия 1.5.0-alpha01 содержит эти коммиты.
Новые возможности
-
emoji2-bundled
содержит обновленный шрифт Emoji для поддержки 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:
TransitionManager.seekTo()
переименован вcreateSeekController()
. Пожалуйста, измените предыдущий комментарий о добавленииTransitionManager.seekTo()
вTransitionManager.createSeekController()
. ( Идбеб1 ) - Добавлен
ExerciseRouteResult
, который не является суперклассом дляData
,NoData
иConsentRequiredStates
. ДобавленExerciseRoute
как отдельный класс, который содержит данные о местоположении для маршрута. ( I22eed ) - Представлен
PagerLayoutInfo
с информацией, собранной после прохождения измерения в Pager. Также введена PageInfo, информация об одной измеренной странице в пейджере. ( Iad003 , б/283098900 )
Исправления ошибок
- Мы обновили цвета
Button
,IconButton
иTextButton
в соответствии с дизайном Material3. Семантическая рольButton
,IconButton
иTextButton
теперь может быть переопределена с помощьюModifier.semantics
. ( Ib2495 ) - Исправлен выбор вкладок
EmojiPickerView
и обновление индикатора на один клик. ( I4db04 ) -
FileNotFoundException
при отображении средства выбора смайлов ( I353e4 ) - Перехват исключения
WindowManager.BadTokenException
при использованииEmojiPickerView
( I0a144 )
Версия 1.4.0-бета05
7 июня 2023 г.
Выпущен androidx.emoji2:emoji2-*:1.4.0-beta05
. Версия 1.4.0-beta05 содержит эти коммиты.
Исправления ошибок
- Исправлена ошибка, появившаяся в версии 1.3, из-за которой
MetricsAffectingSpans
напримерRelativeSizeSpan
, применялись дважды. Один раз во время макета текста и снова внутриEmojiSpan.draw
. Результатом было отрисовка неправильного размера, что было видно, если какой-либо из параметров размера текста был изменен диапазоном. ( б/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-бета03
10 мая 2023 г.
Выпущен androidx.emoji2:emoji2-*:1.4.0-beta03
. Версия 1.4.0-beta03 содержит эти коммиты.
Исправления ошибок
- Исправлен сбой вложенного всплывающего окна выбора смайлов. ( 0acc8e )
- Вызовите ранние исключения в
EmojiCompat getEmojiStart/getEmojiEnd
. ( 26177f )
Версия 1.4.0-бета02
19 апреля 2023 г.
Выпущен androidx.emoji2:emoji2-*:1.4.0-beta02
. Версия 1.4.0-beta02 содержит эти коммиты.
Исправления ошибок
- Обновить файлы базовой линии lint ( Iaa212 )
Версия 1.4.0-бета01
5 апреля 2023 г.
Выпущен androidx.emoji2:emoji2-*:1.4.0-beta01
. Версия 1.4.0-beta01 содержит эти коммиты.
Новые возможности
androidx.emoji2:emoji2-emojipicker
Emoji Picker — это решение пользовательского интерфейса, которое предлагает современный внешний вид, актуальные смайлы и простоту использования. Пользователи могут просматривать и выбирать смайлы и их варианты или выбирать из недавно использованных смайлов. Благодаря этой библиотеке приложения разных OEM-производителей могут предоставлять своим пользователям инклюзивный и унифицированный опыт использования смайлов, при этом разработчикам не придется создавать и поддерживать собственный инструмент выбора смайлов с нуля.
Актуальные смайлы
Новые смайлы выпускаются каждый год, и мы выборочно будем включать их в средство выбора смайлов. Чтобы обеспечить обратную совместимость, мы выполняем точную внутреннюю проверку рендеринга эмодзи, чтобы исключить тофу. Это обеспечит совместимость библиотеки с несколькими версиями 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.
<androidx.emoji2.emojipicker.EmojiPickerView android:id="@+id/emoji_picker" android:layout_width="match_parent" android:layout_height="match_parent" app:emojiGridColumns="9" />
- Вы можете оставить их неустановленными, значение по умолчанию — 9
в коде
val emojiPickerView = EmojiPickerView(context).apply {
emojiGridColumns = 15
layoutParams = ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
)
}
findViewById<ViewGroup>(R.id.emoji_picker_layout).addView(emojiPickerView)
Предполагая, что вы хотите добавить выбранные смайлы в EditText, используйте
setOnEmojiPickedListener()
emojiPickerView.setOnEmojiPickedListener { findViewById<EditText>(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.
Изменения 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 содержит эти коммиты.
Новые возможности
- Никаких изменений. Этот выпуск предназначен для подготовки к интеграции Compose.
Версия 1.3.0-beta02
8 февраля 2023 г.
Выпущен androidx.emoji2:emoji2-*:1.3.0-beta02
. Версия 1.3.0-beta02 содержит эти коммиты.
Новые возможности
- Этот выпуск является стабилизирующим для поддержки интеграции Compose.
Версия 1.3.0-бета01
25 января 2023 г.
Выпущен androidx.emoji2:emoji2-*:1.3.0-beta01
. Версия 1.3.0-beta01 содержит эти коммиты.
Новые возможности
- Запрос системных исключений.
- Замена интервалов для пользовательского кода рисования.
- И исправлена ошибка, из-за которой фоновые диапазоны не применялись правильно за
EmojiSopans
. - В этом выпуске добавлены API, необходимые для поддержки
EmojiCompat
в Compose. Ожидайте поддержку совместимости эмодзи в ближайшем будущем.
Версия 1.3.0-альфа01
11 января 2023 г.
Выпущен androidx.emoji2:emoji2-*:1.3.0-alpha01
. Версия 1.3.0-alpha01 содержит эти коммиты.
Новые API для взаимодействия на низком уровне
- Запрос системных исключений
- Замена интервалов для пользовательского кода рисования
- И исправлена ошибка, из-за которой фоновые диапазоны не применялись правильно за
EmojiSopans
. - В этом выпуске добавлены API, необходимые для поддержки
EmojiCompat
в Compose. Ожидайте поддержку совместимости эмодзи в ближайшем будущем.
Изменения API
- В
TypefaceEmojiRasterizer
добавлена возможность запрашивать системные исключения. ( I5653e ) - Добавлен новый API
EmojiCompat.SpanFactory
для замены поведенияEmojiSpan
по умолчанию на собственный код рисования и изменения размера. ( Ib69d9 ) - Добавлен
EmojiCompat
в Compose ( I96f37 , b/139326806 ).
Исправления ошибок
- Emoji2 теперь правильно рисует фон из
BackgroundSpan
. ( ide6a8 , б/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 , б/211231958 ) - Исправление сбоя редактора Backport из Android P в
EditText
, который настроен на использование emoji2. ( Ifd709 , б/216891011 ) - Исправлен сбой, когда emoji2 загружал шрифт и использовался
TextView.setText(char[])
. ( Id511e , б/206859724 )
Версия 1.2.0-rc01
27 июля 2022 г.
Выпущен androidx.emoji2:emoji2-*:1.2.0-rc01
. Версия 1.2.0-rc01 содержит эти коммиты.
- Никаких изменений со времени последней бета-версии.
Версия 1.2.0-бета01
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 , б/211231958 ) - Исправление сбоя редактора Backport из Android P в EditText, который настроен на использование emoji2. ( Ifd709 , б/216891011 )
- Исправлен сбой, когда emoji2 загружал шрифт и использовался
TextView.setText(char[])
. ( Id511e , б/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 содержится шрифт 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-бета01
26 января 2022 г.
Выпущен androidx.emoji2:emoji2-*:1.1.0-beta01
. Версия 1.1.0-beta01 содержит эти коммиты.
Исправления ошибок
- Выпуск androidx-emoji2 beta01. Никаких изменений по сравнению с альфа01 ( 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
, так как его логическое возвращаемое значение является неточным при тестировании со шрифтом, который старше, чем шрифт платформы emoji. Замените наgetEmojiMatch
. ( Ie693d )
Исправления ошибок
- Emoji2 не будет обертывать экземпляры
NumberKeyListener
, позволяя настраивать локаль с помощьюTextView
. - Appcompat не будет обертывать экземпляры
NumberKeyListener
, переданные вsetKeyListener
, что позволяетTextView
правильно настроить локаль вNumberKeyListeners
. ( Ibf113 , б/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 , б/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» .
Версия 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
В
FontRequestEmojiCompatConfig
добавленsetLoadingExecutor
, который заменяет предыдущий 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 , р/197906329 )
Версия 1.0.0-альфа03
30 июня 2021 г.
Выпущен androidx.emoji2:emoji2-*:1.0.0-alpha03
. Версия 1.0.0-alpha03 содержит эти коммиты.
Новые возможности
Этот выпуск представляет собой исправление ошибок и стабилизацию.
- EmojiEditTextHelper теперь позволяет передавать
null
в качестве KeyListener. Это позволяет поведению платформы разрешать применять нули к смайликам, поддерживающим реализации EditText. - При использовании EmojiCompatInitializer начальная задержка запуска улучшена и теперь срабатывает после возобновления первого действия. Это позволяет запускать приложения беспрепятственно и позволяет избежать загрузки шрифта при запуске приложения, в котором никогда не отображается пользовательский интерфейс. После небольшой задержки EmojiCompat создаст поток для загрузки шрифта эмодзи.
- Для реализации задержки добавлена новая зависимость от
androidx.lifecycle:lifecycle-process
изandroidx.emoji2:emoji2
. Это окажет незначительное влияние на размер APK для приложений, у которых уже есть жизненный цикл (например, приложений с appcompat).
Изменения API
- Разрешить нулевой KeyListener в AppCompatEditText. Это отменяет ненулевую аннотацию, которая была добавлена в AppCompatEditText в версии 1.4.0-alpha01, и восстанавливает предыдущее поведение при передаче значения null. ( I21482 , б / 189559345 )
Исправления ошибок
- Измените EmojiCompatInitializer, чтобы задержать загрузку шрифта до 500 мс после первого
Activity.onResume
. Это позволяет действию беспрепятственно выполнятьApplication.onCreate
иActivity.onCreate
, при этом обеспечивая загрузку шрифта emoji вскоре после запуска приложения. ( 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
, теперь в альфа01. Новые артефакты заменяют предыдущую версию.
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
. - Добавлены аннотации об отсутствии значений.
- Помощники в
emoji2-views-helper
теперь можно использовать, даже еслиEmojiCompat
не инициализирован (ранее они вызывали исключение).
Какую зависимость следует добавить?
- Приложения с AppCompat следует обновить до версии appcompat AppCompat
1.4.0-alpha01
или выше. - Приложения без AppCompat, использующие
TextView
/EditText
с платформы, должны использоватьEmojiTextView
и связанные классы изemoji2-views
.
Как поддерживать пользовательские представления
- Приложения с AppCompat должны расширять
AppCompatTextView
,AppCompatButton
и т. д. вместоTextView
платформы и т. д. - Приложения без AppCompat должны добавлять зависимость
androidx.emoji2:emoji2-views-helper
и использовать помощники для интеграции с пользовательскими подклассамиTextView
илиEditText
.
Настройка автоматической инициализации
Приложения могут отключить автоматическую инициализацию, добавив это в манифест:
<provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" android:exported="false" tools:node="merge"> <meta-data android:name="androidx.emoji2.text.EmojiCompatInitializer" tools:node="remove" /> </provider>
Это отключает автоматическую настройку, и вы можете затем передать пользовательскую конфигурацию в
EmojiCompat.init
. Конфигурацию системы по умолчанию можно получитьDefaultEmojiCompatConfig.create(context)
для дальнейшей настройки перед передачей вEmojiCompat.init
.