initialize emoji compat in application

Daniel Gultsch created

Change summary

src/free/java/eu/siacs/conversations/services/EmojiInitializationService.java | 21 
src/main/java/eu/siacs/conversations/Conversations.java                       |  2 
src/main/java/eu/siacs/conversations/ui/XmppActivity.java                     |  3 
3 files changed, 21 insertions(+), 5 deletions(-)

Detailed changes

src/free/java/eu/siacs/conversations/services/EmojiInitializationService.java 🔗

@@ -1,14 +1,31 @@
 package eu.siacs.conversations.services;
 
 import android.content.Context;
+import android.util.Log;
 
+import androidx.annotation.Nullable;
 import androidx.emoji2.bundled.BundledEmojiCompatConfig;
 import androidx.emoji2.text.EmojiCompat;
 
+import eu.siacs.conversations.Config;
+
 public class EmojiInitializationService {
 
     public static void execute(final Context context) {
-        EmojiCompat.init(new BundledEmojiCompatConfig(context).setReplaceAll(true));
-    }
+        EmojiCompat.init(new BundledEmojiCompatConfig(context).setReplaceAll(true))
+                .registerInitCallback(
+                        new EmojiCompat.InitCallback() {
+                            @Override
+                            public void onInitialized() {
+                                Log.d(Config.LOGTAG, "initialized EmojiCompat");
+                                super.onInitialized();
+                            }
 
+                            @Override
+                            public void onFailed(@Nullable Throwable throwable) {
+                                Log.e(Config.LOGTAG, "failed to initialize EmojiCompat", throwable);
+                                super.onFailed(throwable);
+                            }
+                        });
+    }
 }

src/main/java/eu/siacs/conversations/Conversations.java 🔗

@@ -11,6 +11,7 @@ import androidx.appcompat.app.AppCompatDelegate;
 import com.google.android.material.color.DynamicColors;
 import com.google.android.material.color.DynamicColorsOptions;
 
+import eu.siacs.conversations.services.EmojiInitializationService;
 import eu.siacs.conversations.utils.ExceptionHelper;
 
 public class Conversations extends Application {
@@ -26,6 +27,7 @@ public class Conversations extends Application {
     public void onCreate() {
         super.onCreate();
         CONTEXT = this.getApplicationContext();
+        EmojiInitializationService.execute(getApplicationContext());
         ExceptionHelper.init(getApplicationContext());
         applyThemeSettings();
     }

src/main/java/eu/siacs/conversations/ui/XmppActivity.java 🔗

@@ -16,7 +16,6 @@ import android.content.ServiceConnection;
 import android.content.SharedPreferences;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
-import android.content.res.Configuration;
 import android.content.res.Resources;
 import android.graphics.Bitmap;
 import android.graphics.Point;
@@ -68,7 +67,6 @@ import eu.siacs.conversations.entities.Message;
 import eu.siacs.conversations.entities.Presences;
 import eu.siacs.conversations.services.AvatarService;
 import eu.siacs.conversations.services.BarcodeProvider;
-import eu.siacs.conversations.services.EmojiInitializationService;
 import eu.siacs.conversations.services.QuickConversationsService;
 import eu.siacs.conversations.services.XmppConnectionService;
 import eu.siacs.conversations.services.XmppConnectionService.XmppConnectionBinder;
@@ -485,7 +483,6 @@ public abstract class XmppActivity extends ActionBarActivity {
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         metrics = getResources().getDisplayMetrics();
-        EmojiInitializationService.execute(this);
         this.isCameraFeatureAvailable = getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY);
     }