X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/dc8c32fb3f7033d6fdfa7e1b64eaa77884da678a..a6e98cc7dc4c7f765f442015b1ac793e63884b75:/src/eu/alefzero/owncloud/ui/activity/Preferences.java diff --git a/src/eu/alefzero/owncloud/ui/activity/Preferences.java b/src/eu/alefzero/owncloud/ui/activity/Preferences.java index dadffaf6..3677f8ae 100644 --- a/src/eu/alefzero/owncloud/ui/activity/Preferences.java +++ b/src/eu/alefzero/owncloud/ui/activity/Preferences.java @@ -23,14 +23,16 @@ import java.util.Vector; import eu.alefzero.owncloud.OwnCloudSession; import eu.alefzero.owncloud.R; -import eu.alefzero.owncloud.R.id; -import eu.alefzero.owncloud.R.menu; -import eu.alefzero.owncloud.R.xml; +import eu.alefzero.owncloud.authenticator.AccountAuthenticator; +import eu.alefzero.owncloud.authenticator.AuthUtils; import eu.alefzero.owncloud.db.DbHandler; +import android.accounts.Account; +import android.accounts.AccountManager; import android.app.Activity; import android.content.Intent; import android.os.Bundle; +import android.preference.ListPreference; import android.preference.Preference; import android.preference.PreferenceActivity; import android.preference.PreferenceScreen; @@ -49,11 +51,12 @@ import android.widget.AdapterView.AdapterContextMenuInfo; * */ public class Preferences extends PreferenceActivity { - private String TAG = "OwnCloudPreferences"; + private static final String TAG = "OwnCloudPreferences"; private final int mNewSession = 47; private final int mEditSession = 48; private DbHandler mDbHandler; private Vector mSessions; + private Account[] mAccounts; private int mSelectedMenuItem; @Override @@ -63,6 +66,7 @@ public class Preferences extends PreferenceActivity { mSessions = new Vector(); addPreferencesFromResource(R.xml.preferences); registerForContextMenu(getListView()); + populateAccountList(); //populateSessionList(); } @@ -79,13 +83,38 @@ public class Preferences extends PreferenceActivity { try { uri = new URI(mSessions.get(i).getUrl()); } catch (URISyntaxException e) { - e.printStackTrace(); // should never happend + e.printStackTrace(); // should never happen continue; } preference.setSummary(uri.getScheme() + "://" + uri.getHost()+uri.getPath()); ps.addPreference(preference); } } + + /** + * Populates the account selector + */ + private void populateAccountList(){ + AccountManager accMan = AccountManager.get(this); + mAccounts = accMan.getAccountsByType(AccountAuthenticator.ACCOUNT_TYPE); + ListPreference accountList = (ListPreference) findPreference("select_oc_account"); + + // Display the name of the current account if there is any + Account defaultAccount = AuthUtils.getCurrentOwnCloudAccount(this); + if(defaultAccount != null){ + accountList.setSummary(defaultAccount.name); + } + + // Transform accounts into array of string for preferences to use + String[] accNames = new String[mAccounts.length]; + for(int i = 0; i < mAccounts.length; i++){ + Account account = mAccounts[i]; + accNames[i] = account.name; + } + + accountList.setEntries(accNames); + accountList.setEntryValues(accNames); + } @Override public boolean onCreateOptionsMenu(Menu menu) {