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 f4d5dd7c9..efa0165a9 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 @@ -215,6 +215,7 @@ public class LoginActivity extends AccountAuthenticatorActivity { loginCurrentlyInProgress = true; Timber.d("Login to start!"); final String username = canonicializeUsername(usernameEdit.getText().toString()); + final String rawUsername = Utils.capitalize(usernameEdit.getText().toString().trim()); final String password = passwordEdit.getText().toString(); String twoFactorCode = twoFactorEdit.getText().toString(); @@ -222,7 +223,7 @@ public class LoginActivity extends AccountAuthenticatorActivity { Observable.fromCallable(() -> login(username, password, twoFactorCode)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(result -> handleLogin(username, password, result)); + .subscribe(result -> handleLogin(username, rawUsername, password, result)); } private String login(String username, String password, String twoFactorCode) { @@ -238,10 +239,10 @@ public class LoginActivity extends AccountAuthenticatorActivity { } } - private void handleLogin(String username, String password, String result) { + private void handleLogin(String username, String rawUsername, String password, String result) { Timber.d("Login done!"); if (result.equals("PASS")) { - handlePassResult(username, password); + handlePassResult(username, rawUsername , password); } else { loginCurrentlyInProgress = false; errorMessageShown = true; @@ -259,7 +260,7 @@ public class LoginActivity extends AccountAuthenticatorActivity { progressDialog.show(); } - private void handlePassResult(String username, String password) { + private void handlePassResult(String username, String rawUsername, String password) { showSuccessAndDismissDialog(); requestAuthToken(); AccountAuthenticatorResponse response = null; @@ -276,7 +277,7 @@ public class LoginActivity extends AccountAuthenticatorActivity { } } - sessionManager.createAccount(response, username, password); + sessionManager.createAccount(response, username, rawUsername, password); startMainActivity(); } 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 e8745e25b..20cd06ed8 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 @@ -28,7 +28,8 @@ public class SessionManager { private final MediaWikiApi mediaWikiApi; private Account currentAccount; // Unlike a savings account... ;-) private SharedPreferences sharedPreferences; - + private static final String KEY_RAWUSERNAME = "rawusername"; + private Bundle userdata = new Bundle(); public SessionManager(Context context, MediaWikiApi mediaWikiApi, @@ -44,13 +45,15 @@ public class SessionManager { * * @param response * @param username + * @param rawusername * @param password */ public void createAccount(@Nullable AccountAuthenticatorResponse response, - String username, String password) { + String username, String rawusername, String password) { Account account = new Account(username, BuildConfig.ACCOUNT_TYPE); - boolean created = accountManager().addAccountExplicitly(account, password, null); + userdata.putString(KEY_RAWUSERNAME, rawusername); + boolean created = accountManager().addAccountExplicitly(account, password, userdata); Timber.d("account creation " + (created ? "successful" : "failure")); @@ -97,6 +100,17 @@ public class SessionManager { return account == null ? null : account.name; } + @Nullable + public String getRawUserName() { + Account account = getCurrentAccount(); + return account == null ? null : accountManager().getUserData(account, KEY_RAWUSERNAME); + } + + public String getAuthorName(){ + return getRawUserName() == null ? getUserName() : getRawUserName(); + } + + @Nullable public String getPassword() { Account account = getCurrentAccount(); 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 fd0563ab3..9a9682542 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 @@ -110,7 +110,7 @@ public class UploadController { sessionManager.forceLogin(context); return; } - contribution.setCreator(currentAccount.name); + contribution.setCreator(sessionManager.getAuthorName()); } if (contribution.getDescription() == null) { diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadModel.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadModel.java index 46193e958..a640ad3a4 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadModel.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadModel.java @@ -312,7 +312,7 @@ public class UploadModel { { Contribution contribution = new Contribution(item.mediaUri, null, item.title + "." + item.fileExt, Description.formatList(item.descriptions), -1, - null, null, sessionManager.getUserName(), + null, null, sessionManager.getAuthorName(), CommonsApplication.DEFAULT_EDIT_SUMMARY, item.gpsCoords.getCoords()); contribution.setWikiDataEntityId(item.wikidataEntityId); contribution.setCategories(categoryStringList); @@ -397,4 +397,4 @@ public class UploadModel { } } -} \ No newline at end of file +} diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 001321773..71869afd4 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,4 +1,4 @@ -#Sat Aug 25 23:38:03 EDT 2018 +#Sat Nov 03 11:02:51 CET 2018 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME