From d9599b984a5fe91f322d50393b1630edf082f4c3 Mon Sep 17 00:00:00 2001 From: Anton Chekulaev Date: Fri, 14 Aug 2020 16:48:56 +1000 Subject: [PATCH] User count validation for edit closed group activity. --- .../activities/EditClosedGroupActivity.kt | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/org/thoughtcrime/securesms/loki/activities/EditClosedGroupActivity.kt b/src/org/thoughtcrime/securesms/loki/activities/EditClosedGroupActivity.kt index 1d21a4bbdf..6cacaa7777 100644 --- a/src/org/thoughtcrime/securesms/loki/activities/EditClosedGroupActivity.kt +++ b/src/org/thoughtcrime/securesms/loki/activities/EditClosedGroupActivity.kt @@ -116,7 +116,7 @@ class EditClosedGroupActivity : PassphraseRequiredActionBarActivity() { // region Interaction override fun onOptionsItemSelected(item: MenuItem): Boolean { when(item.itemId) { - R.id.applyButton -> modifyClosedGroup() + R.id.applyButton -> commitClosedGroupChanges() } return super.onOptionsItemSelected(item) } @@ -191,7 +191,7 @@ class EditClosedGroupActivity : PassphraseRequiredActionBarActivity() { isEditingGroupName = false } - private fun modifyClosedGroup() { + private fun commitClosedGroupChanges() { val membersHaveChanged = members.size != originalMembers.size || !members.containsAll(originalMembers) if (!nameHasChanged && !membersHaveChanged) { @@ -199,18 +199,28 @@ class EditClosedGroupActivity : PassphraseRequiredActionBarActivity() { return } - var groupDisplayName = originalName - if (nameHasChanged) { - groupDisplayName = newGroupDisplayName - } + val groupDisplayName = if (nameHasChanged) newGroupDisplayName else originalName val finalGroupMembers = members.map { Recipient.from(this, Address.fromSerialized(it), false) }.toSet() + // val finalGroupAdmins = adminMembers.map { // Recipient.from(this, Address.fromSerialized(it), false) // }.toSet() - val finalGroupAdmins = finalGroupMembers.toSet() //TODO For now, consider all the group's users are admins. + val finalGroupAdmins = finalGroupMembers.toSet() //TODO For now, consider all the users are admins. + + + if (groupDisplayName.length >= 64) { + return Toast.makeText(this, R.string.activity_edit_closed_group_group_name_too_long_error, Toast.LENGTH_LONG).show() + } + if (finalGroupMembers.size < 2) { + return Toast.makeText(this, R.string.activity_edit_closed_group_not_enough_group_members_error, Toast.LENGTH_LONG).show() + } + if (finalGroupMembers.size > 10) { + return Toast.makeText(this, R.string.activity_edit_closed_group_too_many_group_members_error, Toast.LENGTH_LONG).show() + } + GroupManager.updateGroup(this, groupID, finalGroupMembers, null, groupDisplayName, finalGroupAdmins) finish() }