import android.os.Bundle;\r
import android.preference.ListPreference;\r
import android.preference.Preference;\r
+import android.preference.Preference.OnPreferenceChangeListener;\r
import android.preference.PreferenceScreen;\r
import android.util.Log;\r
import android.view.ContextMenu;\r
* @author Bartek Przybylski\r
*\r
*/\r
-public class Preferences extends SherlockPreferenceActivity {\r
+public class Preferences extends SherlockPreferenceActivity implements OnPreferenceChangeListener {\r
private static final String TAG = "OwnCloudPreferences";\r
private final int mNewSession = 47;\r
private final int mEditSession = 48;\r
private DbHandler mDbHandler;\r
private Vector<OwnCloudSession> mSessions;\r
private Account[] mAccounts;\r
+ private ListPreference mAccountList;\r
private int mSelectedMenuItem;\r
\r
@Override\r
private void populateAccountList(){\r
AccountManager accMan = AccountManager.get(this);\r
mAccounts = accMan.getAccountsByType(AccountAuthenticator.ACCOUNT_TYPE);\r
- ListPreference accountList = (ListPreference) findPreference("select_oc_account");\r
+ mAccountList = (ListPreference) findPreference("select_oc_account");\r
+ mAccountList.setOnPreferenceChangeListener(this);\r
\r
// Display the name of the current account if there is any\r
Account defaultAccount = AuthUtils.getCurrentOwnCloudAccount(this);\r
if(defaultAccount != null){\r
- accountList.setSummary(defaultAccount.name);\r
+ mAccountList.setSummary(defaultAccount.name);\r
}\r
\r
// Transform accounts into array of string for preferences to use\r
accNames[i] = account.name;\r
}\r
\r
- accountList.setEntries(accNames);\r
- accountList.setEntryValues(accNames);\r
+ mAccountList.setEntries(accNames);\r
+ mAccountList.setEntryValues(accNames);\r
}\r
\r
@Override\r
mDbHandler.close();\r
super.onDestroy();\r
}\r
+\r
+@Override\r
+/**\r
+ * Updates the summary of the account selector after a new account has \r
+ * been selected\r
+ */\r
+public boolean onPreferenceChange(Preference preference, Object newValue) {\r
+ if(preference.equals(mAccountList)) {\r
+ mAccountList.setSummary(newValue.toString());\r
+ }\r
+ return true;\r
+}\r
\r
}\r