aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/fil/libre/repwifiapp/activities/SettingsActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/fil/libre/repwifiapp/activities/SettingsActivity.java')
-rw-r--r--app/src/fil/libre/repwifiapp/activities/SettingsActivity.java106
1 files changed, 86 insertions, 20 deletions
diff --git a/app/src/fil/libre/repwifiapp/activities/SettingsActivity.java b/app/src/fil/libre/repwifiapp/activities/SettingsActivity.java
index 90629e3..6f14748 100644
--- a/app/src/fil/libre/repwifiapp/activities/SettingsActivity.java
+++ b/app/src/fil/libre/repwifiapp/activities/SettingsActivity.java
@@ -1,35 +1,101 @@
package fil.libre.repwifiapp.activities;
+import org.apache.http.conn.util.InetAddressUtils;
import java.util.List;
-
+import fil.libre.repwifiapp.Commons;
import fil.libre.repwifiapp.R;
import android.os.Bundle;
+import android.preference.EditTextPreference;
+import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceFragment;
-
public class SettingsActivity extends PreferenceActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- }
-
- @Override
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ setTheme(R.style.Theme_SettingsTheme);
+ super.onCreate(savedInstanceState);
+ }
+
+ @Override
public void onBuildHeaders(List<Header> target) {
loadHeadersFromResource(R.xml.settings_headers, target);
}
-
-
- public static class RepWifiFragment extends PreferenceFragment {
-
- @Override
- public void onCreate(Bundle savedInstanceState){
- super.onCreate(savedInstanceState);
- addPreferencesFromResource(R.xml.settings);
- }
-
- }
+
+ public static class DebugSettingFragment extends PreferenceFragment {
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ addPreferencesFromResource(R.xml.debug_settings);
+
+ setConfirmKillBackend();
+
+ }
+
+ private void setConfirmKillBackend() {
+
+ Preference pref = getPreferenceScreen().findPreference("pref_kill_backend");
+ pref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
+
+ @Override
+ public boolean onPreferenceClick(Preference p) {
+ Commons.killBackEnd(getActivity(), false);
+ return true;
+ }
+ });
+
+ }
+
+ }
+
+ public static class GeneralSettingFragment extends PreferenceFragment {
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ addPreferencesFromResource(R.xml.general_settings);
+
+ setValidationListener("dns1");
+ setValidationListener("dns2");
+ setConfirmRestore();
+
+ }
+
+ private void setValidationListener(String prefName) {
+ EditTextPreference edit_Pref = (EditTextPreference) getPreferenceScreen()
+ .findPreference(prefName);
+
+ edit_Pref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ // put validation here..
+ if (((String) newValue).isEmpty()
+ || InetAddressUtils.isIPv4Address((String) newValue)) {
+ return true;
+ } else {
+ Commons.showMessage("ERROR:\nWrong IP format!", getActivity());
+ return false;
+ }
+ }
+ });
+ }
+
+ private void setConfirmRestore() {
+
+ Preference pref = getPreferenceScreen().findPreference("pref_restore_default");
+ pref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
+
+ @Override
+ public boolean onPreferenceClick(Preference p) {
+ Commons.resetSettingsDefault(getActivity(), false);
+ return true;
+ }
+ });
+
+ }
+ }
}