diff options
Diffstat (limited to 'org.fox.ttrss')
6 files changed, 105 insertions, 4 deletions
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java index 8794e653..474cbee2 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java @@ -135,6 +135,7 @@ public class ArticleFragment extends androidx.fragment.app.Fragment { String commentsTitle = getResources().getQuantityString(R.plurals.article_comments, m_article.comments_count, m_article.comments_count); comments.setText(commentsTitle); + //comments.setPaintFlags(title.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); comments.setOnClickListener(v -> { try { @@ -153,6 +154,17 @@ public class ArticleFragment extends androidx.fragment.app.Fragment { } } + TextView linkHost = view.findViewById(R.id.link_host); + + if (linkHost != null) { + if (m_article.isHostDistinct()) { + linkHost.setText(m_article.getLinkHost()); + linkHost.setVisibility(View.VISIBLE); + } else { + linkHost.setVisibility(View.GONE); + } + } + TextView note = view.findViewById(R.id.note); View noteContainer = view.findViewById(R.id.note_container); 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 fbcf0b4c..8d15f5ec 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 @@ -489,9 +489,18 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment { Snackbar.make(getView(), R.string.headlines_row_top_changed, Snackbar.LENGTH_LONG) .setAction(R.string.reload, v -> refresh(false)).show(); - if (model.getLastError() == ApiCommon.ApiError.LOGIN_FAILED) { - m_activity.login(); - } else if (model.getLastError() != null && model.getLastError() != ApiCommon.ApiError.SUCCESS) { + if (model.getLastError() != null && model.getLastError() != ApiCommon.ApiError.SUCCESS) { + + if (m_swipeLayout != null) + m_swipeLayout.setRefreshing(false); + + m_isLazyLoading = false; + + if (model.getLastError() == ApiCommon.ApiError.LOGIN_FAILED) { + m_activity.login(); + return; + } + if (model.getLastErrorMessage() != null) { m_activity.toast(m_activity.getString(model.getErrorMessage()) + "\n" + model.getLastErrorMessage()); } else { @@ -582,6 +591,7 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment { public MaterialButton attachmentsView; public ProgressTarget<String, GlideDrawable> flavorProgressTarget; int articleId; + public TextView linkHost; public ArticleViewHolder(View v) { super(v); @@ -619,6 +629,7 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment { flavorImageOverflow = v.findViewById(R.id.gallery_overflow); flavorVideoView = v.findViewById(R.id.flavor_video); attachmentsView = v.findViewById(R.id.attachments); + linkHost = v.findViewById(R.id.link_host); if (flavorImageView != null && flavorImageLoadingBar != null) { flavorProgressTarget = new FlavorProgressTarget<>(new GlideDrawableImageViewTarget(flavorImageView), flavorImageLoadingBar); @@ -818,11 +829,19 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment { if (article.feed_title != null && m_feed != null && (m_feed.is_cat || m_feed.id < 0)) { holder.feedTitleView.setTextSize(TypedValue.COMPLEX_UNIT_SP, headlineSmallFontSize); holder.feedTitleView.setText(article.feed_title); - } else { holder.feedTitleView.setVisibility(View.GONE); } + } + if (holder.linkHost != null) { + if (article.isHostDistinct()) { + holder.linkHost.setTextSize(TypedValue.COMPLEX_UNIT_SP, headlineSmallFontSize); + holder.linkHost.setText(article.getLinkHost()); + holder.linkHost.setVisibility(View.VISIBLE); + } else { + holder.linkHost.setVisibility(View.GONE); + } } TypedValue tvTertiary = new TypedValue(); 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 f0795dd8..e369ba0c 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 @@ -6,7 +6,10 @@ import android.os.Parcelable; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; +import org.jspecify.annotations.NonNull; +import java.net.MalformedURLException; +import java.net.URL; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; @@ -320,4 +323,29 @@ public class Article implements Parcelable { if (excerpt == null) excerpt = ""; if (content == null) content = ""; } + + public boolean isHostDistinct() { + try { + String siteDomain = new URL(site_url).getHost().replace("www.", ""); + String linkDomain = new URL(link).getHost().replace("www.", ""); + + return !linkDomain.contains(siteDomain); + + } catch (MalformedURLException e) { + // + } + + return false; + } + + @NonNull + public String getLinkHost() { + try { + return new URL(link).getHost(); + } catch (MalformedURLException e) { + // + } + + return ""; + } } diff --git a/org.fox.ttrss/src/main/res/layout/fragment_article.xml b/org.fox.ttrss/src/main/res/layout/fragment_article.xml index eba96d75..0fe8163b 100755 --- a/org.fox.ttrss/src/main/res/layout/fragment_article.xml +++ b/org.fox.ttrss/src/main/res/layout/fragment_article.xml @@ -57,6 +57,20 @@ android:textColor="?colorPrimary" android:textSize="12sp" /> + <TextView + android:id="@+id/link_host" + android:layout_marginStart="16dp" + android:layout_marginEnd="16dp" + tools:text="example.com" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textAlignment="viewStart" + android:layout_weight="1" + android:fontFamily="sans-serif-light" + android:layout_marginTop="8dp" + android:textColor="?colorPrimary" + android:textSize="12sp" /> + <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" diff --git a/org.fox.ttrss/src/main/res/layout/headlines_row.xml b/org.fox.ttrss/src/main/res/layout/headlines_row.xml index 3659589d..3c0ecb20 100755 --- a/org.fox.ttrss/src/main/res/layout/headlines_row.xml +++ b/org.fox.ttrss/src/main/res/layout/headlines_row.xml @@ -77,6 +77,20 @@ </LinearLayout> + <TextView + android:id="@+id/link_host" + android:layout_width="match_parent" + android:layout_marginTop="8dp" + android:layout_below="@+id/linearLayout2" + android:layout_height="wrap_content" + android:ellipsize="middle" + android:fontFamily="sans-serif-light" + android:singleLine="true" + android:textAlignment="viewStart" + android:textColor="?colorSecondary" + android:textSize="12sp" + tools:text="example.com" /> + </RelativeLayout> </TableRow> diff --git a/org.fox.ttrss/src/main/res/layout/headlines_row_unread.xml b/org.fox.ttrss/src/main/res/layout/headlines_row_unread.xml index 3365f476..7cae0fb1 100755 --- a/org.fox.ttrss/src/main/res/layout/headlines_row_unread.xml +++ b/org.fox.ttrss/src/main/res/layout/headlines_row_unread.xml @@ -78,6 +78,20 @@ </LinearLayout> + <TextView + android:id="@+id/link_host" + android:layout_width="match_parent" + android:layout_marginTop="8dp" + android:layout_below="@+id/linearLayout2" + android:layout_height="wrap_content" + android:ellipsize="middle" + android:fontFamily="sans-serif-light" + android:singleLine="true" + android:textAlignment="viewStart" + android:textColor="?colorSecondary" + android:textSize="12sp" + tools:text="example.com" /> + </RelativeLayout> </TableRow> |