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