From: jabarros Date: Thu, 7 Aug 2014 14:02:51 +0000 (+0200) Subject: Set first account checked as default when the current used account is removed and... X-Git-Tag: oc-android-1.7.0_signed~227^2~2 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/d3b07add372a535c9026454aa244d501db37350c?ds=sidebyside;hp=--cc Set first account checked as default when the current used account is removed and added some comments into the code --- d3b07add372a535c9026454aa244d501db37350c diff --git a/src/com/owncloud/android/ui/activity/Preferences.java b/src/com/owncloud/android/ui/activity/Preferences.java index 792bf58f..27113686 100644 --- a/src/com/owncloud/android/ui/activity/Preferences.java +++ b/src/com/owncloud/android/ui/activity/Preferences.java @@ -108,6 +108,7 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa ListView listView = (ListView) parent; ListAdapter listAdapter = listView.getAdapter(); Object obj = listAdapter.getItem(position); + if (obj != null && obj instanceof LongClickableCheckBoxPreference) { mShowContextMenu = true; mAccountName = obj.toString(); @@ -121,6 +122,7 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa } }); + // Register context menu for list of preferences. registerForContextMenu(getListView()); pCode = (CheckBoxPreference) findPreference("set_pincode"); @@ -302,6 +304,9 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { + + // Filter for only showing contextual menu when long press on the + // accounts if (mShowContextMenu) { getMenuInflater().inflate(R.menu.account_picker_long_click, menu); mShowContextMenu = false; @@ -323,6 +328,8 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa for (Account a : accounts) { if (a.name.equals(mAccountName)) { if (item.getItemId() == R.id.change_password) { + + // Change account password Intent updateAccountCredentials = new Intent(this, AuthenticatorActivity.class); updateAccountCredentials.putExtra(AuthenticatorActivity.EXTRA_ACCOUNT, a); updateAccountCredentials.putExtra(AuthenticatorActivity.EXTRA_ACTION, @@ -330,6 +337,8 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa startActivity(updateAccountCredentials); } else if (item.getItemId() == R.id.delete_account) { + + // Remove account am.removeAccount(a, this, mHandler); } } @@ -349,7 +358,7 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa accountName = accounts[0].name; AccountUtils.setCurrentOwnCloudAccount(this, accountName); } - createAccountsCheckboxPreferences(); + addAccountsCheckboxPreferences(); } } @@ -361,7 +370,7 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa pCode.setChecked(state); // Populate the accounts category with the list of accounts - createAccountsCheckboxPreferences(); + addAccountsCheckboxPreferences(); } @Override @@ -403,7 +412,7 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa * Create the list of accounts that has been added into the app */ @SuppressWarnings("deprecation") - private void createAccountsCheckboxPreferences() { + private void addAccountsCheckboxPreferences() { // Remove accounts in case list is refreshing for avoiding to have // duplicate items @@ -427,6 +436,7 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa LongClickableCheckBoxPreference accountPreference = new LongClickableCheckBoxPreference(this); accountPreference.setKey(a.name); accountPreference.setTitle(a.name); + mAccountsPrefCategory.addPreference(accountPreference); // Check the current account that is being used if (a.name.equals(currentAccount.name)) { @@ -454,7 +464,6 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa } }); - mAccountsPrefCategory.addPreference(accountPreference); } // Add Create Account preference at the end of account list if