aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/ui/widget/RichLinkView.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2019-02-20 22:38:51 +0100
committerChristian Schneppe <christian@pix-art.de>2019-02-20 22:38:51 +0100
commit8b681105d19743b7417d3837f616b022de268330 (patch)
treea6af0653629f501cda7c1547473b18caaf28667c /src/main/java/de/pixart/messenger/ui/widget/RichLinkView.java
parent1c14932e8449e40e4cb12427cae7e51791f68595 (diff)
improve RichPreview
Diffstat (limited to '')
-rw-r--r--src/main/java/de/pixart/messenger/ui/widget/RichLinkView.java60
1 files changed, 31 insertions, 29 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/widget/RichLinkView.java b/src/main/java/de/pixart/messenger/ui/widget/RichLinkView.java
index 5a78e76b0..dbe6a4629 100644
--- a/src/main/java/de/pixart/messenger/ui/widget/RichLinkView.java
+++ b/src/main/java/de/pixart/messenger/ui/widget/RichLinkView.java
@@ -6,6 +6,7 @@ import android.net.Uri;
import android.os.Build;
import android.support.annotation.RequiresApi;
import android.util.AttributeSet;
+import android.util.DisplayMetrics;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
@@ -15,12 +16,9 @@ import android.widget.TextView;
import com.squareup.picasso.Picasso;
import de.pixart.messenger.R;
-import de.pixart.messenger.services.XmppConnectionService;
+import de.pixart.messenger.utils.MetaData;
import de.pixart.messenger.utils.RichPreview;
-import io.github.ponnamkarthik.richlinkpreview.MetaData;
-import io.github.ponnamkarthik.richlinkpreview.ResponseListener;
-import io.github.ponnamkarthik.richlinkpreview.RichLinkListener;
-import io.github.ponnamkarthik.richlinkpreview.ViewListener;
+
/**
* Created by ponna on 16-01-2018.
@@ -36,15 +34,12 @@ public class RichLinkView extends RelativeLayout {
ImageView imageView;
TextView textViewTitle;
TextView textViewDesp;
- TextView textViewUrl;
private String main_url;
private boolean isDefaultClick = true;
- private RichLinkListener richLinkListener;
-
- private XmppConnectionService mXmppConnectionService;
+ private RichPreview.RichLinkListener richLinkListener;
public RichLinkView(Context context) {
super(context);
@@ -73,7 +68,7 @@ public class RichLinkView extends RelativeLayout {
}
- public void initView() {
+ public void initView(final boolean dataSaverDisabled) {
if (findLinearLayoutChild() != null) {
this.view = findLinearLayoutChild();
} else {
@@ -84,36 +79,43 @@ public class RichLinkView extends RelativeLayout {
imageView = findViewById(R.id.rich_link_image);
textViewTitle = findViewById(R.id.rich_link_title);
textViewDesp = findViewById(R.id.rich_link_desp);
- textViewUrl = findViewById(R.id.rich_link_url);
-
+ imageView.setAdjustViewBounds(true);
if (!meta.getImageurl().equals("") || !meta.getImageurl().isEmpty()
&& !meta.getTitle().isEmpty() || !meta.getTitle().equals("")
&& !meta.getUrl().isEmpty() || !meta.getUrl().equals("")
&& !meta.getDescription().isEmpty() || !meta.getDescription().equals("")) {
linearLayout.setVisibility(VISIBLE);
} else {
- linearLayout.setVisibility(GONE);
+ linearLayout.setVisibility(VISIBLE);
}
- if (meta.getImageurl().equals("") || meta.getImageurl().isEmpty()) {
- imageView.setVisibility(GONE);
+ if (!meta.getImageurl().equals("") && !meta.getImageurl().isEmpty()) {
+ if (!dataSaverDisabled) {
+ Picasso.get()
+ .load(R.drawable.ic_web_grey600_48)
+ .into(imageView);
+ } else {
+ imageView.setVisibility(VISIBLE);
+ Picasso.get()
+ .load(meta.getImageurl())
+ .resize(80, 80)
+ .onlyScaleDown()
+ .centerInside()
+ .placeholder(R.drawable.ic_web_grey600_48)
+ .into(imageView);
+ }
} else {
imageView.setVisibility(VISIBLE);
Picasso.get()
- .load(meta.getImageurl())
+ .load(R.drawable.ic_web_grey600_48)
.into(imageView);
}
if (meta.getTitle().isEmpty() || meta.getTitle().equals("")) {
- textViewTitle.setVisibility(GONE);
+ textViewTitle.setVisibility(VISIBLE);
+ textViewTitle.setText(meta.getUrl());
} else {
textViewTitle.setVisibility(VISIBLE);
textViewTitle.setText(meta.getTitle());
}
- if (meta.getUrl().isEmpty() || meta.getUrl().equals("")) {
- textViewUrl.setVisibility(GONE);
- } else {
- textViewUrl.setVisibility(GONE);
- textViewUrl.setText(meta.getUrl());
- }
if (meta.getDescription().isEmpty() || meta.getDescription().equals("")) {
textViewDesp.setVisibility(GONE);
} else {
@@ -143,7 +145,7 @@ public class RichLinkView extends RelativeLayout {
isDefaultClick = isDefault;
}
- public void setClickListener(RichLinkListener richLinkListener1) {
+ public void setClickListener(RichPreview.RichLinkListener richLinkListener1) {
richLinkListener = richLinkListener1;
}
@@ -156,23 +158,23 @@ public class RichLinkView extends RelativeLayout {
public void setLinkFromMeta(MetaData metaData) {
meta = metaData;
- initView();
+ initView(true);
}
public MetaData getMetaData() {
return meta;
}
- public void setLink(String url, final ViewListener viewListener) {
+ public void setLink(final String url, final String filename, final boolean dataSaverDisabled, final RichPreview.ViewListener viewListener) {
main_url = url;
- RichPreview richPreview = new RichPreview(new ResponseListener() {
+ RichPreview richPreview = new RichPreview(new RichPreview.ResponseListener() {
@Override
public void onData(MetaData metaData) {
meta = metaData;
if (!meta.getTitle().isEmpty() || !meta.getTitle().equals("")) {
viewListener.onSuccess(true);
}
- initView();
+ initView(dataSaverDisabled);
}
@Override
@@ -180,6 +182,6 @@ public class RichLinkView extends RelativeLayout {
viewListener.onError(e);
}
});
- richPreview.getPreview(url);
+ richPreview.getPreview(url, filename, context);
}
}