From 8bc28f99c12cdf485cb492b8e88c41d0613b2a2a Mon Sep 17 00:00:00 2001
From: goapunk <goapunk@riseup.net>
Date: Thu, 7 Jun 2018 10:00:50 +0200
Subject: [PATCH] Improvements: * Force LTR by prefixing language names with
 the LRM marker * Add Polish * Cleanup

---
 .../java/org/briarproject/briar/android/Localizer.java    | 8 +-------
 .../briar/android/settings/SettingsFragment.java          | 8 ++------
 briar-android/src/main/res/values/arrays.xml              | 1 +
 3 files changed, 4 insertions(+), 13 deletions(-)

diff --git a/briar-android/src/main/java/org/briarproject/briar/android/Localizer.java b/briar-android/src/main/java/org/briarproject/briar/android/Localizer.java
index fbdb7fe84c..3f305c3f9b 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/Localizer.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/Localizer.java
@@ -22,10 +22,8 @@ public class Localizer {
 	private static Localizer INSTANCE;
 	@Nullable
 	private final Locale locale;
-	private final SharedPreferences sharedPreferences;
 
-	private Localizer(SharedPreferences prefs) {
-		this.sharedPreferences = prefs;
+	private Localizer(SharedPreferences sharedPreferences) {
 		locale = getLocaleFromTag(
 				sharedPreferences.getString(LANGUAGE, "default"));
 	}
@@ -41,10 +39,6 @@ public class Localizer {
 		return INSTANCE;
 	}
 
-	public SharedPreferences getSharedPreferences() {
-		return sharedPreferences;
-	}
-
 	// Get Locale from BCP-47 tag
 	@Nullable
 	public static Locale getLocaleFromTag(String tag) {
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java
index f75ba97e30..e975690e9b 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java
@@ -4,7 +4,6 @@ import android.annotation.TargetApi;
 import android.app.AlertDialog;
 import android.content.Context;
 import android.content.Intent;
-import android.content.SharedPreferences;
 import android.media.Ringtone;
 import android.media.RingtoneManager;
 import android.net.Uri;
@@ -211,8 +210,9 @@ public class SettingsFragment extends PreferenceFragmentCompat
 				if (!tmp.isEmpty() && !tmp.equals(nativeName))
 					nativeName = tmp;
 			}
+			// Prefix with LRM marker to prevent any RTL direction
 			nativeNames[i] =
-					nativeName.substring(0, 1).toUpperCase() +
+					"\u200E" + nativeName.substring(0, 1).toUpperCase() +
 							nativeName.substring(1);
 		}
 		language.setEntries(nativeNames);
@@ -397,10 +397,6 @@ public class SettingsFragment extends PreferenceFragmentCompat
 		builder.setPositiveButton(R.string.sign_out_button,
 				(dialogInterface, i) -> {
 					language.setValue(newValue);
-					SharedPreferences prefs =
-							Localizer.getInstance().getSharedPreferences();
-					prefs.edit().putString(LANGUAGE, newValue)
-							.commit();
 					Intent intent = new Intent(getContext(),
 							NavDrawerActivity.class);
 					intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
diff --git a/briar-android/src/main/res/values/arrays.xml b/briar-android/src/main/res/values/arrays.xml
index 6ce3f24255..978c986980 100644
--- a/briar-android/src/main/res/values/arrays.xml
+++ b/briar-android/src/main/res/values/arrays.xml
@@ -41,6 +41,7 @@
 		<item>nb</item>
 		<item>nl</item>
 		<item>oc</item>
+		<item>pl</item>
 		<item>pt-BR</item>
 		<item>ro</item>
 		<item>ru</item>
-- 
GitLab