From 07390678e0830aafa3a64bfaa15a64d101f197a8 Mon Sep 17 00:00:00 2001 From: Alex Ning Date: Wed, 6 Jan 2021 22:46:22 +0800 Subject: Fix memory leaks caused by BigImageView. Remove unused custom views. --- .../activities/ViewImageOrGifActivity.java | 6 +++ .../activities/ViewPostDetailActivity.java | 1 + .../customviews/AspectRatioBigImageView.java | 60 ---------------------- .../AspectRatioSubsamplingScaleImageView.java | 54 ------------------- .../ViewRedditGalleryImageOrGifFragment.java | 6 +++ 5 files changed, 13 insertions(+), 114 deletions(-) delete mode 100644 app/src/main/java/ml/docilealligator/infinityforreddit/customviews/AspectRatioBigImageView.java delete mode 100644 app/src/main/java/ml/docilealligator/infinityforreddit/customviews/AspectRatioSubsamplingScaleImageView.java (limited to 'app/src/main/java/ml/docilealligator/infinityforreddit') diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewImageOrGifActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewImageOrGifActivity.java index a86e2c86..63fc42a9 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewImageOrGifActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewImageOrGifActivity.java @@ -484,4 +484,10 @@ public class ViewImageOrGifActivity extends AppCompatActivity implements SetAsWa } }); } + + @Override + public void onDestroy() { + super.onDestroy(); + BigImageViewer.imageLoader().cancelAll(); + } } diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewPostDetailActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewPostDetailActivity.java index 7af1bcc4..c7bf94b4 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewPostDetailActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewPostDetailActivity.java @@ -1774,6 +1774,7 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS EventBus.getDefault().unregister(this); super.onDestroy(); Bridge.clear(this); + BigImageViewer.imageLoader().cancelAll(); } @Override diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/customviews/AspectRatioBigImageView.java b/app/src/main/java/ml/docilealligator/infinityforreddit/customviews/AspectRatioBigImageView.java deleted file mode 100644 index d001faa3..00000000 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/customviews/AspectRatioBigImageView.java +++ /dev/null @@ -1,60 +0,0 @@ -package ml.docilealligator.infinityforreddit.customviews; - -import android.content.Context; -import android.content.res.TypedArray; -import android.util.AttributeSet; - -import com.github.piasy.biv.view.BigImageView; - -public class AspectRatioBigImageView extends BigImageView { - private float ratio; - - public AspectRatioBigImageView(Context context) { - super(context); - ratio = 1.0F; - } - - public AspectRatioBigImageView(Context context, AttributeSet attrs) { - super(context, attrs); - this.ratio = 1.0F; - this.init(context, attrs); - } - - public AspectRatioBigImageView(Context context, AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - this.ratio = 1.0F; - this.init(context, attrs); - } - - public final float getRatio() { - return this.ratio; - } - - public final void setRatio(float var1) { - this.ratio = var1; - } - - private void init(Context context, AttributeSet attrs) { - if (attrs != null) { - TypedArray a = context.obtainStyledAttributes(attrs, com.santalu.aspectratioimageview.R.styleable.AspectRatioImageView); - this.ratio = a.getFloat(com.santalu.aspectratioimageview.R.styleable.AspectRatioImageView_ari_ratio, 1.0F); - a.recycle(); - } - - } - - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - int width = this.getMeasuredWidth(); - int height = this.getMeasuredHeight(); - if (width != 0 || height != 0) { - if (width > 0) { - height = (int) ((float) width * this.ratio); - } else { - width = (int) ((float) height / this.ratio); - } - - this.setMeasuredDimension(width, height); - } - } -} diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/customviews/AspectRatioSubsamplingScaleImageView.java b/app/src/main/java/ml/docilealligator/infinityforreddit/customviews/AspectRatioSubsamplingScaleImageView.java deleted file mode 100644 index dffdb9af..00000000 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/customviews/AspectRatioSubsamplingScaleImageView.java +++ /dev/null @@ -1,54 +0,0 @@ -package ml.docilealligator.infinityforreddit.customviews; - -import android.content.Context; -import android.content.res.TypedArray; -import android.util.AttributeSet; - -import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView; - -public class AspectRatioSubsamplingScaleImageView extends SubsamplingScaleImageView { - private float ratio; - - public AspectRatioSubsamplingScaleImageView(Context context) { - super(context); - ratio = 1.0F; - } - - public AspectRatioSubsamplingScaleImageView(Context context, AttributeSet attr) { - super(context, attr); - this.ratio = 1.0F; - this.init(context, attr); - } - - public final float getRatio() { - return this.ratio; - } - - public final void setRatio(float var1) { - this.ratio = var1; - } - - private void init(Context context, AttributeSet attrs) { - if (attrs != null) { - TypedArray a = context.obtainStyledAttributes(attrs, com.santalu.aspectratioimageview.R.styleable.AspectRatioImageView); - this.ratio = a.getFloat(com.santalu.aspectratioimageview.R.styleable.AspectRatioImageView_ari_ratio, 1.0F); - a.recycle(); - } - - } - - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - super.onMeasure(widthMeasureSpec, heightMeasureSpec); - int width = this.getMeasuredWidth(); - int height = this.getMeasuredHeight(); - if (width != 0 || height != 0) { - if (width > 0) { - height = (int) ((float) width * this.ratio); - } else { - width = (int) ((float) height / this.ratio); - } - - this.setMeasuredDimension(width, height); - } - } -} 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 585730d5..b93068c5 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewRedditGalleryImageOrGifFragment.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewRedditGalleryImageOrGifFragment.java @@ -373,4 +373,10 @@ public class ViewRedditGalleryImageOrGifFragment extends Fragment { super.onAttach(context); activity = (ViewRedditGalleryActivity) context; } + + @Override + public void onDestroy() { + super.onDestroy(); + BigImageViewer.imageLoader().cancelAll(); + } } -- cgit v1.2.3