64 lines
2.4 KiB
Kotlin
64 lines
2.4 KiB
Kotlin
package com.tutpro.baresip
|
|
|
|
import androidx.lifecycle.ViewModel
|
|
import kotlinx.coroutines.flow.MutableStateFlow
|
|
|
|
class AccountViewModel: ViewModel() {
|
|
|
|
val nickName = MutableStateFlow("")
|
|
val displayName = MutableStateFlow("")
|
|
val authUser = MutableStateFlow("")
|
|
val authPass = MutableStateFlow("")
|
|
val outbound1 = MutableStateFlow("")
|
|
val outbound2 = MutableStateFlow("")
|
|
val register = MutableStateFlow(false)
|
|
val regInt = MutableStateFlow("")
|
|
val mediaEnc = MutableStateFlow("")
|
|
val mediaNat = MutableStateFlow("")
|
|
val stunServer = MutableStateFlow("")
|
|
val stunUser = MutableStateFlow("")
|
|
val stunPass = MutableStateFlow("")
|
|
val rtcpMux = MutableStateFlow(false)
|
|
val rel100 = MutableStateFlow(false)
|
|
val dtmfMode = MutableStateFlow(0)
|
|
val answerMode = MutableStateFlow(0)
|
|
val autoRedirect = MutableStateFlow(false)
|
|
val vmUri = MutableStateFlow("")
|
|
val countryCode = MutableStateFlow("")
|
|
val telProvider = MutableStateFlow("")
|
|
val defaultAccount = MutableStateFlow(false)
|
|
val numericKeypad = MutableStateFlow(false)
|
|
|
|
private var isLoaded = false
|
|
|
|
fun loadAccount(acc: Account) {
|
|
if (isLoaded) return else isLoaded = true
|
|
nickName.value = acc.nickName
|
|
displayName.value = acc.displayName
|
|
authUser.value = acc.authUser
|
|
authPass.value = if (BaresipService.aorPasswords[acc.aor] == null && acc.authPass != NO_AUTH_PASS)
|
|
acc.authPass
|
|
else
|
|
""
|
|
outbound1.value = if (acc.outbound.isNotEmpty()) acc.outbound[0] else ""
|
|
outbound2.value = if (acc.outbound.size > 1) acc.outbound[1] else ""
|
|
register.value = acc.regint > 0
|
|
regInt.value = acc.configuredRegInt.toString()
|
|
mediaEnc.value = acc.mediaEnc
|
|
mediaNat.value = acc.mediaNat
|
|
stunServer.value = acc.stunServer
|
|
stunUser.value = acc.stunUser
|
|
stunPass.value = acc.stunPass
|
|
rtcpMux.value = acc.rtcpMux
|
|
rel100.value = acc.rel100Mode == Api.REL100_ENABLED
|
|
dtmfMode.value = acc.dtmfMode
|
|
answerMode.value = acc.answerMode
|
|
autoRedirect.value = acc.autoRedirect
|
|
vmUri.value = acc.vmUri
|
|
countryCode.value = acc.countryCode
|
|
telProvider.value = acc.telProvider
|
|
numericKeypad.value = acc.numericKeypad
|
|
defaultAccount.value = UserAgent.findAorIndex(acc.aor)!! == 0
|
|
}
|
|
}
|