diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java index a658ac89..cf446a11 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java @@ -46,6 +46,7 @@ import android.view.TextureView; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; +import android.view.ViewTreeObserver; import android.view.WindowManager; import android.view.animation.Animation; import android.view.animation.AnimationUtils; @@ -776,6 +777,19 @@ public class HeadlinesFragment extends Fragment { view = v; + view.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { + @Override + public boolean onPreDraw() { + View flavorImage = view.findViewById(R.id.flavor_image); + + if (flavorImage != null) { + article.flavorViewHeight = flavorImage.getMeasuredHeight(); + } + + return true; + } + }); + titleView = (TextView)v.findViewById(R.id.title); feedTitleView = (TextView)v.findViewById(R.id.feed_title); @@ -1164,7 +1178,7 @@ public class HeadlinesFragment extends Fragment { }); } - //Log.d(TAG, "IMG: " + article.flavorImageUri + " STREAM: " + article.flavorStreamUri); + //Log.d(TAG, "IMG: " + article.flavorImageUri + " STREAM: " + article.flavorStreamUri + " H:" + article.flavorViewHeight); //Log.d(TAG, "TAG:" + holder.flavorImageOverflow.getTag()); holder.flavorImageView.setVisibility(View.VISIBLE); @@ -1176,6 +1190,13 @@ public class HeadlinesFragment extends Fragment { holder.flavorImageView.setMaxHeight((int)(m_screenHeight * 0.8f)); holder.flavorProgressTarget.setModel(article.flavorImageUri); + if (article.flavorViewHeight > 0) { + RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) holder.flavorImageView.getLayoutParams(); + lp.height = article.flavorViewHeight; + holder.flavorImageView.setLayoutParams(lp); + } + + /* TODO: maybe an option? force height for all images to reduce list jumping around RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) holder.flavorImageView.getLayoutParams(); diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/types/Article.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/types/Article.java index f9919f15..8cd8a366 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/types/Article.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/types/Article.java @@ -45,6 +45,7 @@ public class Article implements Parcelable { transient public String flavorStreamUri; transient public String youtubeVid; transient public List mediaList = new ArrayList<>(); + transient public int flavorViewHeight; public Article(Parcel in) { readFromParcel(in);