along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
- <PreferenceCategory android:title="@string/prefs_category_general">
+ <PreferenceCategory android:title="@string/prefs_category_accounts" android:key="accounts_category">
+ </PreferenceCategory>
+ <PreferenceCategory android:title="@string/prefs_category_general">
<!-- ListPreference
android:key="select_oc_account"
android:title="@string/prefs_select_oc_account"
package com.owncloud.android.ui.activity;
import android.accounts.Account;
+import android.accounts.AccountManager;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageInfo;
import com.actionbarsherlock.app.SherlockPreferenceActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
+import com.owncloud.android.MainApp;
import com.owncloud.android.R;
import com.owncloud.android.authentication.AccountUtils;
import com.owncloud.android.db.DbHandler;
actionBar.setIcon(DisplayUtils.getSeasonalIconId());
actionBar.setDisplayHomeAsUpEnabled(true);
+ // Load the accounts category for adding the list of accounts
+ PreferenceCategory accountsPrefCategory = (PreferenceCategory) findPreference("accounts_category");
+
+ // Populate the accounts category with the list of accounts
+ createAccountsCheckboxPreferences(accountsPrefCategory);
+
+
Preference p = findPreference("manage_account");
if (p != null)
p.setOnPreferenceClickListener(new OnPreferenceClickListener() {
mDbHandler.close();
super.onDestroy();
}
-
+
+ /**
+ * Create the list of accounts that have been added into the app
+ *
+ * @param accountsPrefCategory
+ */
+ private void createAccountsCheckboxPreferences(PreferenceCategory accountsPrefCategory) {
+ AccountManager am = (AccountManager) getSystemService(ACCOUNT_SERVICE);
+ Account accounts[] = am.getAccountsByType(MainApp.getAccountType());
+ Account currentAccount = AccountUtils.getCurrentOwnCloudAccount(getApplicationContext());
+ for (Account a : accounts) {
+ CheckBoxPreference checkBoxPreference = new CheckBoxPreference(this);
+ checkBoxPreference.setKey(a.name);
+ checkBoxPreference.setTitle(a.name);
+
+ // Check the current account that is being used
+ if (a.name.equals(currentAccount.name)) {
+ checkBoxPreference.setChecked(true);
+ }
+
+ accountsPrefCategory.addPreference(checkBoxPreference);
+ }
+ }
}