Add emoji support to toolbar

Signed-off-by: Mario Danic <mario@lovelyhq.com>
This commit is contained in:
Mario Danic 2019-01-13 03:45:14 +01:00
parent 3e0c0c1b27
commit f90da41d73
6 changed files with 76 additions and 6 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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);
}
}

View File

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

View File

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

View File

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