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 {
remapChatController(
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.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)
)
}