From 436bdeb49f5bdcd7aa2f1c68d6cf2489cd270b25 Mon Sep 17 00:00:00 2001 From: Mario Danic Date: Thu, 2 Jan 2020 14:57:37 +0100 Subject: [PATCH] Fix sharing --- .../controllers/ConversationInfoController.kt | 46 +++++++++++-------- .../com/nextcloud/talk/utils/ShareUtils.kt | 3 +- 2 files changed, 30 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ConversationInfoController.kt b/app/src/main/java/com/nextcloud/talk/controllers/ConversationInfoController.kt index d4673b2eb..bb84b2a22 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ConversationInfoController.kt +++ b/app/src/main/java/com/nextcloud/talk/controllers/ConversationInfoController.kt @@ -86,6 +86,10 @@ import io.reactivex.Observer import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode import org.koin.android.ext.android.inject @@ -728,27 +732,33 @@ class ConversationInfoController(args: Bundle) : BaseController(), } shareAction.setOnClickListener { - val sendIntent: Intent = Intent().apply { - action = Intent.ACTION_SEND - putExtra( - Intent.EXTRA_SUBJECT, - String.format( - context.getString(R.string.nc_share_subject), - context.getString(R.string.nc_app_name) - ) - ) + GlobalScope.launch { + val sendIntent: Intent = Intent().apply { + action = Intent.ACTION_SEND + putExtra( + Intent.EXTRA_SUBJECT, + String.format( + context.getString(string.nc_share_subject), + context.getString(string.nc_app_name) + ) + ) - putExtra( - Intent.EXTRA_TEXT, ShareUtils.getStringForIntent( - context, conversation!!.password, conversation!! - ) - ) + putExtra( + Intent.EXTRA_TEXT, ShareUtils.getStringForIntent( + context, conversation!!.password, conversation!! + ) + ) + + type = "text/plain" + } + + + val intent = Intent.createChooser(sendIntent, context.getString(string.nc_share_link)) + withContext(Dispatchers.Main) { + startActivity(intent) + } - type = "text/plain" } - - val intent = Intent.createChooser(sendIntent, context.getString(string.nc_share_link)) - startActivity(intent) } if (allowGuestsAction.value) { diff --git a/app/src/main/java/com/nextcloud/talk/utils/ShareUtils.kt b/app/src/main/java/com/nextcloud/talk/utils/ShareUtils.kt index 397a63c38..3853798bb 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/ShareUtils.kt +++ b/app/src/main/java/com/nextcloud/talk/utils/ShareUtils.kt @@ -34,8 +34,8 @@ object ShareUtils : KoinComponent { @JvmStatic fun getStringForIntent(context: Context?, password: String?, conversation: Conversation): String { - val userEntity: UserNgEntity? = usersRepository.getActiveUser() var shareString = "" + val userEntity: UserNgEntity? = usersRepository.getActiveUser() if (userEntity != null && context != null) { shareString = java.lang.String.format(context.resources.getString(R.string.nc_share_text), userEntity.baseUrl, conversation.token) @@ -43,6 +43,7 @@ object ShareUtils : KoinComponent { shareString += String.format(context.resources.getString(R.string.nc_share_text_pass), password) } } + return shareString } } \ No newline at end of file