diff --git a/app/build.gradle b/app/build.gradle index 668dbe823..f80e02c65 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -200,3 +200,15 @@ dependencies { androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0' androidTestImplementation 'androidx.work:work-testing:2.7.1' } + +// org.fdroid.fdroid.updater.UpdateServiceTest needs app-full-debug.apk +android.productFlavors.all { flavor -> + if (flavor.name.equals("full")) { + project.afterEvaluate { project -> + def dep = tasks.getByName("assembleFullDebug") + project.tasks.withType(Test) { task -> + task.dependsOn dep + } + } + } +} diff --git a/app/src/main/java/org/fdroid/fdroid/compat/LocaleCompat.java b/app/src/main/java/org/fdroid/fdroid/compat/LocaleCompat.java new file mode 100644 index 000000000..f2931306c --- /dev/null +++ b/app/src/main/java/org/fdroid/fdroid/compat/LocaleCompat.java @@ -0,0 +1,17 @@ +package org.fdroid.fdroid.compat; + +import android.os.Build; +import java.util.Locale; + +/** + * @see use default DISPLAY category Locale + */ +public class LocaleCompat { + public static Locale getDefault() { + if (Build.VERSION.SDK_INT >= 24) { + return Locale.getDefault(java.util.Locale.Category.DISPLAY); + } else { + return Locale.getDefault(); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/org/fdroid/fdroid/views/RepoDetailsActivity.java b/app/src/main/java/org/fdroid/fdroid/views/RepoDetailsActivity.java index 6e22d85af..440d78f41 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/RepoDetailsActivity.java +++ b/app/src/main/java/org/fdroid/fdroid/views/RepoDetailsActivity.java @@ -47,13 +47,13 @@ import org.fdroid.fdroid.NfcNotEnabledActivity; import org.fdroid.fdroid.R; import org.fdroid.fdroid.UpdateService; import org.fdroid.fdroid.Utils; +import org.fdroid.fdroid.compat.LocaleCompat; import org.fdroid.fdroid.data.App; import org.fdroid.fdroid.data.DBHelper; import java.util.ArrayList; import java.util.HashSet; import java.util.List; -import java.util.Locale; import java.util.concurrent.Callable; import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; @@ -413,7 +413,7 @@ public class RepoDetailsActivity extends AppCompatActivity { disposable = Single.fromCallable(() -> appDao.getNumberOfAppsInRepository(repoId)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(appCount -> numApps.setText(String.format(Locale.getDefault(), "%d", appCount))); + .subscribe(appCount -> numApps.setText(String.format(LocaleCompat.getDefault(), "%d", appCount))); setupDescription(repoView, repo); setupRepoFingerprint(repoView, repo); diff --git a/app/src/main/java/org/fdroid/fdroid/views/apps/AppListActivity.java b/app/src/main/java/org/fdroid/fdroid/views/apps/AppListActivity.java index 745f5ead2..d1da61657 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/apps/AppListActivity.java +++ b/app/src/main/java/org/fdroid/fdroid/views/apps/AppListActivity.java @@ -44,6 +44,7 @@ import org.fdroid.fdroid.FDroidApp; import org.fdroid.fdroid.Preferences; import org.fdroid.fdroid.R; import org.fdroid.fdroid.Utils; +import org.fdroid.fdroid.compat.LocaleCompat; import org.fdroid.fdroid.data.DBHelper; import org.fdroid.fdroid.views.main.MainActivity; @@ -57,7 +58,6 @@ import androidx.recyclerview.widget.RecyclerView; import java.util.Collections; import java.util.List; -import java.util.Locale; /** * Provides scrollable listing of apps for search and category views. @@ -269,9 +269,9 @@ public class AppListActivity extends AppCompatActivity implements CategoryTextWa return Long.compare(o2.getLastUpdated(), o1.getLastUpdated()); } else if (sortClauseSelected.equals(SortClause.WORDS)) { String n1 = (o1.getName() == null ? "" : o1.getName()) - .toLowerCase(Locale.getDefault()); + .toLowerCase(LocaleCompat.getDefault()); String n2 = (o2.getName() == null ? "" : o2.getName()) - .toLowerCase(Locale.getDefault()); + .toLowerCase(LocaleCompat.getDefault()); return n1.compareTo(n2); } return 0; diff --git a/app/src/main/java/org/fdroid/fdroid/work/FDroidMetricsWorker.java b/app/src/main/java/org/fdroid/fdroid/work/FDroidMetricsWorker.java index 5a3254a5c..2d961a8f9 100644 --- a/app/src/main/java/org/fdroid/fdroid/work/FDroidMetricsWorker.java +++ b/app/src/main/java/org/fdroid/fdroid/work/FDroidMetricsWorker.java @@ -30,6 +30,7 @@ import org.apache.commons.io.FileUtils; import org.fdroid.download.HttpPoster; import org.fdroid.fdroid.Preferences; import org.fdroid.fdroid.Utils; +import org.fdroid.fdroid.compat.LocaleCompat; import org.fdroid.fdroid.installer.InstallHistoryService; import org.fdroid.fdroid.net.DownloaderFactory; import org.json.JSONArray; @@ -281,7 +282,7 @@ public class FDroidMetricsWorker extends Worker { private static class CleanInsightsReport { MatomoEvent[] events = new MatomoEvent[0]; final long idsite = 3; // NOPMD - final String lang = Locale.getDefault().getLanguage(); + final String lang = LocaleCompat.getDefault().getLanguage(); final String ua = Utils.getUserAgent(); private String getJsonString() throws JSONException {