mirror of
https://github.com/moparisthebest/k-9
synced 2024-11-30 13:12:25 -05:00
Implements new "Batch ops" option menu in Message List. Provides for
flag/unflag, mark as read/unread and delete. Also provides explicit mode changing, and select/deselect all. Move and copy are partially implemented, but disabled. Desperately needs a new icon. The "Sort by..." menu now toggles ascending/descending when the currently selected sort mode is clicked. Also, an ineffective change to setting the title in the Message List. A bit more work is in order on that.
This commit is contained in:
parent
5b1c5b2289
commit
0cd2dfb77d
@ -38,10 +38,60 @@
|
|||||||
</menu>
|
</menu>
|
||||||
</item>
|
</item>
|
||||||
<item
|
<item
|
||||||
android:id="@+id/reverse_sort"
|
android:id="@+id/batch_ops"
|
||||||
android:title="@string/reverse_sort_action"
|
android:title="@string/batch_ops"
|
||||||
android:icon="@drawable/ic_menu_reverse_sort"
|
android:icon="@drawable/ic_menu_reverse_sort">
|
||||||
|
<menu>
|
||||||
|
<item
|
||||||
|
android:id="@+id/batch_delete_op"
|
||||||
|
android:title="@string/batch_delete_op"
|
||||||
/>
|
/>
|
||||||
|
<item
|
||||||
|
android:id="@+id/batch_mark_read_op"
|
||||||
|
android:title="@string/batch_mark_read_op"
|
||||||
|
/>
|
||||||
|
<item
|
||||||
|
android:id="@+id/batch_flag_op"
|
||||||
|
android:title="@string/batch_flag_op"
|
||||||
|
/>
|
||||||
|
<item
|
||||||
|
android:id="@+id/batch_mark_unread_op"
|
||||||
|
android:title="@string/batch_mark_unread_op"
|
||||||
|
/>
|
||||||
|
<item
|
||||||
|
android:id="@+id/batch_unflag_op"
|
||||||
|
android:title="@string/batch_unflag_op"
|
||||||
|
/>
|
||||||
|
<item
|
||||||
|
android:id="@+id/batch_move_op"
|
||||||
|
android:title="@string/batch_move_op"
|
||||||
|
/>
|
||||||
|
<item
|
||||||
|
android:id="@+id/batch_copy_op"
|
||||||
|
android:title="@string/batch_copy_op"
|
||||||
|
/>
|
||||||
|
<item
|
||||||
|
android:id="@+id/batch_flag_mode"
|
||||||
|
android:title="@string/batch_flag_mode"
|
||||||
|
/>
|
||||||
|
<item
|
||||||
|
android:id="@+id/batch_select_mode"
|
||||||
|
android:title="@string/batch_select_mode"
|
||||||
|
/>
|
||||||
|
<item
|
||||||
|
android:id="@+id/batch_plain_mode"
|
||||||
|
android:title="@string/batch_plain_mode"
|
||||||
|
/>
|
||||||
|
<item
|
||||||
|
android:id="@+id/batch_select_all"
|
||||||
|
android:title="@string/batch_select_all"
|
||||||
|
/>
|
||||||
|
<item
|
||||||
|
android:id="@+id/batch_deselect_all"
|
||||||
|
android:title="@string/batch_deselect_all"
|
||||||
|
/>
|
||||||
|
</menu>
|
||||||
|
</item>
|
||||||
<item
|
<item
|
||||||
android:id="@+id/list_folders"
|
android:id="@+id/list_folders"
|
||||||
android:alphabeticShortcut="f"
|
android:alphabeticShortcut="f"
|
||||||
|
@ -573,5 +573,18 @@ Welcome to K-9 Mail setup. K-9 is an open source mail client for Android origin
|
|||||||
<string name="date_format_common">dd-MMM-yyyy</string>
|
<string name="date_format_common">dd-MMM-yyyy</string>
|
||||||
<string name="date_format_iso8601">yyyy-MM-dd</string>
|
<string name="date_format_iso8601">yyyy-MM-dd</string>
|
||||||
|
|
||||||
|
<string name="batch_ops">Batch Ops</string>
|
||||||
|
<string name="batch_delete_op">Delete selected</string>
|
||||||
|
<string name="batch_mark_read_op">Mark selected read</string>
|
||||||
|
<string name="batch_mark_unread_op">Mark selected unread</string>
|
||||||
|
<string name="batch_flag_op">Flag selected</string>
|
||||||
|
<string name="batch_unflag_op">Unflag selected</string>
|
||||||
|
<string name="batch_move_op">Move selected</string>
|
||||||
|
<string name="batch_copy_op">Copy selected</string>
|
||||||
|
<string name="batch_flag_mode">Star mode</string>
|
||||||
|
<string name="batch_select_mode">Select mode</string>
|
||||||
|
<string name="batch_plain_mode">Plain mode</string>
|
||||||
|
<string name="batch_select_all">Select all</string>
|
||||||
|
<string name="batch_deselect_all">Deselect all</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -434,6 +434,7 @@ public class MessageList
|
|||||||
onRestoreListState(savedInstanceState);
|
onRestoreListState(savedInstanceState);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setTitle();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onRestoreListState(Bundle savedInstanceState)
|
private void onRestoreListState(Bundle savedInstanceState)
|
||||||
@ -485,13 +486,17 @@ public class MessageList
|
|||||||
notifMgr.cancel(mAccount.getAccountNumber());
|
notifMgr.cancel(mAccount.getAccountNumber());
|
||||||
notifMgr.cancel(-1000 - mAccount.getAccountNumber());
|
notifMgr.cancel(-1000 - mAccount.getAccountNumber());
|
||||||
|
|
||||||
|
setTitle();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setTitle()
|
||||||
|
{
|
||||||
setTitle(
|
setTitle(
|
||||||
mAccount.getDescription()
|
mAccount.getDescription()
|
||||||
+ " - " +
|
+ " - " +
|
||||||
mCurrentFolder.displayName
|
mCurrentFolder.displayName
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -702,13 +707,11 @@ public class MessageList
|
|||||||
case WIDGET_FLAG:
|
case WIDGET_FLAG:
|
||||||
{
|
{
|
||||||
mSelectedWidget = WIDGET_MULTISELECT;
|
mSelectedWidget = WIDGET_MULTISELECT;
|
||||||
showBatchButtons();
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case WIDGET_MULTISELECT:
|
case WIDGET_MULTISELECT:
|
||||||
{
|
{
|
||||||
mSelectedWidget = WIDGET_NONE;
|
mSelectedWidget = WIDGET_NONE;
|
||||||
hideBatchButtons();
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case WIDGET_NONE:
|
case WIDGET_NONE:
|
||||||
@ -731,13 +734,11 @@ public class MessageList
|
|||||||
case WIDGET_NONE:
|
case WIDGET_NONE:
|
||||||
{
|
{
|
||||||
mSelectedWidget=WIDGET_MULTISELECT;
|
mSelectedWidget=WIDGET_MULTISELECT;
|
||||||
showBatchButtons();
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case WIDGET_MULTISELECT:
|
case WIDGET_MULTISELECT:
|
||||||
{
|
{
|
||||||
mSelectedWidget=WIDGET_FLAG;
|
mSelectedWidget=WIDGET_FLAG;
|
||||||
hideBatchButtons();
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -745,6 +746,24 @@ public class MessageList
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
configureWidgets();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void configureWidgets()
|
||||||
|
{
|
||||||
|
switch (mSelectedWidget)
|
||||||
|
{
|
||||||
|
case WIDGET_FLAG:
|
||||||
|
hideBatchButtons();
|
||||||
|
break;
|
||||||
|
case WIDGET_NONE:
|
||||||
|
hideBatchButtons();
|
||||||
|
break;
|
||||||
|
case WIDGET_MULTISELECT:
|
||||||
|
showBatchButtons();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
int count = mListView.getChildCount();
|
int count = mListView.getChildCount();
|
||||||
for (int i=0; i<count; i++)
|
for (int i=0; i<count; i++)
|
||||||
@ -810,6 +829,12 @@ public class MessageList
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void changeSort(SORT_TYPE newSortType)
|
private void changeSort(SORT_TYPE newSortType)
|
||||||
|
{
|
||||||
|
if (sortType == newSortType)
|
||||||
|
{
|
||||||
|
onToggleSortAscending();
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
sortType = newSortType;
|
sortType = newSortType;
|
||||||
MessagingController.getInstance(getApplication()).setSortType(sortType);
|
MessagingController.getInstance(getApplication()).setSortType(sortType);
|
||||||
@ -817,6 +842,7 @@ public class MessageList
|
|||||||
sortDateAscending = MessagingController.getInstance(getApplication()).isSortAscending(SORT_TYPE.SORT_DATE);
|
sortDateAscending = MessagingController.getInstance(getApplication()).isSortAscending(SORT_TYPE.SORT_DATE);
|
||||||
reSort();
|
reSort();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void reSort()
|
private void reSort()
|
||||||
{
|
{
|
||||||
@ -1119,7 +1145,8 @@ public class MessageList
|
|||||||
@Override
|
@Override
|
||||||
public boolean onOptionsItemSelected(MenuItem item)
|
public boolean onOptionsItemSelected(MenuItem item)
|
||||||
{
|
{
|
||||||
switch (item.getItemId())
|
int itemId = item.getItemId();
|
||||||
|
switch (itemId)
|
||||||
{
|
{
|
||||||
case R.id.check_mail:
|
case R.id.check_mail:
|
||||||
checkMail(mAccount, mFolderName);
|
checkMail(mAccount, mFolderName);
|
||||||
@ -1168,11 +1195,6 @@ public class MessageList
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case R.id.reverse_sort:
|
|
||||||
onToggleSortAscending();
|
|
||||||
|
|
||||||
return true;
|
|
||||||
|
|
||||||
case R.id.list_folders:
|
case R.id.list_folders:
|
||||||
onShowFolderList();
|
onShowFolderList();
|
||||||
|
|
||||||
@ -1193,16 +1215,121 @@ public class MessageList
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
case R.id.batch_select_all:
|
||||||
|
setAllSelected(true);
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case R.id.batch_deselect_all:
|
||||||
|
setAllSelected(false);
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case R.id.batch_copy_op:
|
||||||
|
moveOrCopySelected(false);
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case R.id.batch_move_op:
|
||||||
|
moveOrCopySelected(true);
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case R.id.batch_delete_op:
|
||||||
|
deleteSelected();
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case R.id.batch_mark_read_op:
|
||||||
|
flagSelected(Flag.SEEN, true);
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case R.id.batch_mark_unread_op:
|
||||||
|
flagSelected(Flag.SEEN, false);
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case R.id.batch_flag_op:
|
||||||
|
flagSelected(Flag.FLAGGED, true);
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case R.id.batch_unflag_op:
|
||||||
|
flagSelected(Flag.FLAGGED, false);
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case R.id.batch_plain_mode:
|
||||||
|
mSelectedWidget = WIDGET_NONE;
|
||||||
|
configureWidgets();
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case R.id.batch_select_mode:
|
||||||
|
mSelectedWidget = WIDGET_MULTISELECT;
|
||||||
|
configureWidgets();
|
||||||
|
return true;
|
||||||
|
|
||||||
|
case R.id.batch_flag_mode:
|
||||||
|
mSelectedWidget = WIDGET_FLAG;
|
||||||
|
configureWidgets();
|
||||||
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
private final int[] batch_ops = { R.id.batch_copy_op, R.id.batch_delete_op, R.id.batch_flag_op,
|
||||||
public boolean onCreateOptionsMenu(Menu menu)
|
R.id.batch_unflag_op, R.id.batch_mark_read_op, R.id.batch_mark_unread_op, R.id.batch_move_op ,
|
||||||
|
R.id.batch_select_all, R.id.batch_deselect_all };
|
||||||
|
|
||||||
|
private final int[] batch_modes = { R.id.batch_flag_mode, R.id.batch_select_mode, R.id.batch_plain_mode };
|
||||||
|
|
||||||
|
private void setOpsState(Menu menu, boolean state, boolean enabled)
|
||||||
{
|
{
|
||||||
super.onCreateOptionsMenu(menu);
|
for (int id : batch_ops)
|
||||||
getMenuInflater().inflate(R.menu.message_list_option, menu);
|
{
|
||||||
|
menu.findItem(id).setVisible(state);
|
||||||
|
menu.findItem(id).setEnabled(enabled);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setOpsMode(Menu menu, int currentModeId)
|
||||||
|
{
|
||||||
|
for (int id : batch_modes)
|
||||||
|
{
|
||||||
|
menu.findItem(id).setVisible(id != currentModeId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onPrepareOptionsMenu(Menu menu)
|
||||||
|
{
|
||||||
|
switch (mSelectedWidget)
|
||||||
|
{
|
||||||
|
case WIDGET_FLAG:
|
||||||
|
{
|
||||||
|
setOpsState(menu, false, false);
|
||||||
|
setOpsMode(menu, R.id.batch_flag_mode);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case WIDGET_MULTISELECT:
|
||||||
|
{
|
||||||
|
boolean anySelected = anySelected();
|
||||||
|
setOpsState(menu, true, anySelected);
|
||||||
|
setOpsMode(menu, R.id.batch_select_mode);
|
||||||
|
boolean newFlagState = computeBatchDirection(true);
|
||||||
|
boolean newReadState = computeBatchDirection(false);
|
||||||
|
menu.findItem(R.id.batch_flag_op).setVisible(newFlagState);
|
||||||
|
menu.findItem(R.id.batch_unflag_op).setVisible(!newFlagState);
|
||||||
|
menu.findItem(R.id.batch_mark_read_op).setVisible(newReadState);
|
||||||
|
menu.findItem(R.id.batch_mark_unread_op).setVisible(!newReadState);
|
||||||
|
menu.findItem(R.id.batch_deselect_all).setEnabled(anySelected);
|
||||||
|
menu.findItem(R.id.batch_select_all).setEnabled(true);
|
||||||
|
// TODO: batch move and copy not yet implemented
|
||||||
|
menu.findItem(R.id.batch_move_op).setVisible(false);
|
||||||
|
menu.findItem(R.id.batch_copy_op).setVisible(false);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case WIDGET_NONE:
|
||||||
|
{
|
||||||
|
setOpsState(menu, false, false);
|
||||||
|
setOpsMode(menu, R.id.batch_plain_mode);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (mCurrentFolder.outbox)
|
if (mCurrentFolder.outbox)
|
||||||
{
|
{
|
||||||
@ -1212,6 +1339,16 @@ public class MessageList
|
|||||||
{
|
{
|
||||||
menu.findItem(R.id.send_messages).setVisible(false);
|
menu.findItem(R.id.send_messages).setVisible(false);
|
||||||
}
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onCreateOptionsMenu(Menu menu)
|
||||||
|
{
|
||||||
|
super.onCreateOptionsMenu(menu);
|
||||||
|
getMenuInflater().inflate(R.menu.message_list_option, menu);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -1343,16 +1480,6 @@ public class MessageList
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private String truncateStatus(String mess)
|
|
||||||
{
|
|
||||||
if (mess != null && mess.length() > 27)
|
|
||||||
{
|
|
||||||
mess = mess.substring(0, 27);
|
|
||||||
}
|
|
||||||
|
|
||||||
return mess;
|
|
||||||
}
|
|
||||||
|
|
||||||
class MessageListAdapter extends BaseAdapter
|
class MessageListAdapter extends BaseAdapter
|
||||||
{
|
{
|
||||||
private List<MessageInfoHolder> messages = java.util.Collections.synchronizedList(new ArrayList<MessageInfoHolder>());
|
private List<MessageInfoHolder> messages = java.util.Collections.synchronizedList(new ArrayList<MessageInfoHolder>());
|
||||||
@ -2227,43 +2354,66 @@ public class MessageList
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onClick(View v)
|
private boolean computeBatchDirection(boolean flagged)
|
||||||
{
|
{
|
||||||
boolean newState = false;
|
boolean newState = false;
|
||||||
List<Message> messageList = new ArrayList<Message>();
|
|
||||||
for (MessageInfoHolder holder : mAdapter.messages)
|
for (MessageInfoHolder holder : mAdapter.messages)
|
||||||
{
|
{
|
||||||
if (holder.selected)
|
if (holder.selected)
|
||||||
{
|
{
|
||||||
if (v == mBatchDeleteButton)
|
if (flagged)
|
||||||
{
|
|
||||||
mAdapter.removeMessage(holder);
|
|
||||||
}
|
|
||||||
else if (v == mBatchFlagButton)
|
|
||||||
{
|
{
|
||||||
if (!holder.flagged)
|
if (!holder.flagged)
|
||||||
{
|
{
|
||||||
newState = true;
|
newState = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (v == mBatchReadButton)
|
else
|
||||||
{
|
{
|
||||||
if (!holder.read)
|
if (!holder.read)
|
||||||
{
|
{
|
||||||
newState = true;
|
newState = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
messageList.add(holder.message);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return newState;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean anySelected()
|
||||||
|
{
|
||||||
|
for (MessageInfoHolder holder : mAdapter.messages)
|
||||||
|
{
|
||||||
|
if (holder.selected)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onClick(View v)
|
||||||
|
{
|
||||||
|
boolean newState = false;
|
||||||
|
List<Message> messageList = new ArrayList<Message>();
|
||||||
|
List<MessageInfoHolder> removeHolderList = new ArrayList<MessageInfoHolder>();
|
||||||
|
|
||||||
|
if (v == mBatchFlagButton)
|
||||||
|
{
|
||||||
|
newState = computeBatchDirection(true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
newState = computeBatchDirection(false);
|
||||||
|
}
|
||||||
for (MessageInfoHolder holder : mAdapter.messages)
|
for (MessageInfoHolder holder : mAdapter.messages)
|
||||||
{
|
{
|
||||||
if (holder.selected)
|
if (holder.selected)
|
||||||
{
|
{
|
||||||
if (v == mBatchDeleteButton)
|
if (v == mBatchDeleteButton)
|
||||||
{
|
{
|
||||||
//nothing
|
removeHolderList.add(holder);
|
||||||
}
|
}
|
||||||
else if (v == mBatchFlagButton)
|
else if (v == mBatchFlagButton)
|
||||||
{
|
{
|
||||||
@ -2273,8 +2423,10 @@ public class MessageList
|
|||||||
{
|
{
|
||||||
holder.read = newState;
|
holder.read = newState;
|
||||||
}
|
}
|
||||||
|
messageList.add(holder.message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
mAdapter.removeMessages(removeHolderList);
|
||||||
|
|
||||||
if (!messageList.isEmpty())
|
if (!messageList.isEmpty())
|
||||||
{
|
{
|
||||||
@ -2298,5 +2450,62 @@ public class MessageList
|
|||||||
mHandler.sortMessages();
|
mHandler.sortMessages();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setAllSelected(boolean isSelected)
|
||||||
|
{
|
||||||
|
mSelectedCount = 0;
|
||||||
|
for (MessageInfoHolder holder : mAdapter.messages)
|
||||||
|
{
|
||||||
|
holder.selected = isSelected;
|
||||||
|
mSelectedCount += (isSelected ? 1 : 0);
|
||||||
|
}
|
||||||
|
mAdapter.notifyDataSetChanged();
|
||||||
|
showBatchButtons();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void flagSelected(Flag flag, boolean newState)
|
||||||
|
{
|
||||||
|
List<Message> messageList = new ArrayList<Message>();
|
||||||
|
for (MessageInfoHolder holder : mAdapter.messages)
|
||||||
|
{
|
||||||
|
if (holder.selected)
|
||||||
|
{
|
||||||
|
messageList.add(holder.message);
|
||||||
|
if (flag == Flag.SEEN)
|
||||||
|
{
|
||||||
|
holder.read = newState;
|
||||||
|
}
|
||||||
|
else if (flag == Flag.FLAGGED)
|
||||||
|
{
|
||||||
|
holder.flagged = newState;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
MessagingController.getInstance(getApplication()).setFlag(mAccount, mCurrentFolder.name, messageList.toArray(new Message[0]),
|
||||||
|
flag , newState);
|
||||||
|
mHandler.sortMessages();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void deleteSelected()
|
||||||
|
{
|
||||||
|
List<Message> messageList = new ArrayList<Message>();
|
||||||
|
List<MessageInfoHolder> removeHolderList = new ArrayList<MessageInfoHolder>();
|
||||||
|
for (MessageInfoHolder holder : mAdapter.messages)
|
||||||
|
{
|
||||||
|
if (holder.selected)
|
||||||
|
{
|
||||||
|
removeHolderList.add(holder);
|
||||||
|
messageList.add(holder.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mAdapter.removeMessages(removeHolderList);
|
||||||
|
|
||||||
|
MessagingController.getInstance(getApplication()).deleteMessages(mAccount, mCurrentFolder.name, messageList.toArray(new Message[0]), null);
|
||||||
|
mSelectedCount = 0;
|
||||||
|
configureBatchButtons();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void moveOrCopySelected(boolean isMove)
|
||||||
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user