Change summary
src/main/java/eu/siacs/conversations/ui/ChooseContactActivity.java | 25
1 file changed, 22 insertions(+), 3 deletions(-)
Detailed changes
@@ -120,7 +120,7 @@ public class ChooseContactActivity extends AbstractSearchableListItemActivity im
multiple = intent.getBooleanExtra(EXTRA_SELECT_MULTIPLE, false);
if (multiple) {
- getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
+ getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
getListView().setMultiChoiceModeListener(this);
}
@@ -282,6 +282,9 @@ public class ChooseContactActivity extends AbstractSearchableListItemActivity im
}
Collections.sort(getListItems());
getListItemAdapter().notifyDataSetChanged();
+ for (int i = 0; i < getListItemAdapter().getCount(); i++) {
+ getListView().setItemChecked(i, selected.contains(getListItemAdapter().getItem(i).getJid().toString()));
+ }
}
private String[] getSelectedContactJids() {
@@ -388,8 +391,24 @@ public class ChooseContactActivity extends AbstractSearchableListItemActivity im
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (multiple) {
- startActionMode(this);
- getListView().setItemChecked(position, true);
+ if (getListView().isItemChecked(position)) {
+ selected.add(getListItemAdapter().getItem(position).getJid().toString());
+ } else {
+ selected.remove(getListItemAdapter().getItem(position).getJid().toString());
+ }
+
+ if (selected.isEmpty()) {
+ this.binding.fab.setImageResource(R.drawable.ic_person_add_white_24dp);
+ if (this.showEnterJid) {
+ this.binding.fab.show();
+ } else {
+ this.binding.fab.hide();
+ }
+ } else {
+ binding.fab.setImageResource(R.drawable.ic_forward_white_24dp);
+ binding.fab.show();
+ }
+
return;
}
final InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);