Should prevent crash when failing to get account matching local address
This commit is contained in:
parent
71a2140dbd
commit
13878ee48d
2 changed files with 23 additions and 15 deletions
|
@ -225,19 +225,24 @@ class MasterCallLogsFragment : MasterFragment<HistoryMasterFragmentBinding, Call
|
||||||
it.consume { callLogGroup ->
|
it.consume { callLogGroup ->
|
||||||
val remoteAddress = callLogGroup.lastCallLog.remoteAddress
|
val remoteAddress = callLogGroup.lastCallLog.remoteAddress
|
||||||
val conferenceInfo = coreContext.core.findConferenceInformationFromUri(remoteAddress)
|
val conferenceInfo = coreContext.core.findConferenceInformationFromUri(remoteAddress)
|
||||||
if (conferenceInfo != null) {
|
when {
|
||||||
navigateToConferenceWaitingRoom(remoteAddress.asStringUriOnly(), conferenceInfo.subject)
|
conferenceInfo != null -> {
|
||||||
} else if (coreContext.core.callsNb > 0) {
|
navigateToConferenceWaitingRoom(remoteAddress.asStringUriOnly(), conferenceInfo.subject)
|
||||||
Log.i("[History] Starting dialer with pre-filled URI ${remoteAddress.asStringUriOnly()}, is transfer? ${sharedViewModel.pendingCallTransfer}")
|
}
|
||||||
sharedViewModel.updateDialerAnimationsBasedOnDestination.value = Event(R.id.masterCallLogsFragment)
|
coreContext.core.callsNb > 0 -> {
|
||||||
val args = Bundle()
|
Log.i("[History] Starting dialer with pre-filled URI ${remoteAddress.asStringUriOnly()}, is transfer? ${sharedViewModel.pendingCallTransfer}")
|
||||||
args.putString("URI", remoteAddress.asStringUriOnly())
|
sharedViewModel.updateDialerAnimationsBasedOnDestination.value = Event(R.id.masterCallLogsFragment)
|
||||||
args.putBoolean("Transfer", sharedViewModel.pendingCallTransfer)
|
val args = Bundle()
|
||||||
args.putBoolean("SkipAutoCallStart", true) // If auto start call setting is enabled, ignore it
|
args.putString("URI", remoteAddress.asStringUriOnly())
|
||||||
navigateToDialer(args)
|
args.putBoolean("Transfer", sharedViewModel.pendingCallTransfer)
|
||||||
} else {
|
args.putBoolean("SkipAutoCallStart", true) // If auto start call setting is enabled, ignore it
|
||||||
val localAddress = callLogGroup.lastCallLog.localAddress
|
navigateToDialer(args)
|
||||||
coreContext.startCall(remoteAddress, localAddress = localAddress)
|
}
|
||||||
|
else -> {
|
||||||
|
val localAddress = callLogGroup.lastCallLog.localAddress
|
||||||
|
Log.i("[History] Starting call to ${remoteAddress.asStringUriOnly()} with local address ${localAddress.asStringUriOnly()}")
|
||||||
|
coreContext.startCall(remoteAddress, localAddress = localAddress)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -598,11 +598,14 @@ class CoreContext(val context: Context, coreConfig: Config) {
|
||||||
params.recordFile = LinphoneUtils.getRecordingFilePathForAddress(address)
|
params.recordFile = LinphoneUtils.getRecordingFilePathForAddress(address)
|
||||||
|
|
||||||
if (localAddress != null) {
|
if (localAddress != null) {
|
||||||
params.account = core.accountList.find { account ->
|
val account = core.accountList.find { account ->
|
||||||
account.params.identityAddress?.weakEqual(localAddress) ?: false
|
account.params.identityAddress?.weakEqual(localAddress) ?: false
|
||||||
}
|
}
|
||||||
if (params.account != null) {
|
if (account != null) {
|
||||||
|
params.account = account
|
||||||
Log.i("[Context] Using account matching address ${localAddress.asStringUriOnly()} as From")
|
Log.i("[Context] Using account matching address ${localAddress.asStringUriOnly()} as From")
|
||||||
|
} else {
|
||||||
|
Log.e("[Context] Failed to find account matching address ${localAddress.asStringUriOnly()}")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue