summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortom79 <tschneider.ac@gmail.com>2019-10-28 12:55:19 +0100
committertom79 <tschneider.ac@gmail.com>2019-10-28 12:55:19 +0100
commit637f1931204bed7cd8bda5b94077de6ff672256c (patch)
treef39752efbbac4e21aa0bc7a1e78749b564e87758
parentabef87a632c0afd61efca44931ae9ceb57f230a1 (diff)
Fix card view
-rw-r--r--app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java163
1 files changed, 78 insertions, 85 deletions
diff --git a/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java b/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java
index d035af3e4..0c00bcbcb 100644
--- a/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java
+++ b/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java
@@ -2540,103 +2540,96 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
dialog.show();
});
-
if ((type == RetrieveFeedsAsyncTask.Type.CONTEXT && viewHolder.getAdapterPosition() == conversationPosition) || display_card || display_video_preview) {
- if (type == RetrieveFeedsAsyncTask.Type.CONTEXT & viewHolder.getAdapterPosition() == conversationPosition)
- holder.status_cardview_content.setVisibility(View.VISIBLE);
- else
- holder.status_cardview_content.setVisibility(View.GONE);
-
- if (viewHolder.getAdapterPosition() == conversationPosition || display_card || display_video_preview) {
- Card card = status.getReblog() != null ? status.getReblog().getCard() : status.getCard();
- if (card != null) {
- holder.status_cardview_content.setText(card.getDescription());
- holder.status_cardview_title.setText(card.getTitle());
- holder.status_cardview_url.setText(card.getUrl());
- if (card.getImage() != null && card.getImage().length() > 10) {
- holder.status_cardview_image.setVisibility(View.VISIBLE);
- if (!((Activity) context).isFinishing())
- Glide.with(holder.status_cardview_image.getContext())
- .load(card.getImage())
- .apply(new RequestOptions().transforms(new CenterCrop(), new RoundedCorners((int) Helper.convertDpToPixel(3, context))))
- .into(holder.status_cardview_image);
- } else
- holder.status_cardview_image.setVisibility(View.GONE);
- if (!card.getType().toLowerCase().equals("video") && (display_card || viewHolder.getAdapterPosition() == conversationPosition)) {
- holder.status_cardview.setVisibility(View.VISIBLE);
- holder.status_cardview_video.setVisibility(View.GONE);
- holder.status_cardview.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- String url = card.getUrl();
- boolean nitter = sharedpreferences.getBoolean(Helper.SET_NITTER, false);
- if (nitter) {
- Matcher matcher = Helper.nitterPattern.matcher(url);
- while (matcher.find()) {
- final String nitter_directory = matcher.group(2);
- String nitterHost = sharedpreferences.getString(Helper.SET_NITTER_HOST, Helper.DEFAULT_NITTER_HOST).toLowerCase();
- url = url.replaceAll("https://"+Pattern.quote(matcher.group()), Matcher.quoteReplacement("https://"+nitterHost + nitter_directory));
- }
- }
- Helper.openBrowser(context, url);
- }
- });
- } else if (card.getType().toLowerCase().equals("video") && (display_video_preview || viewHolder.getAdapterPosition() == conversationPosition)) {
+ holder.status_cardview_content.setVisibility(View.VISIBLE);
+
+ Card card = status.getReblog() != null ? status.getReblog().getCard() : status.getCard();
+ if (card != null) {
+ holder.status_cardview_content.setText(card.getDescription());
+ holder.status_cardview_title.setText(card.getTitle());
+ holder.status_cardview_url.setText(card.getUrl());
+ if (card.getImage() != null && card.getImage().length() > 10) {
+ holder.status_cardview_image.setVisibility(View.VISIBLE);
+ if (!((Activity) context).isFinishing())
Glide.with(holder.status_cardview_image.getContext())
.load(card.getImage())
- .apply(new RequestOptions().transforms(new CenterCrop(), new RoundedCorners(10)))
- .into(holder.webview_preview_card);
- holder.status_cardview.setVisibility(View.GONE);
- holder.status_cardview_video.setVisibility(View.VISIBLE);
- holder.status_cardview_webview.getSettings().setJavaScriptEnabled(true);
- String html = card.getHtml();
- String src = card.getUrl();
- if (html != null) {
- Matcher matcher = Pattern.compile("src=\"([^\"]+)\"").matcher(html);
- if (matcher.find())
- src = matcher.group(1);
- }
- final String finalSrc = src;
- holder.status_cardview_webview.setWebViewClient(new WebViewClient() {
- @Override
- public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
- holder.status_cardview_video.setVisibility(View.GONE);
+ .apply(new RequestOptions().transforms(new CenterCrop(), new RoundedCorners((int) Helper.convertDpToPixel(3, context))))
+ .into(holder.status_cardview_image);
+ } else
+ holder.status_cardview_image.setVisibility(View.GONE);
+ if (!card.getType().toLowerCase().equals("video") && (display_card || (type == RetrieveFeedsAsyncTask.Type.CONTEXT && viewHolder.getAdapterPosition() == conversationPosition))) {
+ holder.status_cardview.setVisibility(View.VISIBLE);
+ holder.status_cardview_video.setVisibility(View.GONE);
+ holder.status_cardview.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ String url = card.getUrl();
+ boolean nitter = sharedpreferences.getBoolean(Helper.SET_NITTER, false);
+ if (nitter) {
+ Matcher matcher = Helper.nitterPattern.matcher(url);
+ while (matcher.find()) {
+ final String nitter_directory = matcher.group(2);
+ String nitterHost = sharedpreferences.getString(Helper.SET_NITTER_HOST, Helper.DEFAULT_NITTER_HOST).toLowerCase();
+ url = url.replaceAll("https://"+Pattern.quote(matcher.group()), Matcher.quoteReplacement("https://"+nitterHost + nitter_directory));
+ }
}
- });
- holder.webview_preview.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String url = finalSrc;
- if (url != null) {
- boolean invidious = sharedpreferences.getBoolean(Helper.SET_INVIDIOUS, false);
- if (invidious) {
- Matcher matcher = Helper.youtubePattern.matcher(url);
- while (matcher.find()) {
- final String youtubeId = matcher.group(3);
- String invidiousHost = sharedpreferences.getString(Helper.SET_INVIDIOUS_HOST, Helper.DEFAULT_INVIDIOUS_HOST).toLowerCase();
- if( matcher.group(2) != null && matcher.group(2).equals("youtu.be")){
- url = url.replaceAll("https://"+Pattern.quote(matcher.group()), Matcher.quoteReplacement("https://"+invidiousHost + "/watch?v="+youtubeId+"&local=true"));
- }else{
- url = url.replaceAll("https://"+Pattern.quote(matcher.group()), Matcher.quoteReplacement("https://"+invidiousHost + "/"+youtubeId+"&local=true"));
- }
+ Helper.openBrowser(context, url);
+ }
+ });
+ } else if (card.getType().toLowerCase().equals("video") && (display_video_preview || (type == RetrieveFeedsAsyncTask.Type.CONTEXT && viewHolder.getAdapterPosition() == conversationPosition))) {
+ Glide.with(holder.status_cardview_image.getContext())
+ .load(card.getImage())
+ .apply(new RequestOptions().transforms(new CenterCrop(), new RoundedCorners(10)))
+ .into(holder.webview_preview_card);
+ holder.status_cardview.setVisibility(View.GONE);
+ holder.status_cardview_video.setVisibility(View.VISIBLE);
+ holder.status_cardview_webview.getSettings().setJavaScriptEnabled(true);
+ String html = card.getHtml();
+ String src = card.getUrl();
+ if (html != null) {
+ Matcher matcher = Pattern.compile("src=\"([^\"]+)\"").matcher(html);
+ if (matcher.find())
+ src = matcher.group(1);
+ }
+ final String finalSrc = src;
+ holder.status_cardview_webview.setWebViewClient(new WebViewClient() {
+ @Override
+ public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
+ holder.status_cardview_video.setVisibility(View.GONE);
+ }
+ });
+ holder.webview_preview.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ String url = finalSrc;
+ if (url != null) {
+ boolean invidious = sharedpreferences.getBoolean(Helper.SET_INVIDIOUS, false);
+ if (invidious) {
+ Matcher matcher = Helper.youtubePattern.matcher(url);
+ while (matcher.find()) {
+ final String youtubeId = matcher.group(3);
+ String invidiousHost = sharedpreferences.getString(Helper.SET_INVIDIOUS_HOST, Helper.DEFAULT_INVIDIOUS_HOST).toLowerCase();
+ if( matcher.group(2) != null && matcher.group(2).equals("youtu.be")){
+ url = url.replaceAll("https://"+Pattern.quote(matcher.group()), Matcher.quoteReplacement("https://"+invidiousHost + "/watch?v="+youtubeId+"&local=true"));
+ }else{
+ url = url.replaceAll("https://"+Pattern.quote(matcher.group()), Matcher.quoteReplacement("https://"+invidiousHost + "/"+youtubeId+"&local=true"));
}
}
}
- if( status.getReblog() == null) {
- status.setWebviewURL(url);
- }else{
- status.getReblog().setWebviewURL(url);
- }
- notifyStatusChanged(status);
}
- });
- }
- } else {
+ if( status.getReblog() == null) {
+ status.setWebviewURL(url);
+ }else{
+ status.getReblog().setWebviewURL(url);
+ }
+ notifyStatusChanged(status);
+ }
+ });
+ }else{
holder.status_cardview.setVisibility(View.GONE);
holder.status_cardview_video.setVisibility(View.GONE);
}
-
} else {
holder.status_cardview.setVisibility(View.GONE);
holder.status_cardview_video.setVisibility(View.GONE);