From eb1ed9682012de6cc9bdaffa665161893c406509 Mon Sep 17 00:00:00 2001
From: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com>
Date: Fri, 13 Oct 2023 10:58:51 -0400
Subject: [PATCH] swarm: remove member limit

Change-Id: I820d9e066336da74437699bdd2d6f7f300a94d5a
---
 Ring/Ring/Constants/Generated/Strings.swift              | 8 --------
 .../SwarmCreationModel/SwarmCreationUI.swift             | 8 +-------
 .../SwarmCreationModel/SwarmCreationUIModel.swift        | 2 --
 Ring/Ring/Resources/en.lproj/Localizable.strings         | 2 --
 Ring/Ring/SwarmInfo.swift                                | 2 --
 Ring/Ring/SwarmInfo/SwarmInfoVM.swift                    | 4 ----
 .../Ring/SwarmInfo/View/AddMoreParticipantsInSwarm.swift | 9 +--------
 Ring/Ring/SwarmInfo/View/SwarmInfoView.swift             | 2 +-
 Ring/RingTests/TestableModels/TestableSwarmInfo.swift    | 1 -
 9 files changed, 3 insertions(+), 35 deletions(-)

diff --git a/Ring/Ring/Constants/Generated/Strings.swift b/Ring/Ring/Constants/Generated/Strings.swift
index 3b590717e..96e13b42b 100644
--- a/Ring/Ring/Constants/Generated/Strings.swift
+++ b/Ring/Ring/Constants/Generated/Strings.swift
@@ -668,10 +668,6 @@ internal enum L10n {
     internal static let addDescription = L10n.tr("Localizable", "swarm.addDescription", fallback: "Add Description")
     /// Add Member
     internal static let addMember = L10n.tr("Localizable", "swarm.addMember", fallback: "Add Member")
-    /// You can add %d more people in this swarm
-    internal static func addMorePeople(_ p1: Int) -> String {
-      return L10n.tr("Localizable", "swarm.addMorePeople", p1, fallback: "You can add %d more people in this swarm")
-    }
     /// Administrator
     internal static let admin = L10n.tr("Localizable", "swarm.admin", fallback: "Administrator")
     /// Admin invites only
@@ -714,10 +710,6 @@ internal enum L10n {
   internal enum Swarmcreation {
     /// Add a description
     internal static let addADescription = L10n.tr("Localizable", "swarmcreation.addADescription", fallback: "Add a description")
-    /// You can add %d more people in the swarm
-    internal static func addPeople(_ p1: Int) -> String {
-      return L10n.tr("Localizable", "swarmcreation.addPeople", p1, fallback: "You can add %d more people in the swarm")
-    }
     /// Create the swarm
     internal static let createTheSwarm = L10n.tr("Localizable", "swarmcreation.createTheSwarm", fallback: "Create the swarm")
     /// Search for contact...
diff --git a/Ring/Ring/Features/Conversations/Conversation/SwarmCreationModel/SwarmCreationUI.swift b/Ring/Ring/Features/Conversations/Conversation/SwarmCreationModel/SwarmCreationUI.swift
index ce0382dd3..f2b24d48a 100644
--- a/Ring/Ring/Features/Conversations/Conversation/SwarmCreationModel/SwarmCreationUI.swift
+++ b/Ring/Ring/Features/Conversations/Conversation/SwarmCreationModel/SwarmCreationUI.swift
@@ -120,11 +120,6 @@ struct SwarmCreationUI: View {
                 }
                 Spacer()
             }
-            if (list.memberLimit - list.selections.count) > 0 {
-                Text(L10n.Swarmcreation.addPeople(list.memberLimit - list.selections.count))
-                    .padding(.leading, 20)
-                    .font(.system(size: 15.0, weight: .semibold, design: .default))
-            }
         }.onTapGesture {
             self.hideKeyboard()
         }
@@ -135,8 +130,7 @@ struct SwarmCreationUI: View {
                         if list.selections.contains(contact.id) {
                             list.selections.removeAll(where: { $0 == contact.id })
                         } else {
-                            if list.selections.count < list.memberLimit {                                       list.selections.append(contact.id)
-                            }
+                            list.selections.append(contact.id)
                         }
                         self.hideKeyboard()
                     }
diff --git a/Ring/Ring/Features/Conversations/Conversation/SwarmCreationModel/SwarmCreationUIModel.swift b/Ring/Ring/Features/Conversations/Conversation/SwarmCreationModel/SwarmCreationUIModel.swift
index feca22b11..cc1908a0e 100644
--- a/Ring/Ring/Features/Conversations/Conversation/SwarmCreationModel/SwarmCreationUIModel.swift
+++ b/Ring/Ring/Features/Conversations/Conversation/SwarmCreationModel/SwarmCreationUIModel.swift
@@ -36,7 +36,6 @@ class SwarmCreationUIModel: ObservableObject {
     @Published var swarmDescription: String = ""
     @Published var image: UIImage?
     @Published var selections: [String] = []
-    @Published var memberLimit = 0
 
     required init(with injectionBag: InjectionBag, accountId: String, strSearchText: BehaviorRelay<String>, swarmCreated: @escaping ((String, String) -> Void)) {
         self.swarmCreated = swarmCreated
@@ -44,7 +43,6 @@ class SwarmCreationUIModel: ObservableObject {
         self.accountId = accountId
         self.swarmInfo = SwarmInfo(injectionBag: injectionBag, accountId: accountId)
         // 1 member is administrtor so remove 1 from maximum limit
-        memberLimit = self.swarmInfo.maximumLimit - 1
         strSearchText.subscribe { searchText in
             if !searchText.isEmpty {
                 let flatArr = self.filteredArray.compactMap { $0 }
diff --git a/Ring/Ring/Resources/en.lproj/Localizable.strings b/Ring/Ring/Resources/en.lproj/Localizable.strings
index a62f502bb..8378572ce 100644
--- a/Ring/Ring/Resources/en.lproj/Localizable.strings
+++ b/Ring/Ring/Resources/en.lproj/Localizable.strings
@@ -53,7 +53,6 @@
 "swarmcreation.searchBar" = "Search for contact...";
 "swarmcreation.createTheSwarm" = "Create the swarm";
 "swarmcreation.addADescription" = "Add a description";
-"swarmcreation.addPeople" = "You can add \%d\ more people in the swarm";
 // Swarm
 "swarm.ignoreSwarm" = "Ignore the swarm";
 "swarm.leaveConversation" = "Leave the conversation";
@@ -73,7 +72,6 @@
 "swarm.admin" = "Administrator";
 "swarm.banned" = "Banned";
 "swarm.unknown" = "Unkown";
-"swarm.addMorePeople" = "You can add \%d\ more people in this swarm";
 "swarm.addMember" = "Add Member";
 "swarm.confirmLeaveSwarm" = "Are you sure you want to leave this swarm?";
 "swarm.Leave" = "Leave";
diff --git a/Ring/Ring/SwarmInfo.swift b/Ring/Ring/SwarmInfo.swift
index a883b0dce..fe0ba6d41 100644
--- a/Ring/Ring/SwarmInfo.swift
+++ b/Ring/Ring/SwarmInfo.swift
@@ -33,7 +33,6 @@ protocol SwarmInfoProtocol {
 
     var avatarHeight: CGFloat { get set }
     var avatarSpacing: CGFloat { get set }
-    var maximumLimit: Int { get set }
 
     var finalTitle: Observable<String> { get set }
 
@@ -128,7 +127,6 @@ class SwarmInfo: SwarmInfoProtocol {
 
     var avatarHeight: CGFloat = 40
     var avatarSpacing: CGFloat = 2
-    var maximumLimit: Int = 8
     lazy var id: String = {
         return conversation?.id ?? ""
     }()
diff --git a/Ring/Ring/SwarmInfo/SwarmInfoVM.swift b/Ring/Ring/SwarmInfo/SwarmInfoVM.swift
index ec3de4b78..7fd2829c6 100644
--- a/Ring/Ring/SwarmInfo/SwarmInfoVM.swift
+++ b/Ring/Ring/SwarmInfo/SwarmInfoVM.swift
@@ -24,7 +24,6 @@ import RxCocoa
 class SwarmInfoVM: ObservableObject {
     @Published var participantsRows = [ParticipantRow]()
     @Published var selections: [String] = []
-    @Published var addMemberCount: Int = 0
     @Published var finalAvatar: UIImage = UIImage()
     @Published var finalTitle: String = ""
     @Published var finalColor: String = UIColor.defaultSwarm
@@ -82,8 +81,6 @@ class SwarmInfoVM: ObservableObject {
         self.contactsService = injectionBag.contactsService
         self.swarmInfo = swarmInfo
         self.conversation = swarmInfo.conversation
-        addMemberCount = self.swarmInfo.maximumLimit - self.swarmInfo.participants.value.count
-        print("Swarm Type :-\(swarmInfo.type.value.stringValue)")
         self.swarmInfo.finalAvatar
             .subscribe(onNext: { [weak self] newValue in
                 DispatchQueue.main.async {
@@ -149,7 +146,6 @@ class SwarmInfoVM: ObservableObject {
         colorPickerStatus.accept(colorPicker)
     }
     func updateContactList () {
-        addMemberCount = self.swarmInfo.maximumLimit - self.swarmInfo.participants.value.count
         self.swarmInfo.contacts
             .subscribe { [weak self] newValue in
                 guard let self = self else { return }
diff --git a/Ring/Ring/SwarmInfo/View/AddMoreParticipantsInSwarm.swift b/Ring/Ring/SwarmInfo/View/AddMoreParticipantsInSwarm.swift
index 443404da6..058fc2c50 100644
--- a/Ring/Ring/SwarmInfo/View/AddMoreParticipantsInSwarm.swift
+++ b/Ring/Ring/SwarmInfo/View/AddMoreParticipantsInSwarm.swift
@@ -47,20 +47,13 @@ struct AddMoreParticipantsInSwarm: View {
         .sheet(isPresented: $showAddMember, onDismiss: {
             viewmodel.removeExistingSubscription()
         }, content: {
-            let currentCount = viewmodel.addMemberCount - viewmodel.selections.count
-            Text(L10n.Swarm.addMorePeople(viewmodel.selections.isEmpty ? viewmodel.addMemberCount : currentCount))
-                .opacity(currentCount > 0 ? 1 : 0)
-                .padding(.top, 20)
-                .font(.system(size: 15.0, weight: .semibold, design: .default))
             List {
                 ForEach(viewmodel.participantsRows) { contact in
                     ParticipantListCell(participant: contact, isSelected: viewmodel.selections.contains(contact.id)) {
                         if viewmodel.selections.contains(contact.id) {
                             viewmodel.selections.removeAll(where: { $0 == contact.id })
                         } else {
-                            if viewmodel.selections.count < viewmodel.addMemberCount {
-                                viewmodel.selections.append(contact.id)
-                            }
+                            viewmodel.selections.append(contact.id)
                         }
                     }
                 }
diff --git a/Ring/Ring/SwarmInfo/View/SwarmInfoView.swift b/Ring/Ring/SwarmInfo/View/SwarmInfoView.swift
index 7b73ae8a9..362ac274e 100644
--- a/Ring/Ring/SwarmInfo/View/SwarmInfoView.swift
+++ b/Ring/Ring/SwarmInfo/View/SwarmInfoView.swift
@@ -142,7 +142,7 @@ public struct SwarmInfoView: View {
             .onChange(of: viewmodel.finalTitle) { _ in
                 titleTextFieldInput = viewmodel.finalTitle
             }
-            if viewmodel.swarmInfo.participants.value.count < viewmodel.swarmInfo.maximumLimit && !(viewmodel.conversation?.isCoredialog() ?? true) {
+            if !(viewmodel.conversation?.isCoredialog() ?? true) {
                 AddMoreParticipantsInSwarm(viewmodel: viewmodel)
             }
             if viewmodel.showColorSheet {
diff --git a/Ring/RingTests/TestableModels/TestableSwarmInfo.swift b/Ring/RingTests/TestableModels/TestableSwarmInfo.swift
index 3f1a82871..82ddba944 100644
--- a/Ring/RingTests/TestableModels/TestableSwarmInfo.swift
+++ b/Ring/RingTests/TestableModels/TestableSwarmInfo.swift
@@ -34,7 +34,6 @@ class TestableSwarmInfo: SwarmInfoProtocol {
 
     var avatarHeight: CGFloat = 40
     var avatarSpacing: CGFloat = 2
-    var maximumLimit: Int = 8
     lazy var id: String = {
         return conversation?.id ?? ""
     }()
-- 
GitLab