diff --git a/app/src/main/java/fr/free/nrw/commons/upload/license/MediaLicenseFragment.kt b/app/src/main/java/fr/free/nrw/commons/upload/license/MediaLicenseFragment.kt
index 704f84c78..e8ae5b4d3 100644
--- a/app/src/main/java/fr/free/nrw/commons/upload/license/MediaLicenseFragment.kt
+++ b/app/src/main/java/fr/free/nrw/commons/upload/license/MediaLicenseFragment.kt
@@ -21,6 +21,7 @@ import fr.free.nrw.commons.databinding.FragmentMediaLicenseBinding
import fr.free.nrw.commons.upload.UploadActivity
import fr.free.nrw.commons.upload.UploadBaseFragment
import fr.free.nrw.commons.utils.DialogUtil.showAlertDialog
+import fr.free.nrw.commons.utils.Licenses
import timber.log.Timber
import javax.inject.Inject
@@ -126,20 +127,20 @@ class MediaLicenseFragment : UploadBaseFragment(), MediaLicenseContract.View {
}
override fun setSelectedLicense(license: String?) {
- var position = licenses!!.indexOf(getString(Utils.licenseNameFor(license)))
+ var position = licenses!!.indexOf(getString(Licenses.licenseNameFor(license)))
// Check if position is valid
if (position < 0) {
Timber.d("Invalid position: %d. Using default licenses", position)
position = licenses!!.size - 1
} else {
- Timber.d("Position: %d %s", position, getString(Utils.licenseNameFor(license)))
+ Timber.d("Position: %d %s", position, getString(Licenses.licenseNameFor(license)))
}
binding.spinnerLicenseList.setSelection(position)
}
override fun updateLicenseSummary(selectedLicense: String?, numberOfItems: Int) {
- val licenseHyperLink = "" +
- getString(Utils.licenseNameFor(selectedLicense)) + "
"
+ val licenseHyperLink = "" +
+ getString(Licenses.licenseNameFor(selectedLicense)) + "
"
setTextViewHTML(
binding.tvShareLicenseSummary, resources
diff --git a/app/src/main/java/fr/free/nrw/commons/upload/license/MediaLicensePresenter.kt b/app/src/main/java/fr/free/nrw/commons/upload/license/MediaLicensePresenter.kt
index 22f7653b7..e10e96632 100644
--- a/app/src/main/java/fr/free/nrw/commons/upload/license/MediaLicensePresenter.kt
+++ b/app/src/main/java/fr/free/nrw/commons/upload/license/MediaLicensePresenter.kt
@@ -1,9 +1,9 @@
package fr.free.nrw.commons.upload.license
-import fr.free.nrw.commons.utils.Utils
import fr.free.nrw.commons.kvstore.JsonKvStore
import fr.free.nrw.commons.repository.UploadRepository
import fr.free.nrw.commons.settings.Prefs
+import fr.free.nrw.commons.utils.Licenses
import timber.log.Timber
import java.lang.reflect.Method
import java.lang.reflect.Proxy
@@ -39,7 +39,7 @@ class MediaLicensePresenter @Inject constructor(
Prefs.Licenses.CC_BY_SA_4
) //CC_BY_SA_4 is the default one used by the commons web app
try { //I have to make sure that the stored default license was not one of the deprecated one's
- Utils.licenseNameFor(selectedLicense)
+ Licenses.licenseNameFor(selectedLicense)
} catch (exception: IllegalStateException) {
Timber.e(exception)
selectedLicense = Prefs.Licenses.CC_BY_SA_4
diff --git a/app/src/main/java/fr/free/nrw/commons/utils/Licenses.java b/app/src/main/java/fr/free/nrw/commons/utils/Licenses.java
new file mode 100644
index 000000000..b7b1b41f8
--- /dev/null
+++ b/app/src/main/java/fr/free/nrw/commons/utils/Licenses.java
@@ -0,0 +1,52 @@
+package fr.free.nrw.commons.utils;
+
+import androidx.annotation.NonNull;
+import fr.free.nrw.commons.R;
+import fr.free.nrw.commons.settings.Prefs;
+
+public final class Licenses {
+
+ /**
+ * Generates licence name with given ID
+ * @param license License ID
+ * @return Name of license
+ */
+ public static int licenseNameFor(String license) {
+ switch (license) {
+ case Prefs.Licenses.CC_BY_3:
+ return R.string.license_name_cc_by;
+ case Prefs.Licenses.CC_BY_4:
+ return R.string.license_name_cc_by_four;
+ case Prefs.Licenses.CC_BY_SA_3:
+ return R.string.license_name_cc_by_sa;
+ case Prefs.Licenses.CC_BY_SA_4:
+ return R.string.license_name_cc_by_sa_four;
+ case Prefs.Licenses.CC0:
+ return R.string.license_name_cc0;
+ }
+ throw new IllegalStateException("Unrecognized license value: " + license);
+ }
+
+ /**
+ * Generates license url with given ID
+ * @param license License ID
+ * @return Url of license
+ */
+ @NonNull
+ public static String licenseUrlFor(String license) {
+ switch (license) {
+ case Prefs.Licenses.CC_BY_3:
+ return "https://creativecommons.org/licenses/by/3.0/";
+ case Prefs.Licenses.CC_BY_4:
+ return "https://creativecommons.org/licenses/by/4.0/";
+ case Prefs.Licenses.CC_BY_SA_3:
+ return "https://creativecommons.org/licenses/by-sa/3.0/";
+ case Prefs.Licenses.CC_BY_SA_4:
+ return "https://creativecommons.org/licenses/by-sa/4.0/";
+ case Prefs.Licenses.CC0:
+ return "https://creativecommons.org/publicdomain/zero/1.0/";
+ default:
+ throw new IllegalStateException("Unrecognized license value: " + license);
+ }
+ }
+}
diff --git a/app/src/main/java/fr/free/nrw/commons/utils/Utils.java b/app/src/main/java/fr/free/nrw/commons/utils/Utils.java
index 417b69cd8..102f2a55a 100644
--- a/app/src/main/java/fr/free/nrw/commons/utils/Utils.java
+++ b/app/src/main/java/fr/free/nrw/commons/utils/Utils.java
@@ -11,7 +11,6 @@ import android.text.style.UnderlineSpan;
import android.view.View;
import android.widget.TextView;
-import androidx.annotation.NonNull;
import androidx.browser.customtabs.CustomTabColorSchemeParams;
import androidx.browser.customtabs.CustomTabsIntent;
import androidx.core.content.ContextCompat;
@@ -25,55 +24,10 @@ import java.util.Locale;
import java.util.regex.Pattern;
import fr.free.nrw.commons.location.LatLng;
-import fr.free.nrw.commons.settings.Prefs;
import timber.log.Timber;
public class Utils {
- /**
- * Generates licence name with given ID
- * @param license License ID
- * @return Name of license
- */
- public static int licenseNameFor(String license) {
- switch (license) {
- case Prefs.Licenses.CC_BY_3:
- return R.string.license_name_cc_by;
- case Prefs.Licenses.CC_BY_4:
- return R.string.license_name_cc_by_four;
- case Prefs.Licenses.CC_BY_SA_3:
- return R.string.license_name_cc_by_sa;
- case Prefs.Licenses.CC_BY_SA_4:
- return R.string.license_name_cc_by_sa_four;
- case Prefs.Licenses.CC0:
- return R.string.license_name_cc0;
- }
- throw new IllegalStateException("Unrecognized license value: " + license);
- }
-
- /**
- * Generates license url with given ID
- * @param license License ID
- * @return Url of license
- */
- @NonNull
- public static String licenseUrlFor(String license) {
- switch (license) {
- case Prefs.Licenses.CC_BY_3:
- return "https://creativecommons.org/licenses/by/3.0/";
- case Prefs.Licenses.CC_BY_4:
- return "https://creativecommons.org/licenses/by/4.0/";
- case Prefs.Licenses.CC_BY_SA_3:
- return "https://creativecommons.org/licenses/by-sa/3.0/";
- case Prefs.Licenses.CC_BY_SA_4:
- return "https://creativecommons.org/licenses/by-sa/4.0/";
- case Prefs.Licenses.CC0:
- return "https://creativecommons.org/publicdomain/zero/1.0/";
- default:
- throw new IllegalStateException("Unrecognized license value: " + license);
- }
- }
-
/**
* Adds extension to filename. Converts to .jpg if system provides .jpeg, adds .jpg if no extension detected
* @param title File name
diff --git a/app/src/test/kotlin/fr/free/nrw/commons/upload/MediaLicensePresenterTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/upload/MediaLicensePresenterTest.kt
index be6f01ec4..c118c6f9c 100644
--- a/app/src/test/kotlin/fr/free/nrw/commons/upload/MediaLicensePresenterTest.kt
+++ b/app/src/test/kotlin/fr/free/nrw/commons/upload/MediaLicensePresenterTest.kt
@@ -6,6 +6,7 @@ import fr.free.nrw.commons.kvstore.JsonKvStore
import fr.free.nrw.commons.repository.UploadRepository
import fr.free.nrw.commons.upload.license.MediaLicenseContract
import fr.free.nrw.commons.upload.license.MediaLicensePresenter
+import fr.free.nrw.commons.utils.Licenses
import org.junit.After
import org.junit.Before
import org.junit.Test
@@ -50,7 +51,7 @@ class MediaLicensePresenterTest {
MockitoAnnotations.openMocks(this)
mediaLicensePresenter.onAttachView(view)
mockedUtil = Mockito.mockStatic(Utils::class.java)
- `when`(Utils.licenseNameFor(ArgumentMatchers.anyString())).thenReturn(1)
+ `when`(Licenses.licenseNameFor(ArgumentMatchers.anyString())).thenReturn(1)
}
@After