emoji_reactions: show keyboard as dialog

This commit is contained in:
Alibek Omarov 2020-04-10 02:18:37 +03:00
parent 1a8fd62e46
commit 825eab8cda
3 changed files with 43 additions and 5 deletions

View File

@ -50,6 +50,7 @@ import com.keylesspalace.tusky.util.ThemeUtils;
import com.keylesspalace.tusky.util.TimestampUtils;
import com.keylesspalace.tusky.util.ViewExtensionsKt;
import com.keylesspalace.tusky.view.MediaPreviewImageView;
import com.keylesspalace.tusky.view.EmojiKeyboard;
import com.keylesspalace.tusky.viewdata.PollOptionViewData;
import com.keylesspalace.tusky.viewdata.PollViewData;
import com.keylesspalace.tusky.viewdata.PollViewDataKt;
@ -79,6 +80,7 @@ public abstract class StatusBaseViewHolder extends RecyclerView.ViewHolder {
private SparkButton reblogButton;
private SparkButton favouriteButton;
private SparkButton bookmarkButton;
private ImageButton reactButton;
private ImageButton moreButton;
protected MediaPreviewImageView[] mediaPreviews;
private ImageView[] mediaOverlays;
@ -131,6 +133,7 @@ public abstract class StatusBaseViewHolder extends RecyclerView.ViewHolder {
favouriteButton = itemView.findViewById(R.id.status_favourite);
bookmarkButton = itemView.findViewById(R.id.status_bookmark);
moreButton = itemView.findViewById(R.id.status_more);
reactButton = itemView.findViewById(R.id.status_emoji_react);
emojiReactionsView = itemView.findViewById(R.id.status_emoji_reactions);
/* Disabled, because it doesn't handle parent resizes. It must be fixed and can be enabled again */
@ -710,8 +713,16 @@ public abstract class StatusBaseViewHolder extends RecyclerView.ViewHolder {
}
private void setEmojiReactions(@Nullable List<EmojiReaction> reactions, final StatusActionListener listener, final String statusId) {
if(reactButton != null) {
reactButton.setOnClickListener(v -> {
EmojiKeyboard.show(reactButton.getContext(), statusId, EmojiKeyboard.UNICODE_MODE, (id, emoji) -> {
listener.onEmojiReact(true, emoji, id);
});
});
}
if(emojiReactionsView != null ) {
if( reactions != null && reactions.size() > 0) {
if(reactions != null && reactions.size() > 0) {
emojiReactionsView.setVisibility(View.VISIBLE);
FlexboxLayoutManager lm = new FlexboxLayoutManager(emojiReactionsView.getContext());
emojiReactionsView.setLayoutManager(lm);

View File

@ -369,7 +369,7 @@
android:contentDescription="@string/action_favourite"
android:importantForAccessibility="no"
android:padding="4dp"
app:layout_constraintEnd_toStartOf="@id/status_bookmark"
app:layout_constraintEnd_toStartOf="@id/status_emoji_react"
app:layout_constraintStart_toEndOf="@id/status_inset"
app:layout_constraintTop_toTopOf="@id/status_inset"
sparkbutton:activeImage="@drawable/ic_favourite_active_24dp"
@ -378,6 +378,19 @@
sparkbutton:primaryColor="@color/tusky_orange"
sparkbutton:secondaryColor="@color/tusky_orange_light" />
<ImageButton
android:id="@+id/status_emoji_react"
style="@style/TuskyImageButton"
android:layout_width="30dp"
android:layout_height="30dp"
android:contentDescription="@string/action_emoji_react"
android:importantForAccessibility="no"
android:padding="4dp"
app:layout_constraintEnd_toStartOf="@id/status_bookmark"
app:layout_constraintStart_toEndOf="@id/status_favourite"
app:layout_constraintTop_toTopOf="@id/status_reply"
app:srcCompat="@drawable/ic_emoji_24dp" />
<at.connyduck.sparkbutton.SparkButton
android:id="@+id/status_bookmark"
android:layout_width="30dp"
@ -387,7 +400,7 @@
android:importantForAccessibility="no"
android:padding="4dp"
app:layout_constraintEnd_toStartOf="@id/status_more"
app:layout_constraintStart_toEndOf="@id/status_favourite"
app:layout_constraintStart_toEndOf="@id/status_emoji_react"
app:layout_constraintTop_toTopOf="@id/status_reply"
sparkbutton:activeImage="@drawable/ic_bookmark_active_24dp"
sparkbutton:iconSize="28dp"

View File

@ -378,7 +378,7 @@
android:contentDescription="@string/action_favourite"
android:importantForAccessibility="no"
android:padding="4dp"
app:layout_constraintEnd_toStartOf="@id/status_bookmark"
app:layout_constraintEnd_toStartOf="@id/status_emoji_react"
app:layout_constraintStart_toEndOf="@id/status_inset"
app:layout_constraintTop_toTopOf="@id/status_inset"
sparkbutton:activeImage="@drawable/ic_favourite_active_24dp"
@ -386,6 +386,20 @@
sparkbutton:inactiveImage="@drawable/ic_favourite_24dp"
sparkbutton:primaryColor="@color/tusky_orange"
sparkbutton:secondaryColor="@color/tusky_orange_light" />
<ImageButton
android:id="@+id/status_emoji_react"
style="@style/TuskyImageButton"
android:layout_width="40dp"
android:layout_height="40dp"
android:contentDescription="@string/action_emoji_react"
android:importantForAccessibility="no"
android:padding="4dp"
app:layout_constraintEnd_toStartOf="@id/status_bookmark"
app:layout_constraintStart_toEndOf="@id/status_favourite"
app:layout_constraintTop_toTopOf="@id/status_inset"
app:srcCompat="@drawable/ic_emoji_24dp" />
<at.connyduck.sparkbutton.SparkButton
android:id="@+id/status_bookmark"
@ -396,7 +410,7 @@
android:importantForAccessibility="no"
android:padding="4dp"
app:layout_constraintEnd_toStartOf="@id/status_more"
app:layout_constraintStart_toEndOf="@id/status_favourite"
app:layout_constraintStart_toEndOf="@id/status_emoji_react"
app:layout_constraintTop_toTopOf="@id/status_reply"
sparkbutton:activeImage="@drawable/ic_bookmark_active_24dp"
sparkbutton:iconSize="28dp"