From 78811ad68f5a1cbead0f22fb8999697d7720055d Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 30 Oct 2017 10:57:14 +0100 Subject: [PATCH] Switched back to use of canHandleParticipants instead of nbParticipants + added waiting view --- res/layout/chat_infos.xml | 259 ++++++++++-------- res/layout/progress_dialog.xml | 1 + .../org/linphone/chat/ChatListFragment.java | 2 +- .../org/linphone/chat/GroupChatFragment.java | 7 +- .../org/linphone/chat/GroupInfoFragment.java | 7 + 5 files changed, 155 insertions(+), 121 deletions(-) diff --git a/res/layout/chat_infos.xml b/res/layout/chat_infos.xml index 540ae9613..935318e48 100644 --- a/res/layout/chat_infos.xml +++ b/res/layout/chat_infos.xml @@ -1,131 +1,156 @@ - + android:layout_height="match_parent"> - - - - - - - - - - - - - - - - - - - - - - - - + android:orientation="vertical" + android:background="@color/colorH" > - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + android:layout_gravity="center" + android:paddingTop="8dp" + android:paddingBottom="8dp" + android:layout_marginTop="10dp" + android:layout_marginBottom="10dp" + android:paddingLeft="20dp" + android:paddingRight="20dp" + android:background="@color/colorA"> + + + + - \ No newline at end of file + + + + + + + + + + diff --git a/res/layout/progress_dialog.xml b/res/layout/progress_dialog.xml index cde6ce898..cc07c1565 100644 --- a/res/layout/progress_dialog.xml +++ b/res/layout/progress_dialog.xml @@ -8,6 +8,7 @@ \ 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 a5d8a4267..59679b2a5 100644 --- a/src/android/org/linphone/chat/ChatListFragment.java +++ b/src/android/org/linphone/chat/ChatListFragment.java @@ -449,7 +449,7 @@ public class ChatListFragment extends Fragment implements OnClickListener, OnIte holder.displayName.setSelected(true); // For animation - if (chatRoom.getNbParticipants() > 1) { + if (chatRoom.canHandleParticipants()) { holder.displayName.setText(chatRoom.getSubject()); holder.contactPicture.setImageResource(R.drawable.chat_group_avatar); } else { diff --git a/src/android/org/linphone/chat/GroupChatFragment.java b/src/android/org/linphone/chat/GroupChatFragment.java index 2b5cb8225..9e538810e 100644 --- a/src/android/org/linphone/chat/GroupChatFragment.java +++ b/src/android/org/linphone/chat/GroupChatFragment.java @@ -68,6 +68,7 @@ import org.linphone.core.EventLog; import org.linphone.core.Friend; import org.linphone.core.FriendList; import org.linphone.core.Participant; +import org.linphone.mediastream.Log; import org.linphone.receivers.ContactsUpdatedListener; import java.io.File; @@ -373,7 +374,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con private void getContactsForParticipants() { mParticipants = new ArrayList<>(); - if (mChatRoom.getNbParticipants() > 1) { + if (mChatRoom.canHandleParticipants()) { int index = 0; StringBuilder participantsLabel = new StringBuilder(); for (Participant p : mChatRoom.getParticipants()) { @@ -429,7 +430,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con mBackToCallButton.setVisibility(View.VISIBLE); } else { mBackToCallButton.setVisibility(View.GONE); - if (mChatRoom.getNbParticipants() > 1) { + if (mChatRoom.canHandleParticipants()) { mCallButton.setVisibility(View.GONE); mGroupInfosButton.setVisibility(View.VISIBLE); mRoomLabel.setText(mChatRoom.getSubject()); @@ -637,7 +638,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con @Override public void onIsComposingReceived(ChatRoom cr, Address remoteAddr, boolean isComposing) { - if (cr.getNbParticipants() > 1) { + if (cr.canHandleParticipants()) { ArrayList composing = new ArrayList<>(); for (Address a : cr.getComposingAddresses()) { boolean found = false; diff --git a/src/android/org/linphone/chat/GroupInfoFragment.java b/src/android/org/linphone/chat/GroupInfoFragment.java index 6f6dda09b..cfa3e15ad 100644 --- a/src/android/org/linphone/chat/GroupInfoFragment.java +++ b/src/android/org/linphone/chat/GroupInfoFragment.java @@ -30,6 +30,7 @@ import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; +import android.widget.RelativeLayout; import org.linphone.LinphoneManager; import org.linphone.R; @@ -48,6 +49,7 @@ public class GroupInfoFragment extends Fragment { private LayoutInflater mInflater; private ListView mParticipantsList; private LinearLayout mLeaveGroupButton; + private RelativeLayout mWaitLayout; private GroupInfoAdapter mAdapter; private boolean mIsAlreadyCreatedGroup; private boolean mIsEditionEnabled; @@ -130,10 +132,12 @@ public class GroupInfoFragment extends Fragment { @Override public void onClick(View view) { if (!mIsAlreadyCreatedGroup) { + mWaitLayout.setVisibility(View.VISIBLE); ChatRoom chatRoom = LinphoneManager.getLc().createClientGroupChatRoom(mSubjectField.getText().toString()); chatRoom.setListener(new ChatRoomListenerStub() { @Override public void onStateChanged(ChatRoom cr, ChatRoom.State newState) { + mWaitLayout.setVisibility(View.GONE); if (newState == ChatRoom.State.Created) { LinphoneActivity.instance().goToChat(cr.getConferenceAddress().asStringUriOnly()); } else if (newState == ChatRoom.State.CreationFailed) { @@ -163,6 +167,9 @@ public class GroupInfoFragment extends Fragment { mAddParticipantsButton.setVisibility(View.GONE); } + mWaitLayout = view.findViewById(R.id.waitScreen); + mWaitLayout.setVisibility(View.GONE); + return view; } }