[ 
https://issues.apache.org/jira/browse/CB-7104?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14096821#comment-14096821
 ] 

ASF GitHub Bot commented on CB-7104:
------------------------------------

Github user hnilsen commented on the pull request:

    https://github.com/apache/cordova-android/pull/105#issuecomment-52166091
  
    I wasn't aware this wasn't in 3.5.1. This error is persistent, and should 
affect many users with Samsung devices (especially). I'll try to apply the 
patch and give it a go.


> Plugin results not transmitted back to devices (specially Samsung S4 and S5)
> ----------------------------------------------------------------------------
>
>                 Key: CB-7104
>                 URL: https://issues.apache.org/jira/browse/CB-7104
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Android
>    Affects Versions: 3.3.0
>            Reporter: HÃ¥kon Nilsen
>            Priority: Blocker
>              Labels: patch
>
> Our app relies heavily on Cordova plugins for communicating between 
> JavaScript and native, and on certain devices these messages are not 
> consistently sent back to the JavaScript API.
> I've tracked it down to a problem with webView.setNetworkAvailable()-usage in 
> NativeToJsMessageQueue.java, and I have a suggestion for a fix.
> The problem with the current setup of (3.3.0) of NativeToJsMessageQueue seems 
> to be that the online flag is toggled every time a plugin is fired, while 
> webView.setNetworkAvailable(online) is only fired if the queue has messages.
> Since not all plugins have messages, the online flag can be toggled twice, 
> and the online flag will be i.e. false for each time the command is run - 
> which means Cordova won't send any messages.
> On Samsung S4 and S5 the hideKeyboard-event is slower or faster than other 
> devices, which results in a doble toggle of the online flag. This leads to 
> the following command being sent when there is a message in the queue:
> webView.setNetworkAvailable(false); // first message
> webView.setNetworkAvailable(false); // second message, which is not being sent
> webView.setNetworkAvailable(false); // third message, which will be sent
> For us it has been a terrible blocker, and I've made a change to the 
> OnlineEventsBridgeMode in NativeToJsMessageQueue.java that addresses this.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to