22
33import android .annotation .SuppressLint ;
44import android .app .AlertDialog ;
5- import android .content .ClipData ;
6- import android .content .ClipboardManager ;
75import android .content .Intent ;
86import android .database .DataSetObserver ;
97import android .net .Uri ;
2422import android .widget .Spinner ;
2523import android .widget .TextView ;
2624import android .widget .Toast ;
27-
28- import java .io .IOException ;
29- import java .util .ArrayList ;
30- import java .util .Date ;
31- import java .util .Locale ;
32-
33- import javax .inject .Inject ;
34- import javax .inject .Provider ;
35-
3625import butterknife .BindView ;
3726import butterknife .ButterKnife ;
3827import butterknife .OnClick ;
5645import io .reactivex .Single ;
5746import io .reactivex .android .schedulers .AndroidSchedulers ;
5847import io .reactivex .schedulers .Schedulers ;
48+ import java .io .IOException ;
49+ import java .util .ArrayList ;
50+ import java .util .Date ;
51+ import java .util .Locale ;
52+ import javax .inject .Inject ;
53+ import javax .inject .Provider ;
5954import timber .log .Timber ;
6055
61- import static android .content .Context .CLIPBOARD_SERVICE ;
6256import static android .view .View .GONE ;
6357import static android .view .View .VISIBLE ;
6458import static android .widget .Toast .LENGTH_SHORT ;
@@ -71,7 +65,7 @@ public class MediaDetailFragment extends CommonsDaggerSupportFragment {
7165 private int index ;
7266 private Locale locale ;
7367 private boolean isDeleted = false ;
74-
68+ private DeleteTask deleteTask ;
7569
7670 public static MediaDetailFragment forMedia (int index , boolean editable , boolean isCategoryImage ) {
7771 MediaDetailFragment mf = new MediaDetailFragment ();
@@ -336,6 +330,11 @@ public void onDestroyView() {
336330 detailProvider .unregisterDataSetObserver (dataObserver );
337331 dataObserver = null ;
338332 }
333+
334+ if (deleteTask != null ) {
335+ deleteTask .cancel (true );
336+ deleteTask = null ;
337+ }
339338 super .onDestroyView ();
340339 }
341340
@@ -424,10 +423,12 @@ private void onDeleteClicked(Spinner spinner) {
424423 .subscribeOn (Schedulers .io ())
425424 .observeOn (AndroidSchedulers .mainThread ())
426425 .subscribe (s -> {
427- DeleteTask deleteTask = new DeleteTask (getActivity (), media , reason );
428- deleteTask .execute ();
429- isDeleted = true ;
430- enableDeleteButton (false );
426+ if (getActivity () != null ) {
427+ deleteTask = new DeleteTask (getActivity (), media , reason );
428+ deleteTask .execute ();
429+ isDeleted = true ;
430+ enableDeleteButton (false );
431+ }
431432 });
432433 }
433434
0 commit comments