diff options
Diffstat (limited to 'app')
3 files changed, 7 insertions, 53 deletions
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewRedditGalleryImageOrGifFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewRedditGalleryImageOrGifFragment.java index 51af89cb..df3d88ae 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewRedditGalleryImageOrGifFragment.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewRedditGalleryImageOrGifFragment.java @@ -111,7 +111,6 @@ public class ViewRedditGalleryImageOrGifFragment extends Fragment { private boolean isDownloading = false; private boolean isActionBarHidden = false; private boolean isUseBottomCaption = false; - private boolean isFallback = false; public ViewRedditGalleryImageOrGifFragment() { // Required empty public constructor @@ -178,21 +177,6 @@ public class ViewRedditGalleryImageOrGifFragment extends Fragment { view.setQuickScaleEnabled(true); view.resetScaleAndCenter(); } - - @Override - public void onImageLoadError(Exception e) { - e.printStackTrace(); - // For issue #558 - // Make sure it's not stuck in a loop if it comes to that - // Fallback url should be empty if it's not an album item - if (!isFallback && media.hasFallback()) { - imageView.cancel(); - isFallback = true; - loadImage(); - } else { - isFallback = false; - } - } }); } } @@ -226,6 +210,7 @@ public class ViewRedditGalleryImageOrGifFragment extends Fragment { errorLinearLayout.setOnClickListener(view -> { progressBar.setVisibility(View.VISIBLE); errorLinearLayout.setVisibility(View.GONE); + loadImage(); }); if (activity.isUseBottomAppBar()) { @@ -332,12 +317,7 @@ public class ViewRedditGalleryImageOrGifFragment extends Fragment { } private void loadImage() { - if(isFallback) { - imageView.showImage(Uri.parse(media.fallbackUrl)); - } - else{ - imageView.showImage(Uri.parse(media.url)); - } + imageView.showImage(Uri.parse(media.url)); } @Override @@ -394,7 +374,7 @@ public class ViewRedditGalleryImageOrGifFragment extends Fragment { isDownloading = false; Intent intent = new Intent(activity, DownloadMediaService.class); - intent.putExtra(DownloadMediaService.EXTRA_URL, media.hasFallback() ? media.fallbackUrl : media.url); // Retrieve original instead of the one additionally compressed by reddit + intent.putExtra(DownloadMediaService.EXTRA_URL, media.url); intent.putExtra(DownloadMediaService.EXTRA_MEDIA_TYPE, media.mediaType == Post.Gallery.TYPE_GIF ? DownloadMediaService.EXTRA_MEDIA_TYPE_GIF : DownloadMediaService.EXTRA_MEDIA_TYPE_IMAGE); intent.putExtra(DownloadMediaService.EXTRA_FILE_NAME, media.fileName); intent.putExtra(DownloadMediaService.EXTRA_SUBREDDIT_NAME, subredditName); @@ -402,10 +382,8 @@ public class ViewRedditGalleryImageOrGifFragment extends Fragment { Toast.makeText(activity, R.string.download_started, Toast.LENGTH_SHORT).show(); } - //TODO: Find a way to share original image, Glide messes with the size and quality, - // compression should be up to the app being shared with (WhatsApp for example) private void shareImage() { - glide.asBitmap().load(media.hasFallback() ? media.fallbackUrl : media.url).into(new CustomTarget<Bitmap>() { + glide.asBitmap().load(media.url).into(new CustomTarget<Bitmap>() { @Override public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) { if (activity.getExternalCacheDir() != null) { @@ -521,7 +499,7 @@ public class ViewRedditGalleryImageOrGifFragment extends Fragment { super.onResume(); SubsamplingScaleImageView ssiv = imageView.getSSIV(); if (ssiv == null || !ssiv.hasImage()) { - loadImage(); + imageView.showImage(Uri.parse(media.url)); } } @@ -529,7 +507,6 @@ public class ViewRedditGalleryImageOrGifFragment extends Fragment { public void onDestroyView() { super.onDestroyView(); imageView.cancel(); - isFallback = false; SubsamplingScaleImageView subsamplingScaleImageView = imageView.getSSIV(); if (subsamplingScaleImageView != null) { subsamplingScaleImageView.recycle(); diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/post/ParsePost.java b/app/src/main/java/ml/docilealligator/infinityforreddit/post/ParsePost.java index cf070e4e..860feaf2 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/post/ParsePost.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/post/ParsePost.java @@ -3,7 +3,6 @@ package ml.docilealligator.infinityforreddit.post; import android.net.Uri; import android.os.Handler; import android.text.Html; -import android.text.TextUtils; import org.json.JSONArray; import org.json.JSONException; @@ -576,17 +575,8 @@ public class ParsePost { previews.add(new Post.Preview(galleryItemUrl, singleGalleryObject.getJSONObject(JSONUtils.S_KEY).getInt(JSONUtils.X_KEY), singleGalleryObject.getJSONObject(JSONUtils.S_KEY).getInt(JSONUtils.Y_KEY), galleryItemCaption, galleryItemCaptionUrl)); } - - Post.Gallery postGalleryItem = new Post.Gallery(mimeType, galleryItemUrl, "", subredditName + "-" + galleryId + "." + mimeType.substring(mimeType.lastIndexOf("/") + 1), galleryItemCaption, galleryItemCaptionUrl); - - // For issue #558 - // Construct a fallback image url - if(!TextUtils.isEmpty(galleryItemUrl) && !TextUtils.isEmpty(mimeType) && (mimeType.contains("jpg") || mimeType.contains("png"))) { - postGalleryItem.setFallbackUrl("https://i.redd.it/" + galleryId + "." + mimeType.substring(mimeType.lastIndexOf("/") + 1)); - postGalleryItem.setHasFallback(true); - } - gallery.add(postGalleryItem); + gallery.add(new Post.Gallery(mimeType, galleryItemUrl, subredditName + "-" + galleryId + "." + mimeType.substring(mimeType.lastIndexOf("/") + 1), galleryItemCaption, galleryItemCaptionUrl)); } if (!gallery.isEmpty()) { diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/post/Post.java b/app/src/main/java/ml/docilealligator/infinityforreddit/post/Post.java index ce096362..e19696a3 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/post/Post.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/post/Post.java @@ -580,17 +580,14 @@ public class Post implements Parcelable { public String mimeType; public String url; - public String fallbackUrl; - private boolean hasFallback; public String fileName; public int mediaType; public String caption; public String captionUrl; - public Gallery(String mimeType, String url, String fallbackUrl, String fileName, String caption, String captionUrl) { + public Gallery(String mimeType, String url, String fileName, String caption, String captionUrl) { this.mimeType = mimeType; this.url = url; - this.fallbackUrl = fallbackUrl; this.fileName = fileName; if (mimeType.contains("gif")) { mediaType = TYPE_GIF; @@ -606,8 +603,6 @@ public class Post implements Parcelable { protected Gallery(Parcel in) { mimeType = in.readString(); url = in.readString(); - fallbackUrl = in.readString(); - hasFallback = in.readByte() != 0; fileName = in.readString(); mediaType = in.readInt(); caption = in.readString(); @@ -635,19 +630,11 @@ public class Post implements Parcelable { public void writeToParcel(Parcel parcel, int i) { parcel.writeString(mimeType); parcel.writeString(url); - parcel.writeString(fallbackUrl); - parcel.writeByte((byte) (hasFallback ? 1 : 0)); parcel.writeString(fileName); parcel.writeInt(mediaType); parcel.writeString(caption); parcel.writeString(captionUrl); } - - public void setFallbackUrl(String fallbackUrl) { this.fallbackUrl = fallbackUrl; } - - public void setHasFallback(boolean hasFallback) { this.hasFallback = hasFallback; } - - public boolean hasFallback() { return this.hasFallback; } } public static class Preview implements Parcelable { |