Fixed display of deletion checkbox in edit mode

This commit is contained in:
Sylvain Berfini 2018-11-25 19:25:18 +01:00
parent 404c92da9f
commit dc8c5c3e2d
4 changed files with 39 additions and 18 deletions

View file

@ -89,7 +89,8 @@ public class ChatMessageViewHolder extends RecyclerView.ViewHolder implements Vi
public FlexboxLayout pictures; public FlexboxLayout pictures;
public CheckBox delete; public CheckBox deleteEvent;
public CheckBox deleteMessage;
private ClickListener mListener; private ClickListener mListener;
public ChatMessageViewHolder(Context context, View view, ClickListener listener) { public ChatMessageViewHolder(Context context, View view, ClickListener listener) {
@ -119,7 +120,8 @@ public class ChatMessageViewHolder extends RecyclerView.ViewHolder implements Vi
pictures = view.findViewById(R.id.pictures); pictures = view.findViewById(R.id.pictures);
delete = view.findViewById(R.id.delete_message); deleteEvent = view.findViewById(R.id.delete_event);
deleteMessage = view.findViewById(R.id.delete_message);
} }
@Override @Override

View file

@ -79,23 +79,24 @@ public class ChatMessagesAdapter extends SelectableAdapter<ChatMessageViewHolder
public void onBindViewHolder(@NonNull final ChatMessageViewHolder holder, int position) { public void onBindViewHolder(@NonNull final ChatMessageViewHolder holder, int position) {
EventLog event = mHistory.get(position); EventLog event = mHistory.get(position);
holder.delete.setVisibility(View.GONE); holder.deleteEvent.setVisibility(View.GONE);
holder.deleteMessage.setVisibility(View.GONE);
holder.eventLayout.setVisibility(View.GONE); holder.eventLayout.setVisibility(View.GONE);
holder.securityEventLayout.setVisibility(View.GONE); holder.securityEventLayout.setVisibility(View.GONE);
holder.rightAnchor.setVisibility(View.GONE); holder.rightAnchor.setVisibility(View.GONE);
holder.bubbleLayout.setVisibility(View.GONE); holder.bubbleLayout.setVisibility(View.GONE);
holder.sendInProgress.setVisibility(View.GONE); holder.sendInProgress.setVisibility(View.GONE);
if (isEditionEnabled()) {
holder.delete.setOnCheckedChangeListener(null);
holder.delete.setChecked(isSelected(position));
holder.delete.setTag(position);
}
if (event.getType() == EventLog.Type.ConferenceChatMessage) { if (event.getType() == EventLog.Type.ConferenceChatMessage) {
ChatMessage message = event.getChatMessage(); ChatMessage message = event.getChatMessage();
message.setUserData(holder); message.setUserData(holder);
if (isEditionEnabled()) {
holder.deleteMessage.setVisibility(View.VISIBLE);
holder.deleteMessage.setChecked(isSelected(position));
holder.deleteMessage.setTag(position);
}
if (message.isOutgoing() && message.getState() != ChatMessage.State.Displayed) { if (message.isOutgoing() && message.getState() != ChatMessage.State.Displayed) {
message.setListener(new ChatMessageListenerStub() { message.setListener(new ChatMessageListenerStub() {
@Override @Override
@ -121,6 +122,12 @@ public class ChatMessagesAdapter extends SelectableAdapter<ChatMessageViewHolder
holder.bindMessage(message, contact); holder.bindMessage(message, contact);
changeBackgroundDependingOnPreviousAndNextEvents(message, holder, position); changeBackgroundDependingOnPreviousAndNextEvents(message, holder, position);
} else { // Event is not chat message } else { // Event is not chat message
if (isEditionEnabled()) {
holder.deleteEvent.setVisibility(View.VISIBLE);
holder.deleteEvent.setChecked(isSelected(position));
holder.deleteEvent.setTag(position);
}
Address address = event.getParticipantAddress(); Address address = event.getParticipantAddress();
String displayName = null; String displayName = null;
if (address != null) { if (address != null) {

View file

@ -126,7 +126,8 @@ public class ImdnFragment extends Fragment {
Address remoteSender = mMessage.getFromAddress(); Address remoteSender = mMessage.getFromAddress();
LinphoneContact contact = ContactsManager.getInstance().findContactFromAddress(remoteSender); LinphoneContact contact = ContactsManager.getInstance().findContactFromAddress(remoteSender);
mBubble.delete.setVisibility(View.GONE); mBubble.deleteMessage.setVisibility(View.GONE);
mBubble.deleteEvent.setVisibility(View.GONE);
mBubble.eventLayout.setVisibility(View.GONE); mBubble.eventLayout.setVisibility(View.GONE);
mBubble.securityEventLayout.setVisibility(View.GONE); mBubble.securityEventLayout.setVisibility(View.GONE);
mBubble.rightAnchor.setVisibility(View.GONE); mBubble.rightAnchor.setVisibility(View.GONE);

View file

@ -11,16 +11,15 @@
android:layout_alignParentTop="true"/> android:layout_alignParentTop="true"/>
<CheckBox <CheckBox
android:id="@+id/delete_message" android:id="@+id/delete_event"
android:visibility="gone"
android:button="@drawable/checkbox" android:button="@drawable/checkbox"
android:contentDescription="@string/content_description_delete" android:contentDescription="@string/content_description_delete"
android:layout_width="30dp" android:layout_width="30dp"
android:layout_height="30dp" android:layout_height="30dp"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:clickable="false" android:clickable="false"
android:layout_marginLeft="5dp" android:layout_alignParentRight="true"
android:layout_alignRight="@id/rightAnchor"/> android:layout_alignParentTop="true"/>
<LinearLayout <LinearLayout
android:id="@+id/event" android:id="@+id/event"
@ -28,7 +27,7 @@
android:orientation="horizontal" android:orientation="horizontal"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_toLeftOf="@id/delete_message" android:layout_toLeftOf="@id/delete_event"
android:layout_marginTop="5dp" android:layout_marginTop="5dp"
android:layout_marginBottom="5dp" android:layout_marginBottom="5dp"
android:gravity="center" android:gravity="center"
@ -51,7 +50,7 @@
android:orientation="horizontal" android:orientation="horizontal"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_toLeftOf="@id/delete_message" android:layout_toLeftOf="@id/delete_event"
android:layout_marginTop="5dp" android:layout_marginTop="5dp"
android:layout_marginBottom="5dp" android:layout_marginBottom="5dp"
android:gravity="center" android:gravity="center"
@ -78,6 +77,7 @@
android:id="@+id/background" android:id="@+id/background"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:layout_marginLeft="45dp" android:layout_marginLeft="45dp"
android:layout_marginTop="1dp" android:layout_marginTop="1dp"
android:layout_marginBottom="1dp" android:layout_marginBottom="1dp"
@ -129,14 +129,25 @@
android:layout_marginLeft="45dp" android:layout_marginLeft="45dp"
android:layout_toLeftOf="@id/imdn"/> android:layout_toLeftOf="@id/imdn"/>
<CheckBox
android:id="@+id/delete_message"
android:button="@drawable/checkbox"
android:contentDescription="@string/content_description_delete"
android:layout_width="30dp"
android:layout_height="30dp"
android:adjustViewBounds="true"
android:clickable="false"
android:layout_alignParentRight="true"
android:layout_alignTop="@id/background"/>
<ImageView <ImageView
android:id="@id/imdn" android:id="@id/imdn"
android:layout_width="10dp" android:layout_width="10dp"
android:layout_height="10dp" android:layout_height="10dp"
android:src="@drawable/imdn_received" android:src="@drawable/imdn_received"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp" android:layout_marginRight="5dp"
android:layout_alignParentRight="true" android:layout_alignParentRight="true"
android:layout_alignLeft="@id/delete_message"
android:layout_alignBottom="@id/background"/> android:layout_alignBottom="@id/background"/>
<ProgressBar <ProgressBar