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 b19d70a4e..959244e97 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.AccountAuthenticatorResponse; 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 class LoginActivity extends AccountAuthenticatorActivity { } } + 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 ad9a0bda4..9ef6b7843 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 class SessionManager { 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 4c05eb7b0..69b958ef1 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 @@ public class UploadService extends HandlerService { 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; } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e7b7b30a2..c0e6fb719 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