From f9ecf17504d764847d1846d9bb0ac12d0917a008 Mon Sep 17 00:00:00 2001
From: Mario Danic <mario@lovelyhq.com>
Date: Fri, 30 Aug 2019 13:45:35 +0200
Subject: [PATCH] Fix #601

Signed-off-by: Mario Danic <mario@lovelyhq.com>
---
 app/build.gradle                                           | 2 +-
 .../java/com/nextcloud/talk/activities/MainActivity.java   | 3 ++-
 .../java/com/nextcloud/talk/adapters/items/CallItem.java   | 7 +++++--
 .../nextcloud/talk/adapters/items/ConversationItem.java    | 7 +++++--
 .../java/com/nextcloud/talk/adapters/items/UserItem.java   | 5 ++++-
 .../nextcloud/talk/application/NextcloudTalkApplication.kt | 2 +-
 .../com/nextcloud/talk/controllers/ChatController.java     | 3 ++-
 .../com/nextcloud/talk/controllers/SettingsController.java | 3 ++-
 app/src/main/res/layout/activity_main.xml                  | 2 +-
 app/src/main/res/layout/controller_settings.xml            | 2 +-
 app/src/main/res/layout/rv_item_contact.xml                | 2 +-
 app/src/main/res/layout/rv_item_conversation.xml           | 4 ++--
 .../res/layout/rv_item_conversation_info_participant.xml   | 4 ++--
 .../res/layout/rv_item_conversation_with_last_message.xml  | 4 ++--
 app/src/main/res/layout/view_message_input.xml             | 2 +-
 15 files changed, 32 insertions(+), 20 deletions(-)

diff --git a/app/build.gradle b/app/build.gradle
index 6d708d2e3..f48d8c44a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -212,7 +212,7 @@ dependencies {
     implementation 'me.zhanghai.android.effortlesspermissions:library:1.1.0'
     implementation 'org.apache.commons:commons-lang3:3.9'
     implementation 'com.github.wooplr:Spotlight:1.3'
-    implementation('com.github.mario:chatkit:d63d61db95', {
+    implementation('com.github.mario:chatkit:3c6c60228b', {
         exclude group: 'com.facebook.fresco'
     })
 
diff --git a/app/src/main/java/com/nextcloud/talk/activities/MainActivity.java b/app/src/main/java/com/nextcloud/talk/activities/MainActivity.java
index 099f14344..1e3f831c0 100644
--- a/app/src/main/java/com/nextcloud/talk/activities/MainActivity.java
+++ b/app/src/main/java/com/nextcloud/talk/activities/MainActivity.java
@@ -36,6 +36,7 @@ import com.bluelinelabs.conductor.Router;
 import com.bluelinelabs.conductor.RouterTransaction;
 import com.bluelinelabs.conductor.changehandler.HorizontalChangeHandler;
 import com.bluelinelabs.conductor.changehandler.VerticalChangeHandler;
+import com.google.android.material.appbar.MaterialToolbar;
 import com.nextcloud.talk.R;
 import com.nextcloud.talk.application.NextcloudTalkApplication;
 import com.nextcloud.talk.controllers.CallNotificationController;
@@ -58,7 +59,7 @@ public final class MainActivity extends BaseActivity implements ActionBarProvide
     private static final String TAG = "MainActivity";
 
     @BindView(R.id.toolbar)
-    Toolbar toolbar;
+    MaterialToolbar toolbar;
     @BindView(R.id.controller_container)
     ViewGroup container;
 
diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/CallItem.java b/app/src/main/java/com/nextcloud/talk/adapters/items/CallItem.java
index 58a730f1f..0bee85c0c 100644
--- a/app/src/main/java/com/nextcloud/talk/adapters/items/CallItem.java
+++ b/app/src/main/java/com/nextcloud/talk/adapters/items/CallItem.java
@@ -27,6 +27,9 @@ import android.view.View;
 import android.widget.ImageButton;
 import android.widget.ImageView;
 import android.widget.TextView;
+
+import androidx.emoji.widget.EmojiTextView;
+
 import butterknife.BindView;
 import butterknife.ButterKnife;
 import com.facebook.drawee.backends.pipeline.Fresco;
@@ -168,9 +171,9 @@ public class CallItem extends AbstractFlexibleItem<CallItem.RoomItemViewHolder>
     static class RoomItemViewHolder extends FlexibleViewHolder {
 
         @BindView(R.id.name_text)
-        public TextView roomDisplayName;
+        public EmojiTextView roomDisplayName;
         @BindView(R.id.secondary_text)
-        public TextView roomLastPing;
+        public EmojiTextView roomLastPing;
         @BindView(R.id.avatar_image)
         public SimpleDraweeView avatarImageView;
         @BindView(R.id.more_menu)
diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.java b/app/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.java
index 0fc5cf9d0..0d881a54d 100644
--- a/app/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.java
+++ b/app/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.java
@@ -29,6 +29,9 @@ import android.text.format.DateUtils;
 import android.view.View;
 import android.widget.ImageView;
 import android.widget.TextView;
+
+import androidx.emoji.widget.EmojiTextView;
+
 import butterknife.BindView;
 import butterknife.ButterKnife;
 import com.amulyakhare.textdrawable.TextDrawable;
@@ -279,13 +282,13 @@ public class ConversationItem extends AbstractFlexibleItem<ConversationItem.Conv
         @BindView(R.id.dialogAvatar)
         SimpleDraweeView dialogAvatar;
         @BindView(R.id.dialogName)
-        TextView dialogName;
+        EmojiTextView dialogName;
         @BindView(R.id.dialogDate)
         TextView dialogDate;
         @BindView(R.id.dialogLastMessageUserAvatar)
         SimpleDraweeView dialogLastMessageUserAvatar;
         @BindView(R.id.dialogLastMessage)
-        TextView dialogLastMessage;
+        EmojiTextView dialogLastMessage;
         @BindView(R.id.dialogUnreadBubble)
         TextView dialogUnreadBubble;
         @BindView(R.id.passwordProtectedRoomImageView)
diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/UserItem.java b/app/src/main/java/com/nextcloud/talk/adapters/items/UserItem.java
index 1377113c4..2723e5c5e 100644
--- a/app/src/main/java/com/nextcloud/talk/adapters/items/UserItem.java
+++ b/app/src/main/java/com/nextcloud/talk/adapters/items/UserItem.java
@@ -26,6 +26,9 @@ import android.text.TextUtils;
 import android.view.View;
 import android.widget.ImageView;
 import android.widget.TextView;
+
+import androidx.emoji.widget.EmojiTextView;
+
 import butterknife.BindView;
 import butterknife.ButterKnife;
 import com.facebook.drawee.backends.pipeline.Fresco;
@@ -245,7 +248,7 @@ public class UserItem extends AbstractFlexibleItem<UserItem.UserItemViewHolder>
     static class UserItemViewHolder extends FlexibleViewHolder {
 
         @BindView(R.id.name_text)
-        public TextView contactDisplayName;
+        public EmojiTextView contactDisplayName;
         @BindView(R.id.simple_drawee_view)
         public SimpleDraweeView simpleDraweeView;
         @Nullable
diff --git a/app/src/main/java/com/nextcloud/talk/application/NextcloudTalkApplication.kt b/app/src/main/java/com/nextcloud/talk/application/NextcloudTalkApplication.kt
index a78be6018..188520ba7 100644
--- a/app/src/main/java/com/nextcloud/talk/application/NextcloudTalkApplication.kt
+++ b/app/src/main/java/com/nextcloud/talk/application/NextcloudTalkApplication.kt
@@ -130,7 +130,7 @@ class NextcloudTalkApplication : MultiDexApplication(), LifecycleObserver {
 
         componentApplication.inject(this)
 
-        setAppTheme(appPreferences!!.theme)
+        setAppTheme(appPreferences.theme)
         super.onCreate()
 
         val imagePipelineConfig = ImagePipelineConfig.newBuilder(this)
diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.java b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.java
index 01b38ef25..00c8cfbaa 100644
--- a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.java
+++ b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.java
@@ -49,6 +49,7 @@ import android.widget.RelativeLayout;
 import android.widget.TextView;
 
 import androidx.annotation.NonNull;
+import androidx.emoji.widget.EmojiEditText;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
@@ -161,7 +162,7 @@ public class ChatController extends BaseController implements MessagesListAdapte
     @BindView(R.id.messageInputView)
     MessageInput messageInputView;
     @BindView(R.id.messageInput)
-    EditText messageInput;
+    EmojiEditText messageInput;
     @BindView(R.id.popupBubbleView)
     PopupBubble popupBubble;
     @BindView(R.id.progressBar)
diff --git a/app/src/main/java/com/nextcloud/talk/controllers/SettingsController.java b/app/src/main/java/com/nextcloud/talk/controllers/SettingsController.java
index f55438a2b..ceaf9cb64 100644
--- a/app/src/main/java/com/nextcloud/talk/controllers/SettingsController.java
+++ b/app/src/main/java/com/nextcloud/talk/controllers/SettingsController.java
@@ -40,6 +40,7 @@ import android.widget.TextView;
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.core.view.ViewCompat;
+import androidx.emoji.widget.EmojiTextView;
 import androidx.work.OneTimeWorkRequest;
 import androidx.work.WorkManager;
 import autodagger.AutoInjector;
@@ -103,7 +104,7 @@ public class SettingsController extends BaseController {
     @BindView(R.id.avatar_image)
     SimpleDraweeView avatarImageView;
     @BindView(R.id.display_name_text)
-    TextView displayNameTextView;
+    EmojiTextView displayNameTextView;
     @BindView(R.id.base_url_text)
     TextView baseUrlTextView;
     @BindView(R.id.settings_call_sound)
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index fb873faff..9e7ed5a06 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -35,7 +35,7 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content">
 
-        <androidx.appcompat.widget.Toolbar
+        <com.google.android.material.appbar.MaterialToolbar
             android:id="@+id/toolbar"
             android:layout_width="match_parent"
             android:layout_height="?android:attr/actionBarSize"
diff --git a/app/src/main/res/layout/controller_settings.xml b/app/src/main/res/layout/controller_settings.xml
index 5e7399961..bf0f2d1fe 100644
--- a/app/src/main/res/layout/controller_settings.xml
+++ b/app/src/main/res/layout/controller_settings.xml
@@ -46,7 +46,7 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content">
 
-            <TextView
+            <androidx.emoji.widget.EmojiTextView
                 android:id="@+id/display_name_text"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
diff --git a/app/src/main/res/layout/rv_item_contact.xml b/app/src/main/res/layout/rv_item_contact.xml
index cde98f001..847d72546 100644
--- a/app/src/main/res/layout/rv_item_contact.xml
+++ b/app/src/main/res/layout/rv_item_contact.xml
@@ -38,7 +38,7 @@
         android:tint="@color/colorPrimary"
         android:visibility="gone" />
 
-    <TextView
+    <EmojiTextView
         android:id="@+id/name_text"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
diff --git a/app/src/main/res/layout/rv_item_conversation.xml b/app/src/main/res/layout/rv_item_conversation.xml
index 4cf1ce7fc..3369e5f7f 100644
--- a/app/src/main/res/layout/rv_item_conversation.xml
+++ b/app/src/main/res/layout/rv_item_conversation.xml
@@ -73,7 +73,7 @@
         android:layout_toEndOf="@id/frame_layout"
         android:orientation="vertical">
 
-        <TextView
+        <androidx.emoji.widget.EmojiTextView
             android:id="@+id/name_text"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -82,7 +82,7 @@
             android:textAppearance="?android:attr/textAppearanceListItem"
             tools:text="Call item text" />
 
-        <TextView
+        <androidx.emoji.widget.EmojiTextView
             android:id="@+id/secondary_text"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
diff --git a/app/src/main/res/layout/rv_item_conversation_info_participant.xml b/app/src/main/res/layout/rv_item_conversation_info_participant.xml
index 36a25574b..ed0d32bb0 100644
--- a/app/src/main/res/layout/rv_item_conversation_info_participant.xml
+++ b/app/src/main/res/layout/rv_item_conversation_info_participant.xml
@@ -66,7 +66,7 @@
         android:layout_toEndOf="@id/frame_layout"
         android:orientation="vertical">
 
-        <TextView
+        <androidx.emoji.widget.EmojiTextView
             android:id="@+id/name_text"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
@@ -75,7 +75,7 @@
             android:textAppearance="?android:attr/textAppearanceListItem"
             tools:text="Call item text" />
 
-        <TextView
+        <androidx.emoji.widget.EmojiTextView
             android:id="@+id/secondary_text"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
diff --git a/app/src/main/res/layout/rv_item_conversation_with_last_message.xml b/app/src/main/res/layout/rv_item_conversation_with_last_message.xml
index 453ad3f0f..25986b5f8 100644
--- a/app/src/main/res/layout/rv_item_conversation_with_last_message.xml
+++ b/app/src/main/res/layout/rv_item_conversation_with_last_message.xml
@@ -71,7 +71,7 @@
             android:layout_marginTop="8dp"
             android:layout_toEndOf="@id/dialogAvatarFrameLayout">
 
-            <TextView
+            <androidx.emoji.widget.EmojiTextView
                 android:id="@id/dialogLastMessage"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
@@ -120,7 +120,7 @@
             android:maxLines="1"
             android:textColor="@color/conversation_date" />
 
-        <TextView
+        <androidx.emoji.widget.EmojiTextView
             android:id="@id/dialogName"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
diff --git a/app/src/main/res/layout/view_message_input.xml b/app/src/main/res/layout/view_message_input.xml
index e0e2ee45f..0825be19d 100644
--- a/app/src/main/res/layout/view_message_input.xml
+++ b/app/src/main/res/layout/view_message_input.xml
@@ -23,7 +23,7 @@
     android:layout_height="wrap_content"
     android:orientation="vertical">
 
-    <EditText
+    <androidx.emoji.widget.EmojiEditText
         android:id="@id/messageInput"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"