Emoji2
最新の更新 | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
---|---|---|---|---|
2024 年 9 月 4 日 | 1.5.0 | - | - | - |
依存関係の宣言
Emoji2 への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。
アプリまたはモジュールの build.gradle
ファイルに、必要なアーティファクトの依存関係を追加します。
Groovy
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" }
Kotlin
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
2024 年 9 月 4 日
androidx.emoji2:emoji2-*:1.5.0
がリリースされました。バージョン 1.5.0 に含まれる commit については、こちらをご覧ください。
1.4.0 以降の重要な変更
- 絵文字 15.1 と双方向の絵文字選択ツール UI をサポート。双方向の切り替えボタンをクリックするだけで、左向きと右向きの絵文字を切り替えることができます。
- マルチスキンの絵文字セレクタをサポート。カップルの絵文字を長押しすると、0 人目の状態の複数人用の絵文字選択ツールが表示されます。ユーザーが絵文字の左半分をタップすると、右下の絵文字プレビューが更新されます。絵文字の両側を選択すると、右下の絵文字プレビューに絵文字全体が表示され、入力できるようになります。
バージョン 1.0.0-alpha03
2023 年 3 月 8 日
androidx.emoji2:emoji2-emojipicker:1.0.0-alpha03
がリリースされました。バージョン 1.0.0-alpha03 に含まれる commit については、こちらをご覧ください。
バグの修正
- 不要なリソースを削除し、ライブラリのサイズを約 300,000 バイト削減しました。
バージョン 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
2024 年 9 月 4 日
androidx.emoji2:emoji2-*:1.5.0
がリリースされました。バージョン 1.5.0 に含まれる commit は次のとおりです。
1.4.0 以降の重要な変更
- 絵文字 15.1 と双方向の絵文字選択ツール UI をサポート。双方向の切り替えボタンをクリックするだけで、左向きと右向きの絵文字を切り替えることができます。
- 複数の肌色の絵文字セレクタをサポート。カップルの絵文字を長押しすると、0 人目の状態の複数人用の絵文字選択ツールが表示されます。ユーザーが絵文字の左半分をタップすると、右下の絵文字プレビューが更新されます。絵文字の両側を選択すると、右下の絵文字プレビューに絵文字全体が表示され、入力できるようになります。
バージョン 1.5.0-rc01
2024 年 8 月 21 日
androidx.emoji2:emoji2-*:1.5.0-rc01
がリリースされました。バージョン 1.5.0-rc01 に含まれる commit はこちらをご覧ください。
新機能
- 絵文字 15.1 と双方向の絵文字セレクタ UI をサポートします。双方向の切り替えボタンをクリックするだけで、絵文字の向きを左向きと右向きと切り替えることができます。
- 複数の肌色の絵文字セレクタをサポート。カップルの絵文字を長押しすると、0 人目の状態の複数人用の絵文字選択ツールが表示されます。ユーザーが絵文字の左半分をタップすると、右下の絵文字プレビューが更新されます。ユーザーが絵文字の両側を選択すると、絵文字全体がプレビューに表示され、ユーザーは絵文字を入力できます。
バグの修正
- 新しいプラットフォーム API へのアクセスに関する手動概要を削除しました。これは、AGP 7.3 以降(R8 バージョン 3.3 など)で R8 を使用する場合は API モデリングを介して自動的に行われ、AGP 8.1 以降(D8 バージョン 8.1 など)を使用する場合はすべてのビルドで行われるためです。AGP を使用していないクライアントには、D8 バージョン 8.1 以降に更新することが推奨されます。詳しくは、こちらの記事をご覧ください。(If6b4c、b/345472586)
EmojiPickerView
のタブ選択とインジケーターが更新されると、クリックが 1 回遅れて更新されるようになります。(146b02、b/288261054)EmojiPickerView
のタブ選択とインジケーターが機能しない。(5e1f14、b/273883688)
バージョン 1.5.0-beta01
2024 年 7 月 10 日
androidx.emoji2:emoji2-*:1.5.0-beta01
がリリースされました。バージョン 1.5.0-beta01 には、これらの commit が含まれています。
新機能
- 絵文字 15.1 と双方向の絵文字選択 UI をサポート。
- 複数の肌色を選択できるデザインを変更。
バグの修正
EmojiPickerView
のタブ選択とインジケーターが更新されると、クリックが 1 回遅れて更新されるようになります。(146b02、b/288261054)EmojiPickerView
のタブ選択とインジケーターが機能しない。(5e1f14、b/273883688)
バージョン 1.5.0-alpha01
2023 年 12 月 13 日
androidx.emoji2:emoji2-*:1.5.0-alpha01
がリリースされました。バージョン 1.5.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
emoji2-bundled
には、Emoji 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) Data
、NoData
、ConsentRequiredStates
のスーパークラスではないExerciseRouteResult
を追加しました。ルートの位置情報を保持するスタンドアロン クラスとしてExerciseRoute
を追加しました。(I22eed)- Pager で測定パス後に収集された情報を含む
PagerLayoutInfo
を導入しました。また、Pager で測定された 1 つのページに関する情報である PageInfo も導入されました。(Iad003、b/283098900)
バグの修正
Button
、IconButton
、TextButton
の色を、マテリアル 3 のデザインに合わせて更新しました。Button
、IconButton
、TextButton
のセマンティック ロールを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 については、こちらをご覧ください。
バグの修正
- 1.3 で導入された、
RelativeSizeSpan
などのMetricsAffectingSpans
が 2 回適用されるバグを修正しました。テキスト レイアウト中に 1 回、EmojiSpan.draw
内でもう 1 回です。結果はサイズが正しくない描画となり、テキストサイズ パラメータのいずれかがスパンで変更された場合に表示されます。(b/283208650)
バージョン 1.4.0-beta04
2023 年 5 月 24 日
androidx.emoji2:emoji2-*:1.4.0-beta04
がリリースされました。バージョン 1.4.0-beta04 に含まれる commit については、こちらをご覧ください。
このリリースでは、フォント読み込みの完了後に絵文字スパンを更新しようとすると、メイン以外のハンドラを持つビューで例外がスローされるという 1.0 以来のバグが修正されました。回避策はありません。このバグの影響を受けている場合は、このバージョン以降にアップグレードしてください。
バグの修正
EmojiCompat
初期化コールバックで、メインスレッド以外のビューを考慮して、各ビューのハンドラが使用されるようになりました。(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 のアプリで包括的かつ統合された絵文字エクスペリエンスをユーザーに提供できます。デベロッパーが独自の絵文字選択ツールをゼロから構築して維持する必要はありません。
最新の絵文字
新しい絵文字は毎年リリースされており、選択的に絵文字選択ツールに含められます。下位互換性を確保するため、Google では内部で正確な絵文字レンダリング可能性チェックを実施し、豆腐文字を排除しています。これにより、複数の 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 の変更
絵文字選択ツール ライブラリが更新され、次の新しい API が追加されました。
EmojiPickerView
クラス: クリック可能な横方向のヘッダーを伴う縦方向のスクロール可能なビューに最新の絵文字を提供するクラス。- XML 属性
emojiGridColumns
とemojiGridRows
、または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 の作成統合をサポートします。
API の変更
- カスタム描画コード用のスパンを置き換えます。
- システム除外のクエリ。
バグの修正
- バックグラウンド スパンが
EmojiSopans
の背後で正しく適用されないバグを修正しました。
バージョン 1.3.0-beta03
2023 年 2 月 23 日
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
がリリースされました。
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
の動作をカスタムの描画とサイズ変更のコードに置き換える新しい APIEmojiCompat.SpanFactory
を追加しました。(Ib69d9) EmojiCompat
を Compose に追加しました(I96f37、b/139326806)
バグの修正
- Emoji2 が
BackgroundSpan
から背景を正しく描画するようになりました。(Ide6a8、b/230525134) - 1.5.0-beta01 の AppCompat API を確定しました。(I2a43d、b/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
に絵文字を追加すると、以前の計算済みテキスト レイアウトは破棄されるようになりました。(I47d06、b/211231958)- emoji2 を使用するように設定された
EditText
に Android P からバックポートするエディタがクラッシュする問題を修正しました。(Ifd709、b/216891011) - emoji2 がフォントを読み込んで
TextView.setText(char[])
が使用されたときにクラッシュする問題を修正しました。(Id511e、b/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
に絵文字を追加すると、以前の計算済みテキスト レイアウトは破棄されるようになりました。(I47d06、b/211231958) - emoji2 を使用するように設定された EditText に Android P からバックポートするエディタがクラッシュする問題を修正しました。(Ifd709、b/216891011)
- emoji2 がフォントを読み込んで
TextView.setText(char[])
が使用されたときにクラッシュする問題を修正しました。(Id511e、b/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
のインスタンスをラップしなくなります。これにより、TextView
はNumberKeyListeners
でロケールを正しく設定できます。(Ibf113、b/207119921)
1.0
バージョン 1.0.1
2021 年 12 月 15 日
androidx.emoji2:emoji2-*:1.0.1
がリリースされました。バージョン 1.0.1 に含まれる commit については、こちらをご覧ください。
バグの修正
Emoji2
はNumberKeyListener
のインスタンスをラップしなくなりました。これにより、TextView
でロケールを設定できます。- Appcompat は、
setKeyListener
に渡されるNumberKeyListener
のインスタンスをラップしなくなります。これにより、TextView
はNumberKeyListeners
でロケールを正しく設定できます。(Ibf113、b/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 の変更
FontRequestEmojiCompatConfig
にsetLoadingExecutor
が追加されました。これはsetHandler
の以前の API に代わるものです。この API を使用すると、任意のバックグラウンド エグゼキュータを使用するようにFontRequestEmojiCompatConfig
を設定できます。この変更は
androidx.emoji:emoji
からの互換性を破る変更であるため、setHandler
は no-op の非推奨 API として保持されます。(I6cd48)EmojiCompat が Android 11 で
EditorInfo.extras
を正しく設定します。- EditText をサブクラス化せずに IME を使用するカスタム ウィジェットは、
EmojiCompat.updateEditorInfo
を呼び出して、EmojiCompat の処理をサポートしていることを IME に通知できます。(I1ea9b)
- EditText をサブクラス化せずに IME を使用するカスタム ウィジェットは、
バグの修正
- API 19 と 28 で絵文字フォント プロバイダを正しく検索するように
DefaultEmojiCompatConfig
を修正しました。これにより、emoji2 1.0.0-alpha01 以来のバグが修正されました。(Ib33d8、b/197906329)
バージョン 1.0.0-alpha03
2021 年 6 月 30 日
androidx.emoji2:emoji2-*:1.0.0-alpha03
がリリースされました。バージョン 1.0.0-alpha03 に含まれる commit については、こちらをご覧ください。
新機能
このリリースはバグの修正と安定化のリリースです。
- EmojiEditTextHelper で
null
を KeyListener として渡すことができるようになりました。これにより、EditText の実装をサポートする絵文字に null を適用できるようにするプラットフォームの動作が可能になります。 - EmojiCompatInitializer を使用する際に、初回の起動遅延が改善され、最初のアクティビティが再開した後にトリガーされるようになりました。これにより、アプリ起動が競合のない状態で行われるようになり、UI を表示しないアプリ起動時にフォントが読み込まれなくなります。短い遅延の後、EmojiCompat によってスレッドが作成され、絵文字フォントが読み込まれます。
- 遅延を実装するため、
androidx.emoji2:emoji2
からandroidx.lifecycle:lifecycle-process
への新しい依存関係が追加されました。これにより発生する、すでにライフサイクルが含まれているアプリ(appcompat を使用するアプリなど)の APK サイズへの影響はほとんどありません。
API の変更
- AppCompatEditText で null の KeyListener が許可されるようになります。これにより、1.4.0-alpha01 で AppCompatEditText に追加された null 以外のアノテーションが取り消され、null が渡されたときの動作が以前のものに戻ります。(I21482、b/189559345)
バグの修正
- EmojiCompatInitializer を変更し、最初の
Activity.onResume
から 500 ミリ秒が経過するまでフォントの読み込みが行われないようになりました。これにより、アクティビティが競合のない状態でApplication.onCreate
とActivity.onCreate
を実行できるようになるのと同時に、絵文字フォントがアプリ起動直後に読み込まれるようになりました。(I4bff7)
バージョン 1.0.0-alpha02
2021 年 6 月 2 日
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 に含まれる commit については、こちらをご覧ください。
API の変更
emoji2-views-helper
内のパッケージの名前をandroidx.emoji2.viewsintegration
に変更しました。これは AppCompat1.4.0-alpha01
の互換性を破る変更であり、アプリでは、AppCompat の依存関係が新しい Emoji2 バージョンを使用するように更新されていることを確認する必要があります。(Ie8397)
バージョン 1.0.0-alpha01
2021 年 5 月 18 日
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 に含まれる 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-views
のEmojiTextView
と関連クラスを使用する必要があります。
カスタムビューでのサポート方法
- AppCompat を使用するアプリは、プラットフォームの
TextView
などではなく、AppCompatTextView
やAppCompatButton
などを拡張する必要があります。 - 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)
によって取得されて以降の構成に使用されます。