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.