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 9ef6b78433..8961584398 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
@@ -5,6 +5,8 @@
import android.content.Context;
import android.content.SharedPreferences;
+import javax.annotation.Nullable;
+
import fr.free.nrw.commons.mwapi.MediaWikiApi;
import io.reactivex.Completable;
import io.reactivex.Observable;
@@ -31,6 +33,7 @@ public SessionManager(Context context, MediaWikiApi mediaWikiApi, SharedPreferen
/**
* @return Account|null
*/
+ @Nullable
public Account getCurrentAccount() {
if (currentAccount == null) {
AccountManager accountManager = AccountManager.get(context);
diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java
index 5fd6d909b9..40aae8636b 100644
--- a/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java
+++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java
@@ -1,5 +1,6 @@
package fr.free.nrw.commons.upload;
+import android.accounts.Account;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
@@ -13,6 +14,7 @@
import android.os.IBinder;
import android.provider.MediaStore;
import android.text.TextUtils;
+import android.widget.Toast;
import java.io.BufferedInputStream;
import java.io.IOException;
@@ -22,9 +24,11 @@
import fr.free.nrw.commons.CommonsApplication;
import fr.free.nrw.commons.HandlerService;
+import fr.free.nrw.commons.R;
import fr.free.nrw.commons.auth.SessionManager;
import fr.free.nrw.commons.contributions.Contribution;
import fr.free.nrw.commons.settings.Prefs;
+import fr.free.nrw.commons.utils.ViewUtil;
import timber.log.Timber;
public class UploadController {
@@ -95,8 +99,15 @@ public void startUpload(String title, Uri mediaUri, String description, String m
Contribution contribution;
//TODO: Modify this to include coords
+ Account currentAccount = sessionManager.getCurrentAccount();
+ if(currentAccount == null) {
+ Timber.d("Current account is null");
+ ViewUtil.showLongToast(context, context.getString(R.string.user_not_logged_in));
+ sessionManager.forceLogin(context);
+ return;
+ }
contribution = new Contribution(mediaUri, null, title, description, -1,
- null, null, sessionManager.getCurrentAccount().name,
+ null, null, currentAccount.name,
CommonsApplication.DEFAULT_EDIT_SUMMARY, decimalCoords);
contribution.setTag("mimeType", mimeType);
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index d2acdb2459..7134afc61c 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -287,4 +287,6 @@
Failed to update corresponding Wikidata entity!
Set wallpaper
Wallpaper set successfully!
+
+ Login session expired, please log in again.