mirror of
https://github.com/KokaKiwi/BarInsta
synced 2024-11-26 08:37:29 +00:00
Destroy references to solve leak
This commit is contained in:
parent
91e13a23ad
commit
0d53e244e2
@ -248,6 +248,7 @@ public class MainActivity extends BaseLanguageActivity implements FragmentManage
|
|||||||
Log.e(TAG, "onDestroy: ", e);
|
Log.e(TAG, "onDestroy: ", e);
|
||||||
}
|
}
|
||||||
unbindActivityCheckerService();
|
unbindActivityCheckerService();
|
||||||
|
RetrofitFactory.getInstance().destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -25,10 +25,11 @@ public final class RetrofitFactory {
|
|||||||
|
|
||||||
private static RetrofitFactory instance;
|
private static RetrofitFactory instance;
|
||||||
|
|
||||||
private final MainActivity mainActivity;
|
|
||||||
private final int cacheSize = 10 * 1024 * 1024; // 10 MB
|
private final int cacheSize = 10 * 1024 * 1024; // 10 MB
|
||||||
private final Cache cache = new Cache(new File(Utils.cacheDir), cacheSize);
|
private final Cache cache = new Cache(new File(Utils.cacheDir), cacheSize);
|
||||||
|
|
||||||
|
private IgErrorsInterceptor igErrorsInterceptor;
|
||||||
|
private MainActivity mainActivity;
|
||||||
private Retrofit.Builder builder;
|
private Retrofit.Builder builder;
|
||||||
private Retrofit retrofit;
|
private Retrofit retrofit;
|
||||||
private Retrofit retrofitWeb;
|
private Retrofit retrofitWeb;
|
||||||
@ -56,6 +57,7 @@ public final class RetrofitFactory {
|
|||||||
|
|
||||||
private Retrofit.Builder getRetrofitBuilder() {
|
private Retrofit.Builder getRetrofitBuilder() {
|
||||||
if (builder == null) {
|
if (builder == null) {
|
||||||
|
igErrorsInterceptor = new IgErrorsInterceptor(mainActivity);
|
||||||
final OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder()
|
final OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder()
|
||||||
.followRedirects(false)
|
.followRedirects(false)
|
||||||
.followSslRedirects(false)
|
.followSslRedirects(false)
|
||||||
@ -64,7 +66,7 @@ public final class RetrofitFactory {
|
|||||||
// clientBuilder.addInterceptor(new LoggingInterceptor());
|
// clientBuilder.addInterceptor(new LoggingInterceptor());
|
||||||
}
|
}
|
||||||
clientBuilder.addInterceptor(new AddCookiesInterceptor())
|
clientBuilder.addInterceptor(new AddCookiesInterceptor())
|
||||||
.addInterceptor(new IgErrorsInterceptor(mainActivity));
|
.addInterceptor(igErrorsInterceptor);
|
||||||
final Gson gson = new GsonBuilder()
|
final Gson gson = new GsonBuilder()
|
||||||
.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
|
.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
|
||||||
.registerTypeAdapter(Caption.class, new Caption.CaptionDeserializer())
|
.registerTypeAdapter(Caption.class, new Caption.CaptionDeserializer())
|
||||||
@ -95,4 +97,16 @@ public final class RetrofitFactory {
|
|||||||
}
|
}
|
||||||
return retrofitWeb;
|
return retrofitWeb;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void destroy() {
|
||||||
|
if (igErrorsInterceptor != null) {
|
||||||
|
igErrorsInterceptor.destroy();
|
||||||
|
}
|
||||||
|
igErrorsInterceptor = null;
|
||||||
|
mainActivity = null;
|
||||||
|
retrofit = null;
|
||||||
|
retrofitWeb = null;
|
||||||
|
builder = null;
|
||||||
|
instance = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ import okhttp3.ResponseBody;
|
|||||||
public class IgErrorsInterceptor implements Interceptor {
|
public class IgErrorsInterceptor implements Interceptor {
|
||||||
private static final String TAG = IgErrorsInterceptor.class.getSimpleName();
|
private static final String TAG = IgErrorsInterceptor.class.getSimpleName();
|
||||||
|
|
||||||
private final MainActivity mainActivity;
|
private MainActivity mainActivity;
|
||||||
|
|
||||||
public IgErrorsInterceptor(@NonNull final MainActivity mainActivity) {
|
public IgErrorsInterceptor(@NonNull final MainActivity mainActivity) {
|
||||||
this.mainActivity = mainActivity;
|
this.mainActivity = mainActivity;
|
||||||
@ -94,6 +94,7 @@ public class IgErrorsInterceptor implements Interceptor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void showErrorDialog(@StringRes final int messageResId) {
|
private void showErrorDialog(@StringRes final int messageResId) {
|
||||||
|
if (mainActivity == null) return;
|
||||||
if (messageResId == 0) return;
|
if (messageResId == 0) return;
|
||||||
final ConfirmDialogFragment dialogFragment = ConfirmDialogFragment.newInstance(
|
final ConfirmDialogFragment dialogFragment = ConfirmDialogFragment.newInstance(
|
||||||
Constants.GLOBAL_NETWORK_ERROR_DIALOG_REQUEST_CODE,
|
Constants.GLOBAL_NETWORK_ERROR_DIALOG_REQUEST_CODE,
|
||||||
@ -105,4 +106,8 @@ public class IgErrorsInterceptor implements Interceptor {
|
|||||||
);
|
);
|
||||||
dialogFragment.show(mainActivity.getSupportFragmentManager(), "network_error_dialog");
|
dialogFragment.show(mainActivity.getSupportFragmentManager(), "network_error_dialog");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void destroy() {
|
||||||
|
mainActivity = null;
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user