From 1e76b45fb4e55824998669fc8fc754c15c0e68eb Mon Sep 17 00:00:00 2001 From: Dariusz Olszewski Date: Thu, 10 Mar 2022 21:55:41 +0100 Subject: [PATCH] Switch to chat w/o animation when app opened from notification Signed-off-by: Dariusz Olszewski --- .../nextcloud/talk/activities/MainActivity.kt | 2 +- .../talk/utils/ConductorRemapping.kt | 22 +++++++++++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) 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 c46d755e8..4c825f1ee 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt @@ -349,7 +349,7 @@ class MainActivity : BaseActivity(), ActionBarProvider { } else { remapChatController( router!!, intent.getParcelableExtra(KEY_USER_ENTITY)!!.id, - intent.getStringExtra(KEY_ROOM_TOKEN)!!, intent.extras!!, false + intent.getStringExtra(KEY_ROOM_TOKEN)!!, intent.extras!!, false, true ) } } diff --git a/app/src/main/java/com/nextcloud/talk/utils/ConductorRemapping.kt b/app/src/main/java/com/nextcloud/talk/utils/ConductorRemapping.kt index 0f64722e2..972488949 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/ConductorRemapping.kt +++ b/app/src/main/java/com/nextcloud/talk/utils/ConductorRemapping.kt @@ -24,15 +24,28 @@ import android.os.Bundle import com.bluelinelabs.conductor.Router import com.bluelinelabs.conductor.RouterTransaction import com.bluelinelabs.conductor.changehandler.HorizontalChangeHandler +import com.bluelinelabs.conductor.changehandler.SimpleSwapChangeHandler import com.nextcloud.talk.controllers.ChatController object ConductorRemapping { + fun remapChatController( router: Router, internalUserId: Long, roomTokenOrId: String, bundle: Bundle, replaceTop: Boolean + ) { + remapChatController(router, internalUserId, roomTokenOrId, bundle, replaceTop, false) + } + + fun remapChatController( + router: Router, + internalUserId: Long, + roomTokenOrId: String, + bundle: Bundle, + replaceTop: Boolean, + pushImmediately: Boolean ) { val tag = "$internalUserId@$roomTokenOrId" if (router.getControllerWithTag(tag) != null) { @@ -49,16 +62,21 @@ object ConductorRemapping { backstack.add(routerTransaction) router.setBackstack(backstack, HorizontalChangeHandler()) } else { + var pushChangeHandler = if (pushImmediately) { + SimpleSwapChangeHandler() + } else { + HorizontalChangeHandler() + } if (!replaceTop) { router.pushController( RouterTransaction.with(ChatController(bundle)) - .pushChangeHandler(HorizontalChangeHandler()) + .pushChangeHandler(pushChangeHandler) .popChangeHandler(HorizontalChangeHandler()).tag(tag) ) } else { router.replaceTopController( RouterTransaction.with(ChatController(bundle)) - .pushChangeHandler(HorizontalChangeHandler()) + .pushChangeHandler(pushChangeHandler) .popChangeHandler(HorizontalChangeHandler()).tag(tag) ) }