Skip to content

Commit 773b702

Browse files
committed
fix: "Shake device" maracas emoji is garbled [API 30]
* Implement EmojiCompat Bundle was tested and adds X MB to the app size Fixes 17090
1 parent 1d338b3 commit 773b702

File tree

3 files changed

+12
-0
lines changed

3 files changed

+12
-0
lines changed

AnkiDroid/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -385,6 +385,8 @@ dependencies {
385385
implementation libs.android.image.cropper
386386
implementation libs.nanohttpd
387387
implementation libs.kotlinx.serialization.json
388+
implementation libs.androidx.emoji2
389+
implementation libs.androidx.emoji2.bundled
388390
implementation libs.seismic
389391

390392
debugImplementation libs.androidx.fragment.testing.manifest

AnkiDroid/src/main/java/com/ichi2/anki/AnkiDroidApp.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ import android.webkit.CookieManager
3131
import androidx.annotation.VisibleForTesting
3232
import androidx.core.content.edit
3333
import androidx.core.net.toUri
34+
import androidx.emoji2.bundled.BundledEmojiCompatConfig
35+
import androidx.emoji2.text.EmojiCompat
3436
import androidx.fragment.app.FragmentActivity
3537
import androidx.lifecycle.MutableLiveData
3638
import androidx.work.Configuration
@@ -70,6 +72,7 @@ import kotlinx.coroutines.launch
7072
import timber.log.Timber
7173
import timber.log.Timber.DebugTree
7274
import java.util.Locale
75+
import java.util.concurrent.Executors
7376

7477
/**
7578
* Application class.
@@ -121,6 +124,9 @@ open class AnkiDroidApp :
121124
}
122125
instance = this
123126

127+
val config: EmojiCompat.Config = BundledEmojiCompatConfig(this, Executors.newSingleThreadExecutor())
128+
EmojiCompat.init(config)
129+
124130
// Get preferences
125131
val preferences = this.sharedPrefs()
126132

gradle/libs.versions.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ androidxConstraintlayout = "2.2.1"
3333
androidxCoreKtx = "1.16.0"
3434
# https://developer.android.com/jetpack/androidx/releases/draganddrop
3535
androidxDragAndDrop = "1.0.0"
36+
# https://developer.android.com/jetpack/androidx/releases/emoji2
37+
androidxEmoji2 = "1.5.0"
3638
# https://developer.android.com/jetpack/androidx/releases/exifinterface
3739
androidxExifinterface = "1.4.1"
3840
# https://developer.android.com/jetpack/androidx/releases/fragment
@@ -131,6 +133,8 @@ androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "a
131133
androidx-annotation = { module = "androidx.annotation:annotation", version.ref = "androidxAnnotation" }
132134
androidx-activity = { module = "androidx.activity:activity", version.ref = "androidxActivity" }
133135
androidx-media3-ui = { module = "androidx.media3:media3-ui", version.ref = "androidxMedia3" }
136+
androidx-emoji2 = { group = "androidx.emoji2", name = "emoji2", version.ref = "androidxEmoji2" }
137+
androidx-emoji2-bundled = { group = "androidx.emoji2", name = "emoji2-bundled", version.ref = "androidxEmoji2" }
134138
androidx-media3-exoplayer-dash = { module = "androidx.media3:media3-exoplayer-dash", version.ref = "androidxMedia3" }
135139
androidx-media3-exoplayer = { module = "androidx.media3:media3-exoplayer", version.ref = "androidxMedia3" }
136140
androidx-preference-ktx = { module = "androidx.preference:preference-ktx", version.ref = "androidxPreferenceKtx" }

0 commit comments

Comments
 (0)