Skip to content
This repository was archived by the owner on Mar 24, 2023. It is now read-only.

Commit f25d092

Browse files
Re-built language switch
Signed-off-by: sunilpaulmathew <sunil.kde@gmail.com>
1 parent 6a0eef3 commit f25d092

7 files changed

Lines changed: 35 additions & 72 deletions

File tree

app/src/main/java/com/smartpack/kernelprofiler/MainActivity.java

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -182,17 +182,17 @@ private void settingsMenu(Activity activity) {
182182
}
183183
SubMenu language = menu.addSubMenu(Menu.NONE, 0, Menu.NONE, getString(R.string.language, Utils.getLanguage(activity)));
184184
language.add(Menu.NONE, 15, Menu.NONE, getString(R.string.language_default)).setCheckable(true)
185-
.setChecked(Utils.languageDefault(activity));
185+
.setChecked(Utils.getLanguage(activity).equals(java.util.Locale.getDefault().getLanguage()));
186186
language.add(Menu.NONE, 16, Menu.NONE, getString(R.string.language_en)).setCheckable(true)
187-
.setChecked(Utils.getBoolean("use_en", false, activity));
187+
.setChecked(Utils.getLanguage(activity).equals("en_US"));
188188
language.add(Menu.NONE, 17, Menu.NONE, getString(R.string.language_pt)).setCheckable(true)
189-
.setChecked(Utils.getBoolean("use_pt", false, activity));
189+
.setChecked(Utils.getLanguage(activity).equals("pt"));
190190
language.add(Menu.NONE, 18, Menu.NONE, getString(R.string.language_el)).setCheckable(true)
191-
.setChecked(Utils.getBoolean("use_el", false, activity));
191+
.setChecked(Utils.getLanguage(activity).equals("el"));
192192
language.add(Menu.NONE, 21, Menu.NONE, getString(R.string.language_ko)).setCheckable(true)
193-
.setChecked(Utils.getBoolean("use_ko", false, activity));
193+
.setChecked(Utils.getLanguage(activity).equals("ko"));
194194
language.add(Menu.NONE, 22, Menu.NONE, getString(R.string.language_in)).setCheckable(true)
195-
.setChecked(Utils.getBoolean("use_in", false, activity));
195+
.setChecked(Utils.getLanguage(activity).equals("in"));
196196
SubMenu app = menu.addSubMenu(Menu.NONE, 0, Menu.NONE, getString(R.string.app_about));
197197
app.add(Menu.NONE, 7, Menu.NONE, getString(R.string.share));
198198
app.add(Menu.NONE, 8, Menu.NONE, getString(R.string.support));
@@ -274,29 +274,26 @@ private void settingsMenu(Activity activity) {
274274
.show();
275275
break;
276276
case 15:
277-
if (!Utils.languageDefault(activity)) {
278-
Utils.setDefaultLanguage(activity);
277+
if (!Utils.getLanguage(activity).equals(java.util.Locale.getDefault().getLanguage())) {
278+
Utils.saveString("appLanguage", java.util.Locale.getDefault().getLanguage(), activity);
279279
Utils.restartApp(activity);
280280
}
281281
break;
282282
case 16:
283-
if (!Utils.getBoolean("use_en", false, activity)) {
284-
Utils.setDefaultLanguage(activity);
285-
Utils.saveBoolean("use_en", true, activity);
283+
if (!Utils.getLanguage(activity).equals("en_US")) {
284+
Utils.saveString("appLanguage", "en_US", activity);
286285
Utils.restartApp(activity);
287286
}
288287
break;
289288
case 17:
290-
if (!Utils.getBoolean("use_pt", false, activity)) {
291-
Utils.setDefaultLanguage(activity);
292-
Utils.saveBoolean("use_pt", true, activity);
289+
if (!Utils.getLanguage(activity).equals("pt")) {
290+
Utils.saveString("appLanguage", "pt", activity);
293291
Utils.restartApp(activity);
294292
}
295293
break;
296294
case 18:
297-
if (!Utils.getBoolean("use_el", false, activity)) {
298-
Utils.setDefaultLanguage(activity);
299-
Utils.saveBoolean("use_el", true, activity);
295+
if (!Utils.getLanguage(activity).equals("el")) {
296+
Utils.saveString("appLanguage", "el", activity);
300297
Utils.restartApp(activity);
301298
}
302299
break;
@@ -317,16 +314,14 @@ private void settingsMenu(Activity activity) {
317314
}
318315
break;
319316
case 21:
320-
if (!Utils.getBoolean("use_ko", false, activity)) {
321-
Utils.setDefaultLanguage(activity);
322-
Utils.saveBoolean("use_ko", true, activity);
317+
if (!Utils.getLanguage(activity).equals("ko")) {
318+
Utils.saveString("appLanguage", "ko", activity);
323319
Utils.restartApp(activity);
324320
}
325321
break;
326322
case 22:
327-
if (!Utils.getBoolean("use_in", false, activity)) {
328-
Utils.setDefaultLanguage(activity);
329-
Utils.saveBoolean("use_in", true, activity);
323+
if (!Utils.getLanguage(activity).equals("in")) {
324+
Utils.saveString("appLanguage", "in", activity);
330325
Utils.restartApp(activity);
331326
}
332327
break;

app/src/main/java/com/smartpack/kernelprofiler/utils/Utils.java

Lines changed: 12 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,14 @@ public static void saveBoolean(String name, boolean value, Context context) {
187187
PreferenceManager.getDefaultSharedPreferences(context).edit().putBoolean(name, value).apply();
188188
}
189189

190+
public static String getString(String name, String defaults, Context context) {
191+
return PreferenceManager.getDefaultSharedPreferences(context).getString(name, defaults);
192+
}
193+
194+
public static void saveString(String name, String value, Context context) {
195+
PreferenceManager.getDefaultSharedPreferences(context).edit().putString(name, value).apply();
196+
}
197+
190198
/*
191199
* The following code is partly taken from https://github.com/Grarak/KernelAdiutor
192200
* Ref: https://github.com/Grarak/KernelAdiutor/blob/master/app/src/main/java/com/grarak/kerneladiutor/utils/Utils.java
@@ -306,40 +314,14 @@ public static void restartApp(Context context) {
306314
context.startActivity(intent);
307315
}
308316

309-
public static void setDefaultLanguage(Context context) {
310-
saveBoolean("use_en", false, context);
311-
saveBoolean("use_el", false, context);
312-
saveBoolean("use_pt", false, context);
313-
saveBoolean("use_ko", false, context);
314-
saveBoolean("use_in", false, context);
315-
}
316-
317-
public static boolean languageDefault(Context context) {
318-
return !getBoolean("use_en", false, context)
319-
&& !getBoolean("use_el", false, context)
320-
&& !getBoolean("use_pt", false, context)
321-
&& !getBoolean("use_ko", false, context)
322-
&& !getBoolean("use_in", false, context);
323-
}
324-
325317
public static String getLanguage(Context context) {
326-
if (getBoolean("use_en", false, context)) {
327-
return "en_US";
328-
} else if (getBoolean("use_el", false, context)) {
329-
return "el";
330-
} else if (getBoolean("use_pt", false, context)) {
331-
return "pt";
332-
} else if (getBoolean("use_ko", false, context)) {
333-
return "ko";
334-
} else if (getBoolean("use_in", false, context)) {
335-
return "in";
336-
} else {
337-
return java.util.Locale.getDefault().getLanguage();
338-
}
318+
return getString("appLanguage", java.util.Locale.getDefault().getLanguage(),
319+
context);
339320
}
340321

341322
public static void setLanguage(Context context) {
342-
Locale myLocale = new Locale(getLanguage(context));
323+
Locale myLocale = new Locale(getString("appLanguage", java.util.Locale.getDefault()
324+
.getLanguage(), context));
343325
Resources res = context.getResources();
344326
DisplayMetrics dm = res.getDisplayMetrics();
345327
Configuration conf = res.getConfiguration();

app/src/main/res/values-el/strings.xml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,7 @@
3535
<string name="kernel_support">Πώς να προσθέσετε υποστήριξη στο kernel</string>
3636
<string name="kernel_support_summary">Το Kernel Profiler προϋποθέτει ένα αρχείο διαχείρισης ρυθμίσεων (<b><i>kernelprofiler.json</i></b>) κι ένα ή περισσότερα \'<b><i>προφίλ</i></b>\' (βασικά σενάρια shell) σε μια συγκεκριμένη ειδική δομή τοποθετημένα μέσα στο <b>\'<i>/data/kernel_profiler</i>\'</b>. Παρακαλώ ελέγξτε \'<b>Ρυθμίσεις -> Εργαλεία Προγραμματιστή</b>\' για περισσότερες πληροφορίες.</string>
3737
<string name="language">Γλώσσα (%s)</string>
38-
<string name="language_el">Ελληνικά</string>
39-
<string name="language_en">Αγγλικά</string>
4038
<string name="language_default">Προεπιλογή</string>
41-
<string name="language_pt">Πορτογαλικά</string>
4239
<string name="more_apps">Περισσότερα από τον Προγραμματιστή</string>
4340
<string name="name_empty">Το όνομα του Προφίλ δεν πρέπει να είναι κενό! Διακοπή.</string>
4441
<string name="no_internet">Παρακαλώ ελέγξτε τη σύνδεση δικτύου σας!</string>

app/src/main/res/values-in/strings.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,7 @@
3838
<string name="kernel_support">Bagaimana menambahkan dukungan di kernel?</string>
3939
<string name="kernel_support_summary">Kernel Profiler mengharapkan file konfigurasi (<b><i>kernelprofiler.json</i></b>) dan satu atau lebih \'<b><i>profiles</i></b>\' (pada dasarnya skrip shell) dalam struktur tertentu yang ditempatkan di dalam <b>\'<i>/data/kernel_profiler</i>\'</b>. Silakan periksa \'<b>Pengaturan -> Alat pengembang</b>\' untuk informasi lebih lanjut.</string>
4040
<string name="language">Bahasa (%s)</string>
41-
<string name="language_el">Greek</string>
42-
<string name="language_en">English</string>
4341
<string name="language_default">Default</string>
44-
<string name="language_ko">Korean</string>
45-
<string name="language_pt">Portuguese</string>
46-
<string name="language_in">Bahasa Indonesia</string>
4742
<string name="more_apps">Lainnya dari Pengembang</string>
4843
<string name="name_empty">Nama profil tidak boleh kosong! Membatalkan.</string>
4944
<string name="no_internet">Silakan periksa koneksi internet anda!</string>

app/src/main/res/values-ko/strings.xml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,7 @@
3737
<string name="kernel_support">커널에 Kernel Profiler 지원 추가 방법</string>
3838
<string name="kernel_support_summary">Kernel Profiler은(는) 구성 파일을 필요료 합니다 (<b><i>kernelprofiler.json</i></b>)와 하나 이상의 \'<b><i>프로필</i></b>\' (쉘 스크립트)이 특정한 경로 <b>\'<i>/data/kernel_profiler</i>\'</b>에 있어야 합니다. \'<b>설정 -> 개발자 도구</b>\'을(를) 확인해주세요.</string>
3939
<string name="language">언어 (%s)</string>
40-
<string name="language_el">그리스어</string>
41-
<string name="language_en">영어</string>
4240
<string name="language_default">시스템 언어</string>
43-
<string name="language_ko">한국어</string>
44-
<string name="language_pt">브라질 포어</string>
4541
<string name="name_empty">프로필 이름은 비어있으면 안됩니다!</string>
4642
<string name="no_internet">인터넷 연결을 확인해주세요!</string>
4743
<string name="no_root">루트 권한 없음</string>

app/src/main/res/values-pt-rBR/strings.xml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@
2626
<string name="kernel_support">Como adicionar suporte ao kernel</string>
2727
<string name="kernel_support_summary">O Kernel Profiler espera um arquivo de configuração (<b><i>kernelprofiler.json</i></b>) e um ou mais \'<b><i>perfis</i></b>\' (basicamente scripts shell) em uma determinada estrutura específica colocada em <b>\'<i>/data/kernel_profiler</i>\'</b>. Por favor, dê uma olhada em \'<b>Configurações -> Ferramentas do Desenvolvedor</b>\' para mais informações.</string>
2828
<string name="language">Idioma (%s)</string>
29-
<string name="language_el">Grego</string>
30-
<string name="language_en">Inglês</string>
3129
<string name="language_default">Padrão</string>
3230
<string name="more_apps">Mais do desenvolvedor</string>
3331
<string name="name_empty">O nome do perfil não deve estar vazio! Abortando.</string>

app/src/main/res/values/strings.xml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,12 @@
4040
<string name="kernel_support">How to add support in kernel?</string>
4141
<string name="kernel_support_summary">Kernel Profiler expects a configuration file (<b><i>kernelprofiler.json</i></b>) and one or more \'<b><i>profiles</i></b>\' (basically shell scripts) in certain specific structure placed inside <b>\'<i>/data/kernel_profiler</i>\'</b>. Please check \'<b>Settings -> Developer Tools</b>\' for more information.</string>
4242
<string name="language">Language (%s)</string>
43-
<string name="language_el">Greek</string>
44-
<string name="language_en">English</string>
43+
<string name="language_el" translatable="false">Ελληνικά</string>
44+
<string name="language_en" translatable="false">English</string>
4545
<string name="language_default">Default</string>
46-
<string name="language_ko">Korean</string>
47-
<string name="language_in">Indonesian</string>
48-
<string name="language_pt">Portuguese</string>
46+
<string name="language_ko" translatable="false">한국어</string>
47+
<string name="language_in" translatable="false">bahasa Indonesia</string>
48+
<string name="language_pt" translatable="false">Português</string>
4949
<string name="more_apps">More from Developer</string>
5050
<string name="name_empty">Profile name shouldn\'t be empty! Aborting.</string>
5151
<string name="no_internet">Please check your internet connection!</string>

0 commit comments

Comments
 (0)