Fix issues with expandable quoted statuses
This commit is contained in:
@@ -631,19 +631,23 @@ public abstract class BaseStatusListFragment<T extends DisplayItemsParent> exten
|
|||||||
list.invalidateItemDecorations();
|
list.invalidateItemDecorations();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onEnableExpandable(TextStatusDisplayItem.Holder holder, boolean expandable) {
|
public void onEnableExpandable(TextStatusDisplayItem.Holder holder, boolean expandable, boolean isForQuote) {
|
||||||
Status s=holder.getItem().status;
|
Status s=holder.getItem().status;
|
||||||
if(s.textExpandable!=expandable && list!=null) {
|
if(s.textExpandable!=expandable && list!=null) {
|
||||||
s.textExpandable=expandable;
|
s.textExpandable=expandable;
|
||||||
HeaderStatusDisplayItem.Holder header=findHolderOfType(holder.getItemID(), HeaderStatusDisplayItem.Holder.class);
|
List<HeaderStatusDisplayItem.Holder> headers=findAllHoldersOfType(holder.getItemID(), HeaderStatusDisplayItem.Holder.class);
|
||||||
|
HeaderStatusDisplayItem.Holder header=headers.size() > 1 && isForQuote ? headers.get(1) : headers.get(0);
|
||||||
if(header!=null) header.bindCollapseButton();
|
if(header!=null) header.bindCollapseButton();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onToggleExpanded(Status status, String itemID) {
|
public void onToggleExpanded(Status status, boolean isForQuote, String itemID) {
|
||||||
status.textExpanded = !status.textExpanded;
|
status.textExpanded = !status.textExpanded;
|
||||||
notifyItemChanged(itemID, TextStatusDisplayItem.class);
|
List<TextStatusDisplayItem.Holder> textItems = findAllHoldersOfType(itemID, TextStatusDisplayItem.Holder.class);
|
||||||
HeaderStatusDisplayItem.Holder header=findHolderOfType(itemID, HeaderStatusDisplayItem.Holder.class);
|
TextStatusDisplayItem.Holder text = textItems.size() > 1 && isForQuote ? textItems.get(1) : textItems.get(0);
|
||||||
|
adapter.notifyItemChanged(text.getAbsoluteAdapterPosition());
|
||||||
|
List<HeaderStatusDisplayItem.Holder> headers=findAllHoldersOfType(itemID, HeaderStatusDisplayItem.Holder.class);
|
||||||
|
HeaderStatusDisplayItem.Holder header=headers.size() > 1 && isForQuote ? headers.get(1) : headers.get(0);
|
||||||
if(header!=null) header.animateExpandToggle();
|
if(header!=null) header.animateExpandToggle();
|
||||||
else notifyItemChanged(itemID, HeaderStatusDisplayItem.class);
|
else notifyItemChanged(itemID, HeaderStatusDisplayItem.class);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -181,6 +181,7 @@ public class ThreadFragment extends StatusListFragment implements ProvidesAssist
|
|||||||
s.spoilerRevealed = oldStatus.spoilerRevealed;
|
s.spoilerRevealed = oldStatus.spoilerRevealed;
|
||||||
s.sensitiveRevealed = oldStatus.sensitiveRevealed;
|
s.sensitiveRevealed = oldStatus.sensitiveRevealed;
|
||||||
s.filterRevealed = oldStatus.filterRevealed;
|
s.filterRevealed = oldStatus.filterRevealed;
|
||||||
|
s.textExpanded = oldStatus.textExpanded;
|
||||||
}
|
}
|
||||||
if (GlobalUserPreferences.autoRevealEqualSpoilers != AutoRevealMode.NEVER &&
|
if (GlobalUserPreferences.autoRevealEqualSpoilers != AutoRevealMode.NEVER &&
|
||||||
s.spoilerText != null &&
|
s.spoilerText != null &&
|
||||||
@@ -257,6 +258,13 @@ public class ThreadFragment extends StatusListFragment implements ProvidesAssist
|
|||||||
updatedStatus.filterRevealed = mainStatus.filterRevealed;
|
updatedStatus.filterRevealed = mainStatus.filterRevealed;
|
||||||
updatedStatus.spoilerRevealed = mainStatus.spoilerRevealed;
|
updatedStatus.spoilerRevealed = mainStatus.spoilerRevealed;
|
||||||
updatedStatus.sensitiveRevealed = mainStatus.sensitiveRevealed;
|
updatedStatus.sensitiveRevealed = mainStatus.sensitiveRevealed;
|
||||||
|
updatedStatus.textExpanded = mainStatus.textExpanded;
|
||||||
|
if(updatedStatus.quote!=null && mainStatus.quote!=null){
|
||||||
|
updatedStatus.quote.filterRevealed = mainStatus.quote.filterRevealed;
|
||||||
|
updatedStatus.quote.spoilerRevealed = mainStatus.quote.spoilerRevealed;
|
||||||
|
updatedStatus.quote.sensitiveRevealed = mainStatus.quote.sensitiveRevealed;
|
||||||
|
updatedStatus.quote.textExpanded = mainStatus.quote.textExpanded;
|
||||||
|
}
|
||||||
|
|
||||||
// returning fired event object to facilitate testing
|
// returning fired event object to facilitate testing
|
||||||
Object event;
|
Object event;
|
||||||
|
|||||||
@@ -173,7 +173,7 @@ public class HeaderStatusDisplayItem extends StatusDisplayItem{
|
|||||||
fragment.removeNotification(item.notification);
|
fragment.removeNotification(item.notification);
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
collapseBtn.setOnClickListener(l -> item.parentFragment.onToggleExpanded(item.status, getItemID()));
|
collapseBtn.setOnClickListener(l -> item.parentFragment.onToggleExpanded(item.status, item.isForQuote, getItemID()));
|
||||||
|
|
||||||
optionsMenu=new PopupMenu(activity, more);
|
optionsMenu=new PopupMenu(activity, more);
|
||||||
optionsMenu.inflate(R.menu.post);
|
optionsMenu.inflate(R.menu.post);
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ public class TextStatusDisplayItem extends StatusDisplayItem{
|
|||||||
float textCollapsedHeight=activity.getResources().getDimension(R.dimen.text_collapsed_height);
|
float textCollapsedHeight=activity.getResources().getDimension(R.dimen.text_collapsed_height);
|
||||||
collapseParams=new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, (int) textCollapsedHeight);
|
collapseParams=new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, (int) textCollapsedHeight);
|
||||||
wrapParams=new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
wrapParams=new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
||||||
readMore.setOnClickListener(v -> item.parentFragment.onToggleExpanded(item.status, getItemID()));
|
readMore.setOnClickListener(v -> item.parentFragment.onToggleExpanded(item.status, item.isForQuote, getItemID()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -152,7 +152,7 @@ public class TextStatusDisplayItem extends StatusDisplayItem{
|
|||||||
if (GlobalUserPreferences.collapseLongPosts && !item.status.textExpandable) {
|
if (GlobalUserPreferences.collapseLongPosts && !item.status.textExpandable) {
|
||||||
boolean tooBig = text.getMeasuredHeight() > textMaxHeight;
|
boolean tooBig = text.getMeasuredHeight() > textMaxHeight;
|
||||||
boolean expandable = tooBig && !item.status.hasSpoiler();
|
boolean expandable = tooBig && !item.status.hasSpoiler();
|
||||||
item.parentFragment.onEnableExpandable(Holder.this, expandable);
|
item.parentFragment.onEnableExpandable(Holder.this, expandable, item.isForQuote);
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean expandButtonShown=item.status.textExpandable && !item.status.textExpanded;
|
boolean expandButtonShown=item.status.textExpandable && !item.status.textExpanded;
|
||||||
|
|||||||
Reference in New Issue
Block a user