/* Android IMSI-Catcher Detector | (c) AIMSICD Privacy Project * ----------------------------------------------------------- * LICENSE: http://git.io/vki47 | TERMS: http://git.io/vki4o * ----------------------------------------------------------- */ package com.secupwn.aimsicd.utils; import android.os.AsyncTask; import com.secupwn.aimsicd.AndroidIMSICatcherDetector; import java.lang.ref.WeakReference; import io.freefair.android.injection.app.InjectionAppCompatActivity; public abstract class BaseAsyncTask<TParams, TProgress, TResult> extends AsyncTask<TParams, TProgress, TResult> { protected AndroidIMSICatcherDetector mApp; protected WeakReference<InjectionAppCompatActivity> mWeakReferenceActivity; public BaseAsyncTask(InjectionAppCompatActivity activity) { mWeakReferenceActivity = new WeakReference<>(activity); mApp = (AndroidIMSICatcherDetector) activity.getApplication(); activity.getInjector().inject(this); } public void setActivity(InjectionAppCompatActivity activity) { if (activity == null) { mWeakReferenceActivity.clear(); onActivityDetached(); } else { onActivityAttached(); mWeakReferenceActivity = new WeakReference<>(activity); } } protected void onActivityAttached() { } protected void onActivityDetached() { } @Override protected void onPreExecute() { mApp.addTask(mWeakReferenceActivity.get(), this); } @Override protected void onPostExecute(TResult result) { mApp.removeTask(this); } @Override protected void onCancelled() { mApp.removeTask(this); } protected InjectionAppCompatActivity getActivity() { return mWeakReferenceActivity.get(); } }