Преглед на файлове

Re-use existing ChatController from notification
NotificationWorker provides the user information under KEY_USER_ENTITY parameter of the notification intent, but does not set the KEY_INTERNAL_USER_ID parameter.
With this change existing ChatController instance that has been opened manually from the conversation list is properly reused when a notification is opened.
Otherwise two instances of the ChatController were running in parallel for the same room, causing unintended side effects.

Signed-off-by: Dariusz Olszewski <starypatyk@users.noreply.github.com>

Dariusz Olszewski преди 3 години
родител
ревизия
93556da33a
променени са 1 файла, в които са добавени 3 реда и са изтрити 3 реда
  1. 3 3
      app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt

+ 3 - 3
app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt

@@ -48,9 +48,9 @@ import com.nextcloud.talk.controllers.SettingsController
 import com.nextcloud.talk.controllers.WebViewLoginController
 import com.nextcloud.talk.controllers.base.providers.ActionBarProvider
 import com.nextcloud.talk.databinding.ActivityMainBinding
+import com.nextcloud.talk.models.database.UserEntity
 import com.nextcloud.talk.models.json.conversations.RoomOverall
 import com.nextcloud.talk.utils.ApiUtils
-import com.nextcloud.talk.utils.ConductorRemapping
 import com.nextcloud.talk.utils.ConductorRemapping.remapChatController
 import com.nextcloud.talk.utils.SecurityUtils
 import com.nextcloud.talk.utils.bundle.BundleKeys
@@ -346,8 +346,8 @@ class MainActivity : BaseActivity(), ActionBarProvider {
                 intent.extras?.let { callNotificationIntent.putExtras(it) }
                 startActivity(callNotificationIntent)
             } else {
-                ConductorRemapping.remapChatController(
-                    router!!, intent.getLongExtra(BundleKeys.KEY_INTERNAL_USER_ID, -1),
+                remapChatController(
+                    router!!, intent.getParcelableExtra<UserEntity>(KEY_USER_ENTITY)!!.id,
                     intent.getStringExtra(KEY_ROOM_TOKEN)!!, intent.extras!!, false
                 )
             }