*/
package com.owncloud.android.ui.activity;
-import java.util.Vector;
-
+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.Log_OC;
-import com.owncloud.android.OwnCloudSession;
+import com.owncloud.android.MainApp;
import com.owncloud.android.R;
+import com.owncloud.android.authentication.AccountUtils;
import com.owncloud.android.db.DbHandler;
+import com.owncloud.android.utils.DisplayUtils;
+import com.owncloud.android.utils.Log_OC;
+
/**
* An Activity that allows the user to change the application's settings.
public class Preferences extends SherlockPreferenceActivity {
private static final String TAG = "OwnCloudPreferences";
- private final int mNewSession = 47;
- private final int mEditSession = 48;
private DbHandler mDbHandler;
- private Vector<OwnCloudSession> mSessions;
private CheckBoxPreference pCode;
//private CheckBoxPreference pLogging;
//private Preference pLoggingHistory;
private Preference pAboutApp;
- private int mSelectedMenuItem;
@SuppressWarnings("deprecation")
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mDbHandler = new DbHandler(getBaseContext());
- mSessions = new Vector<OwnCloudSession>();
addPreferencesFromResource(R.xml.preferences);
//populateAccountList();
ActionBar actionBar = getSherlock().getActionBar();
+ 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() {
Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setType("text/plain");
- //Account currentAccount = AccountUtils.getCurrentOwnCloudAccount(Preferences.this);
+ intent.setData(Uri.parse(getString(R.string.mail_recommend)));
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+
String appName = getString(R.string.app_name);
- //String username = currentAccount.name.substring(0, currentAccount.name.lastIndexOf('@'));
- //String recommendSubject = String.format(getString(R.string.recommend_subject), username, appName);
+ String downloadUrl = getString(R.string.url_app_download);
+ Account currentAccount = AccountUtils.getCurrentOwnCloudAccount(Preferences.this);
+ String username = currentAccount.name.substring(0, currentAccount.name.lastIndexOf('@'));
+
String recommendSubject = String.format(getString(R.string.recommend_subject), appName);
+ String recommendText = String.format(getString(R.string.recommend_text), appName, downloadUrl, username);
+
intent.putExtra(Intent.EXTRA_SUBJECT, recommendSubject);
- //String recommendText = String.format(getString(R.string.recommend_text), getString(R.string.app_name), username);
- String recommendText = String.format(getString(R.string.recommend_text), getString(R.string.app_name), getString(R.string.url_app_download));
intent.putExtra(Intent.EXTRA_TEXT, recommendText);
-
- intent.setData(Uri.parse(getString(R.string.mail_recommend)));
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
@Override
protected void onResume() {
+ super.onResume();
SharedPreferences appPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
boolean state = appPrefs.getBoolean("set_pincode", false);
pCode.setChecked(state);
- super.onResume();
}
@Override
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);
+ }
+ }
}