use pre draw listener instead of post
hopefully fixes sk22#422
This commit is contained in:
@@ -6,6 +6,7 @@ import android.graphics.drawable.Drawable;
|
|||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.view.ViewTreeObserver;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.ScrollView;
|
import android.widget.ScrollView;
|
||||||
@@ -227,13 +228,20 @@ public class TextStatusDisplayItem extends StatusDisplayItem{
|
|||||||
readMore.setVisibility(View.GONE);
|
readMore.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GlobalUserPreferences.collapseLongPosts) text.post(() -> {
|
if (GlobalUserPreferences.collapseLongPosts) {
|
||||||
boolean tooBig = text.getMeasuredHeight() > textMaxHeight;
|
text.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
|
||||||
boolean inTimeline = !item.textSelectable;
|
@Override
|
||||||
boolean hasSpoiler = !TextUtils.isEmpty(item.status.spoilerText);
|
public boolean onPreDraw() {
|
||||||
boolean expandable = inTimeline && tooBig && !hasSpoiler;
|
text.getViewTreeObserver().removeOnPreDrawListener(this);
|
||||||
item.parentFragment.onEnableExpandable(this, expandable);
|
boolean tooBig = text.getMeasuredHeight() > textMaxHeight;
|
||||||
});
|
boolean inTimeline = !item.textSelectable;
|
||||||
|
boolean hasSpoiler = !TextUtils.isEmpty(item.status.spoilerText);
|
||||||
|
boolean expandable = inTimeline && tooBig && !hasSpoiler;
|
||||||
|
item.parentFragment.onEnableExpandable(Holder.this, expandable);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
readMore.setVisibility(item.status.textExpandable && !item.status.textExpanded ? View.VISIBLE : View.GONE);
|
readMore.setVisibility(item.status.textExpandable && !item.status.textExpanded ? View.VISIBLE : View.GONE);
|
||||||
textScrollView.setLayoutParams(item.status.textExpandable && !item.status.textExpanded ? collapseParams : wrapParams);
|
textScrollView.setLayoutParams(item.status.textExpandable && !item.status.textExpanded ? collapseParams : wrapParams);
|
||||||
|
|||||||
Reference in New Issue
Block a user