Эх сурвалжийг харах

Merge pull request #1337 from nextcloud/circles-support

Add tracking circles support
Marcel Hibbe 3 жил өмнө
parent
commit
9ce5184fe1

+ 3 - 0
app/src/main/java/com/nextcloud/talk/adapters/items/UserItem.java

@@ -226,6 +226,9 @@ public class UserItem extends AbstractFlexibleItem<UserItem.UserItemViewHolder>
                         if (participant.getActorType() == Participant.ActorType.GROUPS) {
                             userType = NextcloudTalkApplication.Companion.getSharedApplication().getString(R.string.nc_group);
                         }
+                        if (participant.getActorType() == Participant.ActorType.CIRCLES) {
+                            userType = NextcloudTalkApplication.Companion.getSharedApplication().getString(R.string.nc_circle);
+                        }
                         break;
                     case 4:
                         userType = NextcloudTalkApplication.Companion.getSharedApplication().getString(R.string.nc_guest);

+ 23 - 2
app/src/main/java/com/nextcloud/talk/controllers/ConversationInfoController.kt

@@ -62,6 +62,7 @@ import com.nextcloud.talk.models.json.conversations.RoomOverall
 import com.nextcloud.talk.models.json.converters.EnumNotificationLevelConverter
 import com.nextcloud.talk.models.json.generic.GenericOverall
 import com.nextcloud.talk.models.json.participants.Participant
+import com.nextcloud.talk.models.json.participants.Participant.ActorType.CIRCLES
 import com.nextcloud.talk.models.json.participants.Participant.ActorType.GROUPS
 import com.nextcloud.talk.models.json.participants.Participant.ActorType.USERS
 import com.nextcloud.talk.models.json.participants.ParticipantsOverall
@@ -900,6 +901,26 @@ class ConversationInfoController(args: Bundle) :
             return true
         }
 
+        if (participant.getActorType() == CIRCLES) {
+            val items = mutableListOf(
+                BasicListItemWithImage(
+                    R.drawable.ic_delete_grey600_24dp,
+                    context!!.getString(R.string.nc_remove_circle_and_members)
+                )
+            )
+            MaterialDialog(activity!!, BottomSheet(WRAP_CONTENT)).show {
+                cornerRadius(res = R.dimen.corner_radius)
+
+                title(text = participant.displayName)
+                listItemsWithImage(items = items) { dialog, index, _ ->
+                    if (index == 0) {
+                        removeAttendeeFromConversation(apiVersion, participant)
+                    }
+                }
+            }
+            return true
+        }
+
         val items = mutableListOf(
             BasicListItemWithImage(
                 R.drawable.ic_lock_grey600_24px,
@@ -975,8 +996,8 @@ class ConversationInfoController(args: Bundle) :
      */
     class UserItemComparator : Comparator<UserItem> {
         override fun compare(left: UserItem, right: UserItem): Int {
-            val leftIsGroup = left.model.actorType == GROUPS
-            val rightIsGroup = right.model.actorType == GROUPS
+            val leftIsGroup = left.model.actorType == GROUPS || left.model.actorType == CIRCLES
+            val rightIsGroup = right.model.actorType == GROUPS || right.model.actorType == CIRCLES
             if (leftIsGroup != rightIsGroup) {
                 // Groups below participants
                 return if (rightIsGroup) {

+ 2 - 0
app/src/main/res/values/strings.xml

@@ -257,6 +257,7 @@
     <string name="nc_demote">Demote from moderator</string>
     <string name="nc_promote">Promote to moderator</string>
     <string name="nc_remove_participant">Remove participant</string>
+    <string name="nc_remove_circle_and_members">Remove circle and members</string>
     <string name="nc_remove_group_and_members">Remove group and members</string>
     <string name="nc_attendee_pin">Pin: %1$s</string>
 
@@ -315,6 +316,7 @@
     <string name="nc_limit_hit">%s characters limit has been hit</string>
     <string name="nc_email">Email</string>
     <string name="nc_group">Group</string>
+    <string name="nc_circle">Circle</string>
     <string name="nc_groups">Groups</string>
     <string name="nc_circles">Circles</string>
     <string name="nc_participants">Participants</string>