commit 5078bbb0325b25c01c58bbf7a282f6218fd9ddb1 Author: Hashik Donthineni HashikDonthineni@gmail.com Date: Sun Jun 28 18:46:14 2020 +0530
Fixed the bug of EditText deactivated when app restarts --- .../snowflake/constants/SettingsConstants.java | 24 ++++++++++++++++++++++ .../snowflake/fragments/AppSettingsFragment.java | 20 ++++++++++++++++-- 2 files changed, 42 insertions(+), 2 deletions(-)
diff --git a/app/src/main/java/org/torproject/snowflake/constants/SettingsConstants.java b/app/src/main/java/org/torproject/snowflake/constants/SettingsConstants.java new file mode 100644 index 0000000..6b6026e --- /dev/null +++ b/app/src/main/java/org/torproject/snowflake/constants/SettingsConstants.java @@ -0,0 +1,24 @@ +package org.torproject.snowflake.constants; + +import java.util.HashMap; +import java.util.Map; + +public class SettingsConstants { + //Switches + public static final String STUN_SWITCH = "stun_switch"; + public static final String BROKER_SWITCH = "broker_switch"; + public static final String RELAY_SWITCH = "relay_switch"; + + //Edit Texts + public static final String STUN_ET = "stun_edit_text"; + public static final String BROKER_ET = "broker_edit_text"; + public static final String RELAY_ET = "relay_edit_text"; + + public static Map<String, String> getSettingMap(){ + return new HashMap<String, String>(){{ + put(STUN_SWITCH, STUN_ET); + put(BROKER_SWITCH, BROKER_ET); + put(RELAY_SWITCH, RELAY_ET); + }}; + } +} diff --git a/app/src/main/java/org/torproject/snowflake/fragments/AppSettingsFragment.java b/app/src/main/java/org/torproject/snowflake/fragments/AppSettingsFragment.java index 526f0c8..87c2df9 100644 --- a/app/src/main/java/org/torproject/snowflake/fragments/AppSettingsFragment.java +++ b/app/src/main/java/org/torproject/snowflake/fragments/AppSettingsFragment.java @@ -8,6 +8,10 @@ import androidx.preference.Preference; import androidx.preference.PreferenceFragmentCompat;
import org.torproject.snowflake.R; +import org.torproject.snowflake.constants.SettingsConstants; + +import java.util.Iterator; +import java.util.Map;
public class AppSettingsFragment extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener {
@@ -21,7 +25,19 @@ public class AppSettingsFragment extends PreferenceFragmentCompat implements Sha @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { setPreferencesFromResource(R.xml.app_settings, rootKey); - getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); + SharedPreferences sharedPreferences = getPreferenceManager().getSharedPreferences(); + sharedPreferences.registerOnSharedPreferenceChangeListener(this); + + //When the fragment is started we have to check and set the EditTexts' to active. + Map<String, String> settingMap = SettingsConstants.getSettingMap(); + for(String button: settingMap.keySet()){ + String editT = settingMap.get(button); + + boolean isEnabled = sharedPreferences.getBoolean(button, false); + findPreference(editT).setEnabled(isEnabled); + findPreference(editT).setSummary( + sharedPreferences.getString(editT, "Default Value")); + } }
@Override @@ -49,7 +65,7 @@ public class AppSettingsFragment extends PreferenceFragmentCompat implements Sha //It's an Edit Text String editValue = sharedPreferences.getString(key, ""); if (!editValue.equals("")) - findPreference(key).setSummary(editValue); //Setting Edit text to edited value + findPreference(key).setSummary(editValue.trim()); //Setting Edit text to edited value else findPreference(key).setSummary("Using Default"); //Setting Edit text to Default because user left it empty. }