From 5bf074b8db448d4dcfd33b7cab76da1529d71ee0 Mon Sep 17 00:00:00 2001 From: tom79 Date: Tue, 26 Feb 2019 18:41:21 +0100 Subject: [PATCH] Fix issue #825 --- .../mastodon/activities/TootActivity.java | 46 ++++++++++++++----- .../UpdateDescriptionAttachmentAsyncTask.java | 2 +- .../mastodon/client/HttpsConnection.java | 8 ++-- .../OnRetrieveAttachmentInterface.java | 2 +- 4 files changed, 41 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/TootActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/TootActivity.java index d8ed54a9f..ad853b3f0 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/TootActivity.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/TootActivity.java @@ -98,6 +98,7 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; +import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.TimeZone; @@ -215,6 +216,7 @@ public class TootActivity extends BaseActivity implements OnPostActionInterface, private RelativeLayout loader; private String contentType; private int max_media_count; + public static HashMap filesMap; @Override protected void onCreate(Bundle savedInstanceState) { @@ -243,7 +245,7 @@ public class TootActivity extends BaseActivity implements OnPostActionInterface, }else { style = R.style.Dialog; } - + filesMap = new HashMap<>(); if( MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.PLEROMA){ max_media_count = 9999; }else{ @@ -934,6 +936,7 @@ public class TootActivity extends BaseActivity implements OnPostActionInterface, toot_picture.setEnabled(false); toot_it.setEnabled(false); String filename = Helper.getFileName(this.activityWeakReference.get(), uriFile); + filesMap.put(filename, uriFile); new HttpsConnection(this.activityWeakReference.get()).upload(bs, filename, accountReply != null ? accountReply.getToken() : null, (TootActivity) this.activityWeakReference.get()); } } @@ -1602,7 +1605,7 @@ public class TootActivity extends BaseActivity implements OnPostActionInterface, } @Override - public void onRetrieveAttachment(final Attachment attachment, Error error) { + public void onRetrieveAttachment(final Attachment attachment, String fileName, Error error) { if( error != null || attachment == null){ if( error != null) Toasty.error(getApplicationContext(), error.getError(), Toast.LENGTH_LONG).show(); @@ -1629,18 +1632,39 @@ public class TootActivity extends BaseActivity implements OnPostActionInterface, String url = attachment.getPreview_url(); if (url == null || url.trim().equals("")) url = attachment.getUrl(); + + final ImageView imageView = new ImageView(getApplicationContext()); imageView.setId(Integer.parseInt(attachment.getId())); - Glide.with(imageView.getContext()) - .asBitmap() - .load(url) - .into(new SimpleTarget() { - @Override - public void onResourceReady(@NonNull Bitmap resource, Transition transition) { - imageView.setImageBitmap(resource); - } - }); + if( MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.GNU || MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.FRIENDICA){ + if( fileName != null && filesMap.containsKey(fileName)){ + Uri uri = filesMap.get(fileName); + Glide.with(imageView.getContext()) + .asBitmap() + .load(uri) + .into(new SimpleTarget() { + @Override + public void onResourceReady(@NonNull Bitmap resource, Transition transition) { + imageView.setImageBitmap(resource); + } + }); + } + + }else { + Glide.with(imageView.getContext()) + .asBitmap() + .load(url) + .into(new SimpleTarget() { + @Override + public void onResourceReady(@NonNull Bitmap resource, Transition transition) { + imageView.setImageBitmap(resource); + } + }); + } + + + LinearLayout.LayoutParams imParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT); imParams.setMargins(20, 5, 20, 5); imParams.height = (int) Helper.convertDpToPixel(100, getApplicationContext()); diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/asynctasks/UpdateDescriptionAttachmentAsyncTask.java b/app/src/main/java/fr/gouv/etalab/mastodon/asynctasks/UpdateDescriptionAttachmentAsyncTask.java index e4311e018..d93e51376 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/asynctasks/UpdateDescriptionAttachmentAsyncTask.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/asynctasks/UpdateDescriptionAttachmentAsyncTask.java @@ -59,7 +59,7 @@ public class UpdateDescriptionAttachmentAsyncTask extends AsyncTask