diff options
| author | Andrew Dolgov <fox@fakecake.org> | 2025-05-07 11:51:17 +0300 |
|---|---|---|
| committer | Andrew Dolgov <fox@fakecake.org> | 2025-05-07 11:51:17 +0300 |
| commit | e6c3107189a296b817562462221e0165695196f7 (patch) | |
| tree | e2b708be5b32060b590bc99373e856d6731f2c63 /org.fox.ttrss/src/main/java/org | |
| parent | c216a1c314e909896ef467fbf384ba687273f04e (diff) | |
remove flavor image reparenting hacks, simplify headline row layout (somewhat), switch to materialcards
Diffstat (limited to 'org.fox.ttrss/src/main/java/org')
| -rwxr-xr-x | org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java | 62 |
1 files changed, 6 insertions, 56 deletions
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 a843bf39..6cc92d87 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 @@ -44,6 +44,7 @@ import android.view.WindowManager; import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.CheckBox; import android.widget.EditText; +import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.ListView; import android.widget.PopupMenu; @@ -359,7 +360,6 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment { m_layoutManager = new LinearLayoutManager(m_activity.getApplicationContext()); m_list.setLayoutManager(m_layoutManager); m_list.setItemAnimator(new DefaultItemAnimator()); - m_list.addItemDecoration(new DividerItemDecoration(m_list.getContext(), m_layoutManager.getOrientation())); ArticleListAdapter adapter = new ArticleListAdapter(getActivity(), R.layout.headlines_row, m_articles); @@ -1211,7 +1211,6 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment { holder.flavorVideoKindView.setVisibility(View.GONE); holder.flavorImageOverflow.setVisibility(View.GONE); holder.flavorVideoView.setVisibility(View.GONE); - holder.headlineHeader.setBackgroundDrawable(null); Glide.clear(holder.flavorImageView); @@ -1291,24 +1290,15 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment { //Log.d(TAG, "TAG:" + holder.flavorImageOverflow.getTag()); holder.flavorImageView.setVisibility(View.VISIBLE); + holder.flavorImageView.setMaxHeight((int)(m_screenHeight * 0.6f)); - holder.flavorImageView.setMaxHeight((int)(m_screenHeight * 0.8f)); - holder.flavorProgressTarget.setModel(article.flavorImageUri); - + // prevent lower listiew entries from jumping around if this row is modified if (article.flavorViewHeight > 0) { - RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) holder.flavorImageView.getLayoutParams(); + FrameLayout.LayoutParams lp = (FrameLayout.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(); - lp.height = (int)(m_screenHeight * 0.5f); - lp.addRule(RelativeLayout.BELOW, R.id.headline_header); - holder.flavorImageView.setLayoutParams(lp); - */ + holder.flavorProgressTarget.setModel(article.flavorImageUri); try { @@ -1334,16 +1324,9 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment { if (resource.getIntrinsicWidth() > FLAVOR_IMG_MIN_SIZE && resource.getIntrinsicHeight() > FLAVOR_IMG_MIN_SIZE) { - //holder.flavorImageView.setVisibility(View.VISIBLE); + holder.flavorImageView.setVisibility(View.VISIBLE); holder.flavorImageOverflow.setVisibility(View.VISIBLE); - boolean forceDown = !m_activity.isSmallScreen() || article.flavorImage != null && "video".equals(article.flavorImage.tagName().toLowerCase()); - - RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) holder.flavorImageView.getLayoutParams(); - lp.height = RelativeLayout.LayoutParams.WRAP_CONTENT; - holder.flavorImageView.setLayoutParams(lp); - - maybeRepositionFlavorImage(holder.flavorImageView, resource, holder, forceDown); adjustVideoKindView(holder, article); return false; @@ -1684,9 +1667,6 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment { } else if (article.flavor_kind == Article.FLAVOR_KIND_VIDEO || "video".equals(article.flavorImage.tagName().toLowerCase())) { holder.flavorVideoKindView.setImageResource(R.drawable.baseline_play_circle_24); holder.flavorVideoKindView.setVisibility(View.VISIBLE); - } else if (article.flavor_kind == Article.FLAVOR_KIND_ALBUM ||article.mediaList.size() > 1) { - holder.flavorVideoKindView.setImageResource(R.drawable.baseline_photo_album_24); - holder.flavorVideoKindView.setVisibility(View.VISIBLE); } else { holder.flavorVideoKindView.setVisibility(View.INVISIBLE); } @@ -1707,36 +1687,6 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment { return px; } - private void maybeRepositionFlavorImage(View view, GlideDrawable resource, ArticleViewHolder holder, boolean forceDown) { - RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) view.getLayoutParams(); - - int w = resource.getIntrinsicWidth(); - int h = resource.getIntrinsicHeight(); - float r = h != 0 ? (float)w/h : 0; - - //Log.d(TAG, "XYR: " + pxToDp(w) + " " + pxToDp(h) + " " + r); - - if (forceDown || h < m_minimumHeightToEmbed || r >= 1) { - - lp.addRule(RelativeLayout.BELOW, R.id.headline_header); - - holder.headlineHeader.setBackgroundDrawable(null); - holder.flavorImageEmbedded = false; - - } else { - lp.addRule(RelativeLayout.BELOW, 0); - - TypedValue tv = new TypedValue(); - if (m_activity.getTheme().resolveAttribute(R.attr.headlineHeaderBackground, tv, true)) { - holder.headlineHeader.setBackgroundColor(tv.data); - } - - holder.flavorImageEmbedded = true; - } - - view.setLayoutParams(lp); - } - private void adjustTitleTextView(int score, TextView tv, int position) { int viewType = getItemViewType(position); if (origTitleColors[viewType] == null) |