From e7807e0cf70f1d89dd42593f76d5fa758db4af0a Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Thu, 14 Jan 2010 00:00:38 +0000 Subject: [PATCH] "Advanced" account context menu now works right --- src/com/fsck/k9/activity/Accounts.java | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/com/fsck/k9/activity/Accounts.java b/src/com/fsck/k9/activity/Accounts.java index 722bddda5..1867638b0 100644 --- a/src/com/fsck/k9/activity/Accounts.java +++ b/src/com/fsck/k9/activity/Accounts.java @@ -491,37 +491,43 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC public boolean onContextItemSelected(MenuItem item) { AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo)item.getMenuInfo(); - Account account = (Account)getListView().getItemAtPosition(menuInfo.position); + // submenus don't actually set the menuInfo, so the "advanced" + // submenu wouldn't work. + if (menuInfo != null) { + mSelectedContextAccount = (Account)getListView().getItemAtPosition(menuInfo.position); + } switch (item.getItemId()) { case R.id.delete_account: - onDeleteAccount(account); + onDeleteAccount(mSelectedContextAccount); break; case R.id.edit_account: - onEditAccount(account); + onEditAccount(mSelectedContextAccount); break; case R.id.open: - onOpenAccount(account, false); + onOpenAccount(mSelectedContextAccount, false); break; case R.id.check_mail: - onCheckMail(account); + onCheckMail(mSelectedContextAccount); break; case R.id.clear_pending: - onClearCommands(account); + onClearCommands(mSelectedContextAccount); break; case R.id.empty_trash: - onEmptyTrash(account); + onEmptyTrash(mSelectedContextAccount); break; case R.id.compact: - onCompact(account); + onCompact(mSelectedContextAccount); break; case R.id.clear: - onClear(account); + onClear(mSelectedContextAccount); break; } return true; } + + private void onCompact(Account account) { mHandler.workingAccount(account, R.string.compacting_account);