Emoji2

現在のデバイスと古いデバイスで絵文字を表示します。
最新の更新 安定版リリース リリース候補版 ベータ版リリース アルファ版リリース
2023 年 12 月 13 日 1.4.0 - - 1.5.0-alpha01

依存関係の宣言

Emoji2 への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。

アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。

Groovy

dependencies {
    def emoji2_version = "1.4.0"

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

Kotlin

dependencies {
    val emoji2_version = "1.4.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.0.0-alpha03

2023 年 3 月 8 日

androidx.emoji2:emoji2-emojipicker:1.0.0-alpha03 がリリースされました。バージョン 1.0.0-alpha03 に含まれる commit については、こちらをご覧ください

バグの修正

  • 不要なリソースを削除し、ライブラリのサイズを最大 0.3M 削減しました。

バージョン 1.0.0-alpha02

2023 年 2 月 22 日

androidx.emoji2:emoji2-emojipicker:1.0.0-alpha02 がリリースされました。バージョン 1.0.0-alpha02 に含まれる commit については、こちらをご覧ください

API の変更

  • Java クライアント用に、最近使った絵文字を提供できる新しい API を追加しました。(I39d10

バグの修正

  • emoji 15.0 をサポートできるよう、絵文字リソースを更新しました。(Ib4eb3
  • ポップアップ ウィンドウから絵文字を選択するときに、一致する絵文字すべてが新しく選択した絵文字(最近使った絵文字の行を除く)に更新されるようになりました。また、クリック時の絵文字も通知されます。(I892c6
  • emojicompat の読み込みが完了してから EmojiPickerView が表示されるようになりました。(I29e03

バージョン 1.0.0-alpha01

2023 年 1 月 25 日

androidx.emoji2:emoji2-emojipicker:1.0.0-alpha01 がリリースされました。バージョン 1.0.0-alpha01 に含まれる commit については、こちらをご覧ください

新機能

  • Android OS の OEM デバイスとアプリ全体で最新の絵文字に対する一貫したユーザー エクスペリエンスを提供する絵文字選択ツールを導入しました。肌の色のバリエーションや絵文字互換のサポートなど、最新の絵文字サポートと絵文字選択ツールの UI を提供します。

API の変更

  • クリック可能な横方向のヘッダーを伴う縦方向のスクロール可能なビューに最新の絵文字を提供する EmojiPickerView クラスを導入しました。
  • 絵文字選択ツールのグリッドの列は、XML 属性 emojiGridColumns または関数 setEmojiGridColumns() で設定できます。
  • 絵文字選択ツールのグリッドの行は、XML 属性 emojiGridRows または関数 setEmojiGridRows() で設定できます。
  • 絵文字選択リスナーは setOnEmojiPickedListener() で設定でき、ユーザーが絵文字をクリックするたびにリスナーに通知されます。
  • 最新の絵文字プロバイダは setRecentEmojiProvider() で指定できます。これはオプションの関数です。最新の絵文字プロバイダが設定されていない場合は、デフォルトの絵文字プロバイダがライブラリで使用されます。デフォルトの動作は次のように定義されます。1)選択したすべての絵文字がアプリごとに共有設定に保存されます。2)選択ツールに、選択した絵文字が最大 3 行で、重複が排除された形で、新しい順に表示されます。
  • 表示された絵文字とその絵文字のバリエーションを保持する EmojiViewItem クラスを導入しました。
  • RecentEmojiProvider インターフェースを導入しました。これを実装することで最新の絵文字リストを提供できます。recentEmojiProvider は [最近使用した絵文字] カテゴリに絵文字を提供します。

バージョン 1.5

バージョン 1.5.0-alpha01

2023 年 12 月 13 日

androidx.emoji2:emoji2-*:1.5.0-alpha01 がリリースされました。バージョン 1.5.0-alpha01 に含まれる commit については、こちらをご覧ください

新機能

  • emoji2-bundled には、絵文字 15.1 をサポートするために更新された絵文字フォントが含まれています。

API の変更

  • InitCallback のコールバック スレッドを制御するエグゼキュータを追加します。(I32b67
  • BundledEmojiCompatConfig は、読み込みスレッドを制御するエグゼキュータを受け取るようになりました。(I00e81

バージョン 1.4

バージョン 1.4.0

2023 年 8 月 9 日

androidx.emoji2:emoji2-*:1.4.0 がリリースされました。バージョン 1.4.0 に含まれる commit については、こちらをご覧ください

1.3.0 以降の重要な変更

バージョン 1.4.0-rc01

2023 年 7 月 26 日

androidx.emoji2:emoji2-*:1.4.0-rc01 がリリースされました。バージョン 1.4.0-rc01 に含まれる commit については、こちらをご覧ください。

API の変更

  • registerSource リストを導入しました。(Iae92f
  • API Council のフィードバック: TransitionManager.seekTo() の名前を createSeekController() に変更しました。TransitionManager.createSeekController() への TransitionManager.seekTo() の追加に関する前のコメントを修正してください。(Idbeb1
  • DataNoDataConsentRequiredStates のスーパークラスではない ExerciseRouteResult を追加しました。ルートの位置情報を保持する ExerciseRoute をスタンドアロン クラスとして追加しました。(I22eed
  • Pager で測定パス後に収集される情報を使用して PagerLayoutInfo を導入しました。また、Pager で測定された 1 つのページに関する情報である PageInfo を導入しました。(Iad003b/283098900

バグの修正

  • マテリアル 3 デザインに沿って、ButtonIconButtonTextButton の色を更新しました。ButtonIconButtonTextButton のセマンティック ロールを、Modifier.semantics を使用してオーバーライドできるようになりました。(Ib2495
  • EmojiPickerView のタブ選択とインジケーターが 1 クリック遅れて更新される問題を修正しました。(I4db04
  • 絵文字選択ツールの表示に関する FileNotFoundException を追加しました。(I353e4
  • EmojiPickerView の使用時に WindowManager.BadTokenException をキャッチしました。(I0a144

バージョン 1.4.0-beta05

2023 年 6 月 7 日

androidx.emoji2:emoji2-*:1.4.0-beta05 がリリースされました。バージョン 1.4.0-beta05 に含まれる commit については、こちらをご覧ください

バグの修正

  • RelativeSizeSpan などの MetricsAffectingSpans が 2 回適用される原因となる、1.3 で生じるバグを修正しました。1 回はテキスト レイアウト中に、もう 1 回は EmojiSpan.draw 内です。スパンによってテキストサイズ パラメータのいずれかが変更されると、描画サイズが正しくなりません。(b/283208650

バージョン 1.4.0-beta04

2023 年 5 月 24 日

androidx.emoji2:emoji2-*:1.4.0-beta04 がリリースされました。バージョン 1.4.0-beta04 に含まれる commit については、こちらをご覧ください

このリリースでは、1.0 以降のバグを修正しました。このバグはメイン以外のハンドラーをもつビューが、フォントの読み込み完了後に絵文字スパンを更新しようとすると例外をスローします。回避策はありません。このバグの影響を受ける場合は、このバージョンまたはそれ以降にアップグレードしてください。

バグの修正

  • EmojiCompat init コールバックが、メインスレッドにないビューを尊重して、各ビューのハンドラを使用するようになりました。(Iccbcf

バージョン 1.4.0-beta03

2023 年 5 月 10 日

androidx.emoji2:emoji2-*:1.4.0-beta03 がリリースされました。バージョン 1.4.0-beta03 に含まれる commit については、こちらをご覧ください

バグの修正

  • 絵文字選択ツールのネストされたポップアップ ビューのクラッシュを修正しました。(0acc8e
  • EmojiCompat getEmojiStart/getEmojiEnd で早期例外をスローします。(26177f

バージョン 1.4.0-beta02

2023 年 4 月 19 日

androidx.emoji2:emoji2-*:1.4.0-beta02 がリリースされました。バージョン 1.4.0-beta02 に含まれる commit については、こちらをご覧ください

バグの修正

  • lint ベースライン ファイルを更新しました。(Iaa212

バージョン 1.4.0-beta01

2023 年 4 月 5 日

androidx.emoji2:emoji2-*:1.4.0-beta01 がリリースされました。バージョン 1.4.0-beta01 に含まれる commit については、こちらをご覧ください

新機能

androidx.emoji2:emoji2-emojipicker

絵文字選択ツールは、最新のデザイン、最新の絵文字、使いやすさを備えた UI ソリューションです。絵文字とそのバリエーションを参照して選択したり、最近使用した絵文字から選択したりできます。このライブラリを使用することで、さまざまな OEM のアプリで、デベロッパーが独自の絵文字選択ツールをゼロから作成、管理しなくても、包括的で統一された絵文字エクスペリエンスを提供できます。

最新の絵文字

新しい絵文字は毎年リリースされており、絵文字選択ツールで選択的に追加されます。下位互換性を確保するため、内部で正確な絵文字レンダリング可能性チェックを実行して、豆腐を排除します。これにより、Android の複数のバージョンやデバイス間でライブラリの互換性が確保されます。

固定バリアント

絵文字を長押しすると、性別や肌の色などのバリエーションのメニューが表示されます。選択したバリエーションは絵文字選択ツールに保存され、最後に選択したバリエーションがメインパネルで使用されます。この機能により、ユーザーは好みの絵文字のバリエーションをワンタップで送信できます。

最近使った絵文字

RecentEmojiProvider は [最近使用した絵文字] カテゴリに絵文字を提供します。ライブラリには、最近使用されたデフォルトの絵文字プロバイダが用意されており、最も一般的なユースケースに対応しています。

  • 選択した絵文字はすべて、アプリごとに共有設定に保存されます。
  • 選択ツールには、選択した絵文字が最大 3 行で、重複が排除された形で、新しい順に表示されます。

このデフォルトの動作で十分であれば、setRecentEmojiProvider() メソッドを設定する必要はありません。

EmojiCompat を使用する

アプリに EmojiCompat インスタンスがある場合、できる限り多くの絵文字をレンダリングするために、絵文字選択ツールで使用されます。EmojiCompat が無効になっていても、絵文字選択ツールは正常に機能します。

ライブラリの使用方法

このライブラリを使用するには、アプリ デベロッパーが

  1. androidx.emoji2:emojipicker:$versionbuild.gradle にインポートします。

    dependencies {
      implementation "androidx.emoji2:emojipicker:$version"
    }
    
  2. 絵文字選択ツールビューをインフレートし、必要に応じて各絵文字セルのサイズに基づいて emojiGridRowsemojiGridColumns を設定します。

    • 未設定のままにすることもできます。デフォルトは 9 emojiGridColumns です。行は親ビューの高さと emojiGridColumns に基づいて計算されます。
    • XML で下にスクロールすると、emojiGridRows を浮動小数点数として設定し、さらに絵文字があることを示すことができます。
     <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 サーフェスについては、こちらをご覧ください。

サンプルアプリ

このサンプルアプリアプリは、基本的なユースケースと次の追加シナリオを示しています。

  • emojiGridRowsemojiGridColumns がリセットされたため、ビューが再レイアウトされました。
  • 頻度順で並べ替えられるよう、最近使った絵文字のプロバイダがオーバーライドされています。
  • スタイルのカスタマイズ。

API の変更

絵文字選択ツール ライブラリが更新され、次の新しい API が追加されました。

  • EmojiPickerView クラス。クリック可能な横方向のヘッダーが付いた縦方向のスクロール可能なビューに最新の絵文字を表示します。
  • XML 属性 emojiGridColumnsemojiGridRows、または setEmojiGridColumns() メソッドと setEmojiGridRows() メソッドにより、絵文字選択ツールのグリッドで列と行数を設定する機能。
  • setOnEmojiPickedListener() メソッドを介して絵文字選択リスナーを設定する機能。ユーザーが絵文字をクリックするたびに、リスナーに通知されます。
  • setRecentEmojiProvider() メソッドを介して最近使った絵文字プロバイダを提供する機能。これはオプションの関数です。最近使った絵文字のプロバイダが設定されていない場合、ライブラリではデフォルトの最近使った絵文字のプロバイダが使用されます。デフォルトの動作は次のように定義されます。
    • 選択した絵文字はすべて、アプリごとに共有設定に保存されます。
    • 選択ツールには、選択した絵文字が最大 3 行で、重複が排除された形で、新しい順に表示されます。
  • 表示された絵文字とその絵文字のバリエーションを保持する EmojiViewItem クラス。
  • RecentEmojiProvider インターフェース。最近使った絵文字リストを提供するために実装できます。recentEmojiProvider は [最近使用した絵文字] カテゴリに絵文字を提供します。
  • RecentEmojiAsyncProvider インターフェース。最近使った絵文字リストを提供するために実装できます。RecentEmojiAsyncProvider は [最近使用した絵文字] カテゴリに絵文字を提供します。このインターフェースは RecentEmojiProvider と同等で、クライアントは getRecentEmojiListAsync() メソッドをオーバーライドして最近の絵文字を提供できます。
  • RecentEmojiProviderAdapter クラス。RecentEmojiAsyncProvider 用のアダプターであり、RecentEmojiProvider を実装します。

バージョン 1.4.0-alpha01

2023 年 3 月 22 日

androidx.emoji2:emoji2-*:1.4.0-alpha01 がリリースされました。バージョン 1.4.0-alpha01 に含まれる commit については、こちらをご覧ください

バグの修正

  • テストを修正し、フレークテストを無効にして、クリーンアップします。

バージョン 1.3

バージョン 1.3.0

2023 年 3 月 22 日

androidx.emoji2:emoji2-*:1.3.0 がリリースされました。バージョン 1.3.0 に含まれる commit については、こちらをご覧ください

1.2.0 以降の重要な変更

  • このリリースでは、Compose Foundation 1.4.0 以降で emoji2 の統合を有効にできます。
  • また、EmojiSpans をカスタム描画コードに置き換える機能や、Android で定義された絵文字の除外をサポートしています。

バージョン 1.3.0-rc01

2023 年 3 月 8 日

androidx.emoji2:emoji2-*:1.3.0-rc01 がリリースされました。バージョン 1.3.0-rc01 に含まれる commit については、こちらをご覧ください

新機能

  • このバージョンは emoji2 Compose の統合をサポートするためのものです。

API の変更

  • カスタム描画コードのスパンの置き換え。
  • システム除外のクエリ。

バグの修正

  • バックグラウンド スパンが EmojiSopans の背後で正しく適用されないバグを修正しました。

バージョン 1.3.0-beta03

2023 年 2 月 23 日

androidx.emoji2:emoji2-bundled:1.3.0-beta03androidx.emoji2:emoji2-views:1.3.0-beta03androidx.emoji2:emoji2-views-helper:1.3.0-beta03 がリリースされました。

2023 年 2 月 22 日

androidx.emoji2:emoji2:1.3.0-beta03 がリリースされました。バージョン 1.3.0-beta03 に含まれる commit については、こちらをご覧ください

新機能

  • 変更はありません。このリリースは Compose の統合を準備するためのものです。

バージョン 1.3.0-beta02

2023 年 2 月 8 日

androidx.emoji2:emoji2-*:1.3.0-beta02 がリリースされました。バージョン 1.3.0-beta02 に含まれる commit については、こちらをご覧ください

新機能

  • このリリースは Compose の統合をサポートするために安定化されています。

バージョン 1.3.0-beta01

2023 年 1 月 25 日

androidx.emoji2:emoji2-*:1.3.0-beta01 がリリースされました。バージョン 1.3.0-beta01 に含まれる commit については、こちらをご覧ください

新機能

  • システム除外のクエリ。
  • カスタム描画コード用のスパンの置き換え。
  • バックグラウンド スパンが EmojiSopans の背後で正しく適用されないバグを修正しました。
  • このリリースでは、Compose で EmojiCompat をサポートするために必要な API が追加されています。絵文字互換の Compose サポートは近い将来にリリースする予定です。

バージョン 1.3.0-alpha01

2023 年 1 月 11 日

androidx.emoji2:emoji2-*:1.3.0-alpha01 がリリースされました。バージョン 1.3.0-alpha01 に含まれる commit については、こちらをご覧ください

低レベル インタラクション用の新しい API

  • システム除外のクエリ
  • カスタム描画コード用のスパンの置き換え
  • バックグラウンド スパンが EmojiSopans の背後で正しく適用されないバグを修正しました。
  • このリリースでは、Compose で EmojiCompat をサポートするために必要な API が追加されています。絵文字互換の Compose サポートは近い将来にリリースする予定です。

API の変更

  • システム除外をクエリする機能を TypefaceEmojiRasterizer に追加しました。(I5653e
  • デフォルトの EmojiSpan の動作をカスタムの描画とサイズ変更のコードに置き換える新しい API EmojiCompat.SpanFactory を追加しました。(Ib69d9
  • EmojiCompat を Compose に追加しました(I96f37b/139326806

バグの修正

  • Emoji2 が BackgroundSpan から背景を正しく描画するようになりました。(Ide6a8b/230525134
  • 1.5.0-beta01 の AppCompat API を確定しました。(I2a43db/236866227

バージョン 1.2

バージョン 1.2.0

2022 年 8 月 10 日

androidx.emoji2:emoji2-*:1.2.0 がリリースされました。バージョン 1.2.0 に含まれる commit については、こちらをご覧ください

1.1.0 以降の重要な変更

これはバグ修正のリリースです。1.1.0 以降、新しい機能や API の追加はありません。

ただし、PrecomputedText または TextView.setText(char[]) を使用しているアプリは、このバージョンへの移行を優先する必要があります。

以下のバグが修正されました。

  • Emoji2 を使って PrecomputedText に絵文字を追加すると、以前の計算済みテキスト レイアウトは破棄されるようになりました。(I47d06b/211231958
  • emoji2 を使用するように設定された EditText に Android P からバックポートするエディタがクラッシュする問題を修正しました。(Ifd709b/216891011
  • emoji2 がフォントを読み込んで TextView.setText(char[]) が使用されたときにクラッシュする問題を修正しました。(Id511eb/206859724

バージョン 1.2.0-rc01

2022 年 7 月 27 日

androidx.emoji2:emoji2-*:1.2.0-rc01 がリリースされました。バージョン 1.2.0-rc01 に含まれる commit については、こちらをご覧ください

  • 前回のベータ版からの変更はありません。

バージョン 1.2.0-beta01

2022 年 7 月 13 日

androidx.emoji2:emoji2-*:1.2.0-beta01 がリリースされました。バージョン 1.2.0-beta01 に含まれる commit については、こちらをご覧ください

新機能

  • 前回のバージョンからの変更はありません(このリリースは AppCompat リリースをサポートするためのものです)。

バージョン 1.2.0-alpha04

2022 年 4 月 20 日

androidx.emoji2:emoji2-*:1.2.0-alpha04 がリリースされました。バージョン 1.2.0-alpha04 に含まれる commit については、こちらをご覧ください

新機能

  • このリリースでの変更はありません。

バージョン 1.2.0-alpha03

2022 年 4 月 6 日

androidx.emoji2:emoji2-*:1.2.0-alpha03 がリリースされました。バージョン 1.2.0-alpha03 に含まれる commit については、こちらをご覧ください

新機能

  • 前回のバージョンからの変更はありません(このリリースは appcompat リリースをサポートするためのものです)。

バージョン 1.2.0-alpha02

2022 年 3 月 23 日

androidx.emoji2:emoji2-*:1.2.0-alpha02 がリリースされました。バージョン 1.2.0-alpha02 に含まれる commit については、こちらをご覧ください

バグの修正

  • emoji2 を使って PrecomputedText に絵文字を追加すると、以前の計算済みテキスト レイアウトは破棄されるようになりました。(I47d06b/211231958
  • emoji2 を使用するように設定された EditText に Android P からバックポートするエディタがクラッシュする問題を修正しました。(Ifd709b/216891011
  • emoji2 がフォントを読み込んで TextView.setText(char[]) が使用されたときにクラッシュする問題を修正しました。(Id511eb/206859724

バージョン 1.2.0-alpha01

2022 年 2 月 23 日

androidx.emoji2:emoji2-*:1.2.0-alpha01 がリリースされました。バージョン 1.2.0-alpha01 に含まれる commit については、こちらをご覧ください

1.1.0 からの変更はありません。

1.1

バージョン 1.1.0

2022 年 2 月 23 日

androidx.emoji2:emoji2-*:1.1.0 がリリースされました。バージョン 1.1.0 に含まれる commit については、こちらをご覧ください

1.0.0 以降の重要な変更

  • emoji2-bundled に絵文字 14 フォントが追加されました
  • 新しい getEmojiMatch API が返す情報により、システム フォントの背後に emojicompat フォントが存在する場合の絵文字表示をキーボードが適切に制御できるようになりました。
  • NumberKeyListener のバグを修正し、数字入力で文字が正しくフィルタされるようにしました。

バージョン 1.1.0-rc01

2022 年 2 月 9 日

androidx.emoji2:emoji2-*:1.1.0-rc01 がリリースされました。バージョン 1.1.0-rc01 に含まれる commit については、こちらをご覧ください。

新機能

ベータ版からの変更はありません。

emoji2 1.0.0 以降の新機能:

  • emoji2-bundled には絵文字 14 フォントが含まれています。
  • 新しい getEmojiMatch API が返す情報により、システム フォントの背後に emojicompat フォントが存在する場合の絵文字表示をキーボードが適切に制御できるようになりました。
  • NumberKeyListener のバグを修正し、数字入力で文字が正しくフィルタされるようにしました。

バージョン 1.1.0-beta01

2022 年 1 月 26 日

androidx.emoji2:emoji2-*:1.1.0-beta01 がリリースされました。バージョン 1.1.0-beta01 に含まれる commit については、こちらをご覧ください

バグの修正

  • androidx-emoji2 beta01 リリース。alpha01 からの変更はありません。(Ic61d9

バージョン 1.1.0-alpha01

2021 年 12 月 15 日

androidx.emoji2:emoji2-*:1.1.0-alpha01 がリリースされました。バージョン 1.1.0-alpha01 に含まれる commit については、こちらをご覧ください

新機能

  • emoji2-bundled には絵文字 14 フォントが含まれています。
  • 新しい getEmojiMatch API が返す情報により、システム フォントの背後に emojicompat フォントが存在する場合の絵文字表示をキーボードが適切に制御できるようになりました。
  • NumberKeyListener のバグを修正し、数字入力で文字が正しくフィルタされるようにしました。

API の変更

  • 新たに getEmojiMatch API を追加し、キーボードが emojicompat の絵文字一致動作をより正確に検索できるようにしました。
  • hasEmojiGlyph は、プラットフォームの絵文字フォントより古いフォントでテストしたときに返されるブール値が正確でないため、非推奨になりました。これは getEmojiMatch に置き換えられます。(Ie693d

バグの修正

  • Emoji2 は NumberKeyListener のインスタンスをラップしなくなります。これにより、TextView でロケールを設定できます。
  • Appcompat は、setKeyListener に渡される NumberKeyListener のインスタンスをラップしなくなります。これにより、TextViewNumberKeyListeners でロケールを正しく設定できます。(Ibf113b/207119921

1.0

バージョン 1.0.1

2021 年 12 月 15 日

androidx.emoji2:emoji2-*:1.0.1 がリリースされました。バージョン 1.0.1 に含まれる commit については、こちらをご覧ください

バグの修正

  • Emoji2NumberKeyListener のインスタンスをラップしなくなりました。これにより、TextView でロケールを設定できます。
  • Appcompat は、setKeyListener に渡される NumberKeyListener のインスタンスをラップしなくなります。これにより、TextViewNumberKeyListeners でロケールを正しく設定できます。(Ibf113b/207119921

バージョン 1.0.0

2021 年 11 月 17 日

androidx.emoji2:emoji2-*:1.0.0 がリリースされました。バージョン 1.0.0 に含まれる commit については、こちらをご覧ください

1.0.0 の主な機能

androidx.emoji2 により、androidx.emoji が以下の追加機能に置き換えられます。

  • androidx.emoji に対する APK のサイズ削減
  • 自動設定
  • appcompat 1.4 への依存関係として追加

androidx.emoji2 の詳細については、最新の絵文字のサポートと、Android Dev Summit の講演のアプリですべての絵文字を表示するをご覧ください。

バージョン 1.0.0-rc01

2021 年 10 月 27 日

androidx.emoji2:emoji2-*:1.0.0-rc01 がリリースされました。バージョン 1.0.0-rc01 に含まれる commit については、こちらをご覧ください

  • beta02 からの変更はありません。

Emoji2 バージョン 1.0.0-beta01

2021 年 9 月 15 日

androidx.emoji2:emoji2-*:1.0.0-beta01 がリリースされました。バージョン 1.0.0-beta01 に含まれる commit については、こちらをご覧ください

API の変更

  • FontRequestEmojiCompatConfigsetLoadingExecutor が追加されました。これは setHandler の以前の API に代わるものです。この API を使用すると、任意のバックグラウンド エグゼキュータを使用するように FontRequestEmojiCompatConfig を設定できます。

    この変更は androidx.emoji:emoji からの互換性を破る変更であるため、setHandler は no-op の非推奨 API として保持されます。(I6cd48

  • EmojiCompat が Android 11 で EditorInfo.extras を正しく設定します。

    • EditText をサブクラス化せずに IME を使用するカスタム ウィジェットは、EmojiCompat.updateEditorInfo を呼び出して、EmojiCompat の処理をサポートしていることを IME に通知できます。(I1ea9b

バグの修正

  • API 19 と 28 で絵文字フォント プロバイダを正しく検索するように DefaultEmojiCompatConfig を修正しました。これにより、emoji2 1.0.0-alpha01 以来のバグが修正されました。(Ib33d8b/197906329

バージョン 1.0.0-alpha03

2021 年 6 月 30 日

androidx.emoji2:emoji2-*:1.0.0-alpha03 がリリースされました。バージョン 1.0.0-alpha03 に含まれる commit については、こちらをご覧ください

新機能

このリリースはバグの修正と安定化のリリースです。

  1. EmojiEditTextHelper で null を KeyListener として渡すことができるようになりました。これにより、EditText の実装をサポートする絵文字に null を適用できるようにするプラットフォームの動作が可能になります。
  2. EmojiCompatInitializer を使用する際に、初回の起動遅延が改善され、最初のアクティビティが再開した後にトリガーされるようになりました。これにより、アプリ起動が競合のない状態で行われるようになり、UI を表示しないアプリ起動時にフォントが読み込まれなくなります。短い遅延の後、EmojiCompat によってスレッドが作成され、絵文字フォントが読み込まれます。
  • 遅延を実装するため、androidx.emoji2:emoji2 から androidx.lifecycle:lifecycle-process への新しい依存関係が追加されました。これにより発生する、すでにライフサイクルが含まれているアプリ(appcompat を使用するアプリなど)の APK サイズへの影響はほとんどありません。

API の変更

  • AppCompatEditText で null の KeyListener が許可されるようになります。これにより、1.4.0-alpha01 で AppCompatEditText に追加された null 以外のアノテーションが取り消され、null が渡されたときの動作が以前のものに戻ります。(I21482b/189559345

バグの修正

  • EmojiCompatInitializer を変更し、最初の Activity.onResume から 500 ミリ秒が経過するまでフォントの読み込みが行われないようになりました。これにより、アクティビティが競合のない状態で Application.onCreateActivity.onCreate を実行できるようになるのと同時に、絵文字フォントがアプリ起動直後に読み込まれるようになりました。(I4bff7

バージョン 1.0.0-alpha02

2021 年 6 月 2 日

androidx.emoji2:emoji2:1.0.0-alpha02androidx.emoji2:emoji2-views:1.0.0-alpha02androidx.emoji2:emoji2-views-helper:1.0.0-alpha02 がリリースされました。バージョン 1.0.0-alpha02 に含まれる commit については、こちらをご覧ください

API の変更

  • emoji2-views-helper 内のパッケージの名前を androidx.emoji2.viewsintegration に変更しました。これは AppCompat 1.4.0-alpha01 の互換性を破る変更であり、アプリでは、AppCompat の依存関係が新しい Emoji2 バージョンを使用するように更新されていることを確認する必要があります。(Ie8397

バージョン 1.0.0-alpha01

2021 年 5 月 18 日

androidx.emoji2:emoji2:1.0.0-alpha01androidx.emoji2:emoji2-views:1.0.0-alpha01androidx.emoji2:emoji2-views-helper:1.0.0-alpha01 がリリースされました。バージョン 1.0.0-alpha01 に含まれる commit については、こちらをご覧ください

この初回リリースの機能

API19 の最新の絵文字をサポートするために、すべてのアプリで emojicompat を統合することをおすすめします。アプリ内でユーザーが生成したすべてのコンテンツに 🎉 が含まれています。

EmojiCompat は、androidx.emoji アーティファクトから新しい androidx.emoji2 に移動し、alpha01 に入りました。以前のバージョンは新しいアーティファクトに置き換えられます。

AppCompat 1.4.0-alpha01以降、emoji2 が AppCompat の依存関係として追加されており、AppCompat ビューではデフォルトで有効になっています。

emoji2 アーティファクトでは、androidx.startup ライブラリを使用した新しい自動構成が導入されています。「🐻‍❄️」を表示するのに 👨🏽‍💻 コードを記述する必要がなくなりました。

emoji から emoji2 の変更点

  • androidx.startup を使用した新しい自動構成 EmojiCompatInitializer を追加しました。
  • サービス ロケーションを使用して DefaultEmojiCompatConfiguration のダウンロード可能フォントのプロバイダを見つける新しいデフォルト構成を追加しました。
  • クラスを androidx.emoji パッケージから androidx.emoji2 に移動しました。
  • EmojiTextView と関連ビューを独立したアーティファクト emoji2-views に分離しました。これは、アプリで appcompat を使用しない場合にのみ使用してください。
  • emojicompat をカスタムビューに統合するヘルパーを、独立したアーティファクト emoji2-views-helper に分離しました。
  • null 可能性アノテーションを追加しました。
  • EmojiCompat が初期化されていない場合でも、emoji2-views-helper のヘルパーを使用できるようになりました(以前は例外をスローしていました)。

どの依存関係を追加すればよいか

  • AppCompat を使用するアプリは、appcompat バージョン AppCompat 1.4.0-alpha01 以降にアップグレードする必要があります。
  • プラットフォームの TextView / EditText を使用して AppCompat を使用しないアプリでは、emoji2-viewsEmojiTextView と関連クラスを使用する必要があります。

カスタムビューでのサポート方法

  • AppCompat を使用するアプリは、プラットフォームの TextView などではなく、AppCompatTextViewAppCompatButton などを拡張する必要があります。
  • 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 に渡すことができます。システムのデフォルトの構成は、EmojiCompat.init に渡す前に DefaultEmojiCompatConfig.create(context) によって取得されて以降の構成に使用されます。