From 7657660730f057c2ab256f1fc6df4b4b2e616df4 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 8 Mar 2018 12:50:24 +0100 Subject: [PATCH] Ease chat room selection in edition mode --- .../org/linphone/chat/ChatListFragment.java | 14 ++------------ .../org/linphone/chat/ChatRoomsAdapter.java | 16 +++++++++++++++- .../org/linphone/ui/ListSelectionAdapter.java | 2 ++ 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/android/org/linphone/chat/ChatListFragment.java b/src/android/org/linphone/chat/ChatListFragment.java index 04ad23854..4e25cbff0 100644 --- a/src/android/org/linphone/chat/ChatListFragment.java +++ b/src/android/org/linphone/chat/ChatListFragment.java @@ -34,6 +34,7 @@ import android.widget.TextView; import org.linphone.contacts.ContactsManager; import org.linphone.core.ChatRoomListenerStub; import org.linphone.core.EventLog; +import org.linphone.mediastream.Log; import org.linphone.ui.ListSelectionHelper; import org.linphone.contacts.ContactsUpdatedListener; import org.linphone.fragments.FragmentsAvailable; @@ -49,12 +50,11 @@ import java.io.File; import static org.linphone.fragments.FragmentsAvailable.CHAT_LIST; -public class ChatListFragment extends Fragment implements OnItemClickListener, ContactsUpdatedListener, ListSelectionHelper.DeleteListener { +public class ChatListFragment extends Fragment implements ContactsUpdatedListener, ListSelectionHelper.DeleteListener { private LayoutInflater mInflater; private ListView mChatRoomsList; private TextView mNoChatHistory; private ImageView mNewDiscussionButton, mBackToCallButton; - private boolean isEditMode = false; private ChatRoomsAdapter mChatRoomsAdapter; private CoreListenerStub mListener; private ListSelectionHelper mSelectionHelper; @@ -77,7 +77,6 @@ public class ChatListFragment extends Fragment implements OnItemClickListener, C mChatRoomsList = view.findViewById(R.id.chatList); mChatRoomsList.setAdapter(mChatRoomsAdapter); - mChatRoomsList.setOnItemClickListener(this); mNoChatHistory = view.findViewById(R.id.noChatHistory); mNoChatHistory.setVisibility(View.GONE); @@ -211,15 +210,6 @@ public class ChatListFragment extends Fragment implements OnItemClickListener, C adapter.notifyDataSetInvalidated(); } } - - @Override - public void onItemClick(AdapterView adapter, View view, int position, long id) { - ChatRoom chatRoom = (ChatRoom) mChatRoomsList.getAdapter().getItem(position); - - if (LinphoneActivity.isInstanciated() && !isEditMode) { - LinphoneActivity.instance().goToChat(chatRoom.getPeerAddress().asString()); - } - } } diff --git a/src/android/org/linphone/chat/ChatRoomsAdapter.java b/src/android/org/linphone/chat/ChatRoomsAdapter.java index b91de72c5..c39e3975c 100644 --- a/src/android/org/linphone/chat/ChatRoomsAdapter.java +++ b/src/android/org/linphone/chat/ChatRoomsAdapter.java @@ -136,7 +136,7 @@ public class ChatRoomsAdapter extends ListSelectionAdapter { } @Override - public View getView(int position, View convertView, ViewGroup viewGroup) { + public View getView(final int position, View convertView, ViewGroup viewGroup) { View view; ChatRoomViewHolder holder; @@ -226,6 +226,13 @@ public class ChatRoomsAdapter extends ListSelectionAdapter { } if (isEditionEnabled()) { + view.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + ChatRoomViewHolder holder = (ChatRoomViewHolder)v.getTag(); + holder.delete.setChecked(!holder.delete.isChecked()); + } + }); holder.unreadMessages.setVisibility(View.GONE); holder.delete.setOnCheckedChangeListener(null); holder.delete.setVisibility(View.VISIBLE); @@ -233,6 +240,13 @@ public class ChatRoomsAdapter extends ListSelectionAdapter { holder.delete.setTag(position); holder.delete.setOnCheckedChangeListener(getDeleteListener()); } else { + view.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + ChatRoom chatRoom = mRooms.get(position); + LinphoneActivity.instance().goToChat(chatRoom.getPeerAddress().asString()); + } + }); holder.delete.setVisibility(isEditionEnabled() ? View.VISIBLE : View.GONE); } return view; diff --git a/src/android/org/linphone/ui/ListSelectionAdapter.java b/src/android/org/linphone/ui/ListSelectionAdapter.java index 2dac2357c..c7d0c384e 100644 --- a/src/android/org/linphone/ui/ListSelectionAdapter.java +++ b/src/android/org/linphone/ui/ListSelectionAdapter.java @@ -22,6 +22,8 @@ package org.linphone.ui; import android.widget.BaseAdapter; import android.widget.CompoundButton; +import org.linphone.mediastream.Log; + import java.util.ArrayList; import java.util.List;