Fix email selection by clicking picture

This commit is contained in:
str4d
2014-07-09 04:45:19 +00:00
parent bd185a79d8
commit d4b9bce5ca
3 changed files with 19 additions and 10 deletions

View File

@@ -28,6 +28,7 @@ public class EmailListAdapter extends ArrayAdapter<Email> {
private boolean mIsOutbox;
public interface EmailSelector {
public boolean inActionMode();
public void select(View view);
}
@@ -58,11 +59,12 @@ public class EmailListAdapter extends ArrayAdapter<Email> {
TextView content = (TextView) v.findViewById(R.id.email_content);
TextView sent = (TextView) v.findViewById(R.id.email_sent);
picture.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
mSelector.select(v);
}
});
if (!mSelector.inActionMode())
picture.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
mSelector.select(v);
}
});
// TODO fix
//if (mSelectedEmails.get(position)) {

View File

@@ -522,12 +522,15 @@ public class EmailListFragment extends ListFragment implements
// EmailListAdapter.EmailSelector
public boolean inActionMode() {
return mMultiSelectController.inActionMode();
}
public void select(View view) {
// TODO temporarily disabled while broken, need to fix
//final ListView listView = getListView();
//final int position = listView.getPositionForView(view);
//listView.setItemChecked(position, !listView.isItemChecked(position));
//view.performLongClick();
final ListView listView = getListView();
final int position = listView.getPositionForView(view);
listView.setItemChecked(position, !listView.isItemChecked(position));
view.performLongClick();
}
// OnRefreshListener

View File

@@ -95,6 +95,10 @@ public class MultiSelectionUtil {
listView.setOnItemLongClickListener(mCallbacks);
}
public boolean inActionMode() {
return mActionMode != null;
}
/**
* Finish the current Action Mode (if there is one).
*/