From e7d3584b8db1db41232397a05de1d1ac3ab91408 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 7 Jun 2018 16:48:32 +1000 Subject: [PATCH 1/2] Add forceLogin to case where authentication fails during upload --- .../main/java/fr/free/nrw/commons/auth/LoginActivity.java | 6 ++++++ .../main/java/fr/free/nrw/commons/auth/SessionManager.java | 6 ++++++ .../main/java/fr/free/nrw/commons/upload/UploadService.java | 2 +- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java b/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java index b19d70a4e2..959244e974 100644 --- a/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java @@ -6,6 +6,7 @@ import android.accounts.AccountManager; import android.app.Activity; import android.app.ProgressDialog; +import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.net.Uri; @@ -136,6 +137,11 @@ public void onCreate(Bundle savedInstanceState) { } } + public static void startYourself(Context context) { + Intent intent = new Intent(context, LoginActivity.class); + context.startActivity(intent); + } + private void forgotPassword() { Utils.handleWebUrl(this, Uri.parse(BuildConfig.FORGOT_PASSWORD_URL)); } diff --git a/app/src/main/java/fr/free/nrw/commons/auth/SessionManager.java b/app/src/main/java/fr/free/nrw/commons/auth/SessionManager.java index ad9a0bda40..9ef6b78433 100644 --- a/app/src/main/java/fr/free/nrw/commons/auth/SessionManager.java +++ b/app/src/main/java/fr/free/nrw/commons/auth/SessionManager.java @@ -81,6 +81,12 @@ public boolean isUserLoggedIn() { return sharedPreferences.getBoolean("isUserLoggedIn", false); } + public void forceLogin(Context context) { + if (context != null) { + LoginActivity.startYourself(context); + } + } + public Completable clearAllAccounts() { AccountManager accountManager = AccountManager.get(context); Account[] allAccounts = accountManager.getAccountsByType(ACCOUNT_TYPE); diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadService.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadService.java index 4c05eb7b0e..69b958ef13 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadService.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadService.java @@ -239,10 +239,10 @@ private void uploadContribution(Contribution contribution) { Timber.d("Successfully revalidated token!"); } else { Timber.d("Unable to revalidate :("); - // TODO: Put up a new notification, ask them to re-login stopForeground(true); Toast failureToast = Toast.makeText(this, R.string.authentication_failed, Toast.LENGTH_LONG); failureToast.show(); + sessionManager.forceLogin(this); return; } } From 7e40f434af9fab3243d221f5c3951ea3e70aab63 Mon Sep 17 00:00:00 2001 From: misaochan Date: Thu, 7 Jun 2018 16:53:27 +1000 Subject: [PATCH 2/2] More explicit failure toast --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 25934ab0c4..e30cc3dde1 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -18,7 +18,7 @@ Login success! Login failed! File not found. Please try another file. - Authentication failed! + Authentication failed, please login again Upload started! %1$s uploaded! Tap to view your upload