Fix memory leaks caused by BigImageView. Remove unused custom views.

This commit is contained in:
Alex Ning 2021-01-06 22:46:22 +08:00
parent 99129a2b14
commit 07390678e0
5 changed files with 13 additions and 114 deletions

View File

@ -484,4 +484,10 @@ public class ViewImageOrGifActivity extends AppCompatActivity implements SetAsWa
}
});
}
@Override
public void onDestroy() {
super.onDestroy();
BigImageViewer.imageLoader().cancelAll();
}
}

View File

@ -1774,6 +1774,7 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
EventBus.getDefault().unregister(this);
super.onDestroy();
Bridge.clear(this);
BigImageViewer.imageLoader().cancelAll();
}
@Override

View File

@ -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);
}
}
}

View File

@ -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);
}
}
}

View File

@ -373,4 +373,10 @@ public class ViewRedditGalleryImageOrGifFragment extends Fragment {
super.onAttach(context);
activity = (ViewRedditGalleryActivity) context;
}
@Override
public void onDestroy() {
super.onDestroy();
BigImageViewer.imageLoader().cancelAll();
}
}