From 7e1cc872bd373e0017f451064128eab4a2609d7b Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Fri, 18 Jun 2021 10:33:35 +0200 Subject: [PATCH] Add tracking circles support Signed-off-by: Joas Schilling --- .../talk/adapters/items/UserItem.java | 3 +++ .../controllers/ConversationInfoController.kt | 25 +++++++++++++++++-- app/src/main/res/values/strings.xml | 2 ++ 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/adapters/items/UserItem.java b/app/src/main/java/com/nextcloud/talk/adapters/items/UserItem.java index e4473464c..3be3d30e3 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/items/UserItem.java +++ b/app/src/main/java/com/nextcloud/talk/adapters/items/UserItem.java @@ -226,6 +226,9 @@ public class UserItem extends AbstractFlexibleItem 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); diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ConversationInfoController.kt b/app/src/main/java/com/nextcloud/talk/controllers/ConversationInfoController.kt index f3069485b..921d16a40 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ConversationInfoController.kt +++ b/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 { 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) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 88fd8d550..b1699b397 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -257,6 +257,7 @@ Demote from moderator Promote to moderator Remove participant + Remove circle and members Remove group and members Pin: %1$s @@ -315,6 +316,7 @@ %s characters limit has been hit Email Group + Circle Groups Circles Participants