X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/c2abbaaedb69dba35866a48b745b68f3519cbca1..5cba80a1ab2d5e9eb789560c06a40c47a0bda6ab:/src/com/owncloud/android/ui/activity/Preferences.java diff --git a/src/com/owncloud/android/ui/activity/Preferences.java b/src/com/owncloud/android/ui/activity/Preferences.java index 20c14bc6..dcd7027f 100644 --- a/src/com/owncloud/android/ui/activity/Preferences.java +++ b/src/com/owncloud/android/ui/activity/Preferences.java @@ -17,9 +17,8 @@ */ 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; @@ -27,7 +26,6 @@ import android.content.pm.PackageManager.NameNotFoundException; import android.net.Uri; import android.os.Bundle; import android.preference.CheckBoxPreference; -import android.preference.ListPreference; import android.preference.Preference; import android.preference.Preference.OnPreferenceChangeListener; import android.preference.Preference.OnPreferenceClickListener; @@ -38,33 +36,28 @@ import com.actionbarsherlock.app.ActionBar; 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. * * @author Bartek Przybylski - * + * @author David A. Velasco */ -public class Preferences extends SherlockPreferenceActivity implements OnPreferenceChangeListener { +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 mSessions; - private ListPreference mTrackingUpdateInterval; - private CheckBoxPreference mDeviceTracking; private CheckBoxPreference pCode; //private CheckBoxPreference pLogging; //private Preference pLoggingHistory; private Preference pAboutApp; - private int mSelectedMenuItem; @SuppressWarnings("deprecation") @@ -72,12 +65,19 @@ public class Preferences extends SherlockPreferenceActivity implements OnPrefere public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mDbHandler = new DbHandler(getBaseContext()); - mSessions = new Vector(); 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() { @@ -142,18 +142,19 @@ public class Preferences extends SherlockPreferenceActivity implements OnPrefere 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 recommendSubject = String.format(getString(R.string.recommend_subject), 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); @@ -269,10 +270,10 @@ public class Preferences extends SherlockPreferenceActivity implements OnPrefere @Override protected void onResume() { + super.onResume(); SharedPreferences appPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); boolean state = appPrefs.getBoolean("set_pincode", false); pCode.setChecked(state); - super.onResume(); } @Override @@ -287,21 +288,6 @@ public class Preferences extends SherlockPreferenceActivity implements OnPrefere Intent intent; switch (item.getItemId()) { - //case R.id.addSessionItem: - case 1: - intent = new Intent(this, PreferencesNewSession.class); - startActivityForResult(intent, mNewSession); - break; - case R.id.SessionContextEdit: - intent = new Intent(this, PreferencesNewSession.class); - intent.putExtra("sessionId", mSessions.get(mSelectedMenuItem) - .getEntryId()); - intent.putExtra("sessionName", mSessions.get(mSelectedMenuItem) - .getName()); - intent.putExtra("sessionURL", mSessions.get(mSelectedMenuItem) - .getUrl()); - startActivityForResult(intent, mEditSession); - break; case android.R.id.home: intent = new Intent(getBaseContext(), FileDisplayActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); @@ -324,36 +310,27 @@ public class Preferences extends SherlockPreferenceActivity implements OnPrefere mDbHandler.close(); super.onDestroy(); } - - @Override + /** - * Updates various summaries after updates. Also starts and stops - * the + * Create the list of accounts that have been added into the app + * + * @param accountsPrefCategory */ - public boolean onPreferenceChange(Preference preference, Object newValue) { - // Update current account summary - /*if (preference.equals(mAccountList)) { - mAccountList.setSummary(newValue.toString()); - } + 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); - // Update tracking interval summary - else*/ if (preference.equals(mTrackingUpdateInterval)) { - String trackingSummary = getResources().getString( - R.string.prefs_trackmydevice_interval_summary); - trackingSummary = String.format(trackingSummary, - newValue.toString()); - mTrackingUpdateInterval.setSummary(trackingSummary); - } + // Check the current account that is being used + if (a.name.equals(currentAccount.name)) { + checkBoxPreference.setChecked(true); + } - // Start or stop tracking service - else if (preference.equals(mDeviceTracking)) { - Intent locationServiceIntent = new Intent(); - locationServiceIntent - .setAction("com.owncloud.android.location.LocationLauncher"); - locationServiceIntent.putExtra("TRACKING_SETTING", - (Boolean) newValue); - sendBroadcast(locationServiceIntent); - } - return true; + accountsPrefCategory.addPreference(checkBoxPreference); + } } }