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()
|
checkPermissions()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -59,6 +59,8 @@ class ConferenceWaitingRoomViewModel : MessageNotifierViewModel() {
|
||||||
|
|
||||||
val joinInProgress = MutableLiveData<Boolean>()
|
val joinInProgress = MutableLiveData<Boolean>()
|
||||||
|
|
||||||
|
val networkReachable = MutableLiveData<Boolean>()
|
||||||
|
|
||||||
val askPermissionEvent: MutableLiveData<Event<String>> by lazy {
|
val askPermissionEvent: MutableLiveData<Event<String>> by lazy {
|
||||||
MutableLiveData<Event<String>>()
|
MutableLiveData<Event<String>>()
|
||||||
}
|
}
|
||||||
|
@ -75,6 +77,10 @@ class ConferenceWaitingRoomViewModel : MessageNotifierViewModel() {
|
||||||
MutableLiveData<Event<Boolean>>()
|
MutableLiveData<Event<Boolean>>()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val networkNotReachableEvent: MutableLiveData<Event<Boolean>> by lazy {
|
||||||
|
MutableLiveData<Event<Boolean>>()
|
||||||
|
}
|
||||||
|
|
||||||
private val callParams: CallParams = coreContext.core.createCallParams(null)!!
|
private val callParams: CallParams = coreContext.core.createCallParams(null)!!
|
||||||
|
|
||||||
private val listener: CoreListenerStub = object : CoreListenerStub() {
|
private val listener: CoreListenerStub = object : CoreListenerStub() {
|
||||||
|
@ -112,12 +118,26 @@ class ConferenceWaitingRoomViewModel : MessageNotifierViewModel() {
|
||||||
leaveWaitingRoomEvent.value = Event(true)
|
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 {
|
init {
|
||||||
val core = coreContext.core
|
val core = coreContext.core
|
||||||
core.addListener(listener)
|
core.addListener(listener)
|
||||||
|
|
||||||
|
val reachable = core.isNetworkReachable
|
||||||
|
networkReachable.value = reachable
|
||||||
|
if (!reachable) {
|
||||||
|
networkNotReachableEvent.value = Event(true)
|
||||||
|
}
|
||||||
|
|
||||||
callParams.isMicEnabled = PermissionHelper.get().hasRecordAudioPermission() && coreContext.core.isMicEnabled
|
callParams.isMicEnabled = PermissionHelper.get().hasRecordAudioPermission() && coreContext.core.isMicEnabled
|
||||||
Log.i("[Conference Waiting Room] Microphone will be ${if (callParams.isMicEnabled) "enabled" else "muted"}")
|
Log.i("[Conference Waiting Room] Microphone will be ${if (callParams.isMicEnabled) "enabled" else "muted"}")
|
||||||
updateMicState()
|
updateMicState()
|
||||||
|
|
|
@ -113,7 +113,7 @@
|
||||||
android:layout_marginEnd="20dp"
|
android:layout_marginEnd="20dp"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:background="@drawable/button_orange_background"
|
android:background="@drawable/button_orange_background"
|
||||||
android:enabled="@{!viewModel.joinInProgress}"
|
android:enabled="@{viewModel.networkReachable && !viewModel.joinInProgress}"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:onClick="@{() -> viewModel.start()}"
|
android:onClick="@{() -> viewModel.start()}"
|
||||||
android:paddingLeft="20dp"
|
android:paddingLeft="20dp"
|
||||||
|
|
Loading…
Reference in a new issue