Open group after it's created

This commit is contained in:
nielsandriesse 2020-08-12 12:22:16 +10:00
parent 418079732b
commit c88d0f0520
2 changed files with 8 additions and 5 deletions

View file

@ -17,6 +17,7 @@ import network.loki.messenger.R
import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity
import org.thoughtcrime.securesms.conversation.ConversationActivity import org.thoughtcrime.securesms.conversation.ConversationActivity
import org.thoughtcrime.securesms.database.Address import org.thoughtcrime.securesms.database.Address
import org.thoughtcrime.securesms.database.DatabaseFactory
import org.thoughtcrime.securesms.database.ThreadDatabase import org.thoughtcrime.securesms.database.ThreadDatabase
import org.thoughtcrime.securesms.groups.GroupManager import org.thoughtcrime.securesms.groups.GroupManager
import org.thoughtcrime.securesms.loki.protocol.ClosedGroupsProtocol import org.thoughtcrime.securesms.loki.protocol.ClosedGroupsProtocol
@ -125,7 +126,9 @@ class CreateClosedGroupActivity : PassphraseRequiredActionBarActivity(), MemberC
return Toast.makeText(this, R.string.activity_create_closed_group_too_many_group_members_error, Toast.LENGTH_LONG).show() return Toast.makeText(this, R.string.activity_create_closed_group_too_many_group_members_error, Toast.LENGTH_LONG).show()
} }
val userPublicKey = TextSecurePreferences.getLocalNumber(this) val userPublicKey = TextSecurePreferences.getLocalNumber(this)
ClosedGroupsProtocol.createClosedGroup(this, name.toString(), selectedMembers + setOf( userPublicKey )) val groupID = ClosedGroupsProtocol.createClosedGroup(this, name.toString(), selectedMembers + setOf( userPublicKey ))
val threadID = DatabaseFactory.getThreadDatabase(this).getThreadIdFor(Recipient.from(this, Address.fromSerialized(groupID), false))
openConversation(threadID, Recipient.from(this, Address.fromSerialized(groupID), false))
} }
private fun createLegacyClosedGroup() { private fun createLegacyClosedGroup() {
@ -151,7 +154,7 @@ class CreateClosedGroupActivity : PassphraseRequiredActionBarActivity(), MemberC
CreateClosedGroupTask(WeakReference(this), null, name.toString(), recipients, setOf( admin )).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR) CreateClosedGroupTask(WeakReference(this), null, name.toString(), recipients, setOf( admin )).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR)
} }
private fun handleOpenConversation(threadId: Long, recipient: Recipient) { private fun openConversation(threadId: Long, recipient: Recipient) {
val intent = Intent(this, ConversationActivity::class.java) val intent = Intent(this, ConversationActivity::class.java)
intent.putExtra(ConversationActivity.THREAD_ID_EXTRA, threadId) intent.putExtra(ConversationActivity.THREAD_ID_EXTRA, threadId)
intent.putExtra(ConversationActivity.DISTRIBUTION_TYPE_EXTRA, ThreadDatabase.DistributionTypes.DEFAULT) intent.putExtra(ConversationActivity.DISTRIBUTION_TYPE_EXTRA, ThreadDatabase.DistributionTypes.DEFAULT)
@ -179,7 +182,7 @@ class CreateClosedGroupActivity : PassphraseRequiredActionBarActivity(), MemberC
val activity = activity.get() ?: return super.onPostExecute(result) val activity = activity.get() ?: return super.onPostExecute(result)
if (result.isPresent && result.get().threadId > -1) { if (result.isPresent && result.get().threadId > -1) {
if (!activity.isFinishing) { if (!activity.isFinishing) {
activity.handleOpenConversation(result.get().threadId, result.get().groupRecipient) activity.openConversation(result.get().threadId, result.get().groupRecipient)
} }
} else { } else {
super.onPostExecute(result) super.onPostExecute(result)

View file

@ -30,7 +30,7 @@ import java.util.*
object ClosedGroupsProtocol { object ClosedGroupsProtocol {
val isSharedSenderKeysEnabled = true val isSharedSenderKeysEnabled = true
public fun createClosedGroup(context: Context, name: String, members: Collection<String>): Promise<Unit, Exception> { public fun createClosedGroup(context: Context, name: String, members: Collection<String>): String {
// Prepare // Prepare
val userPublicKey = TextSecurePreferences.getLocalNumber(context) val userPublicKey = TextSecurePreferences.getLocalNumber(context)
// Generate a key pair for the group // Generate a key pair for the group
@ -65,7 +65,7 @@ object ClosedGroupsProtocol {
val threadID = DatabaseFactory.getThreadDatabase(context).getThreadIdFor(Recipient.from(context, Address.fromSerialized(groupID), false)) val threadID = DatabaseFactory.getThreadDatabase(context).getThreadIdFor(Recipient.from(context, Address.fromSerialized(groupID), false))
insertInfoMessage(context, groupID, GroupContext.Type.UPDATE, name, members, admins, threadID) insertInfoMessage(context, groupID, GroupContext.Type.UPDATE, name, members, admins, threadID)
// Return // Return
return Promise.of(Unit) return groupID
} }
public fun addMembers(context: Context, newMembers: Collection<String>, groupPublicKey: String) { public fun addMembers(context: Context, newMembers: Collection<String>, groupPublicKey: String) {