Merge branch 'locales-list' into 'master'
Improve locales list ordering of less common languages See merge request fdroid/fdroidclient!1382
This commit is contained in:
commit
71e982c18e
|
@ -34,7 +34,6 @@ import android.content.pm.PackageInfo;
|
|||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.content.res.Configuration;
|
||||
import android.content.res.Resources;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Environment;
|
||||
|
@ -50,7 +49,6 @@ import androidx.annotation.Nullable;
|
|||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.app.AppCompatDelegate;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.core.os.ConfigurationCompat;
|
||||
import androidx.core.os.LocaleListCompat;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
|
@ -257,8 +255,7 @@ public class FDroidApp extends Application implements androidx.work.Configuratio
|
|||
FDroidDatabase db = DBHelper.getDb(context);
|
||||
Single.fromCallable(() -> {
|
||||
long now = System.currentTimeMillis();
|
||||
LocaleListCompat locales =
|
||||
ConfigurationCompat.getLocales(Resources.getSystem().getConfiguration());
|
||||
LocaleListCompat locales = App.getLocales();
|
||||
db.afterLocalesChanged(locales);
|
||||
Log.d(TAG, "Updating DB locales took: " + (System.currentTimeMillis() - now) + "ms");
|
||||
return true;
|
||||
|
|
|
@ -5,7 +5,6 @@ import android.content.pm.ApplicationInfo;
|
|||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.res.AssetManager;
|
||||
import android.content.res.Resources;
|
||||
import android.content.res.XmlResourceParser;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.drawable.Drawable;
|
||||
|
@ -19,7 +18,6 @@ import android.util.Log;
|
|||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.content.pm.PackageInfoCompat;
|
||||
import androidx.core.os.ConfigurationCompat;
|
||||
import androidx.core.os.LocaleListCompat;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
|
@ -75,7 +73,13 @@ public class App implements Comparable<App>, Parcelable {
|
|||
public static LocaleListCompat getLocales() {
|
||||
LocaleListCompat cached = systemLocaleList;
|
||||
if (cached == null) {
|
||||
cached = ConfigurationCompat.getLocales(Resources.getSystem().getConfiguration());
|
||||
// Tries to get the device locales list set by the user in system settings.
|
||||
// The official docs are less than apparent in this regard, but empirically,
|
||||
// `ConfigurationCompat.getLocales(Resources.getSystem().getConfiguration())`
|
||||
// seems to push back languages marked "May not be available in some apps"
|
||||
// in Settings UI while `LocaleListCompat.getDefault()` appears to preserve
|
||||
// the user-preferred order so we prefer the latter here
|
||||
cached = LocaleListCompat.getDefault();
|
||||
systemLocaleList = cached;
|
||||
}
|
||||
return cached;
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
package org.fdroid.database
|
||||
|
||||
import android.content.res.Resources
|
||||
import androidx.core.os.ConfigurationCompat.getLocales
|
||||
import androidx.core.os.LocaleListCompat
|
||||
import org.fdroid.CompatibilityChecker
|
||||
import org.fdroid.index.IndexFormatVersion.ONE
|
||||
|
@ -24,7 +22,7 @@ internal class DbV1StreamReceiver(
|
|||
private val compatibilityChecker: CompatibilityChecker,
|
||||
) : IndexV1StreamReceiver {
|
||||
|
||||
private val locales: LocaleListCompat = getLocales(Resources.getSystem().configuration)
|
||||
private val locales: LocaleListCompat = LocaleListCompat.getDefault()
|
||||
|
||||
override fun receive(repo: RepoV2, version: Long, certificate: String?) {
|
||||
db.getRepositoryDao().clear(repoId)
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
package org.fdroid.database
|
||||
|
||||
import android.content.res.Resources
|
||||
import androidx.core.os.ConfigurationCompat.getLocales
|
||||
import androidx.core.os.LocaleListCompat
|
||||
import kotlinx.serialization.json.JsonObject
|
||||
import org.fdroid.CompatibilityChecker
|
||||
|
@ -13,7 +11,7 @@ internal class DbV2DiffStreamReceiver(
|
|||
private val compatibilityChecker: CompatibilityChecker,
|
||||
) : IndexV2DiffStreamReceiver {
|
||||
|
||||
private val locales: LocaleListCompat = getLocales(Resources.getSystem().configuration)
|
||||
private val locales: LocaleListCompat = LocaleListCompat.getDefault()
|
||||
|
||||
override fun receiveRepoDiff(version: Long, repoJsonObject: JsonObject) {
|
||||
db.getRepositoryDao().updateRepository(repoId, version, repoJsonObject)
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
package org.fdroid.database
|
||||
|
||||
import android.content.res.Resources
|
||||
import androidx.core.os.ConfigurationCompat.getLocales
|
||||
import androidx.core.os.LocaleListCompat
|
||||
import kotlinx.serialization.SerializationException
|
||||
import org.fdroid.CompatibilityChecker
|
||||
|
@ -23,7 +21,7 @@ internal class DbV2StreamReceiver(
|
|||
private val compatibilityChecker: CompatibilityChecker,
|
||||
) : IndexV2StreamReceiver {
|
||||
|
||||
private val locales: LocaleListCompat = getLocales(Resources.getSystem().configuration)
|
||||
private val locales: LocaleListCompat = LocaleListCompat.getDefault()
|
||||
private var clearedRepoData = false
|
||||
private val nonNullFileV2: (FileV2?) -> Unit = { fileV2 ->
|
||||
if (fileV2 != null) {
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
package org.fdroid.repo
|
||||
|
||||
import android.content.res.Resources
|
||||
import android.net.Uri
|
||||
import androidx.core.os.ConfigurationCompat.getLocales
|
||||
import androidx.core.os.LocaleListCompat
|
||||
import kotlinx.serialization.SerializationException
|
||||
import org.fdroid.database.Repository
|
||||
|
@ -24,7 +22,7 @@ internal class RepoV1Fetcher(
|
|||
private val repoUriBuilder: RepoUriBuilder,
|
||||
) : RepoFetcher {
|
||||
|
||||
private val locales: LocaleListCompat = getLocales(Resources.getSystem().configuration)
|
||||
private val locales: LocaleListCompat = LocaleListCompat.getDefault()
|
||||
|
||||
@Throws(SigningException::class, SerializationException::class)
|
||||
override suspend fun fetchRepo(
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
package org.fdroid.repo
|
||||
|
||||
import android.content.res.Resources
|
||||
import androidx.core.os.ConfigurationCompat.getLocales
|
||||
import androidx.core.os.LocaleListCompat
|
||||
import org.fdroid.LocaleChooser.getBestLocale
|
||||
import org.fdroid.database.AppOverviewItem
|
||||
|
@ -78,7 +76,7 @@ internal open class RepoV2StreamReceiver(
|
|||
)
|
||||
}
|
||||
|
||||
private val locales: LocaleListCompat = getLocales(Resources.getSystem().configuration)
|
||||
private val locales: LocaleListCompat = LocaleListCompat.getDefault()
|
||||
|
||||
override fun receive(repo: RepoV2, version: Long, certificate: String) {
|
||||
receiver.onRepoReceived(
|
||||
|
|
Loading…
Reference in New Issue