Skip to content

Commit 5fdb6fc

Browse files
ashishkumar468domdomegg
authored andcommitted
Fix #2791: NPE when nominating for deletion and leaving screen (#2792)
1 parent 6ea1c81 commit 5fdb6fc

File tree

1 file changed

+18
-17
lines changed

1 file changed

+18
-17
lines changed

app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
import android.annotation.SuppressLint;
44
import android.app.AlertDialog;
5-
import android.content.ClipData;
6-
import android.content.ClipboardManager;
75
import android.content.Intent;
86
import android.database.DataSetObserver;
97
import android.net.Uri;
@@ -24,15 +22,6 @@
2422
import android.widget.Spinner;
2523
import android.widget.TextView;
2624
import 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-
3625
import butterknife.BindView;
3726
import butterknife.ButterKnife;
3827
import butterknife.OnClick;
@@ -56,9 +45,14 @@
5645
import io.reactivex.Single;
5746
import io.reactivex.android.schedulers.AndroidSchedulers;
5847
import 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;
5954
import timber.log.Timber;
6055

61-
import static android.content.Context.CLIPBOARD_SERVICE;
6256
import static android.view.View.GONE;
6357
import static android.view.View.VISIBLE;
6458
import 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

Comments
 (0)