Эмодзи2

Отображение эмодзи на современных и старых устройствах.
Последнее обновление Стабильный релиз Предварительная версия релиза Бета-версия Альфа-версия
10 сентября 2025 г. 1.6.0 - - -

Объявление зависимостей

Чтобы добавить зависимость от Emoji2, необходимо добавить репозиторий Google Maven в ваш проект. Для получения дополнительной информации ознакомьтесь с информацией в репозитории Google Maven .

Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:

классный

dependencies {
    def emoji2_version = "1.6.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.6.0"

    implementation("androidx.emoji2:emoji2:$emoji2_version")
    implementation("androidx.emoji2:emoji2-views:$emoji2_version")
    implementation("androidx.emoji2:emoji2-views-helper:$emoji2_version")
}

Для получения дополнительной информации о зависимостях см. раздел «Добавление зависимостей сборки» .

Обратная связь

Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав кнопку со звездочкой.

Создать новую задачу

Для получения более подробной информации см. документацию по системе отслеживания ошибок .

Версия 1.6

Версия 1.6.0

10 сентября 2025 г.

Выпущена версия androidx.emoji2:emoji2-*:1.6.0 . Версия 1.6.0 содержит следующие коммиты .

Важные изменения по сравнению с версией 1.5.0:

  • Поддерживает эмодзи 16.0
  • Добавьте суффикс «emoji» к описанию содержимого эмодзи.

Исправлены ошибки

Версия 1.6.0-rc01

13 августа 2025 г.

Выпущена версия androidx.emoji2:emoji2-*:1.6.0-rc01 . Версия 1.6.0-rc01 содержит следующие коммиты .

Новые функции

  • Добавлена ​​поддержка эмодзи 16.0 и суффикс «emoji» в описание контента.

Изменения в API

  • Удаление устаревших аннотаций @RequiresApi(21) ( Ic4792 )
  • Удаление устаревших аннотаций @RequiresApi(21) ( I9103b )

Версия 1.6.0-beta01

2 июля 2025 г.

Выпущена версия androidx.emoji2:emoji2-*:1.6.0-beta01 . Версия 1.6.0-beta01 содержит следующие коммиты .

Новые функции

  • Поддержка обновлений Emoji 16.0
  • Добавьте суффикс «emoji» к описанию контента, чтобы обеспечить единообразное поведение в отношении доступности во всех приложениях для выбора эмодзи.

Версия 1.6.0-alpha01

4 июня 2025 г.

Выпущена версия androidx.emoji2:emoji2-*:1.6.0-alpha01 . Версия 1.6.0-alpha01 содержит следующие коммиты .

Новые функции

  • Обновления данных Emoji 16.0 ( Ifc878 )
  • Добавление суффикса «emoji» к описанию контента.

Исправлены ошибки

Версия 1.5

Версия 1.5.0

4 сентября 2024 г.

Выпущена версия androidx.emoji2:emoji2-*:1.5.0 . Версия 1.5.0 содержит следующие изменения .

Важные изменения по сравнению с версией 1.4.0

  • Поддерживается Emoji 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 , 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-alpha01

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 . В результате получался некорректный размер отрисовки, видимый, если параметр размера текста изменялся элементом span. ( b/283208650 )

Версия 1.4.0-beta04

24 мая 2023 г.

Выпущена версия androidx.emoji2:emoji2-*:1.4.0-beta04 . Версия 1.4.0-beta04 содержит следующие коммиты.

В этом релизе исправлена ​​ошибка, существовавшая с версии 1.0, из-за которой представления с обработчиком, отличным от основного, вызывали исключение при попытке обновить элементы <span> с эмодзи после завершения загрузки шрифта. Обходного пути нет, поэтому, если вас затронула эта ошибка, пожалуйста, обновитесь до этой или более поздней версии.

Исправлены ошибки

  • Теперь функции обратного вызова инициализации 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 содержит следующие коммиты.

Исправлены ошибки

  • Обновление базовых файлов проверки кода ( Iaa212 )

Версия 1.4.0-beta01

5 апреля 2023 г.

Выпущена версия androidx.emoji2:emoji2-*:1.4.0-beta01 . Версия 1.4.0-beta01 содержит следующие коммиты.

Новые функции

androidx.emoji2:emoji2-emojipicker

Emoji Picker — это решение для пользовательского интерфейса, предлагающее современный внешний вид, актуальные эмодзи и простоту использования. Пользователи могут просматривать и выбирать эмодзи и их варианты, или выбирать из недавно использованных эмодзи. Благодаря этой библиотеке приложения от разных производителей могут обеспечить единый и удобный интерфейс с эмодзи для своих пользователей, избавляя разработчиков от необходимости создавать и поддерживать собственный инструмент выбора эмодзи с нуля.

Актуальные эмодзи

Каждый год появляются новые эмодзи, и мы будем выборочно включать их в Emoji Picker. Для обеспечения обратной совместимости мы проводим внутреннюю проверку корректности отображения эмодзи, чтобы исключить некорректные результаты. Это гарантирует совместимость библиотеки с различными версиями Android и устройствами.

Варианты с липкими свойствами

Длительное нажатие на эмодзи отобразит меню вариантов, например, разных полов или оттенков кожи. Выбранный вами вариант будет сохранен в палитре эмодзи, а в основной панели будет использоваться последний выбранный вариант. Благодаря этой функции пользователи могут отправлять предпочитаемые варианты эмодзи одним касанием.

Последние эмодзи

Компонент RecentEmojiProvider отвечает за предоставление эмодзи из категории «Недавно использованные». Библиотека имеет стандартный поставщик недавних эмодзи, который удовлетворяет наиболее распространенному сценарию использования:

  • Все выбранные эмодзи сохраняются на уровне каждого приложения в общих настройках.
  • В окне выбора отображается не более 3 строк выбранных эмодзи, без дубликатов, в обратном хронологическом порядке.

Если такого поведения по умолчанию достаточно, то вам не нужно устанавливать метод setRecentEmojiProvider() .

Работайте с EmojiCompat

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

Как пользоваться библиотекой

Для использования библиотеки разработчику приложений необходимо...

  1. Импортируйте androidx.emoji2:emojipicker:$version в build.gradle .

    dependencies {
      implementation "androidx.emoji2:emojipicker:$version"
    }
    
  2. Заполните окно выбора эмодзи и при необходимости установите значения emojiGridRows и emojiGridColumns в зависимости от желаемого размера каждой ячейки с эмодзи.

    • Вы можете оставить их без изменений, по умолчанию установлено 9 emojiGridColumns , количество строк будет рассчитываться на основе высоты родительского представления и emojiGridColumns
    • В XML-файле можно задать emojiGridRows тип float, чтобы указать, что при прокрутке вниз отображаются дополнительные эмодзи.
     <androidx.emoji2.emojipicker.EmojiPickerView
      android:id="@+id/emoji_picker"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      app:emojiGridColumns="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)
  1. Предположим, вы хотите добавить выбранные эмодзи в поле EditText. Для этого используйте setOnEmojiPickedListener()

      emojiPickerView.setOnEmojiPickedListener {
          findViewById<EditText>(R.id.edit_text).append(it.emoji)
      }
    
  2. При желании можно установить RecentEmojiProvider ; пример реализации см. в демонстрационном приложении.

  3. При желании можно настроить стили. Создайте собственный стиль, чтобы переопределить общие атрибуты темы, и примените его к 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-alpha01

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 содержит следующие коммиты.

Новые функции

  • Без изменений. Данный релиз предназначен для подготовки к интеграции с Compose.

Версия 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. Ожидается, что поддержка EmojiCompat в Compose появится в одном из ближайших релизов.

Версия 1.3.0-alpha01

11 января 2023 г.

Выпущена версия androidx.emoji2:emoji2-*:1.3.0-alpha01 . Версия 1.3.0-alpha01 содержит следующие коммиты.

Новые API для низкоуровневого взаимодействия.

  • Запрос исключений системы
  • Замена элементов интерфейса на пользовательский код отрисовки.
  • Также исправлена ​​ошибка, из-за которой фоновые элементы некорректно применялись за EmojiSopans .
  • В этом релизе добавлены API, необходимые для поддержки EmojiCompat в Compose. Ожидается, что поддержка EmojiCompat в Compose появится в одном из ближайших релизов.

Изменения в 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

Это релиз с исправлениями ошибок. С версии 1.1.0 новые функции и API не добавлены.

Однако приложениям, использующим 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-alpha04

20 апреля 2022 г.

Выпущена версия androidx.emoji2:emoji2-*:1.2.0-alpha04 . Версия 1.2.0-alpha04 содержит следующие коммиты.

Новые функции

  • В этом релизе изменений нет.

Версия 1.2.0-alpha03

6 апреля 2022 г.

Выпущена версия androidx.emoji2:emoji2-*:1.2.0-alpha03 . Версия 1.2.0-alpha03 содержит следующие коммиты.

Новые функции

  • Без изменений по сравнению с предыдущей версией (этот релиз предназначен для поддержки версии appcompat).

Версия 1.2.0-alpha02

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-alpha01

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. Без изменений по сравнению с alpha01 ( Ic61d9 ).

Версия 1.1.0-alpha01

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 Dev Summit «Отображение ВСЕХ эмодзи в вашем приложении» на Android Dev .

Версия 1.0.0-rc01

27 октября 2021 г.

Выпущена версия androidx.emoji2:emoji2-*:1.0.0-rc01 . Версия 1.0.0-rc01 содержит следующие коммиты.

  • С момента выхода бета-версии 02 изменений не наблюдалось.

Emoji2 Версия 1.0.0-beta01

15 сентября 2021 г.

Выпущена версия androidx.emoji2:emoji2-*:1.0.0-beta01 . Версия 1.0.0-beta01 содержит следующие коммиты.

Изменения в API

  • В FontRequestEmojiCompatConfig добавлен setLoadingExecutor , заменяющий предыдущий API метода setHandler . Этот API позволяет приложениям настраивать FontRequestEmojiCompatConfig для использования любого фонового исполнителя.

    Это изменение является критическим по отношению к androidx.emoji:emoji , поэтому setHandler сохраняется как устаревший API, не выполняющий никаких действий, для облегчения миграции. ( I6cd48 )

  • EmojiCompat корректно устанавливает значение EditorInfo.extras на Android 11.

    • Пользовательские виджеты, использующие IME и не являющиеся подклассами EditText, могут вызывать EmojiCompat.updateEditorInfo , чтобы сообщить IME о поддержке обработки EmojiCompat. ( I1ea9b )

Исправлены ошибки

  • Исправлена ​​ошибка DefaultEmojiCompatConfig , из-за которой теперь корректно определяется поставщик шрифтов эмодзи в API 19 и 28. Это исправляет ошибку, появившуюся в emoji2 1.0.0-alpha01. ( Ib33d8 , b/197906329 )

Версия 1.0.0-alpha03

30 июня 2021 г.

Выпущена версия androidx.emoji2:emoji2-*:1.0.0-alpha03 . Версия 1.0.0-alpha03 содержит следующие коммиты.

Новые функции

Данный релиз содержит исправления ошибок и стабилизацию системы.

  1. Теперь EmojiEditTextHelper позволяет передавать null в качестве KeyListener. Это обеспечивает возможность применения значений null к эмодзи, поддерживающим реализацию EditText.
  2. При использовании EmojiCompatInitializer улучшена задержка при первоначальном запуске, которая срабатывает после возобновления работы первой Activity. Это позволяет запускать приложение без конфликтов и предотвращает загрузку шрифта для приложений, которые никогда не отображают пользовательский интерфейс. После небольшой задержки EmojiCompat создаст поток для загрузки шрифта эмодзи.
  • Добавлена ​​новая зависимость от androidx.lifecycle:lifecycle-process из androidx.emoji2:emoji2 для реализации задержки. Это окажет незначительное влияние на размер APK-файла для приложений, которые уже включают жизненный цикл (например, приложения с поддержкой appcompat).

Изменения в API

  • Разрешить использование нулевого KeyListener в AppCompatEditText. Это отменяет добавленную в AppCompatEditText в версии 1.4.0-alpha01 аннотацию, разрешающую использование нулевого значения, и восстанавливает предыдущее поведение при передаче нулевого значения. ( I21482 , b/189559345 )

Исправлены ошибки

  • Измените EmojiCompatInitializer, чтобы загрузка шрифта задерживалась на 500 мс после первого Activity.onResume . Это позволит Activity выполнять Application.onCreate и Activity.onCreate без конкуренции, при этом гарантируя загрузку шрифта эмодзи вскоре после запуска приложения. ( I4bff7 )

Версия 1.0.0-alpha02

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 . Это критическое изменение для AppCompat 1.4.0-alpha01 , и приложениям необходимо убедиться, что зависимость AppCompat обновлена ​​для использования новой версии emoji2. ( Ie8397 )

Версия 1.0.0-alpha01

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 во все приложения для поддержки современных эмодзи, начиная с API 19. Весь пользовательский контент в вашем приложении должен содержать 🎉.

В EmojiCompat произошел переход от артефактов androidx.emoji к новым androidx.emoji2 , которые сейчас находятся в стадии alpha01. Новые артефакты заменяют предыдущую версию.

Начиная с версии AppCompat 1.4.0-alpha01 emoji2 добавляется в качестве зависимости к AppCompat и включен по умолчанию для представлений 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 .

Настройка автоматической инициализации

  • Приложения могут отключить автоматическую инициализацию, добавив в манифест следующее:

     <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 .

Emoji2 Emojipicker Версия 1.0

Версия 1.0.0-alpha03

8 марта 2023 г.

Выпущена версия androidx.emoji2:emoji2-emojipicker:1.0.0-alpha03 . Версия 1.0.0-alpha03 содержит следующие коммиты.

Исправлены ошибки

  • Удалены ненужные ресурсы, размер библиотеки уменьшен примерно на 0,3 млн.

Версия 1.0.0-alpha02

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-alpha01

25 января 2023 г.

Выпущена версия androidx.emoji2:emoji2-emojipicker:1.0.0-alpha01 . Версия 1.0.0-alpha01 содержит следующие коммиты.

Новые функции

  • Представлен инструмент выбора эмодзи, обеспечивающий единообразный пользовательский интерфейс с новейшими эмодзи на устройствах и в приложениях Android OS от разных производителей. Он поддерживает новейшие эмодзи и пользовательский интерфейс выбора эмодзи, включая варианты оттенков кожи и поддержку совместимости эмодзи.

Изменения в API

  • Представлен класс EmojiPickerView , который отображает актуальные эмодзи в вертикальном прокручиваемом представлении с кликабельным горизонтальным заголовком.
  • Столбцы сетки выбора эмодзи можно задать с помощью XML-атрибута emojiGridColumns или функции setEmojiGridColumns() .
  • Строки сетки выбора эмодзи можно задать с помощью XML-атрибута emojiGridRows или функции setEmojiGridRows() .
  • Слушатель событий, отвечающий за выбор эмодзи, можно установить с помощью setOnEmojiPickedListener() , и слушатель будет получать уведомления всякий раз, когда пользователь нажимает на какой-либо эмодзи.
  • Поставщик последних эмодзи можно указать с помощью функции setRecentEmojiProvider() . Это необязательная функция. Если поставщик последних эмодзи не задан, библиотека будет использовать поставщик последних эмодзи по умолчанию. Поведение по умолчанию определяется следующим образом: 1) все выбранные эмодзи будут сохранены на уровне приложения в общих настройках. 2) средство выбора будет отображать не более 3 строк выбранных эмодзи, без дубликатов, в обратном хронологическом порядке.
  • Введен класс EmojiViewItem , который хранит отображаемый эмодзи и его варианты.
  • Введен интерфейс RecentEmojiProvider , который можно использовать для предоставления списка недавно использованных эмодзи. recentEmojiProvider отвечает за предоставление эмодзи из категории «Недавно использованные».