Add 'reply to' text to notifications
This commit is contained in:
parent
7ba55d97d5
commit
987db39d2c
|
@ -19,6 +19,7 @@ import android.content.Context;
|
|||
import android.graphics.Color;
|
||||
import android.graphics.PorterDuff;
|
||||
import android.graphics.Typeface;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.text.InputFilter;
|
||||
import android.text.SpannableString;
|
||||
|
@ -336,6 +337,8 @@ public class NotificationsAdapter extends RecyclerView.Adapter {
|
|||
* @param position The position of the status in the list.
|
||||
*/
|
||||
void onNotificationContentCollapsedChange(boolean isCollapsed, int position);
|
||||
|
||||
void onViewReplyTo(int position);
|
||||
}
|
||||
|
||||
private static class FollowViewHolder extends RecyclerView.ViewHolder {
|
||||
|
@ -411,6 +414,7 @@ public class NotificationsAdapter extends RecyclerView.Adapter {
|
|||
private final TextView statusContent;
|
||||
private final ImageView statusAvatar;
|
||||
private final ImageView notificationAvatar;
|
||||
private final TextView replyInfo;
|
||||
private final TextView contentWarningDescriptionTextView;
|
||||
private final Button contentWarningButton;
|
||||
private final Button contentCollapseButton; // TODO: This code SHOULD be based on StatusBaseViewHolder
|
||||
|
@ -433,6 +437,7 @@ public class NotificationsAdapter extends RecyclerView.Adapter {
|
|||
statusContent = itemView.findViewById(R.id.notification_content);
|
||||
statusAvatar = itemView.findViewById(R.id.notification_status_avatar);
|
||||
notificationAvatar = itemView.findViewById(R.id.notification_notification_avatar);
|
||||
replyInfo = itemView.findViewById(R.id.notification_reply_info);
|
||||
contentWarningDescriptionTextView = itemView.findViewById(R.id.notification_content_warning_description);
|
||||
contentWarningButton = itemView.findViewById(R.id.notification_content_warning_button);
|
||||
contentCollapseButton = itemView.findViewById(R.id.button_toggle_notification_content);
|
||||
|
@ -456,6 +461,7 @@ public class NotificationsAdapter extends RecyclerView.Adapter {
|
|||
statusContent.setVisibility(show ? View.VISIBLE : View.GONE);
|
||||
statusAvatar.setVisibility(show ? View.VISIBLE : View.GONE);
|
||||
notificationAvatar.setVisibility(show ? View.VISIBLE : View.GONE);
|
||||
replyInfo.setVisibility(show ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
|
||||
private void setDisplayName(String name, List<Emoji> emojis) {
|
||||
|
@ -577,6 +583,7 @@ public class NotificationsAdapter extends RecyclerView.Adapter {
|
|||
});
|
||||
|
||||
setupContentAndSpoiler(listener);
|
||||
setupReplyInfo();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -658,5 +665,23 @@ public class NotificationsAdapter extends RecyclerView.Adapter {
|
|||
CustomEmojiHelper.emojify(statusViewData.getSpoilerText(), statusViewData.getStatusEmojis(), contentWarningDescriptionTextView);
|
||||
contentWarningDescriptionTextView.setText(emojifiedContentWarning);
|
||||
}
|
||||
|
||||
private void setupReplyInfo() {
|
||||
if (statusViewData.getInReplyToId() != null) {
|
||||
Context context = replyInfo.getContext();
|
||||
String replyToAccount = statusViewData.getInReplyToAccountAcct();
|
||||
replyInfo.setText(context.getString(R.string.status_replied_to_format, replyToAccount));
|
||||
if (statusViewData.getParentVisible() == false)
|
||||
replyInfo.setPaintFlags(replyInfo.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
|
||||
else
|
||||
replyInfo.setPaintFlags(replyInfo.getPaintFlags() & (~Paint.STRIKE_THRU_TEXT_FLAG));
|
||||
|
||||
replyInfo.setOnClickListener(v -> notificationActionListener.onViewReplyTo(getAdapterPosition()));
|
||||
|
||||
replyInfo.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
replyInfo.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?><!--This applies only to favourite and rebnotificationsEnabledions.-->
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/notification_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -29,8 +30,7 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/notification_top_text"
|
||||
android:layout_toEndOf="@+id/notification_status_avatar"
|
||||
android:paddingBottom="4dp">
|
||||
android:layout_toEndOf="@+id/notification_status_avatar">
|
||||
|
||||
<androidx.emoji.widget.EmojiTextView
|
||||
android:id="@+id/status_display_name"
|
||||
|
@ -72,11 +72,26 @@
|
|||
|
||||
</RelativeLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/notification_reply_info"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/status_name_bar"
|
||||
android:layout_toEndOf="@id/notification_status_avatar"
|
||||
android:drawablePadding="6dp"
|
||||
android:layout_marginTop="2dp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:textColor="?android:textColorTertiary"
|
||||
android:textSize="?attr/status_text_medium"
|
||||
app:drawableStartCompat="@drawable/ic_reply_18dp"
|
||||
tools:text="Reply to a1batross" />
|
||||
|
||||
<com.keylesspalace.tusky.view.CustomEmojiTextView
|
||||
android:id="@+id/notification_content_warning_description"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/status_name_bar"
|
||||
android:layout_below="@id/notification_reply_info"
|
||||
android:layout_toEndOf="@id/notification_status_avatar"
|
||||
android:hyphenationFrequency="full"
|
||||
android:breakStrategy="high_quality"
|
||||
|
@ -108,6 +123,7 @@
|
|||
android:id="@+id/notification_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="4dp"
|
||||
android:layout_below="@id/notification_content_warning_button"
|
||||
android:layout_toEndOf="@+id/notification_status_avatar"
|
||||
android:hyphenationFrequency="full"
|
||||
|
|
Loading…
Reference in New Issue