mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-27 21:03:54 +01:00
Merge pull request #1209 from hismaeel/1130(j)
issue #1130 -(j). bad Token Exception from showDialog() in ExistingFi…
This commit is contained in:
commit
c869581c2a
2 changed files with 16 additions and 7 deletions
|
|
@ -1,11 +1,13 @@
|
||||||
package fr.free.nrw.commons.upload;
|
package fr.free.nrw.commons.upload;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.support.v7.app.AlertDialog;
|
import android.support.v7.app.AlertDialog;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.lang.ref.WeakReference;
|
||||||
|
|
||||||
import fr.free.nrw.commons.R;
|
import fr.free.nrw.commons.R;
|
||||||
import fr.free.nrw.commons.contributions.ContributionsActivity;
|
import fr.free.nrw.commons.contributions.ContributionsActivity;
|
||||||
|
|
@ -28,12 +30,14 @@ public class ExistingFileAsync extends AsyncTask<Void, Void, Boolean> {
|
||||||
DUPLICATE_CANCELLED
|
DUPLICATE_CANCELLED
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private final WeakReference<Activity> activity;
|
||||||
private final MediaWikiApi api;
|
private final MediaWikiApi api;
|
||||||
private final String fileSha1;
|
private final String fileSha1;
|
||||||
private final Context context;
|
private final WeakReference<Context> context;
|
||||||
private final Callback callback;
|
private final Callback callback;
|
||||||
|
|
||||||
public ExistingFileAsync(String fileSha1, Context context, Callback callback, MediaWikiApi mwApi) {
|
public ExistingFileAsync(WeakReference<Activity> activity, String fileSha1, WeakReference<Context> context, Callback callback, MediaWikiApi mwApi) {
|
||||||
|
this.activity = activity;
|
||||||
this.fileSha1 = fileSha1;
|
this.fileSha1 = fileSha1;
|
||||||
this.context = context;
|
this.context = context;
|
||||||
this.callback = callback;
|
this.callback = callback;
|
||||||
|
|
@ -69,19 +73,21 @@ public class ExistingFileAsync extends AsyncTask<Void, Void, Boolean> {
|
||||||
// If file exists, display warning to user.
|
// If file exists, display warning to user.
|
||||||
// Use soft warning for now (user able to choose to proceed) until have determined that implementation works without bugs
|
// Use soft warning for now (user able to choose to proceed) until have determined that implementation works without bugs
|
||||||
if (fileExists) {
|
if (fileExists) {
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(context);
|
AlertDialog.Builder builder = new AlertDialog.Builder(context.get());
|
||||||
builder.setMessage(R.string.file_exists)
|
builder.setMessage(R.string.file_exists)
|
||||||
.setTitle(R.string.warning);
|
.setTitle(R.string.warning);
|
||||||
builder.setPositiveButton(R.string.no, (dialog, id) -> {
|
builder.setPositiveButton(R.string.no, (dialog, id) -> {
|
||||||
//Go back to ContributionsActivity
|
//Go back to ContributionsActivity
|
||||||
Intent intent = new Intent(context, ContributionsActivity.class);
|
Intent intent = new Intent(context.get(), ContributionsActivity.class);
|
||||||
context.startActivity(intent);
|
context.get().startActivity(intent);
|
||||||
callback.onResult(Result.DUPLICATE_CANCELLED);
|
callback.onResult(Result.DUPLICATE_CANCELLED);
|
||||||
});
|
});
|
||||||
builder.setNegativeButton(R.string.yes, (dialog, id) -> callback.onResult(Result.DUPLICATE_PROCEED));
|
builder.setNegativeButton(R.string.yes, (dialog, id) -> callback.onResult(Result.DUPLICATE_PROCEED));
|
||||||
|
|
||||||
AlertDialog dialog = builder.create();
|
AlertDialog dialog = builder.create();
|
||||||
dialog.show();
|
if (!activity.get().isFinishing()) {
|
||||||
|
dialog.show();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
callback.onResult(Result.NO_DUPLICATE);
|
callback.onResult(Result.NO_DUPLICATE);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
package fr.free.nrw.commons.upload;
|
package fr.free.nrw.commons.upload;
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
|
import android.app.Activity;
|
||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
|
|
@ -32,6 +34,7 @@ import java.io.File;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.lang.ref.WeakReference;
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
import java.security.MessageDigest;
|
import java.security.MessageDigest;
|
||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
|
|
@ -371,7 +374,7 @@ public class ShareActivity
|
||||||
Timber.d("File SHA1 is: %s", fileSHA1);
|
Timber.d("File SHA1 is: %s", fileSHA1);
|
||||||
|
|
||||||
ExistingFileAsync fileAsyncTask =
|
ExistingFileAsync fileAsyncTask =
|
||||||
new ExistingFileAsync(fileSHA1, this, result -> {
|
new ExistingFileAsync(new WeakReference<Activity>(this), fileSHA1, new WeakReference<Context>(this), result -> {
|
||||||
Timber.d("%s duplicate check: %s", mediaUri.toString(), result);
|
Timber.d("%s duplicate check: %s", mediaUri.toString(), result);
|
||||||
duplicateCheckPassed = (result == DUPLICATE_PROCEED
|
duplicateCheckPassed = (result == DUPLICATE_PROCEED
|
||||||
|| result == NO_DUPLICATE);
|
|| result == NO_DUPLICATE);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue