mirror of
https://github.com/moparisthebest/k-9
synced 2025-02-21 05:01:54 -05:00
Added "select all" to action mode menu
This commit is contained in:
parent
ea04339ca6
commit
d9fad383eb
@ -40,4 +40,10 @@
|
|||||||
android:showAsAction="ifRoom"
|
android:showAsAction="ifRoom"
|
||||||
android:icon="?attr/iconActionSpam"
|
android:icon="?attr/iconActionSpam"
|
||||||
/>
|
/>
|
||||||
|
<item
|
||||||
|
android:id="@+id/select_all"
|
||||||
|
android:icon="?attr/iconMenuSelectAll"
|
||||||
|
android:showAsAction="never"
|
||||||
|
android:title="@string/batch_select_all"
|
||||||
|
/>
|
||||||
</menu>
|
</menu>
|
||||||
|
@ -326,6 +326,8 @@ public class MessageList extends K9ListActivity implements OnItemClickListener {
|
|||||||
private TextView mActionBarSubTitle;
|
private TextView mActionBarSubTitle;
|
||||||
private TextView mActionBarUnread;
|
private TextView mActionBarUnread;
|
||||||
|
|
||||||
|
private ActionModeCallback mActionModeCallback = new ActionModeCallback();
|
||||||
|
|
||||||
private final class StorageListenerImplementation implements StorageManager.StorageListener {
|
private final class StorageListenerImplementation implements StorageManager.StorageListener {
|
||||||
@Override
|
@Override
|
||||||
public void onUnmount(String providerId) {
|
public void onUnmount(String providerId) {
|
||||||
@ -1824,6 +1826,7 @@ public class MessageList extends K9ListActivity implements OnItemClickListener {
|
|||||||
resetUnreadCount();
|
resetUnreadCount();
|
||||||
|
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
|
computeSelectAllVisibility();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1863,6 +1866,7 @@ public class MessageList extends K9ListActivity implements OnItemClickListener {
|
|||||||
resetUnreadCount();
|
resetUnreadCount();
|
||||||
|
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
|
computeSelectAllVisibility();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void changeMessageUid(MessageReference ref, String newUid) {
|
public void changeMessageUid(MessageReference ref, String newUid) {
|
||||||
@ -2045,8 +2049,6 @@ public class MessageList extends K9ListActivity implements OnItemClickListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private final OnClickListener flagClickListener = new OnClickListener() {
|
private final OnClickListener flagClickListener = new OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
@ -2455,6 +2457,7 @@ public class MessageList extends K9ListActivity implements OnItemClickListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
mAdapter.notifyDataSetChanged();
|
mAdapter.notifyDataSetChanged();
|
||||||
|
computeSelectAllVisibility();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -2475,6 +2478,7 @@ public class MessageList extends K9ListActivity implements OnItemClickListener {
|
|||||||
mSelectedCount = mAdapter.getCount();
|
mSelectedCount = mAdapter.getCount();
|
||||||
mActionMode = MessageList.this.startActionMode(mActionModeCallback);
|
mActionMode = MessageList.this.startActionMode(mActionModeCallback);
|
||||||
mActionMode.setTitle(String.format(getString(R.string.actionbar_selected), mSelectedCount));
|
mActionMode.setTitle(String.format(getString(R.string.actionbar_selected), mSelectedCount));
|
||||||
|
computeSelectAllVisibility();
|
||||||
} else {
|
} else {
|
||||||
mSelectedCount = 0;
|
mSelectedCount = 0;
|
||||||
mActionMode.finish();
|
mActionMode.finish();
|
||||||
@ -2489,6 +2493,7 @@ public class MessageList extends K9ListActivity implements OnItemClickListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
mAdapter.notifyDataSetChanged();
|
mAdapter.notifyDataSetChanged();
|
||||||
|
computeSelectAllVisibility();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void toggleMessageSelect(final MessageInfoHolder holder){
|
private void toggleMessageSelect(final MessageInfoHolder holder){
|
||||||
@ -2501,8 +2506,6 @@ public class MessageList extends K9ListActivity implements OnItemClickListener {
|
|||||||
mActionMode = MessageList.this.startActionMode(mActionModeCallback);
|
mActionMode = MessageList.this.startActionMode(mActionModeCallback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (holder.selected) {
|
if (holder.selected) {
|
||||||
holder.selected = false;
|
holder.selected = false;
|
||||||
mSelectedCount -= 1;
|
mSelectedCount -= 1;
|
||||||
@ -2515,6 +2518,12 @@ public class MessageList extends K9ListActivity implements OnItemClickListener {
|
|||||||
|
|
||||||
// make sure the onPrepareActionMode is called
|
// make sure the onPrepareActionMode is called
|
||||||
mActionMode.invalidate();
|
mActionMode.invalidate();
|
||||||
|
|
||||||
|
computeSelectAllVisibility();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void computeSelectAllVisibility() {
|
||||||
|
mActionModeCallback.showSelectAll(mSelectedCount != mAdapter.getCount());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -2824,10 +2833,12 @@ public class MessageList extends K9ListActivity implements OnItemClickListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private ActionMode.Callback mActionModeCallback = new ActionMode.Callback() {
|
class ActionModeCallback implements ActionMode.Callback {
|
||||||
|
private MenuItem mSelectAll;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
|
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
|
||||||
|
mSelectAll = menu.findItem(R.id.select_all);
|
||||||
|
|
||||||
if (mQueryString != null) {
|
if (mQueryString != null) {
|
||||||
// show all
|
// show all
|
||||||
@ -2856,6 +2867,7 @@ public class MessageList extends K9ListActivity implements OnItemClickListener {
|
|||||||
@Override
|
@Override
|
||||||
public void onDestroyActionMode(ActionMode mode) {
|
public void onDestroyActionMode(ActionMode mode) {
|
||||||
mActionMode = null;
|
mActionMode = null;
|
||||||
|
mSelectAll = null;
|
||||||
setAllSelected(false);
|
setAllSelected(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2915,6 +2927,12 @@ public class MessageList extends K9ListActivity implements OnItemClickListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void showSelectAll(boolean show) {
|
||||||
|
if (mActionMode != null) {
|
||||||
|
mSelectAll.setVisible(show);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
|
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
|
||||||
final List<MessageInfoHolder> selection = getSelectionFromCheckboxes();
|
final List<MessageInfoHolder> selection = getSelectionFromCheckboxes();
|
||||||
@ -2940,6 +2958,10 @@ public class MessageList extends K9ListActivity implements OnItemClickListener {
|
|||||||
onToggleFlag(selection);
|
onToggleFlag(selection);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case R.id.select_all: {
|
||||||
|
setAllSelected(true);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
// only if the account supports this
|
// only if the account supports this
|
||||||
case R.id.archive: {
|
case R.id.archive: {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user