Hide admin features in chat group room infos

This commit is contained in:
Sylvain Berfini 2017-10-23 15:42:31 +02:00
parent c5440e1068
commit 58a7e452d8
5 changed files with 22 additions and 8 deletions

View file

@ -716,9 +716,10 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick
}
}
public void displayChatGroupInfos(ArrayList<ContactAddress> contacts, boolean isAlreadyCreatedGroup) {
public void displayChatGroupInfos(ArrayList<ContactAddress> 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);
}

View file

@ -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("");

View file

@ -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);
}
});

View file

@ -40,10 +40,12 @@ public class GroupInfoAdapter extends BaseAdapter {
private LayoutInflater mInflater;
private List<ContactAddress> mItems;
private View.OnClickListener mDeleteListener;
private boolean mHideAdminFeatures;
public GroupInfoAdapter(LayoutInflater inflater, List<ContactAddress> items) {
public GroupInfoAdapter(LayoutInflater inflater, List<ContactAddress> 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;
}

View file

@ -44,6 +44,7 @@ public class GroupInfoFragment extends Fragment {
private LinearLayout mLeaveGroupButton;
private GroupInfoAdapter mAdapter;
private boolean mIsAlreadyCreatedGroup;
private boolean mIsEditionEnabled;
private ArrayList<ContactAddress> mParticipants;
@Override
@ -56,9 +57,10 @@ public class GroupInfoFragment extends Fragment {
}
mParticipants = (ArrayList<ContactAddress>) 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;
}