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

Commit

Permalink
Added language switch
Browse files Browse the repository at this point in the history
Signed-off-by: sunilpaulmathew <[email protected]>
  • Loading branch information
sunilpaulmathew committed Jun 14, 2020
1 parent d1297d3 commit a70fe8b
Show file tree
Hide file tree
Showing 6 changed files with 91 additions and 3 deletions.
38 changes: 38 additions & 0 deletions app/src/main/java/com/smartpack/kernelprofiler/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
Utils.initializeAppTheme(this);
Utils.initializeGoogleAds(this);
super.onCreate(savedInstanceState);
// Set App Language
Utils.setLanguage(this);
setContentView(R.layout.activity_main);

mForegroundCard = findViewById(R.id.foreground_card);
Expand Down Expand Up @@ -168,6 +170,15 @@ private void settingsMenu() {
if (KP.supported()) {
tools.add(Menu.NONE, 6, Menu.NONE, getString(R.string.edit_config));
}
SubMenu language = menu.addSubMenu(Menu.NONE, 0, Menu.NONE, getString(R.string.language, Utils.getLanguage(this)));
language.add(Menu.NONE, 16, Menu.NONE, getString(R.string.language_default)).setCheckable(true)
.setChecked(Utils.languageDefault(this));
language.add(Menu.NONE, 17, Menu.NONE, getString(R.string.language_en)).setCheckable(true)
.setChecked(Prefs.getBoolean("use_en", false, this));
language.add(Menu.NONE, 18, Menu.NONE, getString(R.string.language_pt)).setCheckable(true)
.setChecked(Prefs.getBoolean("use_pt", false, this));
language.add(Menu.NONE, 19, Menu.NONE, getString(R.string.language_el)).setCheckable(true)
.setChecked(Prefs.getBoolean("use_el", false, this));
SubMenu app = menu.addSubMenu(Menu.NONE, 0, Menu.NONE, getString(R.string.app_about));
app.add(Menu.NONE, 7, Menu.NONE, getString(R.string.share));
app.add(Menu.NONE, 8, Menu.NONE, getString(R.string.support));
Expand Down Expand Up @@ -251,6 +262,33 @@ private void settingsMenu() {
case 15:
aboutDialogue(this);
break;
case 16:
if (!Utils.languageDefault(this)) {
Utils.setDefaultLanguage(this);
restartApp();
}
break;
case 17:
if (!Prefs.getBoolean("use_en", false, this)) {
Utils.setDefaultLanguage(this);
Prefs.saveBoolean("use_en", true, this);
restartApp();
}
break;
case 18:
if (!Prefs.getBoolean("use_pt", false, this)) {
Utils.setDefaultLanguage(this);
Prefs.saveBoolean("use_pt", true, this);
restartApp();
}
break;
case 19:
if (!Prefs.getBoolean("use_el", false, this)) {
Utils.setDefaultLanguage(this);
Prefs.saveBoolean("use_el", true, this);
restartApp();
}
break;
}
return false;
});
Expand Down
36 changes: 36 additions & 0 deletions app/src/main/java/com/smartpack/kernelprofiler/utils/Utils.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,12 @@
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.net.ConnectivityManager;
import android.net.Uri;
import android.os.Build;
import android.util.DisplayMetrics;
import android.view.View;

import androidx.appcompat.app.AppCompatDelegate;
Expand All @@ -29,6 +31,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Locale;
import java.util.Objects;

/**
Expand Down Expand Up @@ -221,4 +224,37 @@ static String getExtension(String string) {
return android.webkit.MimeTypeMap.getFileExtensionFromUrl(string);
}

public static void setDefaultLanguage(Context context) {
Prefs.saveBoolean("use_en", false, context);
Prefs.saveBoolean("use_el", false, context);
Prefs.saveBoolean("use_pt", false, context);
}

public static boolean languageDefault(Context context) {
return !Prefs.getBoolean("use_en", false, context)
&& !Prefs.getBoolean("use_el", false, context)
&& !Prefs.getBoolean("use_pt", false, context);
}

public static String getLanguage(Context context) {
if (Prefs.getBoolean("use_en", false, context)) {
return "en_US";
} else if (Prefs.getBoolean("use_el", false, context)) {
return "el";
} else if (Prefs.getBoolean("use_pt", false, context)) {
return "pt";
} else {
return java.util.Locale.getDefault().getLanguage();
}
}

public static void setLanguage(Context context) {
Locale myLocale = new Locale(getLanguage(context));
Resources res = context.getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
}

}
4 changes: 2 additions & 2 deletions app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

<LinearLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_height="115dp"
android:background="@color/black"
android:orientation="horizontal">

Expand Down Expand Up @@ -114,7 +114,7 @@
<androidx.viewpager.widget.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="100dp"
android:layout_marginTop="115dp"
android:layout_marginBottom="50dp"
android:id="@+id/viewPagerID" />
</RelativeLayout>
5 changes: 5 additions & 0 deletions app/src/main/res/values-el/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,11 @@
<string name="kernel_about">Σχετικά με το Kernel</string>
<string name="kernel_support">Πώς να προσθέσετε υποστήριξη στο kernel</string>
<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>
<string name="language">Γλώσσα (%s)</string>
<string name="language_el">Ελληνικά</string>
<string name="language_en">Αγγλικά</string>
<string name="language_default">Προεπιλογή</string>
<string name="language_pt">Πορτογαλικά</string>
<string name="more">Περισσότερα</string>
<string name="more_apps">Περισσότερα από τον Προγραμματιστή</string>
<string name="name_empty">Το όνομα του Προφίλ δεν πρέπει να είναι κενό! Διακοπή.</string>
Expand Down
4 changes: 4 additions & 0 deletions app/src/main/res/values-pt-rBR/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,10 @@
<string name="kernel_about">Sobre o Kernel</string>
<string name="kernel_support">Como adicionar suporte ao kernel</string>
<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>
<string name="language">Idioma (%s)</string>
<string name="language_el">Grego</string>
<string name="language_en">Inglês</string>
<string name="language_default">Padrão</string>
<string name="more">Mais</string>
<string name="more_apps">Mais do desenvolvedor</string>
<string name="name_empty">O nome do perfil não deve estar vazio! Abortando.</string>
Expand Down
7 changes: 6 additions & 1 deletion app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<string name="create_profile">Create a Profile</string>
<string name="create_profile_message">\'%s\' is created at</string>
<string name="credits">Credits</string>
<string name="credits_summary"><b><i>Grarak</i></b>: KernelAdiutor (Code base)\n<b><i>topjohnwu</i></b>: libsu\n<b><i>Lennoard Silva</i></b>: Code Contributions, App Icon, &amp; Portuguese (Brazilian) Translation</string>
<string name="credits_summary"><b><i>Grarak</i></b>: KernelAdiutor (Code base)\n<b><i>topjohnwu</i></b>: libsu\n<b><i>Lennoard Silva</i></b>: Code Contributions, App Icon, &amp; Portuguese (Brazilian) Translation\n<b><i>tsiflimagas</i></b>: Greek translations</string>
<string name="dark_theme">Dark Theme</string>
<string name="data_lose_warning">The changes you made on this page will be lost! Are you sure?</string>
<string name="description">Description</string>
Expand All @@ -34,6 +34,11 @@
<string name="kernel_about">About Kernel</string>
<string name="kernel_support">How to add support in kernel</string>
<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>
<string name="language">Language (%s)</string>
<string name="language_el">Greek</string>
<string name="language_en">English</string>
<string name="language_default">Default</string>
<string name="language_pt">Portuguese</string>
<string name="more">More</string>
<string name="more_apps">More from Developer</string>
<string name="name_empty">Profile name shouldn\'t be empty! Aborting.</string>
Expand Down

0 comments on commit a70fe8b

Please sign in to comment.