From dae2632c18d9e1ab4ec2bcbcb6c45f89a3ed6471 Mon Sep 17 00:00:00 2001 From: LucasGGamerM Date: Tue, 31 Jan 2023 20:30:05 -0300 Subject: [PATCH] IT WORKS, now i need to polish it :) --- .../android/fragments/BaseStatusListFragment.java | 9 +++++++-- .../ui/displayitems/AudioStatusDisplayItem.java | 8 -------- .../ui/displayitems/FooterStatusDisplayItem.java | 8 -------- .../ui/displayitems/HeaderStatusDisplayItem.java | 8 -------- .../ui/displayitems/ImageStatusDisplayItem.java | 8 -------- .../ui/displayitems/LinkCardStatusDisplayItem.java | 8 -------- .../android/ui/displayitems/StatusDisplayItem.java | 6 +++++- .../ui/displayitems/TextStatusDisplayItem.java | 8 -------- .../WarningFilteredStatusDisplayItem.java | 11 ++++++++++- 9 files changed, 22 insertions(+), 52 deletions(-) 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 6e4f53a6a..00c2fb99f 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java @@ -521,10 +521,10 @@ public abstract class BaseStatusListFragment exten public void onRevealFilteredClick(WarningFilteredStatusDisplayItem.Holder holder){ Status status=holder.getItem().status; - revealFiltered(status, holder.getItemID()); +// revealFiltered(status, holder.getItemID()); } - protected void revealFiltered(Status status, String itemID){ + protected void revealFiltered(Status status, ArrayList showedItems){ status.filterRevealed=true; } @@ -565,6 +565,11 @@ public abstract class BaseStatusListFragment exten public void onGapClick(GapStatusDisplayItem.Holder item){} public void onWarningClick(WarningFilteredStatusDisplayItem.Holder warningItem){ + int i = warningItem.getAbsoluteAdapterPosition(); + for(StatusDisplayItem item:warningItem.filteredItems){ + i++; + displayItems.add(i, item); + } adapter.notifyItemChanged(warningItem.getAbsoluteAdapterPosition()); } diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/AudioStatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/AudioStatusDisplayItem.java index d1bfc0047..5ef26577d 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/AudioStatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/AudioStatusDisplayItem.java @@ -106,14 +106,6 @@ public class AudioStatusDisplayItem extends StatusDisplayItem{ seekBar.setEnabled(false); } - if(!item.status.filterRevealed){ - this.itemView.setVisibility(View.GONE); - ViewGroup.LayoutParams params = this.itemView.getLayoutParams(); - params.height = 0; - params.width = 0; - this.itemView.setLayoutParams(params); -// item.parentFragment.notifyItemsChanged(this.getAbsoluteAdapterPosition()); - } } private void onPlayPauseClick(View v){ diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java index c42ef35c1..6a694b7f7 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java @@ -154,14 +154,6 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{ boost.setEnabled(item.status.visibility==StatusPrivacy.PUBLIC || item.status.visibility==StatusPrivacy.UNLISTED || item.status.visibility==StatusPrivacy.LOCAL || (item.status.visibility==StatusPrivacy.PRIVATE && item.status.account.id.equals(AccountSessionManager.getInstance().getAccount(item.accountID).self.id))); - if(!item.status.filterRevealed){ - this.itemView.setVisibility(View.GONE); - ViewGroup.LayoutParams params = this.itemView.getLayoutParams(); - params.height = 0; - params.width = 0; - this.itemView.setLayoutParams(params); -// item.parentFragment.notifyItemsChanged(this.getAbsoluteAdapterPosition()); - } } private void bindButton(TextView btn, long count){ diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/HeaderStatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/HeaderStatusDisplayItem.java index 6c68b9b8f..239641419 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/HeaderStatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/HeaderStatusDisplayItem.java @@ -400,14 +400,6 @@ public class HeaderStatusDisplayItem extends StatusDisplayItem{ more.setContentDescription(desc); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) more.setTooltipText(desc); - if(!item.status.filterRevealed){ - this.itemView.setVisibility(View.GONE); - ViewGroup.LayoutParams params = this.itemView.getLayoutParams(); - params.height = 0; - params.width = 0; - this.itemView.setLayoutParams(params); -// item.parentFragment.notifyItemsChanged(this.getAbsoluteAdapterPosition()); - } } @Override diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/ImageStatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/ImageStatusDisplayItem.java index 0b893b5a6..fa1061b2d 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/ImageStatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/ImageStatusDisplayItem.java @@ -74,14 +74,6 @@ public abstract class ImageStatusDisplayItem extends StatusDisplayItem{ photo.setContentDescription(TextUtils.isEmpty(item.attachment.description) ? item.parentFragment.getString(R.string.media_no_description) : item.attachment.description); didClear=false; - if(!item.status.filterRevealed){ - this.itemView.setVisibility(View.GONE); - ViewGroup.LayoutParams params = this.itemView.getLayoutParams(); - params.height = 0; - params.width = 0; - this.itemView.setLayoutParams(params); -// item.parentFragment.notifyItemsChanged(this.getAbsoluteAdapterPosition()); - } } @Override diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/LinkCardStatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/LinkCardStatusDisplayItem.java index b38df7b07..eb47c2790 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/LinkCardStatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/LinkCardStatusDisplayItem.java @@ -85,14 +85,6 @@ public class LinkCardStatusDisplayItem extends StatusDisplayItem{ didClear=false; } - if(!item.status.filterRevealed){ - this.itemView.setVisibility(View.GONE); - ViewGroup.LayoutParams params = this.itemView.getLayoutParams(); - params.height = 0; - params.width = 0; - this.itemView.setLayoutParams(params); -// item.parentFragment.notifyItemsChanged(this.getAbsoluteAdapterPosition()); - } } @Override diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java index c7e9fa394..597c201d6 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java @@ -93,6 +93,9 @@ public abstract class StatusDisplayItem{ public static ArrayList buildItems(BaseStatusListFragment fragment, Status status, String accountID, DisplayItemsParent parentObject, Map knownAccounts, boolean inset, boolean addFooter, Notification notification, boolean disableTranslate){ String parentID=parentObject.getID(); ArrayList items=new ArrayList<>(); + + ArrayList filtered=new ArrayList<>(); + Status statusForContent=status.getContentStatus(); Bundle args=new Bundle(); args.putString("account", accountID); @@ -184,7 +187,8 @@ public abstract class StatusDisplayItem{ } if(!statusForContent.filterRevealed){ - items.add(new WarningFilteredStatusDisplayItem(parentID, fragment, statusForContent)); + filtered.add(new WarningFilteredStatusDisplayItem(parentID, fragment, statusForContent, items)); + return filtered; } return items; diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/TextStatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/TextStatusDisplayItem.java index b4e52899a..a3d35f2ba 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/TextStatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/TextStatusDisplayItem.java @@ -190,14 +190,6 @@ public class TextStatusDisplayItem extends StatusDisplayItem{ } }); - if(!item.status.filterRevealed){ - this.itemView.setVisibility(View.GONE); - ViewGroup.LayoutParams params = this.itemView.getLayoutParams(); - params.height = 0; - params.width = 0; - this.itemView.setLayoutParams(params); -// item.parentFragment.notifyItemsChanged(this.getAbsoluteAdapterPosition()); - } } @Override diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/WarningFilteredStatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/WarningFilteredStatusDisplayItem.java index 52f6459b1..d91ae13ee 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/WarningFilteredStatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/WarningFilteredStatusDisplayItem.java @@ -13,14 +13,18 @@ import org.joinmastodon.android.fragments.BaseStatusListFragment; import org.joinmastodon.android.model.Status; import org.joinmastodon.android.ui.drawables.SawtoothTearDrawable; +import java.util.ArrayList; + // Mind the gap! public class WarningFilteredStatusDisplayItem extends StatusDisplayItem{ public boolean loading; public final Status status; + public ArrayList filteredItems; - public WarningFilteredStatusDisplayItem(String parentID, BaseStatusListFragment parentFragment, Status status){ + public WarningFilteredStatusDisplayItem(String parentID, BaseStatusListFragment parentFragment, Status status, ArrayList items){ super(parentID, parentFragment); this.status=status; + this.filteredItems = items; } @Override @@ -32,6 +36,7 @@ public class WarningFilteredStatusDisplayItem extends StatusDisplayItem{ public final View warningWrap; public final ProgressBar progress; public final TextView text; + public ArrayList filteredItems; public Holder(Context context, ViewGroup parent){ super(context, R.layout.display_item_warning, parent); @@ -43,7 +48,11 @@ public class WarningFilteredStatusDisplayItem extends StatusDisplayItem{ @Override public void onBind(WarningFilteredStatusDisplayItem item){ + filteredItems = item.filteredItems; + } + public void hide(WarningFilteredStatusDisplayItem item){ + filteredItems = item.filteredItems; } @Override