From fb7ea25b9df88447551d86b44991f1a68d4f27c5 Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Fri, 10 Feb 2023 16:13:46 +0100 Subject: [PATCH 1/2] Fix to switch active user when opening talk from notification When two or more users were setup, the active user was not updated when opening the app from notification. As a result, it was not possible to send files, mention people... Signed-off-by: Marcel Hibbe --- .../java/com/nextcloud/talk/activities/MainActivity.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt b/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt index f0dcf32cb..f8571b6c5 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt @@ -338,6 +338,14 @@ class MainActivity : BaseActivity(), ActionBarProvider { override fun onNewIntent(intent: Intent) { super.onNewIntent(intent) Log.d(TAG, "onNewIntent Activity: " + System.identityHashCode(this).toString()) + + val user = intent.getParcelableExtra(KEY_USER_ENTITY) + if (user != null && userManager.setUserAsActive(user).blockingGet()) { + handleIntent(intent) + } + } + + private fun handleIntent(intent: Intent) { handleActionFromContact(intent) if (intent.hasExtra(BundleKeys.KEY_FROM_NOTIFICATION_START_CALL)) { if (intent.getBooleanExtra(BundleKeys.KEY_FROM_NOTIFICATION_START_CALL, false)) { From fcb4ee04309911ecac1760dff9d764ae9b23528a Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Fri, 10 Feb 2023 16:16:27 +0100 Subject: [PATCH 2/2] Switch to active user in CallNotificationActivity There are no known bugs that were caused by not setting the active user here, but this should be done. See fb7ea25b for reference Signed-off-by: Marcel Hibbe --- .../activities/CallNotificationActivity.kt | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/activities/CallNotificationActivity.kt b/app/src/main/java/com/nextcloud/talk/activities/CallNotificationActivity.kt index 3009febc5..6051a853c 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/CallNotificationActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/activities/CallNotificationActivity.kt @@ -43,6 +43,7 @@ import com.nextcloud.talk.extensions.loadAvatar import com.nextcloud.talk.models.json.conversations.Conversation import com.nextcloud.talk.models.json.conversations.RoomOverall import com.nextcloud.talk.models.json.participants.Participant +import com.nextcloud.talk.users.UserManager import com.nextcloud.talk.utils.ApiUtils import com.nextcloud.talk.utils.NotificationUtils import com.nextcloud.talk.utils.ParticipantPermissions @@ -73,6 +74,9 @@ class CallNotificationActivity : CallBaseActivity() { @Inject var cache: Cache? = null + @Inject + lateinit var userManager: UserManager + private val disposablesList: MutableList = ArrayList() private var originalBundle: Bundle? = null private var roomToken: String? = null @@ -98,13 +102,16 @@ class CallNotificationActivity : CallBaseActivity() { userBeingCalled = extras.getParcelable(KEY_USER_ENTITY) originalBundle = extras credentials = ApiUtils.getCredentials(userBeingCalled!!.username, userBeingCalled!!.token) - setCallDescriptionText() - if (currentConversation == null) { - handleFromNotification() - } else { - setUpAfterConversationIsKnown() + + if (userManager.setUserAsActive(userBeingCalled!!).blockingGet()) { + setCallDescriptionText() + if (currentConversation == null) { + handleFromNotification() + } else { + setUpAfterConversationIsKnown() + } + initClickListeners() } - initClickListeners() } override fun onStart() {