Switch to chat w/o animation when app opened from notification

Signed-off-by: Dariusz Olszewski <starypatyk@users.noreply.github.com>
This commit is contained in:
Dariusz Olszewski 2022-03-10 21:55:41 +01:00 committed by Tim Krüger
parent 4ee930f9d5
commit 1e76b45fb4
No known key found for this signature in database
GPG Key ID: FECE3A7222C52A4E
2 changed files with 21 additions and 3 deletions

View File

@ -349,7 +349,7 @@ class MainActivity : BaseActivity(), ActionBarProvider {
} else { } else {
remapChatController( remapChatController(
router!!, intent.getParcelableExtra<UserEntity>(KEY_USER_ENTITY)!!.id, router!!, intent.getParcelableExtra<UserEntity>(KEY_USER_ENTITY)!!.id,
intent.getStringExtra(KEY_ROOM_TOKEN)!!, intent.extras!!, false intent.getStringExtra(KEY_ROOM_TOKEN)!!, intent.extras!!, false, true
) )
} }
} }

View File

@ -24,15 +24,28 @@ import android.os.Bundle
import com.bluelinelabs.conductor.Router import com.bluelinelabs.conductor.Router
import com.bluelinelabs.conductor.RouterTransaction import com.bluelinelabs.conductor.RouterTransaction
import com.bluelinelabs.conductor.changehandler.HorizontalChangeHandler import com.bluelinelabs.conductor.changehandler.HorizontalChangeHandler
import com.bluelinelabs.conductor.changehandler.SimpleSwapChangeHandler
import com.nextcloud.talk.controllers.ChatController import com.nextcloud.talk.controllers.ChatController
object ConductorRemapping { object ConductorRemapping {
fun remapChatController( fun remapChatController(
router: Router, router: Router,
internalUserId: Long, internalUserId: Long,
roomTokenOrId: String, roomTokenOrId: String,
bundle: Bundle, bundle: Bundle,
replaceTop: Boolean 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" val tag = "$internalUserId@$roomTokenOrId"
if (router.getControllerWithTag(tag) != null) { if (router.getControllerWithTag(tag) != null) {
@ -49,16 +62,21 @@ object ConductorRemapping {
backstack.add(routerTransaction) backstack.add(routerTransaction)
router.setBackstack(backstack, HorizontalChangeHandler()) router.setBackstack(backstack, HorizontalChangeHandler())
} else { } else {
var pushChangeHandler = if (pushImmediately) {
SimpleSwapChangeHandler()
} else {
HorizontalChangeHandler()
}
if (!replaceTop) { if (!replaceTop) {
router.pushController( router.pushController(
RouterTransaction.with(ChatController(bundle)) RouterTransaction.with(ChatController(bundle))
.pushChangeHandler(HorizontalChangeHandler()) .pushChangeHandler(pushChangeHandler)
.popChangeHandler(HorizontalChangeHandler()).tag(tag) .popChangeHandler(HorizontalChangeHandler()).tag(tag)
) )
} else { } else {
router.replaceTopController( router.replaceTopController(
RouterTransaction.with(ChatController(bundle)) RouterTransaction.with(ChatController(bundle))
.pushChangeHandler(HorizontalChangeHandler()) .pushChangeHandler(pushChangeHandler)
.popChangeHandler(HorizontalChangeHandler()).tag(tag) .popChangeHandler(HorizontalChangeHandler()).tag(tag)
) )
} }