Эх сурвалжийг харах

Add emoji support to toolbar

Signed-off-by: Mario Danic <mario@lovelyhq.com>
Mario Danic 6 жил өмнө
parent
commit
f90da41d73

+ 0 - 1
app/src/main/java/com/nextcloud/talk/adapters/messages/MagicPreviewMessageViewHolder.java

@@ -24,7 +24,6 @@ import android.annotation.SuppressLint;
 import android.content.Intent;
 import android.net.Uri;
 import android.view.View;
-import android.widget.TextView;
 
 import com.nextcloud.talk.R;
 import com.nextcloud.talk.application.NextcloudTalkApplication;

+ 2 - 2
app/src/main/java/com/nextcloud/talk/controllers/ConversationInfoController.java

@@ -28,7 +28,6 @@ import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ProgressBar;
-import android.widget.TextView;
 
 import com.facebook.drawee.backends.pipeline.Fresco;
 import com.facebook.drawee.interfaces.DraweeController;
@@ -48,6 +47,7 @@ import com.nextcloud.talk.utils.ApiUtils;
 import com.nextcloud.talk.utils.DisplayUtils;
 import com.nextcloud.talk.utils.bundle.BundleKeys;
 import com.nextcloud.talk.utils.preferencestorage.DatabaseStorageModule;
+import com.vanniktech.emoji.EmojiTextView;
 import com.yarolegovich.mp.MaterialChoicePreference;
 import com.yarolegovich.mp.MaterialPreferenceCategory;
 import com.yarolegovich.mp.MaterialPreferenceScreen;
@@ -96,7 +96,7 @@ public class ConversationInfoController extends BaseController {
     SimpleDraweeView conversationAvatarImageView;
 
     @BindView(R.id.display_name_text)
-    TextView conversationDisplayName;
+    EmojiTextView conversationDisplayName;
 
     @BindView(R.id.participants_list_category)
     MaterialPreferenceCategory participantsListCategory;

+ 71 - 0
app/src/main/java/com/nextcloud/talk/utils/EmojiToolbar.java

@@ -0,0 +1,71 @@
+/*
+ * Nextcloud Talk application
+ *
+ * @author Mario Danic
+ * Copyright (C) 2017-2018 Mario Danic <mario@lovelyhq.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package com.nextcloud.talk.utils;
+
+import android.content.Context;
+import android.text.TextUtils;
+import android.util.AttributeSet;
+
+import com.nextcloud.talk.R;
+import com.vanniktech.emoji.EmojiTextView;
+
+import androidx.annotation.Nullable;
+import androidx.appcompat.widget.Toolbar;
+
+public class EmojiToolbar extends Toolbar {
+    private EmojiTextView emojiTitleTextView;
+
+    public EmojiToolbar(Context context) {
+        super(context);
+        initEmojiTextView(context, null);
+
+    }
+
+    public EmojiToolbar(Context context, @Nullable AttributeSet attrs) {
+        super(context, attrs);
+        initEmojiTextView(context, attrs);
+    }
+
+    public EmojiToolbar(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+        initEmojiTextView(context, attrs);
+    }
+
+    private void initEmojiTextView(Context context, @Nullable AttributeSet attrs) {
+        if (emojiTitleTextView == null) {
+            emojiTitleTextView = new EmojiTextView(context, attrs);
+            emojiTitleTextView.setSingleLine(true);
+            emojiTitleTextView.setEllipsize(TextUtils.TruncateAt.END);
+            emojiTitleTextView.setTextAppearance(getContext(), R.style.TextAppearance_AppCompat_Widget_ActionBar_Title);
+            addView(emojiTitleTextView);
+        }
+    }
+
+    @Override
+    public void setTitle(CharSequence title) {
+        emojiTitleTextView.setText(title);
+    }
+
+    @Override
+    public void setTitle(int titleRes) {
+        emojiTitleTextView.setText(titleRes);
+    }
+}

+ 1 - 1
app/src/main/res/layout/activity_main.xml

@@ -10,7 +10,7 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content">
 
-        <androidx.appcompat.widget.Toolbar
+        <com.nextcloud.talk.utils.EmojiToolbar
             android:id="@+id/toolbar"
             android:layout_width="match_parent"
             android:layout_height="?android:attr/actionBarSize"

+ 1 - 1
app/src/main/res/layout/controller_conversation_info.xml

@@ -65,7 +65,7 @@
                         apc:roundAsCircle="true"
                         android:layout_centerHorizontal="true" />
 
-                    <TextView
+                    <com.vanniktech.emoji.EmojiTextView
                         android:id="@+id/display_name_text"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"

+ 1 - 1
app/src/main/res/layout/rv_item_conversation_info_participant.xml

@@ -70,7 +70,7 @@
         android:layout_toEndOf="@id/frame_layout"
         android:orientation="vertical">
 
-        <TextView
+        <com.vanniktech.emoji.EmojiTextView
             android:id="@+id/name_text"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"