\r
import eu.alefzero.owncloud.OwnCloudSession;\r
import eu.alefzero.owncloud.R;\r
+import eu.alefzero.owncloud.authenticator.AccountAuthenticator;\r
import eu.alefzero.owncloud.db.DbHandler;\r
\r
+import android.accounts.Account;\r
+import android.accounts.AccountManager;\r
import android.app.Activity;\r
import android.content.Intent;\r
import android.os.Bundle;\r
+import android.preference.ListPreference;\r
import android.preference.Preference;\r
import android.preference.PreferenceActivity;\r
import android.preference.PreferenceScreen;\r
*\r
*/\r
public class Preferences extends PreferenceActivity {\r
- private String TAG = "OwnCloudPreferences";\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 int mSelectedMenuItem;\r
\r
@Override\r
mSessions = new Vector<OwnCloudSession>();\r
addPreferencesFromResource(R.xml.preferences);\r
registerForContextMenu(getListView());\r
+ populateAccountList();\r
//populateSessionList();\r
}\r
\r
try {\r
uri = new URI(mSessions.get(i).getUrl());\r
} catch (URISyntaxException e) {\r
- e.printStackTrace(); // should never happend\r
+ e.printStackTrace(); // should never happen\r
continue;\r
}\r
preference.setSummary(uri.getScheme() + "://" + uri.getHost()+uri.getPath());\r
ps.addPreference(preference);\r
}\r
}\r
+ \r
+ /**\r
+ * Populates the account selector\r
+ */\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
+ \r
+ // Transform accounts into array of string for preferences to use\r
+ String[] accNames = new String[mAccounts.length];\r
+ for(int i = 0; i < mAccounts.length; i++){\r
+ Account account = mAccounts[i];\r
+ accNames[i] = account.name;\r
+ }\r
+ \r
+ accountList.setEntries(accNames);\r
+ accountList.setEntryValues(accNames);\r
+ }\r
\r
@Override\r
public boolean onCreateOptionsMenu(Menu menu) {\r