Skip to content

Commit bff1018

Browse files
committed
Align startup language with system locale in policies app
1 parent eb588a5 commit bff1018

3 files changed

Lines changed: 55 additions & 3 deletions

File tree

app/src/main/java/org/openimis/imispolicies/MainActivity.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,7 @@ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permis
234234
protected void onCreate(Bundle savedInstanceState) {
235235
global = (Global) getApplicationContext();
236236
super.onCreate(savedInstanceState);
237+
new LanguageManager(this).restoreLanguage(false);
237238
try {
238239
instance = this;
239240
setContentView(R.layout.activity_main);
@@ -582,7 +583,7 @@ public void ShowDialogTex2() {
582583
finish();
583584
});
584585

585-
alertDialogBuilder.show();
586+
alertDialogBuilder.show();
586587
}
587588

588589
public String getMasterDataText2(String fileName, String password) {
@@ -967,4 +968,4 @@ protected void onDestroy() {
967968
instance = null;
968969
super.onDestroy();
969970
}
970-
}
971+
}

app/src/main/java/org/openimis/imispolicies/tools/LanguageManager.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ public void restoreLanguage() {
7070
* @param withRestart should the current context be restarted (if it's Activity).
7171
*/
7272
public void restoreLanguage(boolean withRestart) {
73-
String language = getStoredLanguage();
73+
String language = resolveStartupLanguage();
7474
setLanguage(language, withRestart);
7575
}
7676

@@ -184,6 +184,14 @@ private String getStoredLanguage() {
184184
return global.getStringKey(Global.PREF_LANGUAGE_KEY, defaultLanguage);
185185
}
186186

187+
private String resolveStartupLanguage() {
188+
String language = getCurrentLocale().getLanguage();
189+
if ("fr".equalsIgnoreCase(language)) {
190+
return "fr";
191+
}
192+
return "en";
193+
}
194+
187195
/**
188196
* @return List of supported languages from tblLanguages
189197
*/
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package org.openimis.imispolicies;
2+
3+
import static org.junit.Assert.assertEquals;
4+
5+
import org.junit.Test;
6+
import org.junit.runner.RunWith;
7+
import org.robolectric.Robolectric;
8+
import org.robolectric.RobolectricTestRunner;
9+
import org.robolectric.annotation.Config;
10+
11+
import java.util.Locale;
12+
13+
@RunWith(RobolectricTestRunner.class)
14+
public class MainActivityTest {
15+
16+
static class TestActivity extends MainActivity {}
17+
private void createActivity() {
18+
Robolectric.buildActivity(TestActivity.class)
19+
.create()
20+
.get();
21+
}
22+
23+
@Test
24+
@Config(qualifiers = "fr")
25+
public void french_locale_restored() {
26+
createActivity();
27+
assertEquals("fr", Locale.getDefault().getLanguage());
28+
}
29+
30+
@Test
31+
@Config(qualifiers = "en")
32+
public void english_locale_restored() {
33+
createActivity();
34+
assertEquals("en", Locale.getDefault().getLanguage());
35+
}
36+
37+
@Test
38+
@Config(qualifiers = "es")
39+
public void unsupported_locale_defaults_en() {
40+
createActivity();
41+
assertEquals("en", Locale.getDefault().getLanguage());
42+
}
43+
}

0 commit comments

Comments
 (0)