mirror of
https://github.com/oxen-io/session-android.git
synced 2024-12-11 18:54:21 +00:00
Edit closed group activity follows the same data validation as create closed group activity.
This commit is contained in:
parent
64f3bfd41d
commit
b6b5282a51
@ -26,7 +26,6 @@ import org.thoughtcrime.securesms.loki.protocol.ClosedGroupsProtocol
|
|||||||
import org.thoughtcrime.securesms.mms.GlideApp
|
import org.thoughtcrime.securesms.mms.GlideApp
|
||||||
import org.thoughtcrime.securesms.recipients.Recipient
|
import org.thoughtcrime.securesms.recipients.Recipient
|
||||||
import org.thoughtcrime.securesms.util.GroupUtil
|
import org.thoughtcrime.securesms.util.GroupUtil
|
||||||
import org.whispersystems.signalservice.api.crypto.ProfileCipher
|
|
||||||
import org.whispersystems.signalservice.loki.utilities.toHexString
|
import org.whispersystems.signalservice.loki.utilities.toHexString
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
|
|
||||||
@ -34,6 +33,9 @@ const val EXTRA_GROUP_ID = "GROUP_ID"
|
|||||||
const val REQ_CODE_ADD_USERS = 124
|
const val REQ_CODE_ADD_USERS = 124
|
||||||
const val LOADER_ID_MEMBERS = 0
|
const val LOADER_ID_MEMBERS = 0
|
||||||
|
|
||||||
|
const val MAX_GROUP_MEMBERS_LEGACY = 10
|
||||||
|
const val MAX_GROUP_MEMBERS_SSK = 50
|
||||||
|
|
||||||
class EditClosedGroupActivity : PassphraseRequiredActionBarActivity() {
|
class EditClosedGroupActivity : PassphraseRequiredActionBarActivity() {
|
||||||
|
|
||||||
private lateinit var memberListAdapter: EditClosedGroupMembersAdapter
|
private lateinit var memberListAdapter: EditClosedGroupMembersAdapter
|
||||||
@ -186,14 +188,15 @@ class EditClosedGroupActivity : PassphraseRequiredActionBarActivity() {
|
|||||||
private fun saveDisplayName() {
|
private fun saveDisplayName() {
|
||||||
val groupDisplayName = edtGroupName.text.toString().trim()
|
val groupDisplayName = edtGroupName.text.toString().trim()
|
||||||
if (groupDisplayName.isEmpty()) {
|
if (groupDisplayName.isEmpty()) {
|
||||||
return Toast.makeText(this, R.string.activity_settings_display_name_missing_error, Toast.LENGTH_SHORT).show()
|
return Toast.makeText(this, R.string.activity_edit_closed_group_group_name_missing_error, Toast.LENGTH_SHORT).show()
|
||||||
}
|
}
|
||||||
if (!groupDisplayName.matches(Regex("[a-zA-Z0-9_]+"))) {
|
// if (groupDisplayName.toByteArray().size > ProfileCipher.NAME_PADDED_LENGTH) {
|
||||||
return Toast.makeText(this, R.string.activity_settings_invalid_display_name_error, Toast.LENGTH_SHORT).show()
|
if (groupDisplayName.length >= 64) {
|
||||||
}
|
return Toast.makeText(this, R.string.activity_edit_closed_group_group_name_too_long_error, Toast.LENGTH_SHORT).show()
|
||||||
if (groupDisplayName.toByteArray().size > ProfileCipher.NAME_PADDED_LENGTH) {
|
|
||||||
return Toast.makeText(this, R.string.activity_settings_display_name_too_long_error, Toast.LENGTH_SHORT).show()
|
|
||||||
}
|
}
|
||||||
|
// if (!groupDisplayName.matches(Regex("[a-zA-Z0-9_]+"))) {
|
||||||
|
// return Toast.makeText(this, R.string.activity_settings_invalid_display_name_error, Toast.LENGTH_SHORT).show()
|
||||||
|
// }
|
||||||
newGroupDisplayName = groupDisplayName
|
newGroupDisplayName = groupDisplayName
|
||||||
lblGroupNameDisplay.text = groupDisplayName
|
lblGroupNameDisplay.text = groupDisplayName
|
||||||
nameHasChanged = true
|
nameHasChanged = true
|
||||||
@ -219,17 +222,6 @@ class EditClosedGroupActivity : PassphraseRequiredActionBarActivity() {
|
|||||||
// }.toSet()
|
// }.toSet()
|
||||||
val finalGroupAdmins = finalGroupMembers.toSet() //TODO For now, consider all the 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()
|
|
||||||
}
|
|
||||||
|
|
||||||
var isSSKBasedClosedGroup: Boolean
|
var isSSKBasedClosedGroup: Boolean
|
||||||
var groupPublicKey: String?
|
var groupPublicKey: String?
|
||||||
try {
|
try {
|
||||||
@ -240,6 +232,14 @@ class EditClosedGroupActivity : PassphraseRequiredActionBarActivity() {
|
|||||||
isSSKBasedClosedGroup = false
|
isSSKBasedClosedGroup = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (finalGroupMembers.size < 2) {
|
||||||
|
return Toast.makeText(this, R.string.activity_edit_closed_group_not_enough_group_members_error, Toast.LENGTH_LONG).show()
|
||||||
|
}
|
||||||
|
val maxGroupMembers = if (isSSKBasedClosedGroup) MAX_GROUP_MEMBERS_SSK else MAX_GROUP_MEMBERS_LEGACY
|
||||||
|
if (finalGroupMembers.size > maxGroupMembers) {
|
||||||
|
return Toast.makeText(this, R.string.activity_edit_closed_group_too_many_group_members_error, Toast.LENGTH_LONG).show()
|
||||||
|
}
|
||||||
|
|
||||||
if (isSSKBasedClosedGroup) {
|
if (isSSKBasedClosedGroup) {
|
||||||
//TODO AC: Should it use "groupPublicKey" or "groupID"?
|
//TODO AC: Should it use "groupPublicKey" or "groupID"?
|
||||||
ClosedGroupsProtocol.updateGroup(this, groupPublicKey!!, finalGroupMembers, null, groupDisplayName, finalGroupAdmins)
|
ClosedGroupsProtocol.updateGroup(this, groupPublicKey!!, finalGroupMembers, null, groupDisplayName, finalGroupAdmins)
|
||||||
|
Loading…
Reference in New Issue
Block a user