From af3f1098a496297a7b85f1c4bcd046e1385a9f34 Mon Sep 17 00:00:00 2001 From: sherlock Date: Wed, 12 Jun 2019 16:52:08 +0530 Subject: [PATCH] user talk and dialog box fix --- .../free/nrw/commons/delete/DeleteHelper.java | 2 +- .../commons/media/MediaDetailFragment.java | 27 ++++++++++++++++--- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/delete/DeleteHelper.java b/app/src/main/java/fr/free/nrw/commons/delete/DeleteHelper.java index 0b0d8fde49..1b72833dd2 100644 --- a/app/src/main/java/fr/free/nrw/commons/delete/DeleteHelper.java +++ b/app/src/main/java/fr/free/nrw/commons/delete/DeleteHelper.java @@ -110,7 +110,7 @@ private boolean delete(Media media, String reason) { mwApi.appendEdit(editToken, logPageString + "\n", "Commons:Deletion_requests/" + date, summary); mwApi.appendEdit(editToken, userPageString + "\n", - "User_Talk:" + sessionManager.getCurrentAccount().name, summary); + "User_Talk:" + media.getCreator(), summary); } catch (Exception e) { Timber.e(e); return false; diff --git a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java index 72789e1fcc..759d45a00e 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java @@ -44,6 +44,7 @@ import fr.free.nrw.commons.MediaDataExtractor; import fr.free.nrw.commons.R; import fr.free.nrw.commons.Utils; +import fr.free.nrw.commons.auth.AccountUtil; import fr.free.nrw.commons.category.CategoryDetailsActivity; import fr.free.nrw.commons.contributions.ContributionsFragment; import fr.free.nrw.commons.delete.DeleteHelper; @@ -367,6 +368,7 @@ public void onCopyWikicodeClicked(){ @OnClick(R.id.nominateDeletion) public void onDeleteButtonClicked(){ + if(AccountUtil.getUserName(getContext()).equals(media.getCreator())){ final ArrayAdapter languageAdapter = new ArrayAdapter<>(getActivity(), R.layout.simple_spinner_dropdown_list, reasonList); final Spinner spinner = new Spinner(getActivity()); @@ -384,19 +386,19 @@ public void onDeleteButtonClicked(){ if(isDeleted) { dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false); } + } //Reviewer correct me if i have misunderstood something over here //But how does this if (delete.getVisibility() == View.VISIBLE) { // enableDeleteButton(true); makes sense ? + else{ AlertDialog.Builder alert = new AlertDialog.Builder(getActivity()); - alert.setMessage("Why should this fileckathon-2018 be deleted?"); + alert.setMessage("Why should "+ media.getDisplayTitle() +" be deleted?"); final EditText input = new EditText(getActivity()); alert.setView(input); input.requestFocus(); alert.setPositiveButton(R.string.ok, (dialog1, whichButton) -> { String reason = input.getText().toString(); - - deleteHelper.makeDeletion(getContext(), media, reason); - enableDeleteButton(false); + onDeleteClickeddialogtext(reason); }); alert.setNegativeButton(R.string.cancel, (dialog12, whichButton) -> { }); @@ -427,6 +429,7 @@ public void onTextChanged(CharSequence s, int start, int before, int count) { d.show(); d.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false); } + } @SuppressLint("CheckResult") private void onDeleteClicked(Spinner spinner) { @@ -445,6 +448,22 @@ private void onDeleteClicked(Spinner spinner) { } + @SuppressLint("CheckResult") + private void onDeleteClickeddialogtext(String reason) { + Single resultSingletext = reasonBuilder.getReason(media, reason) + .flatMap(reasonString -> deleteHelper.makeDeletion(getContext(), media, reason)); + compositeDisposable.add(resultSingletext + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(s -> { + if (getActivity() != null) { + isDeleted = true; + enableDeleteButton(false); + } + })); + + } + @OnClick(R.id.seeMore) public void onSeeMoreClicked(){ if (nominatedForDeletion.getVisibility() == VISIBLE && getActivity() != null) {