diff --git a/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.java b/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.java index e7d39c6af..79fde71e4 100644 --- a/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.java @@ -63,6 +63,15 @@ public class SettingsFragment extends PreferenceFragment { return true; }); + //Check if the Author Name switch is enabled and appropriately handle the author name usage + SwitchPreference useAuthorName = (SwitchPreference) findPreference("useAuthorName"); + EditTextPreference authorName = (EditTextPreference) findPreference("authorName"); + authorName.setEnabled(prefs.getBoolean("useAuthorName", false)); + useAuthorName.setOnPreferenceChangeListener((preference, newValue) -> { + authorName.setEnabled((Boolean)newValue); + return true; + }); + final EditTextPreference uploadLimit = (EditTextPreference) findPreference("uploads"); int uploads = prefs.getInt(Prefs.UPLOADS_SHOWING, 100); uploadLimit.setText(uploads + ""); 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 680a16714..6b63eb0c9 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 @@ -13,6 +13,7 @@ import android.database.Cursor; import android.net.Uri; import android.os.AsyncTask; import android.os.IBinder; +import android.preference.PreferenceManager; import android.provider.MediaStore; import android.text.TextUtils; @@ -103,6 +104,15 @@ public class UploadController { @SuppressLint("StaticFieldLeak") private void startUpload(final Contribution contribution, final ContributionUploadProgress onComplete) { //Set creator, desc, and license + + // If author name is enabled and set, use it + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); + + if(preferences != null && preferences.getBoolean("useAuthorName", false)) { + String authorName = preferences.getString("authorName", ""); + contribution.setCreator(authorName); + } + if (TextUtils.isEmpty(contribution.getCreator())) { Account currentAccount = sessionManager.getCurrentAccount(); if (currentAccount == null) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3f25a4e5c..1f99d0773 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -370,6 +370,10 @@ Error occurred! Commons Notification + Use custom author name + Use a custom author name instead of your username while uploading photos + Custom author name + The custom author name to use instead of your username in uploads Contributions Nearby Notifications diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 39d0f3872..cde68728a 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -36,6 +36,17 @@ android:inputType="numberDecimal" android:maxLength="3" /> + + + +