From a11d214039bd360b61dc561312db028d46f2587f Mon Sep 17 00:00:00 2001
From: Hans-Christoph Steiner <hans@eds.org>
Date: Sat, 6 Feb 2021 01:23:53 +0100
Subject: [PATCH] workaround Locale.toLanguageTag() requiring android-21

---
 app/src/main/java/org/fdroid/fdroid/data/App.java | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/app/src/main/java/org/fdroid/fdroid/data/App.java b/app/src/main/java/org/fdroid/fdroid/data/App.java
index 486c3c33b..dbbf2d898 100644
--- a/app/src/main/java/org/fdroid/fdroid/data/App.java
+++ b/app/src/main/java/org/fdroid/fdroid/data/App.java
@@ -10,6 +10,7 @@ import android.content.res.AssetManager;
 import android.content.res.Resources;
 import android.content.res.XmlResourceParser;
 import android.database.Cursor;
+import android.os.Build;
 import android.os.Environment;
 import android.os.LocaleList;
 import android.os.Parcel;
@@ -630,7 +631,7 @@ public class App extends ValueObject implements Comparable<App>, Parcelable {
         if (localesToUse.length > 0) {
             Locale firstMatch = systemLocaleList.getFirstMatch(localesToUse);
             if (firstMatch != null) {
-                for (String languageTag : new String[]{firstMatch.toLanguageTag(), null}) {
+                for (String languageTag : new String[]{toLanguageTag(firstMatch), null}) {
                     if (languageTag == null) {
                         languageTag = getFallbackLanguageTag(firstMatch, localesToUse); // NOPMD
                     }
@@ -649,6 +650,18 @@ public class App extends ValueObject implements Comparable<App>, Parcelable {
         return null;
     }
 
+    /**
+     * Replace with {@link Locale#toLanguageTag()} once
+     * {@link android.os.Build.VERSION_CODES#LOLLIPOP} is {@code minSdkVersion}
+     */
+    private String toLanguageTag(Locale firstMatch) {
+        if (Build.VERSION.SDK_INT < 21) {
+            return firstMatch.toString().replace("_", "-");
+        } else {
+            return firstMatch.toLanguageTag();
+        }
+    }
+
     /**
      * Get all locales that have an entry for {@code key}.
      */