Prevent crash when opening unknown room, which should not happen...
This commit is contained in:
parent
65faedb06b
commit
7fa76b9d35
|
@ -52,7 +52,7 @@ internal class DefaultCreateRoomTask @Inject constructor(private val roomAPI: Ro
|
||||||
apiCall = roomAPI.createRoom(params)
|
apiCall = roomAPI.createRoom(params)
|
||||||
}
|
}
|
||||||
val roomId = createRoomResponse.roomId!!
|
val roomId = createRoomResponse.roomId!!
|
||||||
// Wait for room to come back from the sync (but it can maybe be in the DB is the sync response is received before)
|
// Wait for room to come back from the sync (but it can maybe be in the DB if the sync response is received before)
|
||||||
val rql = RealmQueryLatch<RoomEntity>(realmConfiguration) { realm ->
|
val rql = RealmQueryLatch<RoomEntity>(realmConfiguration) { realm ->
|
||||||
realm.where(RoomEntity::class.java)
|
realm.where(RoomEntity::class.java)
|
||||||
.equalTo(RoomEntityFields.ROOM_ID, roomId)
|
.equalTo(RoomEntityFields.ROOM_ID, roomId)
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2019 New Vector Ltd
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package im.vector.riotx.core.error
|
||||||
|
|
||||||
|
import im.vector.riotx.BuildConfig
|
||||||
|
import timber.log.Timber
|
||||||
|
|
||||||
|
/**
|
||||||
|
* throw in debug, only log in production. As this method does not always throw, next statement should be a return
|
||||||
|
*/
|
||||||
|
fun fatalError(message: String) {
|
||||||
|
if (BuildConfig.DEBUG) {
|
||||||
|
error(message)
|
||||||
|
} else {
|
||||||
|
Timber.e(message)
|
||||||
|
}
|
||||||
|
}
|
|
@ -19,8 +19,11 @@ package im.vector.riotx.features.navigation
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import androidx.core.app.TaskStackBuilder
|
||||||
import im.vector.matrix.android.api.session.room.model.roomdirectory.PublicRoom
|
import im.vector.matrix.android.api.session.room.model.roomdirectory.PublicRoom
|
||||||
import im.vector.riotx.R
|
import im.vector.riotx.R
|
||||||
|
import im.vector.riotx.core.di.ActiveSessionHolder
|
||||||
|
import im.vector.riotx.core.error.fatalError
|
||||||
import im.vector.riotx.core.platform.VectorBaseActivity
|
import im.vector.riotx.core.platform.VectorBaseActivity
|
||||||
import im.vector.riotx.core.utils.toast
|
import im.vector.riotx.core.utils.toast
|
||||||
import im.vector.riotx.features.crypto.keysbackup.settings.KeysBackupManageActivity
|
import im.vector.riotx.features.crypto.keysbackup.settings.KeysBackupManageActivity
|
||||||
|
@ -38,12 +41,18 @@ import im.vector.riotx.features.share.SharedData
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
import androidx.core.app.TaskStackBuilder
|
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
class DefaultNavigator @Inject constructor() : Navigator {
|
class DefaultNavigator @Inject constructor(
|
||||||
|
private val sessionHolder: ActiveSessionHolder
|
||||||
|
) : Navigator {
|
||||||
|
|
||||||
override fun openRoom(context: Context, roomId: String, eventId: String?, buildTask: Boolean) {
|
override fun openRoom(context: Context, roomId: String, eventId: String?, buildTask: Boolean) {
|
||||||
|
if (sessionHolder.getSafeActiveSession()?.getRoom(roomId) == null) {
|
||||||
|
fatalError("Trying to open an unknown room $roomId")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
val args = RoomDetailArgs(roomId, eventId)
|
val args = RoomDetailArgs(roomId, eventId)
|
||||||
val intent = RoomDetailActivity.newIntent(context, args)
|
val intent = RoomDetailActivity.newIntent(context, args)
|
||||||
if (buildTask) {
|
if (buildTask) {
|
||||||
|
|
Loading…
Reference in New Issue