Fixed admins not shown for non admins in group chat room info

This commit is contained in:
Sylvain Berfini 2023-03-28 12:01:28 +02:00
parent 455165f00b
commit ea190fdfb7

View file

@ -17,7 +17,7 @@
type="Boolean" /> type="Boolean" />
</data> </data>
<RelativeLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="40dp" android:layout_height="40dp"
android:layout_margin="5dp"> android:layout_margin="5dp">
@ -26,7 +26,9 @@
android:id="@+id/avatar" android:id="@+id/avatar"
android:layout_width="45dp" android:layout_width="45dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerVertical="true"> app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView <ImageView
android:id="@+id/avatar_icon" android:id="@+id/avatar_icon"
@ -36,8 +38,8 @@
android:layout_alignParentStart="true" android:layout_alignParentStart="true"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:background="@drawable/generated_avatar_bg" android:background="@drawable/generated_avatar_bg"
android:src="@drawable/voip_single_contact_avatar" android:contentDescription="@null"
android:contentDescription="@null" /> android:src="@drawable/voip_single_contact_avatar" />
<ImageView <ImageView
android:layout_width="@dimen/contact_presence_badge_size" android:layout_width="@dimen/contact_presence_badge_size"
@ -47,133 +49,111 @@
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:background="@drawable/led_background" android:background="@drawable/led_background"
android:padding="@dimen/contact_presence_badge_padding" android:padding="@dimen/contact_presence_badge_padding"
app:presenceIcon="@{data.presenceStatus}" android:visibility="@{data.presenceStatus == ConsolidatedPresence.Offline ? View.GONE : View.VISIBLE, default=gone}"
android:visibility="@{data.presenceStatus == ConsolidatedPresence.Offline ? View.GONE : View.VISIBLE, default=gone}" /> app:presenceIcon="@{data.presenceStatus}" />
<ImageView <ImageView
android:visibility="@{isEncrypted &amp;&amp; data.securityLevel == ChatRoomSecurityLevel.ClearText ? View.VISIBLE : View.GONE, default=gone}"
android:layout_width="20dp" android:layout_width="20dp"
android:layout_height="20dp" android:layout_height="20dp"
android:layout_alignParentTop="true" android:layout_alignParentTop="true"
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:contentDescription="@string/content_description_contact_can_do_encryption" android:contentDescription="@string/content_description_contact_can_do_encryption"
android:src="@drawable/security_toggle_icon_green" /> android:src="@drawable/security_toggle_icon_green"
android:visibility="@{isEncrypted &amp;&amp; data.securityLevel == ChatRoomSecurityLevel.ClearText ? View.VISIBLE : View.GONE, default=gone}" />
<ImageView <ImageView
android:visibility="@{isEncrypted &amp;&amp; data.securityLevel != ChatRoomSecurityLevel.ClearText ? View.VISIBLE : View.GONE, default=gone}"
android:layout_width="20dp" android:layout_width="20dp"
android:layout_height="20dp" android:layout_height="20dp"
android:layout_alignParentTop="true" android:layout_alignParentTop="true"
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:contentDescription="@{data.securityLevelContentDescription}" android:contentDescription="@{data.securityLevelContentDescription}"
android:src="@{data.securityLevelIcon, default=@drawable/security_alert_indicator}" /> android:src="@{data.securityLevelIcon, default=@drawable/security_alert_indicator}"
android:visibility="@{isEncrypted &amp;&amp; data.securityLevel != ChatRoomSecurityLevel.ClearText ? View.VISIBLE : View.GONE, default=gone}" />
</RelativeLayout> </RelativeLayout>
<ImageView <ImageView
android:onClick="@{removeClickListener}"
android:visibility="@{data.showAdminControls ? View.VISIBLE : View.GONE}"
android:contentDescription="@string/content_description_remove_contact_from_chat_room"
android:id="@+id/delete" android:id="@+id/delete"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="0dp"
android:layout_alignParentRight="true" android:contentDescription="@string/content_description_remove_contact_from_chat_room"
android:layout_centerInParent="true" android:onClick="@{removeClickListener}"
android:paddingLeft="5dp" android:paddingLeft="5dp"
android:paddingRight="5dp" android:paddingRight="5dp"
android:src="@drawable/chat_group_delete" /> android:src="@drawable/chat_group_delete"
android:visibility="@{data.showAdminControls ? View.VISIBLE : View.GONE, default=gone}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<LinearLayout <TextView
android:id="@+id/adminLayout" android:id="@+id/isAdmin"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerVertical="true" android:contentDescription="@string/content_description_contact_is_admin"
android:layout_toLeftOf="@id/delete" android:enabled="@{data.showAdminControls &amp;&amp; data.canBeSetAdmin}"
android:visibility="@{data.showAdminControls &amp;&amp; data.canBeSetAdmin ? View.VISIBLE : View.GONE}"> android:onClick="@{() -> data.unSetAdmin()}"
android:text="@string/chat_room_group_info_admin"
android:textColor="?attr/primaryTextColor"
android:textStyle="bold"
android:padding="10dp"
android:visibility="@{data.admin ? View.VISIBLE : View.GONE, default=gone}"
android:drawablePadding="5dp"
app:drawableStartCompat="@drawable/check_selected"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/delete"
app:layout_constraintTop_toTopOf="parent" />
<LinearLayout <TextView
android:id="@+id/isAdminLayout" android:id="@+id/isNotAdmin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="20dp"
android:onClick="@{() -> data.unSetAdmin()}"
android:visibility="@{data.admin ? View.VISIBLE : View.GONE}">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_gravity="center"
android:adjustViewBounds="true"
android:contentDescription="@string/content_description_contact_is_admin"
android:paddingRight="5dp"
android:scaleType="centerInside"
android:src="@drawable/check_selected" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/chat_room_group_info_admin"
android:textColor="?attr/primaryTextColor"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:id="@+id/isNotAdminLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="20dp"
android:onClick="@{() -> data.setAdmin()}"
android:visibility="@{data.admin ? View.GONE : View.VISIBLE}">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_gravity="center"
android:adjustViewBounds="true"
android:contentDescription="@string/content_description_contact_is_not_admin"
android:paddingRight="5dp"
android:scaleType="centerInside"
android:src="@drawable/check_unselected" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/chat_room_group_info_admin"
android:textColor="?attr/primarySubtextLightColor" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerVertical="true" android:contentDescription="@string/content_description_contact_is_not_admin"
android:layout_marginLeft="10dp" android:enabled="@{data.showAdminControls &amp;&amp; data.canBeSetAdmin}"
android:layout_toLeftOf="@id/adminLayout" android:onClick="@{() -> data.setAdmin()}"
android:layout_toRightOf="@id/avatar" android:text="@string/chat_room_group_info_admin"
android:orientation="vertical"> android:textColor="?attr/primarySubtextLightColor"
android:padding="10dp"
android:visibility="@{data.admin ? View.GONE : (data.showAdminControls &amp;&amp; data.canBeSetAdmin ? View.VISIBLE : View.GONE), default=gone}"
app:drawableStartCompat="@drawable/check_unselected"
android:drawablePadding="5dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/isAdmin"
app:layout_constraintTop_toTopOf="parent" />
<org.linphone.views.MarqueeTextView <androidx.constraintlayout.widget.Barrier
android:text="@{data.contact.name ?? data.displayName}" android:id="@+id/admin_barrier"
style="@style/contact_name_list_cell_font" android:layout_width="wrap_content"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_height="wrap_content" app:barrierDirection="left"
android:singleLine="true" /> app:constraint_referenced_ids="isAdmin, isNotAdmin" />
<org.linphone.views.MarqueeTextView <org.linphone.views.MarqueeTextView
android:text="@{data.sipUri}" android:id="@+id/display_name"
android:id="@+id/sipUri" style="@style/contact_name_list_cell_font"
style="@style/sip_uri_small_font" android:layout_width="0dp"
android:layout_width="wrap_content" android:layout_height="0dp"
android:layout_height="wrap_content" android:singleLine="true"
android:singleLine="true" /> android:layout_marginStart="5dp"
android:text="@{data.contact.name ?? data.displayName, default=`John Doe`}"
app:layout_constraintBottom_toTopOf="@+id/sipUri"
app:layout_constraintEnd_toStartOf="@id/admin_barrier"
app:layout_constraintStart_toEndOf="@id/avatar"
app:layout_constraintTop_toTopOf="parent" />
</LinearLayout> <org.linphone.views.MarqueeTextView
android:id="@+id/sipUri"
style="@style/sip_uri_small_font"
android:layout_width="0dp"
android:layout_height="0dp"
android:singleLine="true"
android:layout_marginStart="5dp"
android:text="@{data.sipUri, default=`sip:john@sip.example.org`}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/admin_barrier"
app:layout_constraintStart_toEndOf="@id/avatar"
app:layout_constraintTop_toBottomOf="@+id/display_name" />
</RelativeLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</layout> </layout>