From 58a7e452d8a2df0e476f9b9d3f21dfc2d4de4540 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 23 Oct 2017 15:42:31 +0200 Subject: [PATCH] Hide admin features in chat group room infos --- .../org/linphone/activities/LinphoneActivity.java | 3 ++- .../org/linphone/chat/ChatCreationFragment.java | 2 +- src/android/org/linphone/chat/GroupChatFragment.java | 4 +--- src/android/org/linphone/chat/GroupInfoAdapter.java | 10 +++++++++- src/android/org/linphone/chat/GroupInfoFragment.java | 11 +++++++++-- 5 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/android/org/linphone/activities/LinphoneActivity.java b/src/android/org/linphone/activities/LinphoneActivity.java index e65f1fd4a..ee037838c 100644 --- a/src/android/org/linphone/activities/LinphoneActivity.java +++ b/src/android/org/linphone/activities/LinphoneActivity.java @@ -716,9 +716,10 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick } } - public void displayChatGroupInfos(ArrayList contacts, boolean isAlreadyCreatedGroup) { + public void displayChatGroupInfos(ArrayList contacts, boolean isAlreadyCreatedGroup, boolean isEditionEnabled) { Bundle extras = new Bundle(); extras.putBoolean("isAlreadyCreatedGroup", isAlreadyCreatedGroup); + extras.putBoolean("isEditionEnabled", isEditionEnabled); extras.putSerializable("ContactAddress", contacts); changeCurrentFragment(FragmentsAvailable.INFO_GROUP_CHAT, extras); } diff --git a/src/android/org/linphone/chat/ChatCreationFragment.java b/src/android/org/linphone/chat/ChatCreationFragment.java index 06ca61f62..5313e570d 100644 --- a/src/android/org/linphone/chat/ChatCreationFragment.java +++ b/src/android/org/linphone/chat/ChatCreationFragment.java @@ -284,7 +284,7 @@ public class ChatCreationFragment extends Fragment implements View.OnClickListen if (contactsSelected.size() == 1) { LinphoneActivity.instance().displayChat(contactsSelected.get(0).getAddress(), "", ""); } else { - LinphoneActivity.instance().displayChatGroupInfos(contactsSelected, false); + LinphoneActivity.instance().displayChatGroupInfos(contactsSelected, false, true); } } else if (id == R.id.clearSearchField) { searchField.setText(""); diff --git a/src/android/org/linphone/chat/GroupChatFragment.java b/src/android/org/linphone/chat/GroupChatFragment.java index 085c61991..e61c71a15 100644 --- a/src/android/org/linphone/chat/GroupChatFragment.java +++ b/src/android/org/linphone/chat/GroupChatFragment.java @@ -28,14 +28,12 @@ import android.text.TextWatcher; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.Adapter; import android.widget.EditText; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import org.linphone.LinphoneManager; -import org.linphone.LinphoneUtils; import org.linphone.R; import org.linphone.activities.LinphoneActivity; import org.linphone.contacts.ContactAddress; @@ -129,7 +127,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener { ContactAddress ca = new ContactAddress(c, a.asString(), c.isFriend()); participants.add(ca); } - LinphoneActivity.instance().displayChatGroupInfos(participants, true); + LinphoneActivity.instance().displayChatGroupInfos(participants, true, /*TODO*/ false); } }); diff --git a/src/android/org/linphone/chat/GroupInfoAdapter.java b/src/android/org/linphone/chat/GroupInfoAdapter.java index 2c0b2f8eb..1af9120d5 100644 --- a/src/android/org/linphone/chat/GroupInfoAdapter.java +++ b/src/android/org/linphone/chat/GroupInfoAdapter.java @@ -40,10 +40,12 @@ public class GroupInfoAdapter extends BaseAdapter { private LayoutInflater mInflater; private List mItems; private View.OnClickListener mDeleteListener; + private boolean mHideAdminFeatures; - public GroupInfoAdapter(LayoutInflater inflater, List items) { + public GroupInfoAdapter(LayoutInflater inflater, List items, boolean hideAdminFeatures) { mInflater = inflater; mItems = items; + mHideAdminFeatures = hideAdminFeatures; } @Override @@ -73,6 +75,7 @@ public class GroupInfoAdapter extends BaseAdapter { TextView name = view.findViewById(R.id.name); ImageView avatar = view.findViewById(R.id.contact_picture); ImageView delete = view.findViewById(R.id.delete); + LinearLayout adminLayout = view.findViewById(R.id.adminLayout); final LinearLayout isAdmin = view.findViewById(R.id.isAdminLayout); final LinearLayout isNotAdmin = view.findViewById(R.id.isNotAdminLayout); @@ -112,6 +115,11 @@ public class GroupInfoAdapter extends BaseAdapter { } }); + if (mHideAdminFeatures) { + delete.setVisibility(View.GONE); + adminLayout.setVisibility(View.GONE); + } + return view; } diff --git a/src/android/org/linphone/chat/GroupInfoFragment.java b/src/android/org/linphone/chat/GroupInfoFragment.java index 8888dc718..a43e6663b 100644 --- a/src/android/org/linphone/chat/GroupInfoFragment.java +++ b/src/android/org/linphone/chat/GroupInfoFragment.java @@ -44,6 +44,7 @@ public class GroupInfoFragment extends Fragment { private LinearLayout mLeaveGroupButton; private GroupInfoAdapter mAdapter; private boolean mIsAlreadyCreatedGroup; + private boolean mIsEditionEnabled; private ArrayList mParticipants; @Override @@ -56,9 +57,10 @@ public class GroupInfoFragment extends Fragment { } mParticipants = (ArrayList) getArguments().getSerializable("ContactAddress"); mIsAlreadyCreatedGroup = getArguments().getBoolean("isAlreadyCreatedGroup"); + mIsEditionEnabled = getArguments().getBoolean("isEditionEnabled"); mParticipantsList = view.findViewById(R.id.chat_room_participants); - mAdapter = new GroupInfoAdapter(mInflater, mParticipants); + mAdapter = new GroupInfoAdapter(mInflater, mParticipants, !mIsEditionEnabled); mAdapter.setOnDeleteClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -127,7 +129,12 @@ public class GroupInfoFragment extends Fragment { } }); - //TODO handle contacts removal + if (!mIsEditionEnabled) { + mConfirmButton.setVisibility(View.INVISIBLE); + mAddParticipantsButton.setVisibility(View.GONE); + } + + //TODO Handle back button issue return view; }