Browse Source

Show the user-entered values in server, RSS and search site settings. Fixes #32.

pull/148/merge
Eric Kok 11 years ago
parent
commit
7f91d250be
  1. 3
      core/res/xml/pref_server.xml
  2. 33
      core/src/org/transdroid/core/gui/settings/KeyBoundPreferencesActivity.java
  3. 2
      core/src/org/transdroid/core/gui/settings/ServerSettingsActivity.java

3
core/res/xml/pref_server.xml

@ -78,8 +78,7 @@ @@ -78,8 +78,7 @@
android:key="server_timeout"
android:title="@string/pref_timeout"
android:summary="@string/pref_timeout_info"
android:inputType="numberSigned"
android:defaultValue="8" />
android:inputType="numberSigned" />
<CheckBoxPreference
android:key="server_sslenabled"
android:title="@string/pref_sslenable"

33
core/src/org/transdroid/core/gui/settings/KeyBoundPreferencesActivity.java

@ -16,6 +16,9 @@ @@ -16,6 +16,9 @@
*/
package org.transdroid.core.gui.settings;
import java.util.HashMap;
import java.util.Map;
import org.androidannotations.annotations.EActivity;
import org.androidannotations.annotations.Extra;
@ -24,8 +27,10 @@ import android.content.SharedPreferences.OnSharedPreferenceChangeListener; @@ -24,8 +27,10 @@ import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.preference.CheckBoxPreference;
import android.preference.EditTextPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceManager;
import android.preference.PreferenceScreen;
import android.text.method.PasswordTransformationMethod;
import com.actionbarsherlock.app.SherlockPreferenceActivity;
@ -45,6 +50,7 @@ public abstract class KeyBoundPreferencesActivity extends SherlockPreferenceActi @@ -45,6 +50,7 @@ public abstract class KeyBoundPreferencesActivity extends SherlockPreferenceActi
protected int key = -1;
private SharedPreferences sharedPrefs;
private Map<String, String> originalSummaries = new HashMap<String, String>();
/**
* Should be called during the activity {@link #onCreate(android.os.Bundle)} (but after super.onCreate(Bundle)) to
@ -85,6 +91,7 @@ public abstract class KeyBoundPreferencesActivity extends SherlockPreferenceActi @@ -85,6 +91,7 @@ public abstract class KeyBoundPreferencesActivity extends SherlockPreferenceActi
private OnSharedPreferenceChangeListener onPreferenceChangeListener = new OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
showValueOnSummary(key);
onPreferencesChanged();
}
};
@ -134,6 +141,9 @@ public abstract class KeyBoundPreferencesActivity extends SherlockPreferenceActi @@ -134,6 +141,9 @@ public abstract class KeyBoundPreferencesActivity extends SherlockPreferenceActi
pref.setDependency(dependency == null ? null : dependency + "_" + key);
// Update the Preference by loading the current stored value into the EditText, if it exists
pref.setText(sharedPrefs.getString(baseName + "_" + key, defValue));
// Remember the original descriptive summary and if we have a value, show that instead
originalSummaries.put(baseName + "_" + key, pref.getSummary() == null ? null : pref.getSummary().toString());
showValueOnSummary(baseName + "_" + key);
return pref;
}
@ -201,7 +211,30 @@ public abstract class KeyBoundPreferencesActivity extends SherlockPreferenceActi @@ -201,7 +211,30 @@ public abstract class KeyBoundPreferencesActivity extends SherlockPreferenceActi
pref.setKey(baseName + "_" + key);
// Update the Preference by selecting the current stored value in the list, if it exists
pref.setValue(sharedPrefs.getString(baseName + "_" + key, defValue));
// Remember the original descriptive summary and if we have a value, show that instead
originalSummaries.put(baseName + "_" + key, pref.getSummary() == null ? null : pref.getSummary().toString());
showValueOnSummary(baseName + "_" + key);
return pref;
}
@SuppressWarnings("deprecation")
protected void showValueOnSummary(String prefKey) {
Preference pref = findPreference(prefKey);
if (sharedPrefs.contains(prefKey)
&& pref instanceof EditTextPreference
&& !(((EditTextPreference) pref).getEditText().getTransformationMethod() instanceof PasswordTransformationMethod)) {
// Non-password edit preferences show the user-entered value
pref.setSummary(sharedPrefs.getString(prefKey, ""));
return;
} else if (sharedPrefs.contains(prefKey) && pref instanceof ListPreference
&& ((ListPreference) pref).getValue() != null) {
// List preferences show the selected list value
ListPreference listPreference = (ListPreference) pref;
pref.setSummary(listPreference.getEntries()[listPreference.findIndexOfValue(listPreference.getValue())]);
return;
}
if (originalSummaries.containsKey(prefKey))
pref.setSummary(originalSummaries.get(prefKey));
}
}

2
core/src/org/transdroid/core/gui/settings/ServerSettingsActivity.java

@ -61,7 +61,7 @@ public class ServerSettingsActivity extends KeyBoundPreferencesActivity { @@ -61,7 +61,7 @@ public class ServerSettingsActivity extends KeyBoundPreferencesActivity {
initTextPreference("server_localaddress");
initTextPreference("server_localport");
folder = initTextPreference("server_folder");
initTextPreference("server_timeout", "8");
initTextPreference("server_timeout");
initBooleanPreference("server_alarmfinished", true);
initBooleanPreference("server_alarmnew");
initListPreference("server_os", "type_linux");

Loading…
Cancel
Save