From ace007211898a847ef09a8e02aabf9cb4e46df9f Mon Sep 17 00:00:00 2001 From: Grishka Date: Wed, 18 Sep 2024 03:57:11 +0300 Subject: [PATCH] Post redesign part 2 (AND-18) --- .../fragments/BaseStatusListFragment.java | 72 ++++++++++++++----- .../org/joinmastodon/android/model/Poll.java | 2 + .../PollFooterStatusDisplayItem.java | 26 +++++-- .../PollOptionStatusDisplayItem.java | 68 ++++++++++++++---- .../ui/displayitems/StatusDisplayItem.java | 2 +- .../main/res/color/poll_option_checkbox.xml | 5 ++ .../res/color/poll_option_progress_inset.xml | 5 -- .../main/res/color/poll_option_text_inset.xml | 5 -- .../res/drawable/bg_poll_option_clickable.xml | 16 ++++- .../res/drawable/bg_poll_option_voted.xml | 26 ++++--- .../res/layout/display_item_poll_footer.xml | 37 ++++++---- .../res/layout/display_item_poll_option.xml | 65 ++++++++--------- mastodon/src/main/res/values/strings.xml | 2 + 13 files changed, 222 insertions(+), 109 deletions(-) create mode 100644 mastodon/src/main/res/color/poll_option_checkbox.xml delete mode 100644 mastodon/src/main/res/color/poll_option_progress_inset.xml delete mode 100644 mastodon/src/main/res/color/poll_option_text_inset.xml diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java index 1eb50bde..6f70f68b 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java @@ -30,8 +30,6 @@ import org.joinmastodon.android.model.Translation; import org.joinmastodon.android.ui.BetterItemAnimator; import org.joinmastodon.android.ui.M3AlertDialogBuilder; import org.joinmastodon.android.ui.PhotoLayoutHelper; -import org.joinmastodon.android.ui.sheets.NonMutualPreReplySheet; -import org.joinmastodon.android.ui.sheets.OldPostPreReplySheet; import org.joinmastodon.android.ui.displayitems.AccountStatusDisplayItem; import org.joinmastodon.android.ui.displayitems.GapStatusDisplayItem; import org.joinmastodon.android.ui.displayitems.HashtagStatusDisplayItem; @@ -43,6 +41,8 @@ import org.joinmastodon.android.ui.displayitems.StatusDisplayItem; import org.joinmastodon.android.ui.displayitems.TextStatusDisplayItem; import org.joinmastodon.android.ui.photoviewer.PhotoViewer; import org.joinmastodon.android.ui.photoviewer.PhotoViewerHost; +import org.joinmastodon.android.ui.sheets.NonMutualPreReplySheet; +import org.joinmastodon.android.ui.sheets.OldPostPreReplySheet; import org.joinmastodon.android.ui.utils.MediaAttachmentViewController; import org.joinmastodon.android.ui.utils.UiUtils; import org.joinmastodon.android.ui.views.MediaGridLayout; @@ -51,7 +51,6 @@ import org.joinmastodon.android.utils.TypedObjectPool; import java.time.Instant; import java.time.temporal.ChronoUnit; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -362,7 +361,8 @@ public abstract class BaseStatusListFragment exten public abstract void onItemClick(String id); protected void updatePoll(String itemID, Status status, Poll poll){ - status.poll=poll; + if(status.poll!=poll) + status.poll=poll; int firstOptionIndex=-1, footerIndex=-1; int i=0; for(StatusDisplayItem item:displayItems){ @@ -393,28 +393,68 @@ public abstract class BaseStatusListFragment exten public void onPollOptionClick(PollOptionStatusDisplayItem.Holder holder){ Poll poll=holder.getItem().poll; Poll.Option option=holder.getItem().option; + if(poll.selectedOptions==null) + poll.selectedOptions=new ArrayList<>(); if(poll.multiple){ - if(poll.selectedOptions==null) - poll.selectedOptions=new ArrayList<>(); if(poll.selectedOptions.contains(option)){ poll.selectedOptions.remove(option); - holder.itemView.setSelected(false); }else{ poll.selectedOptions.add(option); - holder.itemView.setSelected(true); } - for(int i=0;i emojis; public transient ArrayList