aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorAlex Ning <chineseperson5@gmail.com>2020-07-16 14:58:11 +0000
committerAlex Ning <chineseperson5@gmail.com>2020-07-16 14:58:11 +0000
commitfd175178a2219df4369f68bcfc92e10d80468b64 (patch)
tree08c67a4c2ec5683269e267ea4e32e04653dac35f /app
parentbae154da4520571ec116815648ad3dbc942bdb2d (diff)
downloadinfinity-for-reddit-fd175178a2219df4369f68bcfc92e10d80468b64.tar
infinity-for-reddit-fd175178a2219df4369f68bcfc92e10d80468b64.tar.gz
infinity-for-reddit-fd175178a2219df4369f68bcfc92e10d80468b64.tar.bz2
infinity-for-reddit-fd175178a2219df4369f68bcfc92e10d80468b64.tar.lz
infinity-for-reddit-fd175178a2219df4369f68bcfc92e10d80468b64.tar.xz
infinity-for-reddit-fd175178a2219df4369f68bcfc92e10d80468b64.tar.zst
infinity-for-reddit-fd175178a2219df4369f68bcfc92e10d80468b64.zip
Use BigImageView in ViewRedditGalleryImageOrGifFragment. Fix subtitle not showing in FilteredThingActivity when browsing Reddit gallery posts.
Diffstat (limited to 'app')
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/Activity/FilteredThingActivity.java3
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/Fragment/ViewImgurImageFragment.java6
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/Fragment/ViewRedditGalleryImageOrGifFragment.java122
-rw-r--r--app/src/main/res/layout/activity_view_image_or_gif.xml2
-rw-r--r--app/src/main/res/layout/fragment_view_reddit_gallery_image_or_gif.xml5
5 files changed, 109 insertions, 29 deletions
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/FilteredThingActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/FilteredThingActivity.java
index 87d4e0f2..a0b8bd47 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/FilteredThingActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/FilteredThingActivity.java
@@ -280,6 +280,9 @@ public class FilteredThingActivity extends BaseActivity implements SortTypeSelec
break;
case Post.GIF_TYPE:
toolbar.setSubtitle(R.string.gif);
+ break;
+ case Post.GALLERY_TYPE:
+ toolbar.setSubtitle(R.string.gallery);
}
if (initializeFragment) {
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/Fragment/ViewImgurImageFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/Fragment/ViewImgurImageFragment.java
index d6651066..d25408aa 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/Fragment/ViewImgurImageFragment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/Fragment/ViewImgurImageFragment.java
@@ -107,6 +107,12 @@ public class ViewImgurImageFragment extends Fragment {
}
});
+ errorLinearLayout.setOnClickListener(view -> {
+ progressBar.setVisibility(View.VISIBLE);
+ errorLinearLayout.setVisibility(View.GONE);
+ loadImage();
+ });
+
return rootView;
}
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/Fragment/ViewRedditGalleryImageOrGifFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/Fragment/ViewRedditGalleryImageOrGifFragment.java
index 2d456910..0b466749 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/Fragment/ViewRedditGalleryImageOrGifFragment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/Fragment/ViewRedditGalleryImageOrGifFragment.java
@@ -35,8 +35,12 @@ import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.CustomTarget;
import com.bumptech.glide.request.target.Target;
import com.bumptech.glide.request.transition.Transition;
-import com.davemorrissey.labs.subscaleview.ImageSource;
import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView;
+import com.github.piasy.biv.BigImageViewer;
+import com.github.piasy.biv.loader.ImageLoader;
+import com.github.piasy.biv.loader.glide.GlideImageLoader;
+import com.github.piasy.biv.view.BigImageView;
+import com.github.piasy.biv.view.GlideImageViewFactory;
import java.io.File;
@@ -61,7 +65,7 @@ public class ViewRedditGalleryImageOrGifFragment extends Fragment {
@BindView(R.id.progress_bar_view_reddit_gallery_image_or_gif_fragment)
ProgressBar progressBar;
@BindView(R.id.image_view_view_reddit_gallery_image_or_gif_fragment)
- SubsamplingScaleImageView imageView;
+ BigImageView imageView;
@BindView(R.id.load_image_error_linear_layout_view_reddit_gallery_image_or_gif_fragment)
LinearLayout errorLinearLayout;
@@ -79,6 +83,8 @@ public class ViewRedditGalleryImageOrGifFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
+ BigImageViewer.initialize(GlideImageLoader.with(activity));
+
View rootView = inflater.inflate(R.layout.fragment_view_reddit_gallery_image_or_gif, container, false);
ButterKnife.bind(this, rootView);
@@ -88,6 +94,87 @@ public class ViewRedditGalleryImageOrGifFragment extends Fragment {
media = getArguments().getParcelable(EXTRA_REDDIT_GALLERY_MEDIA);
glide = Glide.with(activity);
mediaDownloader = new MediaDownloaderImpl();
+
+ imageView.setImageViewFactory(new GlideImageViewFactory());
+
+ imageView.setImageLoaderCallback(new ImageLoader.Callback() {
+ @Override
+ public void onCacheHit(int imageType, File image) {
+
+ }
+
+ @Override
+ public void onCacheMiss(int imageType, File image) {
+
+ }
+
+ @Override
+ public void onStart() {
+
+ }
+
+ @Override
+ public void onProgress(int progress) {
+
+ }
+
+ @Override
+ public void onFinish() {
+
+ }
+
+ @Override
+ public void onSuccess(File image) {
+ progressBar.setVisibility(View.GONE);
+
+ final SubsamplingScaleImageView view = imageView.getSSIV();
+
+ if (view != null) {
+ view.setMinimumDpi(80);
+
+ view.setOnImageEventListener(new SubsamplingScaleImageView.OnImageEventListener() {
+ @Override
+ public void onReady() {
+
+ }
+
+ @Override
+ public void onImageLoaded() {
+ view.setDoubleTapZoomDpi(70);
+ view.setDoubleTapZoomStyle(SubsamplingScaleImageView.ZOOM_FOCUS_FIXED);
+ view.setQuickScaleEnabled(false);
+ }
+
+ @Override
+ public void onPreviewLoadError(Exception e) {
+
+ }
+
+ @Override
+ public void onImageLoadError(Exception e) {
+
+ }
+
+ @Override
+ public void onTileLoadError(Exception e) {
+
+ }
+
+ @Override
+ public void onPreviewReleased() {
+
+ }
+ });
+ }
+ }
+
+ @Override
+ public void onFail(Exception error) {
+ progressBar.setVisibility(View.GONE);
+ errorLinearLayout.setVisibility(View.VISIBLE);
+ }
+ });
+
loadImage();
imageView.setOnClickListener(view -> {
@@ -109,34 +196,17 @@ public class ViewRedditGalleryImageOrGifFragment extends Fragment {
}
});
+ errorLinearLayout.setOnClickListener(view -> {
+ progressBar.setVisibility(View.VISIBLE);
+ errorLinearLayout.setVisibility(View.GONE);
+ loadImage();
+ });
+
return rootView;
}
private void loadImage() {
- glide.asBitmap().load(media.url).listener(new RequestListener<Bitmap>() {
- @Override
- public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Bitmap> target, boolean isFirstResource) {
- progressBar.setVisibility(View.GONE);
- errorLinearLayout.setVisibility(View.VISIBLE);
- return false;
- }
-
- @Override
- public boolean onResourceReady(Bitmap resource, Object model, Target<Bitmap> target, DataSource dataSource, boolean isFirstResource) {
- progressBar.setVisibility(View.GONE);
- return false;
- }
- }).into(new CustomTarget<Bitmap>() {
- @Override
- public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
- imageView.setImage(ImageSource.bitmap(resource));
- }
-
- @Override
- public void onLoadCleared(@Nullable Drawable placeholder) {
-
- }
- });
+ imageView.showImage(Uri.parse(media.url));
}
@Override
diff --git a/app/src/main/res/layout/activity_view_image_or_gif.xml b/app/src/main/res/layout/activity_view_image_or_gif.xml
index 9d3a0b58..6e53f230 100644
--- a/app/src/main/res/layout/activity_view_image_or_gif.xml
+++ b/app/src/main/res/layout/activity_view_image_or_gif.xml
@@ -19,7 +19,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
app:optimizeDisplay="true"
- app:tapToRetry="false"/>
+ app:tapToRetry="false" />
<LinearLayout
android:id="@+id/load_image_error_linear_layout_view_image_or_gif_activity"
diff --git a/app/src/main/res/layout/fragment_view_reddit_gallery_image_or_gif.xml b/app/src/main/res/layout/fragment_view_reddit_gallery_image_or_gif.xml
index a92bce52..6f27275a 100644
--- a/app/src/main/res/layout/fragment_view_reddit_gallery_image_or_gif.xml
+++ b/app/src/main/res/layout/fragment_view_reddit_gallery_image_or_gif.xml
@@ -13,11 +13,12 @@
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
- <com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView
+ <com.github.piasy.biv.view.BigImageView
android:id="@+id/image_view_view_reddit_gallery_image_or_gif_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
- app:quickScaleEnabled="false" />
+ app:optimizeDisplay="true"
+ app:tapToRetry="false" />
<LinearLayout
android:id="@+id/load_image_error_linear_layout_view_reddit_gallery_image_or_gif_fragment"