Selection of events done, removal to do
This commit is contained in:
parent
33e9b04f5d
commit
7c747ec700
2 changed files with 71 additions and 12 deletions
|
@ -80,7 +80,21 @@ public class ChatEventsAdapter extends BaseAdapter implements ChatMessageListene
|
|||
private List<LinphoneContact> mParticipants;
|
||||
private LayoutInflater mLayoutInflater;
|
||||
private Bitmap mDefaultBitmap;
|
||||
|
||||
private boolean mIsEditionEnabled;
|
||||
private List<Integer> mSelectedItems;
|
||||
private CompoundButton.OnCheckedChangeListener mDeleteCheckboxListener = new CompoundButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
|
||||
Integer position = (Integer)compoundButton.getTag();
|
||||
if (checked) {
|
||||
mSelectedItems.add(position);
|
||||
} else {
|
||||
mSelectedItems.remove(position);
|
||||
}
|
||||
mFragment.updateSelectionButtons(mSelectedItems.size() == 0, mSelectedItems.size() == mHistory.size());
|
||||
}
|
||||
};
|
||||
|
||||
public ChatEventsAdapter(Context context, GroupChatFragment fragment, LayoutInflater inflater, EventLog[] history, ArrayList<LinphoneContact> participants) {
|
||||
mContext = context;
|
||||
|
@ -89,6 +103,7 @@ public class ChatEventsAdapter extends BaseAdapter implements ChatMessageListene
|
|||
mHistory = new ArrayList<>(Arrays.asList(history));
|
||||
mParticipants = participants;
|
||||
mIsEditionEnabled = false;
|
||||
mSelectedItems = new ArrayList<>();
|
||||
}
|
||||
|
||||
public void addToHistory(EventLog log) {
|
||||
|
@ -100,11 +115,44 @@ public class ChatEventsAdapter extends BaseAdapter implements ChatMessageListene
|
|||
mParticipants = participants;
|
||||
}
|
||||
|
||||
/**
|
||||
* List edition
|
||||
*/
|
||||
|
||||
public void enableEdition(boolean enable) {
|
||||
mIsEditionEnabled = enable;
|
||||
notifyDataSetInvalidated();
|
||||
mSelectedItems.clear();
|
||||
}
|
||||
|
||||
public EventLog[] getSelectedItems() {
|
||||
EventLog logs[] = new EventLog[mSelectedItems.size()];
|
||||
int index = 0;
|
||||
for (Integer i : mSelectedItems) {
|
||||
logs[index] = (EventLog)getItem(i);
|
||||
index++;
|
||||
}
|
||||
return logs;
|
||||
}
|
||||
|
||||
public void selectAll() {
|
||||
for (Integer i = 0; i < mHistory.size(); i++) {
|
||||
mSelectedItems.add(i);
|
||||
}
|
||||
mFragment.updateSelectionButtons(false, true);
|
||||
notifyDataSetInvalidated();
|
||||
}
|
||||
|
||||
public void deselectAll() {
|
||||
mSelectedItems.clear();
|
||||
mFragment.updateSelectionButtons(true, false);
|
||||
notifyDataSetInvalidated();
|
||||
}
|
||||
|
||||
/**
|
||||
* Adapter's methods
|
||||
*/
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return mHistory.size();
|
||||
|
@ -146,12 +194,10 @@ public class ChatEventsAdapter extends BaseAdapter implements ChatMessageListene
|
|||
holder.imdmLayout.setVisibility(View.INVISIBLE);
|
||||
|
||||
if (mIsEditionEnabled) {
|
||||
holder.delete.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
|
||||
//TODO
|
||||
}
|
||||
});
|
||||
holder.delete.setOnCheckedChangeListener(null);
|
||||
holder.delete.setChecked(mSelectedItems.contains(i));
|
||||
holder.delete.setTag(i);
|
||||
holder.delete.setOnCheckedChangeListener(mDeleteCheckboxListener);
|
||||
}
|
||||
|
||||
EventLog event = (EventLog)getItem(i);
|
||||
|
|
|
@ -177,9 +177,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
|
|||
mSelectAllButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
mSelectAllButton.setVisibility(View.GONE);
|
||||
mDeselectAllButton.setVisibility(View.VISIBLE);
|
||||
mDeleteSelectionButton.setEnabled(true);
|
||||
mEventsAdapter.selectAll();
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -187,9 +185,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
|
|||
mDeselectAllButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
mSelectAllButton.setVisibility(View.VISIBLE);
|
||||
mDeselectAllButton.setVisibility(View.GONE);
|
||||
mDeleteSelectionButton.setEnabled(false);
|
||||
mEventsAdapter.deselectAll();
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -345,9 +341,26 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
|
|||
*/
|
||||
|
||||
private void deleteSelectedEvents() {
|
||||
EventLog logs[] = mEventsAdapter.getSelectedItems();
|
||||
//TODO
|
||||
}
|
||||
|
||||
public void updateSelectionButtons(boolean isSelectionEmpty, boolean isSelectionFull) {
|
||||
if (isSelectionEmpty) {
|
||||
mDeleteSelectionButton.setEnabled(false);
|
||||
} else {
|
||||
mDeleteSelectionButton.setEnabled(true);
|
||||
}
|
||||
|
||||
if (isSelectionFull) {
|
||||
mSelectAllButton.setVisibility(View.GONE);
|
||||
mDeselectAllButton.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
mSelectAllButton.setVisibility(View.VISIBLE);
|
||||
mDeselectAllButton.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
private void quitEditionMode() {
|
||||
mEventsAdapter.enableEdition(false);
|
||||
mTopBar.setVisibility(View.VISIBLE);
|
||||
|
|
Loading…
Reference in a new issue