aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewRedditGalleryImageOrGifFragment.java33
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/post/ParsePost.java12
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/post/Post.java15
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 {