Treat groups with only 1 child as child directly in chat room devices fragment
This commit is contained in:
parent
d3fbc2939e
commit
80090b3efe
4 changed files with 44 additions and 3 deletions
|
@ -28,12 +28,13 @@ import org.linphone.R;
|
||||||
class DeviceGroupViewHolder {
|
class DeviceGroupViewHolder {
|
||||||
public final RelativeLayout avatarLayout;
|
public final RelativeLayout avatarLayout;
|
||||||
public final TextView participantName, sipUri;
|
public final TextView participantName, sipUri;
|
||||||
public final ImageView groupExpander;
|
public final ImageView groupExpander, securityLevel;
|
||||||
|
|
||||||
public DeviceGroupViewHolder(View v) {
|
public DeviceGroupViewHolder(View v) {
|
||||||
avatarLayout = v.findViewById(R.id.avatar_layout);
|
avatarLayout = v.findViewById(R.id.avatar_layout);
|
||||||
participantName = v.findViewById(R.id.name);
|
participantName = v.findViewById(R.id.name);
|
||||||
sipUri = v.findViewById(R.id.sipUri);
|
sipUri = v.findViewById(R.id.sipUri);
|
||||||
groupExpander = v.findViewById(R.id.dropdown);
|
groupExpander = v.findViewById(R.id.dropdown);
|
||||||
|
securityLevel = v.findViewById(R.id.device_security_level);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,6 +33,7 @@ import org.linphone.core.Address;
|
||||||
import org.linphone.core.ChatRoomSecurityLevel;
|
import org.linphone.core.ChatRoomSecurityLevel;
|
||||||
import org.linphone.core.Participant;
|
import org.linphone.core.Participant;
|
||||||
import org.linphone.core.ParticipantDevice;
|
import org.linphone.core.ParticipantDevice;
|
||||||
|
import org.linphone.core.tools.Log;
|
||||||
import org.linphone.utils.LinphoneUtils;
|
import org.linphone.utils.LinphoneUtils;
|
||||||
import org.linphone.views.ContactAvatar;
|
import org.linphone.views.ContactAvatar;
|
||||||
|
|
||||||
|
@ -127,8 +128,31 @@ class DevicesAdapter extends BaseExpandableListAdapter {
|
||||||
holder.sipUri.setVisibility(View.GONE);
|
holder.sipUri.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
holder.groupExpander.setImageResource(
|
if (getChildrenCount(groupPosition) == 1) {
|
||||||
isExpanded ? R.drawable.chevron_list_open : R.drawable.chevron_list_close);
|
holder.securityLevel.setVisibility(View.VISIBLE);
|
||||||
|
holder.groupExpander.setVisibility(View.GONE);
|
||||||
|
|
||||||
|
ParticipantDevice device = (ParticipantDevice) getChild(groupPosition, 0);
|
||||||
|
ChatRoomSecurityLevel level = device.getSecurityLevel();
|
||||||
|
switch (level) {
|
||||||
|
case Safe:
|
||||||
|
holder.securityLevel.setImageResource(R.drawable.security_2_indicator);
|
||||||
|
break;
|
||||||
|
case Encrypted:
|
||||||
|
holder.securityLevel.setImageResource(R.drawable.security_1_indicator);
|
||||||
|
break;
|
||||||
|
case ClearText:
|
||||||
|
case Unsafe:
|
||||||
|
default:
|
||||||
|
holder.securityLevel.setImageResource(R.drawable.security_alert_indicator);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
holder.securityLevel.setVisibility(View.GONE);
|
||||||
|
holder.groupExpander.setVisibility(View.VISIBLE);
|
||||||
|
holder.groupExpander.setImageResource(
|
||||||
|
isExpanded ? R.drawable.chevron_list_open : R.drawable.chevron_list_close);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return view;
|
return view;
|
||||||
|
|
|
@ -103,6 +103,13 @@ public class DevicesFragment extends Fragment {
|
||||||
(ParticipantDevice) mAdapter.getGroup(groupPosition);
|
(ParticipantDevice) mAdapter.getGroup(groupPosition);
|
||||||
CallManager.getInstance().inviteAddress(device.getAddress(), true);
|
CallManager.getInstance().inviteAddress(device.getAddress(), true);
|
||||||
return true;
|
return true;
|
||||||
|
} else {
|
||||||
|
if (mAdapter.getChildrenCount(groupPosition) == 1) {
|
||||||
|
ParticipantDevice device =
|
||||||
|
(ParticipantDevice) mAdapter.getChild(groupPosition, 0);
|
||||||
|
CallManager.getInstance().inviteAddress(device.getAddress(), true);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,6 +53,15 @@
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/device_security_level"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentRight="true"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:layout_marginRight="10dp"
|
||||||
|
android:src="@drawable/security_alert_indicator" />
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@id/dropdown"
|
android:id="@id/dropdown"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
|
Loading…
Reference in a new issue