Disable conference waiting room join button if network is unreachable
This commit is contained in:
parent
0a0221c9b0
commit
1b07cd358f
3 changed files with 29 additions and 1 deletions
|
@ -117,6 +117,14 @@ class ConferenceWaitingRoomFragment : GenericFragment<ConferenceWaitingRoomFragm
|
|||
}
|
||||
}
|
||||
|
||||
viewModel.networkNotReachableEvent.observe(
|
||||
viewLifecycleOwner
|
||||
) {
|
||||
it.consume {
|
||||
(activity as MainActivity).showSnackBar(R.string.call_error_network_unreachable)
|
||||
}
|
||||
}
|
||||
|
||||
checkPermissions()
|
||||
}
|
||||
|
||||
|
|
|
@ -59,6 +59,8 @@ class ConferenceWaitingRoomViewModel : MessageNotifierViewModel() {
|
|||
|
||||
val joinInProgress = MutableLiveData<Boolean>()
|
||||
|
||||
val networkReachable = MutableLiveData<Boolean>()
|
||||
|
||||
val askPermissionEvent: MutableLiveData<Event<String>> by lazy {
|
||||
MutableLiveData<Event<String>>()
|
||||
}
|
||||
|
@ -75,6 +77,10 @@ class ConferenceWaitingRoomViewModel : MessageNotifierViewModel() {
|
|||
MutableLiveData<Event<Boolean>>()
|
||||
}
|
||||
|
||||
val networkNotReachableEvent: MutableLiveData<Event<Boolean>> by lazy {
|
||||
MutableLiveData<Event<Boolean>>()
|
||||
}
|
||||
|
||||
private val callParams: CallParams = coreContext.core.createCallParams(null)!!
|
||||
|
||||
private val listener: CoreListenerStub = object : CoreListenerStub() {
|
||||
|
@ -112,12 +118,26 @@ class ConferenceWaitingRoomViewModel : MessageNotifierViewModel() {
|
|||
leaveWaitingRoomEvent.value = Event(true)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onNetworkReachable(core: Core, reachable: Boolean) {
|
||||
Log.i("[Conference Waiting Room] Network reachability changed: [$reachable]")
|
||||
networkReachable.value = reachable
|
||||
if (!reachable) {
|
||||
networkNotReachableEvent.value = Event(true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
init {
|
||||
val core = coreContext.core
|
||||
core.addListener(listener)
|
||||
|
||||
val reachable = core.isNetworkReachable
|
||||
networkReachable.value = reachable
|
||||
if (!reachable) {
|
||||
networkNotReachableEvent.value = Event(true)
|
||||
}
|
||||
|
||||
callParams.isMicEnabled = PermissionHelper.get().hasRecordAudioPermission() && coreContext.core.isMicEnabled
|
||||
Log.i("[Conference Waiting Room] Microphone will be ${if (callParams.isMicEnabled) "enabled" else "muted"}")
|
||||
updateMicState()
|
||||
|
|
|
@ -113,7 +113,7 @@
|
|||
android:layout_marginEnd="20dp"
|
||||
android:layout_weight="1"
|
||||
android:background="@drawable/button_orange_background"
|
||||
android:enabled="@{!viewModel.joinInProgress}"
|
||||
android:enabled="@{viewModel.networkReachable && !viewModel.joinInProgress}"
|
||||
android:gravity="center"
|
||||
android:onClick="@{() -> viewModel.start()}"
|
||||
android:paddingLeft="20dp"
|
||||
|
|
Loading…
Reference in a new issue