diff --git a/res/layout/chatlist.xml b/res/layout/chatlist.xml index 6fcdfb3a2..5eda44602 100644 --- a/res/layout/chatlist.xml +++ b/res/layout/chatlist.xml @@ -1,71 +1,79 @@ - + android:layout_height="match_parent"> - - - - - - - - - - - - - - - - + android:background="@color/colorH" + android:orientation="vertical" > - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/android/org/linphone/chat/ChatListFragment.java b/src/android/org/linphone/chat/ChatListFragment.java index fb94d5b8a..9fbb48ae1 100644 --- a/src/android/org/linphone/chat/ChatListFragment.java +++ b/src/android/org/linphone/chat/ChatListFragment.java @@ -28,9 +28,12 @@ import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ImageView; import android.widget.ListView; +import android.widget.RelativeLayout; import android.widget.TextView; import org.linphone.contacts.ContactsManager; +import org.linphone.core.ChatRoomListenerStub; +import org.linphone.mediastream.Log; import org.linphone.ui.ListSelectionHelper; import org.linphone.contacts.ContactsUpdatedListener; import org.linphone.fragments.FragmentsAvailable; @@ -53,6 +56,8 @@ public class ChatListFragment extends Fragment implements OnItemClickListener, C private ChatRoomsAdapter mChatRoomsAdapter; private CoreListenerStub mListener; private ListSelectionHelper mSelectionHelper; + private RelativeLayout mWaitLayout; + private int mChatRoomDeletionPendingCount; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -63,6 +68,9 @@ public class ChatListFragment extends Fragment implements OnItemClickListener, C mChatRoomsAdapter = new ChatRoomsAdapter(getActivity(), mSelectionHelper, mInflater); mSelectionHelper.setAdapter(mChatRoomsAdapter); + mWaitLayout = view.findViewById(R.id.waitScreen); + mWaitLayout.setVisibility(View.GONE); + mChatRoomsList = view.findViewById(R.id.chatList); mChatRoomsList.setAdapter(mChatRoomsAdapter); mChatRoomsList.setOnItemClickListener(this); @@ -145,9 +153,27 @@ public class ChatListFragment extends Fragment implements OnItemClickListener, C Core lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull(); for (Object obj : objectsToDelete) { ChatRoom room = (ChatRoom)obj; + mChatRoomDeletionPendingCount = objectsToDelete.length; + room.setListener(new ChatRoomListenerStub() { + @Override + public void onStateChanged(ChatRoom room, ChatRoom.State state) { + super.onStateChanged(room, state); + Log.e("Chat Room State changed " + state.toString()); + if (state == ChatRoom.State.Deleted || state == ChatRoom.State.TerminationFailed) { + mChatRoomDeletionPendingCount -= 1; + + if (mChatRoomDeletionPendingCount == 0) { + mWaitLayout.setVisibility(View.GONE); + refreshChatRoomsList(); + } + } + } + }); lc.deleteChatRoom(room); } - refreshChatRoomsList(); + if (mChatRoomDeletionPendingCount > 0) { + mWaitLayout.setVisibility(View.VISIBLE); + } } @Override