Disable conference waiting room join button if network is unreachable

This commit is contained in:
Sylvain Berfini 2022-08-30 16:03:04 +02:00
parent 0a0221c9b0
commit 1b07cd358f
3 changed files with 29 additions and 1 deletions

View file

@ -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()
}

View file

@ -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()

View file

@ -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 &amp;&amp; !viewModel.joinInProgress}"
android:gravity="center"
android:onClick="@{() -> viewModel.start()}"
android:paddingLeft="20dp"