diff --git a/app/src/main/java/com/jens/automation2/ActivityMainPoi.java b/app/src/main/java/com/jens/automation2/ActivityMainPoi.java
index 27d1198..2d8a1f7 100644
--- a/app/src/main/java/com/jens/automation2/ActivityMainPoi.java
+++ b/app/src/main/java/com/jens/automation2/ActivityMainPoi.java
@@ -44,6 +44,7 @@ public class ActivityMainPoi extends ActivityGeneric
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
+ Miscellaneous.setDisplayLanguage(ActivityMainPoi.this);
setContentView(R.layout.main_poi_layout);
instance = this;
diff --git a/app/src/main/java/com/jens/automation2/ActivityMainProfiles.java b/app/src/main/java/com/jens/automation2/ActivityMainProfiles.java
index 17a20d6..cca5127 100644
--- a/app/src/main/java/com/jens/automation2/ActivityMainProfiles.java
+++ b/app/src/main/java/com/jens/automation2/ActivityMainProfiles.java
@@ -40,6 +40,7 @@ public class ActivityMainProfiles extends ActivityGeneric
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
+ Miscellaneous.setDisplayLanguage(ActivityMainProfiles.this);
setContentView(R.layout.main_profile_layout);
instance = this;
diff --git a/app/src/main/java/com/jens/automation2/ActivityMainRules.java b/app/src/main/java/com/jens/automation2/ActivityMainRules.java
index ed5bb74..d49648b 100644
--- a/app/src/main/java/com/jens/automation2/ActivityMainRules.java
+++ b/app/src/main/java/com/jens/automation2/ActivityMainRules.java
@@ -47,7 +47,8 @@ public class ActivityMainRules extends ActivityGeneric
@Override
protected void onCreate(Bundle savedInstanceState)
{
- super.onCreate(savedInstanceState);
+ super.onCreate(savedInstanceState);
+ Miscellaneous.setDisplayLanguage(ActivityMainRules.this);
setContentView(R.layout.main_rule_layout);
instance = this;
diff --git a/app/src/main/java/com/jens/automation2/ActivityMainScreen.java b/app/src/main/java/com/jens/automation2/ActivityMainScreen.java
index ea9df83..4b3cef9 100644
--- a/app/src/main/java/com/jens/automation2/ActivityMainScreen.java
+++ b/app/src/main/java/com/jens/automation2/ActivityMainScreen.java
@@ -6,9 +6,12 @@ import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
+import android.content.res.Configuration;
+import android.content.res.Resources;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
+import android.util.DisplayMetrics;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
@@ -31,6 +34,7 @@ import com.jens.automation2.location.LocationProvider;
import java.util.ArrayList;
import java.util.Calendar;
+import java.util.Locale;
@SuppressLint("NewApi")
public class ActivityMainScreen extends ActivityGeneric
@@ -51,6 +55,7 @@ public class ActivityMainScreen extends ActivityGeneric
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
+ Miscellaneous.setDisplayLanguage(ActivityMainScreen.this);
setContentView(R.layout.main_overview_layout);
activityMainScreenInstance = this;
diff --git a/app/src/main/java/com/jens/automation2/ActivityMainTabLayout.java b/app/src/main/java/com/jens/automation2/ActivityMainTabLayout.java
index 11ab97f..bbdf5df 100644
--- a/app/src/main/java/com/jens/automation2/ActivityMainTabLayout.java
+++ b/app/src/main/java/com/jens/automation2/ActivityMainTabLayout.java
@@ -3,12 +3,17 @@ package com.jens.automation2;
import android.annotation.SuppressLint;
import android.app.TabActivity;
import android.content.Intent;
+import android.content.res.Configuration;
+import android.content.res.Resources;
import android.os.Bundle;
+import android.util.DisplayMetrics;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
import com.jens.automation2.receivers.NfcReceiver;
+import java.util.Locale;
+
@SuppressLint("NewApi")
public class ActivityMainTabLayout extends TabActivity
@@ -17,8 +22,8 @@ public class ActivityMainTabLayout extends TabActivity
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
-
Settings.readFromPersistentStorage(ActivityMainTabLayout.this);
+ Miscellaneous.setDisplayLanguage(ActivityMainTabLayout.this);
if(Settings.tabsPlacement == 1)
setContentView(R.layout.main_tab_layout_tabs_at_bottom);
diff --git a/app/src/main/java/com/jens/automation2/AutomationService.java b/app/src/main/java/com/jens/automation2/AutomationService.java
index 0119b5f..9fb03a4 100644
--- a/app/src/main/java/com/jens/automation2/AutomationService.java
+++ b/app/src/main/java/com/jens/automation2/AutomationService.java
@@ -12,6 +12,8 @@ import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
+import android.content.res.Configuration;
+import android.content.res.Resources;
import android.media.AudioManager;
import android.os.Binder;
import android.os.Build;
@@ -20,6 +22,7 @@ import android.os.Environment;
import android.os.IBinder;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
+import android.util.DisplayMetrics;
import android.util.Log;
import android.widget.Toast;
@@ -127,6 +130,8 @@ public class AutomationService extends Service implements OnInitListener
// Store a reference to myself. Other classes often need a context or something, this can provide that.
centralInstance = this;
+
+ Miscellaneous.setDisplayLanguage(AutomationService.this);
}
public boolean checkStartupRequirements(Context context, boolean startAtBoot)
diff --git a/app/src/main/java/com/jens/automation2/Miscellaneous.java b/app/src/main/java/com/jens/automation2/Miscellaneous.java
index 7006c41..ef83876 100644
--- a/app/src/main/java/com/jens/automation2/Miscellaneous.java
+++ b/app/src/main/java/com/jens/automation2/Miscellaneous.java
@@ -15,6 +15,7 @@ import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
+import android.content.res.Resources;
import android.database.Cursor;
import android.media.AudioAttributes;
import android.media.RingtoneManager;
@@ -31,6 +32,7 @@ import android.provider.Settings.Secure;
import android.telephony.PhoneNumberUtils;
import android.telephony.TelephonyManager;
import android.util.Base64;
+import android.util.DisplayMetrics;
import android.util.Log;
import android.widget.Toast;
@@ -1985,4 +1987,20 @@ public class Miscellaneous extends Service
{
return context.getApplicationContext().getApplicationInfo().targetSdkVersion;
}
+
+ public static void setDisplayLanguage(Context context)
+ {
+ if(!Settings.displayLanguage.equals(Settings.default_displayLanguage))
+ {
+ Locale myLocale = new Locale(Settings.displayLanguage);
+ Resources res = context.getResources();
+ DisplayMetrics dm = res.getDisplayMetrics();
+ Configuration conf = res.getConfiguration();
+ conf.locale = myLocale;
+ res.updateConfiguration(conf, dm);
+ //Intent refresh = new Intent(this, AndroidLocalize.class);
+ //finish();
+ //startActivity(refresh);
+ }
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/jens/automation2/Settings.java b/app/src/main/java/com/jens/automation2/Settings.java
index 895a81b..8717d38 100644
--- a/app/src/main/java/com/jens/automation2/Settings.java
+++ b/app/src/main/java/com/jens/automation2/Settings.java
@@ -68,6 +68,7 @@ public class Settings implements SharedPreferences
public static boolean showToasts;
public static boolean automaticUpdateCheck;
public static long musicCheckFrequency;
+ public static String displayLanguage;
public static boolean lockSoundChanges;
public static boolean noticeAndroid9MicrophoneShown;
@@ -138,6 +139,7 @@ public class Settings implements SharedPreferences
public static final long default_lastNewsPolltime = -1;
public static final long default_lastUpdateCheck = -1;
public static final long default_musicCheckFrequency = 2500;
+ public static final String default_displayLanguage = "systemDefaultLanguage";
@Override
public boolean contains(String arg0)
@@ -273,6 +275,7 @@ public class Settings implements SharedPreferences
tabsPlacement = Integer.parseInt(prefs.getString("tabsPlacement", String.valueOf(default_tabsPlacement)));
musicCheckFrequency = Long.parseLong(prefs.getString("musicCheckFrequency", String.valueOf(default_musicCheckFrequency)));
+ displayLanguage = prefs.getString("displayLanguage", default_displayLanguage);
if(Settings.musicCheckFrequency == 0)
Settings.musicCheckFrequency = Settings.default_musicCheckFrequency;
@@ -482,6 +485,9 @@ public class Settings implements SharedPreferences
if(!prefs.contains("musicCheckFrequency") || force)
editor.putLong("musicCheckFrequency", default_musicCheckFrequency);
+ if(!prefs.contains("displayLanguage") || force)
+ editor.putString("displayLanguage", default_displayLanguage);
+
if(!prefs.contains("lockSoundChanges") || force)
editor.putBoolean("lockSoundChanges", default_lockSoundChanges);
@@ -568,6 +574,8 @@ public class Settings implements SharedPreferences
Settings.musicCheckFrequency = Settings.default_musicCheckFrequency;
editor.putString("musicCheckFrequency", String.valueOf(musicCheckFrequency));
+ editor.putString("displayLanguage", displayLanguage);
+
editor.putBoolean("lockSoundChanges", lockSoundChanges);
editor.putBoolean("noticeAndroid9MicrophoneShown", noticeAndroid9MicrophoneShown);
editor.putBoolean("noticeAndroid10WifiShown", noticeAndroid10WifiShown);
diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml
index 5eec7a1..8ce9375 100644
--- a/app/src/main/res/layout/activity_settings.xml
+++ b/app/src/main/res/layout/activity_settings.xml
@@ -59,6 +59,13 @@
android:entries="@array/tabsPlacementOptions"
android:entryValues="@array/tabsPlacementOptionsValues" />
+
+
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 8e12ecb..2aa457c 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -1,5 +1,13 @@
+ System Standard
+ Englisch
+ Deutsch
+ Italienisch
+ Spanisch
+ Niederländisch
+ Russisch
+ Französisch
Aktiviere Regel %1$s
Aktiviere Profil %1$s
Aktiviere Regel %1$s im Umkehrmodus
@@ -780,4 +788,7 @@
Toasts anzeigen
Popups anzeigen, wenn Ereignisse wie Regelausführungen auftreten
Nachdem Sie auf OK geklickt haben, wählen Sie Automatisierung, dann \"Benachrichtigungszugriff zulassen\" und dann \"Zulassen\".
+ Anzeigesprache
+ Bestimmte Anzeigesprache wählen
+ B
\ No newline at end of file
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 4cacced..c285909 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -1,5 +1,13 @@
+ Predeterminado
+ Inglés
+ Alemán
+ Italiano
+ Español
+ Holandés
+ Ruso
+ Francés
Estoy activando regla %1$s
Estoy activando perfil %1$s
Estoy activando regla %1$s en el modo de invertir
@@ -779,4 +787,6 @@
Mostrar toasts
Mostrar notificaciones del sistema cuando se producen eventos como ejecuciones de reglas
Después de hacer clcliquear en OK, seleccione Automation, luego seleccione \"Permitir acceso a notificaciones\", luego \"Permitir\".
+ Idioma de visualización
+ Establecer un idioma personalizado para la aplicación
\ No newline at end of file
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index a2ca330..3d96a93 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -1,5 +1,13 @@
+ Valeur par défaut du système
+ Anglais
+ Allemand
+ Italien
+ Espagnol
+ Néerlandais
+ Russe
+ Français
Activation de la règle %1$s
Activation du profil %1$s
Activation de la règle %1$s en mode alternatif
@@ -779,4 +787,6 @@
Afficher les toasts
Afficher les toasts lorsque des événements tels que des exécutions de règles se produisent
Après avoir cliqué sur OK, sélectionnez Automatisation, puis sélectionnez « Autoriser l\'accès aux notifications », puis « Autoriser ».
+ Langue d\'affichage
+ Définir une langue personnalisée pour l\'application
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 0cb7d36..b1747eb 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -396,6 +396,14 @@
Roaming
È necessario avere i permessi di root per utilizzare questa funzione. Una volta abilitato l\'accesso root, dovrai \"eseguire la regola manualmente\" per attivare la richiesta di autorizzazione come superuser. Nella finestra di popup di superuser, bisognerà consentire sempre l\'esecuzione dell\'applicazione con questi permessi. In caso contrario, la regola non potrà funzionare quando il telefono è inattivo.
Regola
+ Impostazione predefinita del sistema
+ Inglese
+ Tedesco
+ Italiano
+ Spagnolo
+ Olandese
+ Russo
+ Francese
Attivando la regola %1$s
Attivando la regola %1$s in modalità reversibile
Regola attiva
@@ -780,4 +788,6 @@
Mostra toast
Mostrare gli avvisi popup quando si verificano eventi come le esecuzioni di regole
Dopo aver fatto clic su OK, selezionare Automazione, quindi selezionare \"Consenti accesso alle notifiche\", quindi \"Consenti\".
+ Lingua di visualizzazione
+ Set a custom language for the application
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index e8fac35..ed213a2 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -1,4 +1,12 @@
+ Systeemstandaard
+ Engels
+ Duits
+ Italiaans
+ Spaans
+ Nederlands
+ Russisch
+ Frans
Activering regel %1$s
Activeren profiel %1$s
Activeren regel %1$s in Togglemode
@@ -778,5 +786,7 @@
Toon toasts
Pop-ups weergeven wanneer gebeurtenissen zoals regeluitvoeringen plaatsvinden
Nadat u op OK hebt geklikt, selecteert u Automatisering, selecteert u vervolgens \"Toegang tot meldingen toestaan\" en vervolgens \"toestaan\".
+ Taal weergeven
+ Een aangepaste taal instellen voor de toepassing
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 1308415..4fe55d7 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -1,5 +1,13 @@
+ Системное значение по умолчанию
+ Английский
+ Немецкий
+ Итальянский
+ Испанский
+ Нидерландский
+ русский
+ Французский
Активация правила %1$s
Активация профиля %1$s
Активация правила %1$s в режиме переключения
@@ -837,4 +845,6 @@
Показать тосты
Отображение всплывающих уведомлений при таких событиях, как выполнение правил
После нажатия кнопки «ОК» выберите «Автоматизация», затем выберите «Разрешить доступ к уведомлениям», затем «Разрешить».
+ Язык интерфейса
+ Язык интерфейса
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index 2fdce81..19212da 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -22,6 +22,28 @@
- 3
+
+ - @string/languageSystemDefault
+ - @string/languageEnglish
+ - @string/languageGerman
+ - @string/languageItalian
+ - @string/languageSpanish
+ - @string/languageDutch
+ - @string/languageRussian
+ - @string/languageFrench
+
+
+
+ - systemDefaultLanguage
+ - en
+ - de
+ - it
+ - es
+ - nl
+ - ru
+ - fr
+
+
- @string/top
- @string/bottom
@@ -33,4 +55,12 @@
- 3
+ System default
+ English
+ German
+ Italian
+ Spanish
+ Dutch
+ Russian
+ French
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index ab0e9db..39964fc 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -877,4 +877,6 @@
Show toasts
Show toasts when events like rule executions occur
After clicking ok, select Automation, then select \"Allow notification access\", then \"allow\".
+ Display language
+ Set a custom language for the application
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/127.txt b/fastlane/metadata/android/en-US/changelogs/127.txt
index ae24b57..1b90ec0 100644
--- a/fastlane/metadata/android/en-US/changelogs/127.txt
+++ b/fastlane/metadata/android/en-US/changelogs/127.txt
@@ -1 +1,2 @@
-* Fixed: Editing variable action was not possible
\ No newline at end of file
+* Fixed: Editing variable action was not possible
+* Added: Possibility to pick a custom language in settings
\ No newline at end of file