Fix error joining communities (#836)

pull/1710/head
SessionHero01 5 months ago committed by GitHub
parent de01ee1a2c
commit 27bef85bf8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -1,6 +1,5 @@
package org.thoughtcrime.securesms.conversation.v2.dialogs
import org.thoughtcrime.securesms.createSessionDialog
import android.app.Dialog
import android.graphics.Typeface
import android.os.Bundle
@ -9,9 +8,10 @@ import android.text.SpannableStringBuilder
import android.text.style.StyleSpan
import android.widget.Toast
import androidx.fragment.app.DialogFragment
import androidx.lifecycle.lifecycleScope
import com.squareup.phrase.Phrase
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import network.loki.messenger.R
@ -19,11 +19,12 @@ import org.session.libsession.database.StorageProtocol
import org.session.libsession.utilities.OpenGroupUrlParser
import org.session.libsession.utilities.StringSubstitutionConstants.COMMUNITY_NAME_KEY
import org.session.libsignal.utilities.Log
import org.session.libsignal.utilities.ThreadUtils
import org.thoughtcrime.securesms.createSessionDialog
import org.thoughtcrime.securesms.groups.OpenGroupManager
import javax.inject.Inject
/** Shown upon tapping an open group invitation. */
@AndroidEntryPoint
class JoinOpenGroupDialog(private val name: String, private val url: String) : DialogFragment() {
@Inject
@ -47,7 +48,9 @@ class JoinOpenGroupDialog(private val name: String, private val url: String) : D
private fun join() {
val openGroup = OpenGroupUrlParser.parseUrl(url)
val activity = requireActivity()
lifecycleScope.launch {
// Must run on a bigger scope, as we are dismissing the dialog right after
GlobalScope.launch(Dispatchers.Main) {
try {
withContext(Dispatchers.Default) {
OpenGroupManager.add(
@ -60,6 +63,7 @@ class JoinOpenGroupDialog(private val name: String, private val url: String) : D
storage.onOpenGroupAdded(openGroup.server, openGroup.room)
}
} catch (e: Exception) {
Log.e("JoinOpenGroupDialog", "Error joining community", e)
Toast.makeText(activity, R.string.communityErrorDescription, Toast.LENGTH_SHORT).show()
}
}

Loading…
Cancel
Save