Always check whether context has been destroyed.

This commit is contained in:
akwizgran
2016-09-29 14:52:00 +01:00
parent f1730aa7d9
commit cb983f02c2
49 changed files with 310 additions and 340 deletions

View File

@@ -7,9 +7,10 @@ import android.support.annotation.UiThread;
import android.support.v4.app.Fragment;
import org.briarproject.android.ActivityComponent;
import org.briarproject.android.DestroyableActivity;
import org.briarproject.android.DestroyableContext;
public abstract class BaseFragment extends Fragment {
public abstract class BaseFragment extends Fragment
implements DestroyableContext {
protected BaseFragmentListener listener;
@@ -20,12 +21,7 @@ public abstract class BaseFragment extends Fragment {
@Override
public void onAttach(Context context) {
super.onAttach(context);
try {
listener = (BaseFragmentListener) context;
} catch (ClassCastException e) {
throw new ClassCastException(
"Using class must implement BaseFragmentListener");
}
listener = (BaseFragmentListener) context;
}
@Override
@@ -37,7 +33,7 @@ public abstract class BaseFragment extends Fragment {
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
this.injectFragment(listener.getActivityComponent());
injectFragment(listener.getActivityComponent());
listener.onFragmentCreated(getUniqueTag());
}
@@ -46,7 +42,7 @@ public abstract class BaseFragment extends Fragment {
getActivity().supportFinishAfterTransition();
}
public interface BaseFragmentListener extends DestroyableActivity {
public interface BaseFragmentListener extends DestroyableContext {
void runOnDbThread(Runnable runnable);
@@ -56,4 +52,9 @@ public abstract class BaseFragment extends Fragment {
@UiThread
void onFragmentCreated(String tag);
}
@Override
public void runOnUiThreadUnlessDestroyed(Runnable r) {
listener.runOnUiThreadUnlessDestroyed(r);
}
}