Skip to content
This repository was archived by the owner on Dec 29, 2022. It is now read-only.

Commit 82148f0

Browse files
authored
Merge pull request #869 from cco3/preffragsearch
Hide custom PWS settings when not in use
2 parents 79eac72 + 56cf946 commit 82148f0

File tree

1 file changed

+23
-7
lines changed

1 file changed

+23
-7
lines changed

android/PhysicalWeb/app/src/main/java/org/physical_web/physicalweb/SettingsFragment.java

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import android.preference.ListPreference;
2424
import android.preference.Preference;
2525
import android.preference.PreferenceFragment;
26+
import android.preference.PreferenceGroup;
2627
import android.preference.PreferenceManager;
2728
import android.view.Menu;
2829
import android.widget.Toast;
@@ -42,6 +43,7 @@ public class SettingsFragment extends PreferenceFragment
4243

4344
private static final String TAG = SettingsFragment.class.getSimpleName();
4445
private static final int MAX_ENDPOINT_OPTIONS = 3;
46+
private PreferenceGroup mCustomEndpointCategory;
4547

4648
public SettingsFragment() {
4749
}
@@ -54,6 +56,9 @@ public void onCreate(Bundle savedInstanceState) {
5456
// Load the preferences from an XML resource
5557
addPreferencesFromResource(R.xml.settings);
5658
updatePwsList();
59+
mCustomEndpointCategory =
60+
(PreferenceGroup) findPreference(getString(R.string.custom_pws_endpoint_key));
61+
updatePwsPreference();
5762
updateAllSettingSummaries();
5863
}
5964

@@ -97,6 +102,7 @@ public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, Strin
97102
updatePwsPreference();
98103
updatePwsList();
99104
} else if (key.equals(getString(R.string.pws_endpoint_setting_key))) {
105+
updatePwsPreference();
100106
Utils.deleteCache(getActivity());
101107
}
102108
}
@@ -128,21 +134,31 @@ private void updatePwsPreference() {
128134
ListPreference listPreference = (ListPreference) findPreference(
129135
getString(R.string.pws_endpoint_setting_key));
130136
String entry = (String) listPreference.getEntry();
131-
if (entry != null && entry.equals(getString(R.string.custom_pws))) {
137+
if (entry == null) {
138+
return;
139+
}
140+
141+
if (entry.equals(getString(R.string.custom_pws))) {
132142
// User selected custom PWS therefore need to update it accordingly
133-
EditTextPreference customPwsUrlPreference = (EditTextPreference) findPreference(
134-
getString(R.string.custom_pws_url_key));
135-
ListPreference customPwsVersionPreference = (ListPreference) findPreference(
136-
getString(R.string.custom_pws_version_key));
137-
EditTextPreference customPwsApiKeyPreference = (EditTextPreference) findPreference(
138-
getString(R.string.custom_pws_api_key_key));
143+
EditTextPreference customPwsUrlPreference =
144+
(EditTextPreference) mCustomEndpointCategory.findPreference(
145+
getString(R.string.custom_pws_url_key));
146+
ListPreference customPwsVersionPreference =
147+
(ListPreference) mCustomEndpointCategory.findPreference(
148+
getString(R.string.custom_pws_version_key));
149+
EditTextPreference customPwsApiKeyPreference =
150+
(EditTextPreference) mCustomEndpointCategory.findPreference(
151+
getString(R.string.custom_pws_api_key_key));
139152
String customPwsUrl = customPwsUrlPreference.getText();
140153
int customPwsVersion = Integer.parseInt(customPwsVersionPreference.getValue());
141154
String customPwsApiKey = customPwsApiKeyPreference.getText();
142155
customPwsUrl = customPwsUrl == null ? "" : customPwsUrl;
143156
customPwsApiKey = customPwsApiKey == null ? "" : customPwsApiKey;
144157
listPreference.setValue(Utils.formatEndpointForSharedPrefernces(customPwsUrl,
145158
customPwsVersion, customPwsApiKey));
159+
getPreferenceScreen().addPreference(mCustomEndpointCategory);
160+
} else {
161+
getPreferenceScreen().removePreference(mCustomEndpointCategory);
146162
}
147163
}
148164

0 commit comments

Comments
 (0)