diff --git a/app/src/main/java/com/emanuelef/remote_capture/PCAPdroid.java b/app/src/main/java/com/emanuelef/remote_capture/PCAPdroid.java index 6cba4a54..6067d5fc 100644 --- a/app/src/main/java/com/emanuelef/remote_capture/PCAPdroid.java +++ b/app/src/main/java/com/emanuelef/remote_capture/PCAPdroid.java @@ -1,7 +1,9 @@ package com.emanuelef.remote_capture; import android.app.Application; +import android.content.Context; import android.content.SharedPreferences; +import android.content.res.Resources; import androidx.preference.PreferenceManager; @@ -12,12 +14,14 @@ import java.lang.ref.WeakReference; public class PCAPdroid extends Application { private MatchList mVisMask; + private Context mLocalizedContext; private static WeakReference mInstance; @Override public void onCreate() { super.onCreate(); mInstance = new WeakReference<>(this); + mLocalizedContext = createConfigurationContext(Utils.getLocalizedConfig(this)); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); String theme = prefs.getString(Prefs.PREF_APP_THEME, ""); @@ -43,4 +47,13 @@ public class PCAPdroid extends Application { return mVisMask; } + + @Override + public Resources getResources() { + if(mLocalizedContext == null) + return super.getResources(); + + // Ensure that the selected locale is used + return mLocalizedContext.getResources(); + } } \ No newline at end of file diff --git a/app/src/main/java/com/emanuelef/remote_capture/activities/BaseActivity.java b/app/src/main/java/com/emanuelef/remote_capture/activities/BaseActivity.java index 8c95a74d..b20a61e7 100644 --- a/app/src/main/java/com/emanuelef/remote_capture/activities/BaseActivity.java +++ b/app/src/main/java/com/emanuelef/remote_capture/activities/BaseActivity.java @@ -16,6 +16,7 @@ class BaseActivity extends AppCompatActivity { @Override protected void attachBaseContext(Context base) { + // Ensure that the selected locale is used applyOverrideConfiguration(Utils.getLocalizedConfig(base)); super.attachBaseContext(base); } diff --git a/app/src/main/java/com/emanuelef/remote_capture/activities/EditFilterActivity.java b/app/src/main/java/com/emanuelef/remote_capture/activities/EditFilterActivity.java index c3fe3ee6..dc130aca 100644 --- a/app/src/main/java/com/emanuelef/remote_capture/activities/EditFilterActivity.java +++ b/app/src/main/java/com/emanuelef/remote_capture/activities/EditFilterActivity.java @@ -10,7 +10,6 @@ import android.widget.CheckBox; import androidx.annotation.NonNull; import androidx.appcompat.app.ActionBar; -import androidx.appcompat.app.AppCompatActivity; import com.emanuelef.remote_capture.PCAPdroid; import com.emanuelef.remote_capture.R; @@ -19,7 +18,7 @@ import com.emanuelef.remote_capture.model.FilterDescriptor; import com.emanuelef.remote_capture.model.MatchList; import com.google.android.material.chip.Chip; -public class EditFilterActivity extends AppCompatActivity { +public class EditFilterActivity extends BaseActivity { public static final String FILTER_DESCRIPTOR = "filter"; private static final String TAG = "FilterEditActivity"; private FilterDescriptor mFilter; diff --git a/app/src/main/java/com/emanuelef/remote_capture/activities/SettingsActivity.java b/app/src/main/java/com/emanuelef/remote_capture/activities/SettingsActivity.java index 6ec3f213..7b160950 100644 --- a/app/src/main/java/com/emanuelef/remote_capture/activities/SettingsActivity.java +++ b/app/src/main/java/com/emanuelef/remote_capture/activities/SettingsActivity.java @@ -194,6 +194,7 @@ public class SettingsActivity extends BaseActivity { if(SettingsActivity.ACTION_LANG_RESTART.equals(getActivity().getIntent().getAction())) scrollToPreference(appLang); + // Current locale applied via BaseActivity.attachBaseContext appLang.setOnPreferenceChangeListener((preference, newValue) -> { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); diff --git a/app/src/main/java/com/emanuelef/remote_capture/model/MatchList.java b/app/src/main/java/com/emanuelef/remote_capture/model/MatchList.java index e2fd7358..977b820e 100644 --- a/app/src/main/java/com/emanuelef/remote_capture/model/MatchList.java +++ b/app/src/main/java/com/emanuelef/remote_capture/model/MatchList.java @@ -48,7 +48,7 @@ import java.util.List; /* Matches connections against the configured rules. */ public class MatchList { - private static final String TAG = "ConnectionsMatcher"; + private static final String TAG = "MatchList"; private static final StyleSpan italic = new StyleSpan(Typeface.ITALIC); private final Context mContext; private final SharedPreferences mPrefs; @@ -106,6 +106,7 @@ public class MatchList { public void reload() { String serialized = mPrefs.getString(mPrefName, ""); + //Log.d(TAG, serialized); if(!serialized.isEmpty()) fromJson(serialized); @@ -115,7 +116,7 @@ public class MatchList { public void save() { mPrefs.edit() - .putString(Prefs.PREF_VISUALIZATION_MASK, toJson()) + .putString(mPrefName, toJson()) .apply(); }