diff --git a/app/src/main/java/com/gaurav/avnc/ui/vnc/VncActivity.kt b/app/src/main/java/com/gaurav/avnc/ui/vnc/VncActivity.kt index 1610c2a..d5fbfae 100644 --- a/app/src/main/java/com/gaurav/avnc/ui/vnc/VncActivity.kt +++ b/app/src/main/java/com/gaurav/avnc/ui/vnc/VncActivity.kt @@ -113,6 +113,7 @@ class VncActivity : AppCompatActivity() { //Observers viewModel.credentialRequest.observe(this) { showCredentialDialog() } viewModel.sshHostKeyVerifyRequest.observe(this) { showHostKeyDialog() } + viewModel.clipTextReceivedEvent.observe(this) { viewModel.setClipboardText(it) } viewModel.state.observe(this) { onClientStateChanged(it) } } diff --git a/app/src/main/java/com/gaurav/avnc/viewmodel/VncViewModel.kt b/app/src/main/java/com/gaurav/avnc/viewmodel/VncViewModel.kt index 81bcd72..20b2f5e 100644 --- a/app/src/main/java/com/gaurav/avnc/viewmodel/VncViewModel.kt +++ b/app/src/main/java/com/gaurav/avnc/viewmodel/VncViewModel.kt @@ -160,6 +160,10 @@ class VncViewModel(val profile: ServerProfile, app: Application) : BaseViewModel */ val sshHostKeyVerifyRequest = LiveRequest(false, viewModelScope) + /** + * Fired when clip text is received from server and clipboard sharing is ON. + */ + val clipTextReceivedEvent = LiveEvent() /************************************************************************** * Connection management @@ -298,10 +302,8 @@ class VncViewModel(val profile: ServerProfile, app: Application) : BaseViewModel } private fun receiveClipboardText(text: String) { - viewModelScope.launch(Dispatchers.Main) { - if (pref.server.clipboardSync) - setClipboardText(text) - } + if (pref.server.clipboardSync) + clipTextReceivedEvent.fireAsync(text) } /**************************************************************************