Emoji2

Menampilkan emoji di perangkat saat ini dan yang lebih lama.
Update Terbaru Rilis Stabil Kandidat Rilis Rilis Beta Rilis Alfa
13 Desember 2023 1.4.0 - - 1.5.0-alpha01

Mendeklarasikan dependensi

Untuk menambahkan dependensi pada Emoji2, Anda harus menambahkan repositori Maven Google ke project Anda. Baca repositori Maven Google untuk mengetahui informasi selengkapnya.

Tambahkan dependensi untuk artefak yang diperlukan dalam file build.gradle bagi aplikasi atau modul Anda:

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")
}

Untuk mengetahui informasi dependensi selengkapnya, lihat Menambahkan Dependensi Build.

Masukan

Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau mempunyai masukan untuk meningkatkan kualitas library ini. Harap periksa masalah yang sudah diketahui dalam library ini sebelum membuat laporan baru. Anda dapat memberikan suara untuk masalah yang sudah diketahui dengan mengklik tombol bintang.

Laporkan masalah baru

Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.

Emoji2 Emojipicker Versi 1.0

Versi 1.0.0-alpha03

8 Maret 2023

androidx.emoji2:emoji2-emojipicker:1.0.0-alpha03 dirilis. Versi 1.0.0-alpha03 berisi commit ini.

Perbaikan Bug

  • Menghapus resource yang tidak diperlukan dan mengurangi ukuran library hingga ~0,3 juta.

Versi 1.0.0-alpha02

22 Februari 2023

androidx.emoji2:emoji2-emojipicker:1.0.0-alpha02 dirilis. Versi 1.0.0-alpha02 berisi commit ini.

Perubahan API

  • Menambahkan API baru untuk klien java agar dapat memberikan emoji terbaru. (I39d10)

Perbaikan Bug

  • Memperbarui resource emoji untuk mendukung emoji 15.0 (Ib4eb3)
  • Saat memilih emoji dari jendela pop-up, perbarui semua emoji yang identik ke emoji yang baru dipilih (kecuali baris emoji terbaru). Umumkan juga emoji saat mengklik. (I892c6)
  • Tunggu hingga emojicompat dimuat sebelum menampilkan EmojiPickerView. (I29e03)

Versi 1.0.0-alpha01

25 Januari 2023

androidx.emoji2:emoji2-emojipicker:1.0.0-alpha01 dirilis. Versi 1.0.0-alpha01 berisi commit ini.

Fitur Baru

  • Memperkenalkan pemilih emoji yang memberikan pengalaman pengguna yang konsisten dengan emoji terbaru di seluruh aplikasi dan perangkat OEM Android OS. Fitur ini menyediakan dukungan emoji dan UI pemilih emoji terbaru, termasuk varian warna kulit dan dukungan kompatibilitas emoji.

Perubahan API

  • Memperkenalkan class EmojiPickerView yang menyediakan emoji terbaru dalam tampilan vertikal yang dapat di-scroll dengan header horizontal yang dapat diklik.
  • Kolom petak pemilih emoji dapat ditetapkan melalui atribut XML emojiGridColumns atau fungsi setEmojiGridColumns().
  • Baris petak pemilih emoji dapat ditetapkan melalui atribut XML emojiGridRows atau fungsi setEmojiGridRows().
  • Pemroses yang dipilih emoji dapat ditetapkan melalui setOnEmojiPickedListener() dan pemroses akan diberi tahu setiap kali pengguna mengklik emoji apa pun.
  • Penyedia emoji terbaru dapat disertakan dengan setRecentEmojiProvider(). Ini adalah fungsi opsional. Jika penyedia emoji terbaru tidak disetel, penyedia emoji terbaru default akan digunakan oleh library. Perilaku default ini didefinisikan sebagai berikut: 1) semua emoji yang dipilih akan disimpan ke tingkat aplikasi dalam preferensi bersama. 2) pemilih akan menampilkan maksimal 3 baris emoji yang dipilih, menghapus duplikatnya, dalam urutan kronologis terbalik.
  • Memperkenalkan class EmojiViewItem yang menyimpan emoji yang ditampilkan dan varian emojinya.
  • Memperkenalkan antarmuka RecentEmojiProvider yang dapat diimplementasikan untuk menyediakan daftar emoji terbaru. recentEmojiProvider bertanggung jawab menyediakan emoji dalam kategori “Baru Saja Digunakan”.

Versi 1.5

Versi 1.5.0-alpha01

13 Desember 2023

androidx.emoji2:emoji2-*:1.5.0-alpha01 dirilis. Versi 1.5.0-alpha01 berisi commit ini.

Fitur Baru

  • emoji2-bundled berisi font emoji yang diperbarui untuk mendukung Emoji 15.1.

Perubahan API

  • Tambahkan eksekutor untuk mengontrol thread callback untuk InitCallback. (I32b67)
  • BundledEmojiCompatConfig kini menggunakan eksekutor untuk mengontrol pemuatan thread. (I00e81)

Versi 1.4

Versi 1.4.0

9 Agustus 2023

androidx.emoji2:emoji2-*:1.4.0 dirilis. Versi 1.4.0 berisi commit ini.

Perubahan penting sejak versi 1.3.0

  • Memperkenalkan library pemilih emoji. Lihat dokumen developer untuk mengetahui detail selengkapnya.

Versi 1.4.0-rc01

26 Juli 2023

androidx.emoji2:emoji2-*:1.4.0-rc01 dirilis. Versi 1.4.0-rc01 berisi commit ini.

Perubahan API

  • Memperkenalkan daftar registerSource (Iae92f)
  • Masukan API Council: mengganti nama TransitionManager.seekTo() menjadi createSeekController(). Sesuaikan komentar sebelumnya tentang menambahkan TransitionManager.seekTo() ke TransitionManager.createSeekController(). (Idbeb1)
  • Menambahkan ExerciseRouteResult, yang bukan superclass untuk Data, NoData, dan ConsentRequiredStates. Menambahkan ExerciseRoute sebagai class mandiri, yang menyimpan data lokasi untuk rute. (I22eed)
  • Memperkenalkan PagerLayoutInfo dengan informasi yang dikumpulkan setelah pengukuran diteruskan di Pager. Juga memperkenalkan PageInfo, informasi tentang satu Halaman terukur di Pager. (Iad003, b/283098900)

Perbaikan Bug

  • Kami telah memperbarui warna untuk Button, IconButton, dan TextButton agar sesuai dengan desain Material3. Peran semantik untuk Button, IconButton, dan TextButton sekarang dapat diganti menggunakan Modifier.semantics. (Ib2495)
  • Memperbaiki pemilihan tab dan indikator EmojiPickerView yang memperbarui satu klik lebih lambat. (I4db04)
  • FileNotFoundException saat menampilkan pemilih emoji (I353e4)
  • Menangkap WindowManager.BadTokenException saat menggunakan EmojiPickerView (I0a144)

Versi 1.4.0-beta05

7 Juni 2023

androidx.emoji2:emoji2-*:1.4.0-beta05 dirilis. Versi 1.4.0-beta05 berisi commit ini.

Perbaikan Bug

  • Memperbaiki bug yang diperkenalkan pada versi 1.3 yang menyebabkan MetricsAffectingSpans seperti RelativeSizeSpan diterapkan dua kali. Sekali selama tata letak teks, dan sekali lagi di dalam EmojiSpan.draw. Ukuran gambar yang dihasilkan salah, dan akan terlihat jika ada parameter ukuran teks yang diubah oleh span. (b/283208650)

Versi 1.4.0-beta04

24 Mei 2023

androidx.emoji2:emoji2-*:1.4.0-beta04 dirilis. Versi 1.4.0-beta04 berisi commit ini.

Rilis ini memperbaiki bug yang ada sejak versi 1.0, yaitu tampilan dengan pengendali non-utama akan menampilkan pengecualian ketika mencoba mengupdate span emoji setelah pemuatan font selesai. Tidak ada solusinya. Jika Anda terpengaruh oleh bug ini, upgrade ke versi ini atau yang lebih baru.

Perbaikan Bug

  • Callback init EmojiCompat kini akan menggunakan pengendali dari setiap tampilan, dengan memperhatikan tampilan yang tidak ada di thread utama. (Iccbcf)

Versi 1.4.0-beta03

10 Mei 2023

androidx.emoji2:emoji2-*:1.4.0-beta03 dirilis. Versi 1.4.0-beta03 berisi commit ini.

Perbaikan Bug

  • Memperbaiki error tampilan pop-up bertingkat pemilih emoji. (0acc8e)
  • Menampilkan pengecualian awal di EmojiCompat getEmojiStart/getEmojiEnd. (26177f)

Versi 1.4.0-beta02

19 April 2023

androidx.emoji2:emoji2-*:1.4.0-beta02 dirilis. Versi 1.4.0-beta02 berisi commit ini.

Perbaikan Bug

  • Mengupdate file dasar pengukuran lint (Iaa212)

Versi 1.4.0-beta01

5 April 2023

androidx.emoji2:emoji2-*:1.4.0-beta01 dirilis. Versi 1.4.0-beta01 berisi commit ini.

Fitur Baru

androidx.emoji2:emoji2-emojipicker

Pemilih Emoji adalah solusi UI yang menawarkan tampilan dan nuansa modern, emoji terkini, dan kemudahan penggunaan. Pengguna dapat menjelajahi serta memilih emoji dan variannya, atau memilih emoji yang baru-baru ini digunakan. Dengan library ini, aplikasi di berbagai OEM dapat memberikan pengalaman emoji yang inklusif dan terpadu kepada pengguna tanpa mengharuskan developer membuat dan mengelola pemilih emoji mereka sendiri dari awal.

Emoji terbaru

Emoji baru dirilis setiap tahun, dan kami akan menyertakannya secara selektif di Pemilih Emoji. Untuk memastikan kompatibilitas mundur, kami melakukan pemeriksaan kemampuan render emoji yang akurat secara internal untuk menghilangkan tahu. Ini akan memastikan bahwa library kompatibel di beberapa versi dan perangkat Android.

Varian melekat

Menekan lama emoji akan menampilkan menu varian, seperti gender atau warna kulit yang berbeda. Varian yang Anda pilih akan disimpan di pemilih emoji, dan varian terakhir yang dipilih akan digunakan di panel utama. Dengan fitur ini, pengguna dapat mengirim varian emoji pilihan mereka hanya dengan sekali ketuk.

Emoji terbaru

RecentEmojiProvider bertanggung jawab menyediakan emoji dalam kategori “Baru Saja Digunakan”. Library ini memiliki penyedia emoji terbaru default yang memenuhi kasus penggunaan paling umum:

  • Semua emoji yang dipilih akan disimpan ke tingkat aplikasi dalam preferensi bersama.
  • Pemilih menampilkan maksimal 3 baris emoji yang dipilih, menghapus duplikatnya, dalam urutan kronologis terbalik.

Jika perilaku default ini sudah cukup, Anda tidak perlu menetapkan metode setRecentEmojiProvider().

Menggunakan EmojiCompat

Jika aplikasi memiliki instance EmojiCompat, instance tersebut akan digunakan di pemilih emoji untuk merender emoji sebanyak mungkin. Jika EmojiCompat dinonaktifkan, pemilih emoji akan tetap berfungsi dengan baik.

Cara menggunakan library

Untuk menggunakan library ini, developer aplikasi harus

  1. Impor androidx.emoji2:emojipicker:$version di build.gradle.

    dependencies {
      implementation "androidx.emoji2:emojipicker:$version"
    }
    
  2. Meng-inflate tampilan pemilih emoji serta menyetel emojiGridRows dan emojiGridColumns secara opsional berdasarkan ukuran setiap sel emoji yang diinginkan

    • Anda dapat membiarkannya tidak disetel, defaultnya adalah 9 emojiGridColumns, baris akan dihitung berdasarkan tinggi tampilan induk dan emojiGridColumns
    • Anda dapat menetapkan emojiGridRows sebagai float untuk menunjukkan ada lebih banyak emoji jika men-scroll ke bawah dalam XML
     <androidx.emoji2.emojipicker.EmojiPickerView
      android:id="@+id/emoji_picker"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      app:emojiGridColumns="9" />
    

dalam kode

    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. Dengan asumsi Anda ingin menambahkan emoji yang dipilih ke EditText, gunakan setOnEmojiPickedListener()

      emojiPickerView.setOnEmojiPickedListener {
          findViewById<EditText>(R.id.edit_text).append(it.emoji)
      }
    
  2. Jika perlu, setel RecentEmojiProvider, lihat aplikasi contoh untuk contoh implementasi.

  3. Jika ingin, sesuaikan gaya. Buat gaya Anda sendiri untuk mengganti atribut tema umum dan menerapkan gaya tersebut ke EmojiPickerView. Misalnya, mengganti colorControlNormal akan mengubah warna ikon kategori.

      <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" />
    

Lihat aplikasi contoh untuk mengetahui contoh implementasi.

Platform API lengkap dapat ditemukan di sini.

Aplikasi Contoh

Aplikasi contoh ini menunjukkan kasus penggunaan dasar dan skenario tambahan berikut:

  • Tampilan ini disusun ulang karena emojiGridRows dan emojiGridColumns direset.
  • Penyedia emoji terbaru diganti untuk mengurutkan berdasarkan frekuensi.
  • Penyesuaian gaya.

Perubahan API

Library Pemilih Emoji telah diupdate dengan API baru berikut:

  • Class EmojiPickerView, yang menyediakan emoji terbaru dalam tampilan vertikal yang dapat di-scroll dengan header horizontal yang dapat diklik.
  • Kemampuan untuk menetapkan jumlah kolom dan baris di petak pemilih emoji melalui atribut XML emojiGridColumns dan emojiGridRows atau metode setEmojiGridColumns() dan setEmojiGridRows().
  • Kemampuan untuk menetapkan pemroses yang dipilih emoji melalui metode setOnEmojiPickedListener(). Pemroses akan diberi tahu setiap kali pengguna mengklik emoji apa pun.
  • Kemampuan untuk menyediakan penyedia emoji terbaru melalui metode setRecentEmojiProvider(). Ini adalah fungsi opsional. Jika penyedia emoji terbaru tidak disetel, penyedia emoji terbaru default akan digunakan oleh library. Perilaku default ini didefinisikan sebagai berikut:
    • Semua emoji yang dipilih akan disimpan ke tingkat aplikasi di preferensi bersama.
    • Pemilih akan menampilkan maksimal 3 baris emoji yang dipilih, menghapus duplikatnya, dalam urutan kronologis terbalik.
  • Class EmojiViewItem, yang menyimpan emoji yang ditampilkan dan varian emojinya.
  • Antarmuka RecentEmojiProvider, yang dapat diimplementasikan untuk menyediakan daftar emoji terbaru. recentEmojiProvider bertanggung jawab menyediakan emoji dalam kategori “Baru Saja Digunakan”.
  • Antarmuka RecentEmojiAsyncProvider, yang dapat diimplementasikan untuk menyediakan daftar emoji terbaru. RecentEmojiAsyncProvider bertanggung jawab menyediakan emoji dalam kategori “Baru Saja Digunakan”. Antarmuka ini setara dengan RecentEmojiProvider yang memungkinkan klien mengganti metode getRecentEmojiListAsync() untuk memberikan emoji terbaru.
  • Class RecentEmojiProviderAdapter, yang merupakan adaptor untuk RecentEmojiAsyncProvider dan mengimplementasikan RecentEmojiProvider.

Versi 1.4.0-alpha01

22 Maret 2023

androidx.emoji2:emoji2-*:1.4.0-alpha01 dirilis. Versi 1.4.0-alpha01 berisi commit ini.

Perbaikan Bug

  • Memperbaiki pengujian, menonaktifkan pengujian flake, dan pembersihan.

Versi 1.3

Versi 1.3.0

22 Maret 2023

androidx.emoji2:emoji2-*:1.3.0 dirilis. Versi 1.3.0 berisi commit berikut ini.

Perubahan penting sejak versi 1.2.0

  • Rilis ini memungkinkan Compose Foundation 1.4.0 dan yang lebih baru untuk mengaktifkan integrasi emoji2.
  • Fitur ini juga memungkinkan fitur untuk mengganti EmojiSpans dengan kode gambar kustom, serta dukungan untuk pengecualian emoji yang ditentukan di Android.

Versi 1.3.0-rc01

8 Maret 2023

androidx.emoji2:emoji2-*:1.3.0-rc01 dirilis. Versi 1.3.0-rc01 berisi commit ini.

Fitur Baru

  • Versi ini ditujukan untuk mendukung integrasi Compose emoji2.

Perubahan API

  • Ganti span untuk kode gambar kustom.
  • Mengkueri pengecualian sistem.

Perbaikan Bug

  • Dan memperbaiki bug ketika span latar belakang tidak diterapkan dengan benar di belakang EmojiSopans.

Versi 1.3.0-beta03

23 Februari 2023

androidx.emoji2:emoji2-bundled:1.3.0-beta03, androidx.emoji2:emoji2-views:1.3.0-beta03, dan androidx.emoji2:emoji2-views-helper:1.3.0-beta03 dirilis.

22 Februari 2023

androidx.emoji2:emoji2:1.3.0-beta03 dirilis. Versi 1.3.0-beta03 berisi commit ini.

Fitur Baru

  • Tidak ada perubahan. Rilis ini ditujukan untuk mempersiapkan integrasi compose.

Versi 1.3.0-beta02

8 Februari 2023

androidx.emoji2:emoji2-*:1.3.0-beta02 dirilis. Versi 1.3.0-beta02 berisi commit ini.

Fitur Baru

  • Rilis ini merupakan stabilisasi untuk mendukung integrasi compose.

Versi 1.3.0-beta01

25 Januari 2023

androidx.emoji2:emoji2-*:1.3.0-beta01 dirilis. Versi 1.3.0-beta01 berisi commit ini.

Fitur Baru

  • Mengkueri pengecualian sistem.
  • Mengganti span untuk kode gambar kustom.
  • Dan memperbaiki bug ketika span latar belakang tidak diterapkan dengan benar di belakang EmojiSopans.
  • Rilis ini menambahkan API yang diperlukan untuk mendukung EmojiCompat di Compose. Nantikan dukungan Compose untuk compat emoji dalam rilis mendatang.

Versi 1.3.0-alpha01

11 Januari 2023

androidx.emoji2:emoji2-*:1.3.0-alpha01 dirilis. Versi 1.3.0-alpha01 berisi commit ini.

API baru untuk interaksi tingkat rendah

  • Mengkueri pengecualian sistem
  • Mengganti span untuk kode gambar kustom
  • Dan memperbaiki bug ketika span latar belakang tidak diterapkan dengan benar di belakang EmojiSopans.
  • Rilis ini menambahkan API yang diperlukan untuk mendukung EmojiCompat di Compose. Nantikan dukungan Compose untuk compat emoji dalam rilis mendatang.

Perubahan API

  • Menambahkan kemampuan untuk mengkueri pengecualian sistem ke TypefaceEmojiRasterizer. (I5653e)
  • Menambahkan API baru EmojiCompat.SpanFactory untuk mengganti perilaku EmojiSpan default dengan kode gambar dan ukuran kustom. (Ib69d9)
  • Menambahkan EmojiCompat ke Compose (I96f37, b/139326806)

Perbaikan Bug

  • Emoji2 sekarang akan menggambar latar belakang dari BackgroundSpan dengan benar. (Ide6a8, b/230525134)
  • Menyelesaikan AppCompat API untuk 1.5.0-beta01 (I2a43d, b/236866227)

Versi 1.2

Versi 1.2.0

10 Agustus 2022

androidx.emoji2:emoji2-*:1.2.0 dirilis. Versi 1.2.0 berisi commit ini.

Perubahan penting sejak 1.1.0

Ini adalah rilis perbaikan bug. Tidak ada fitur atau API baru yang ditambahkan sejak versi 1.1.0.

Namun, aplikasi yang menggunakan PrecomputedText atau TextView.setText(char[]) harus memprioritaskan penambahan ke versi ini.

Bug berikut telah diperbaiki:

  • Emoji2 akan menambahkan emoji ke PrecomputedText dengan menghapus tata letak teks yang sudah diprakomputasi sebelumnya. (I47d06, b/211231958)
  • Mem-backport perbaikan error editor dari Android P ke EditText yang dikonfigurasi agar menggunakan emoji2. (Ifd709, b/216891011)
  • Memperbaiki error saat emoji2 memuat font dan TextView.setText(char[]) digunakan. (Id511e, b/206859724)

Versi 1.2.0-rc01

27 Juli 2022

androidx.emoji2:emoji2-*:1.2.0-rc01 dirilis. Versi 1.2.0-rc01 berisi commit ini.

  • Tidak ada perubahan sejak versi beta terakhir.

Versi 1.2.0-beta01

13 Juli 2022

androidx.emoji2:emoji2-*:1.2.0-beta01 dirilis. Versi 1.2.0-beta01 berisi commit ini.

Fitur Baru

  • Tidak ada perubahan dari versi terakhir (rilis ini untuk mendukung rilis AppCompat).

Versi 1.2.0-alpha04

20 April 2022

androidx.emoji2:emoji2-*:1.2.0-alpha04 dirilis. Versi 1.2.0-alpha04 berisi commit ini.

Fitur Baru

  • Tidak ada perubahan dalam rilis ini.

Versi 1.2.0-alpha03

6 April 2022

androidx.emoji2:emoji2-*:1.2.0-alpha03 dirilis. Versi 1.2.0-alpha03 berisi commit ini.

Fitur Baru

  • Tidak ada perubahan dari versi terakhir (rilis ini untuk mendukung rilis appcompat).

Versi 1.2.0-alpha02

23 Maret 2022

androidx.emoji2:emoji2-*:1.2.0-alpha02 dirilis. Versi 1.2.0-alpha02 berisi commit ini.

Perbaikan Bug

  • Emoji2 akan menambahkan emoji ke PrecomputedText dengan menghapus tata letak teks yang sudah diprakomputasi sebelumnya. (I47d06, b/211231958)
  • Mem-backport perbaikan error editor dari Android P ke EditText yang dikonfigurasi agar menggunakan emoji2. (Ifd709, b/216891011)
  • Memperbaiki error saat emoji2 memuat font dan TextView.setText(char[]) digunakan. (Id511e, b/206859724)

Versi 1.2.0-alpha01

23 Februari 2022

androidx.emoji2:emoji2-*:1.2.0-alpha01 dirilis. Versi 1.2.0-alpha01 berisi commit ini.

Tidak ada perubahan sejak versi 1.1.0.

1.1

Versi 1.1.0

23 Februari 2022

androidx.emoji2:emoji2-*:1.1.0 dirilis. Versi 1.1.0 berisi commit ini.

Perubahan penting sejak versi 1.0.0

  • emoji2-bundled berisi font emoji 14
  • getEmojiMatch API baru menampilkan informasi yang akurat untuk keyboard guna menentukan cara emoji ditampilkan di depan font emojicompat yang ada di belakang font sistem
  • Perbaikan bug untuk NumberKeyListener yang membuat input digit memfilter karakter dengan benar.

Versi 1.1.0-rc01

9 Februari 2022

androidx.emoji2:emoji2-*:1.1.0-rc01 dirilis. Versi 1.1.0-rc01 berisi commit ini.

Fitur Baru

Tidak ada perubahan dari versi beta.

Fitur baru dibandingkan dengan emoji2 1.0.0:

  • emoji2-bundled berisi font emoji 14
  • getEmojiMatch API baru menampilkan informasi yang akurat untuk keyboard guna menentukan cara emoji ditampilkan di depan font emojicompat yang ada di belakang font sistem
  • Perbaikan bug untuk NumberKeyListener yang membuat input digit memfilter karakter dengan benar

Versi 1.1.0-beta01

26 Januari 2022

androidx.emoji2:emoji2-*:1.1.0-beta01 dirilis. Versi 1.1.0-beta01 berisi commit ini.

Perbaikan Bug

  • Rilis androidx-emoji2 beta01. Tidak ada perubahan dari versi alpha01 (Ic61d9)

Versi 1.1.0-alpha01

15 Desember 2021

androidx.emoji2:emoji2-*:1.1.0-alpha01 dirilis. Versi 1.1.0-alpha01 berisi commit ini.

Fitur Baru

  • emoji2-bundled berisi font emoji 14
  • getEmojiMatch API baru menampilkan informasi yang akurat untuk keyboard guna menentukan cara emoji ditampilkan di depan font emojicompat yang ada di belakang font sistem
  • Perbaikan bug untuk NumberKeyListener yang membuat input digit memfilter karakter dengan benar

Perubahan API

  • Menambahkan getEmojiMatch API baru agar keyboard dapat mencari perilaku pencocokan emoji dengan lebih akurat di emojicompat.
  • Menghentikan penggunaan hasEmojiGlyph, karena nilai hasil booleannya tidak akurat saat pengujian dengan font yang lebih lama dari font emoji platform. Mengganti dengan getEmojiMatch. (Ie693d)

Perbaikan Bug

  • Emoji2 tidak akan menggabungkan instance NumberKeyListener, sehingga lokalitas dapat dikonfigurasi oleh TextView.
  • Appcompat tidak akan menggabungkan instance NumberKeyListener yang diteruskan ke setKeyListener, sehingga TextView dapat mengonfigurasi lokalitas dengan benar di NumberKeyListeners. (Ibf113, b/207119921)

1.0

Versi 1.0.1

15 Desember 2021

androidx.emoji2:emoji2-*:1.0.1 dirilis. Versi 1.0.1 berisi commit ini.

Perbaikan Bug

  • Emoji2 tidak akan menggabungkan instance NumberKeyListener, sehingga lokalitas dapat dikonfigurasi oleh TextView.
  • Appcompat tidak akan menggabungkan instance NumberKeyListener yang diteruskan ke setKeyListener, sehingga TextView dapat mengonfigurasi lokalitas dengan benar di NumberKeyListeners. (Ibf113, b/207119921)

Versi 1.0.0

17 November 2021

androidx.emoji2:emoji2-*:1.0.0 dirilis. Versi 1.0.0 berisi commit ini.

Fitur utama 1.0.0

androidx.emoji2 menggantikan androidx.emoji dengan kemampuan tambahan:

  • Pengurangan ukuran APK vs androidx.emoji
  • Konfigurasi otomatis
  • Ditambahkan sebagai dependensi untuk appcompat 1.4

Untuk informasi selengkapnya tentang androidx.emoji2, lihat Mendukung Emoji Modern dan diskusi Android Dev Summit kami yang Menampilkan SEMUA emoji di aplikasi Android Dev.

Versi 1.0.0-rc01

27 Oktober 2021

androidx.emoji2:emoji2-*:1.0.0-rc01 dirilis. Versi 1.0.0-rc01 berisi commit ini.

  • Tidak ada perubahan sejak versi beta02.

Emoji2 Versi 1.0.0-beta01

15 September 2021

androidx.emoji2:emoji2-*:1.0.0-beta01 dirilis. Versi 1.0.0-beta01 berisi commit ini.

Perubahan API

  • Menambahkan setLoadingExecutor ke FontRequestEmojiCompatConfig, yang menggantikan API setHandler sebelumnya. API ini memungkinkan aplikasi untuk mengonfigurasi FontRequestEmojiCompatConfig agar dapat menggunakan eksekutor latar belakang apa pun.

    Perubahan ini merupakan perubahan yang dapat menyebabkan gangguan dari androidx.emoji:emoji, sehingga setHandler akan dipertahankan sebagai API tanpa pengoperasian yang tidak digunakan lagi untuk membantu migrasi. (I6cd48)

  • EmojiCompat menetapkan EditorInfo.extras dengan benar di Android 11

    • Widget kustom yang menggunakan IME yang tidak membuat EditText sebagai subclass dapat memanggil EmojiCompat.updateEditorInfo untuk memberi tahu IME bahwa widget tersebut mendukung pemrosesan EmojiCompat. (I1ea9b)

Perbaikan Bug

  • Memperbaiki DefaultEmojiCompatConfig untuk mencari penyedia font emoji dengan benar pada API 19 dan 28. Perubahan ini memperbaiki bug yang diperkenalkan di emoji2 1.0.0-alpha01. (Ib33d8, b/197906329)

Versi 1.0.0-alpha03

30 Juni 2021

androidx.emoji2:emoji2-*:1.0.0-alpha03 dirilis. Versi 1.0.0-alpha03 berisi commit ini.

Fitur Baru

Rilis ini adalah rilis perbaikan bug dan stabilisasi.

  1. EmojiEditTextHelper kini memungkinkan null diteruskan sebagai KeyListener. Hal ini memungkinkan perilaku platform yang mengizinkan null untuk diterapkan ke emoji yang mendukung implementasi EditText.
  2. Saat menggunakan EmojiCompatInitializer, penundaan startup awal ditingkatkan untuk dipicu setelah Aktivitas pertama dilanjutkan. Hal ini memungkinkan startup aplikasi terjadi tanpa terkendali, dan menghindari pemuatan font untuk memulai aplikasi yang tidak pernah menampilkan UI. Setelah penundaan singkat, EmojiCompat akan membuat thread untuk memuat font emoji.
  • Dependensi baru pada androidx.lifecycle:lifecycle-process dari androidx.emoji2:emoji2 ditambahkan untuk mengimplementasikan penundaan. Perubahan ini akan berdampak pada ukuran APK yang dapat diabaikan untuk aplikasi yang sudah menyertakan siklus proses (seperti aplikasi dengan appcompat).

Perubahan API

  • Mengizinkan KeyListener null di AppCompatEditText. Tindakan ini akan membalikkan anotasi non-null yang ditambahkan ke AppCompatEditText dalam 1.4.0-alpha01 dan memulihkan perilaku sebelumnya saat diteruskan ke null. (I21482, b/189559345)

Perbaikan Bug

  • Mengubah EmojiCompatInitializer untuk menunda pemuatan font hingga 500 milidetik setelah Activity.onResume pertama. Hal ini memungkinkan aktivitas melakukan Application.onCreate dan Activity.onCreate secara tidak terkendali, selagi tetap memastikan bahwa font emoji dimuat segera setelah aplikasi dimulai. (I4bff7)

Versi 1.0.0-alpha02

2 Juni 2021

androidx.emoji2:emoji2:1.0.0-alpha02, androidx.emoji2:emoji2-views:1.0.0-alpha02, dan androidx.emoji2:emoji2-views-helper:1.0.0-alpha02 dirilis. Versi 1.0.0-alpha02 berisi commit ini.

Perubahan API

  • Mengganti nama paket dalam emoji2-views-helper menjadi androidx.emoji2.viewsintegration. Ini adalah perubahan yang dapat menyebabkan gangguan pada AppCompat 1.4.0-alpha01, dan aplikasi harus memastikan dependensi AppCompat diperbarui untuk menggunakan versi emoji2 yang baru. (Ie8397)

Versi 1.0.0-alpha01

18 Mei 2021

androidx.emoji2:emoji2:1.0.0-alpha01, androidx.emoji2:emoji2-views:1.0.0-alpha01, dan androidx.emoji2:emoji2-views-helper:1.0.0-alpha01 dirilis. Versi 1.0.0-alpha01 berisi commit ini.

Fitur dalam rilis awal ini

Integrasi emojicompat direkomendasikan untuk semua aplikasi guna mendukung emoji modern dari API19. Semua konten buatan pengguna di aplikasi Anda berisi 🎉.

EmojiCompat telah berpindah dari artefak androidx.emoji ke androidx.emoji2 baru, yang sekarang dalam alpha01. Artefak baru menggantikan versi sebelumnya.

emoji2 ditambahkan sebagai dependensi untuk AppCompat mulai dari AppCompat 1.4.0-alpha01 dan diaktifkan secara default untuk tampilan AppCompat.

Artefak emoji2 memperkenalkan konfigurasi otomatis baru menggunakan library androidx.startup. Anda tidak perlu lagi menulis kode 👨🏽‍💻 untuk menampilkan 🐻‍❄️.

Perubahan emoji2 dari emoji

  • Menambahkan konfigurasi otomatis baru EmojiCompatInitializer menggunakan androidx.startup.
  • Menambahkan konfigurasi default baru yang menggunakan lokasi layanan untuk menemukan penyedia font yang dapat didownload di DefaultEmojiCompatConfiguration.
  • Class dipindahkan dari paket androidx.emoji ke androidx.emoji2.
  • Memisahkan EmojiTextView dan tampilan terkait ke artefak terpisah emoji2-views. Ini hanya boleh digunakan jika aplikasi Anda tidak menggunakan appcompat.
  • Mengekstrak helper untuk mengintegrasikan emojicompat ke dalam tampilan khusus menjadi artefak terpisah emoji2-views-helper.
  • Menambahkan anotasi nullability.
  • Helper dalam emoji2-views-helper kini dapat digunakan meskipun EmojiCompat tidak diinisialisasi (sebelumnya pengecualian ditampilkan).

Dependensi apa yang harus Anda tambahkan?

  • Aplikasi dengan AppCompat harus diupgrade ke versi appcompat AppCompat 1.4.0-alpha01 atau yang lebih baru.
  • Aplikasi tanpa AppCompat yang menggunakan TextView/EditText dari platform harus menggunakan EmojiTextView dan class terkait dari emoji2-views.

Cara mendukung dalam tampilan khusus

  • Aplikasi dengan AppCompat harus memperluas AppCompatTextView, AppCompatButton, dll., bukan platform TextView, dll.
  • Aplikasi tanpa AppCompat harus menambahkan dependensi androidx.emoji2:emoji2-views-helper dan menggunakan helper untuk berintegrasi dengan subclass TextView atau EditText khusus.

Mengonfigurasi inisialisasi otomatis

  • Aplikasi dapat menonaktifkan inisialisasi otomatis dengan menambahkan ini ke manifes:

     <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>
    
  • Ini akan menonaktifkan konfigurasi otomatis, sehingga Anda dapat meneruskan konfigurasi khusus ke EmojiCompat.init. Konfigurasi default untuk sistem dapat diambil DefaultEmojiCompatConfig.create(context) untuk konfigurasi lebih lanjut sebelum diteruskan ke EmojiCompat.init.