Skip to content

Commit fbc2f80

Browse files
authored
Merge pull request #237 from Y-Note-SAS/feature-36746
Align startup language with system locale in policies app
2 parents 639ef84 + cb3a7f9 commit fbc2f80

3 files changed

Lines changed: 39 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);
@@ -604,7 +605,7 @@ public void ShowDialogTex2() {
604605
finish();
605606
});
606607

607-
alertDialogBuilder.show();
608+
alertDialogBuilder.show();
608609
}
609610

610611
public String getMasterDataText2(String fileName, String password) {
@@ -989,4 +990,4 @@ protected void onDestroy() {
989990
instance = null;
990991
super.onDestroy();
991992
}
992-
}
993+
}

‎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
*/

‎app/src/test/java/org/openimis/imispolicies/MainActivityTest.java‎

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,37 @@
2424

2525
import java.lang.reflect.Field;
2626
import java.lang.reflect.Method;
27+
import java.util.Locale;
2728

2829
@RunWith(RobolectricTestRunner.class)
2930
public class MainActivityTest {
3031

32+
static class TestActivity extends MainActivity {}
33+
34+
private void createActivity() {
35+
Robolectric.buildActivity(TestActivity.class)
36+
.create()
37+
.get();
38+
}
39+
40+
@Test
41+
public void french_locale_restored() {
42+
createActivity();
43+
assertEquals("fr", Locale.getDefault().getLanguage());
44+
}
45+
46+
@Test
47+
public void english_locale_restored() {
48+
createActivity();
49+
assertEquals("en", Locale.getDefault().getLanguage());
50+
}
51+
52+
@Test
53+
public void unsupported_locale_defaults_en() {
54+
createActivity();
55+
assertEquals("en", Locale.getDefault().getLanguage());
56+
}
57+
3158
private MainActivity activity;
3259
private Global global;
3360

0 commit comments

Comments
 (0)