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

Werner Warner commented on CB-6047:
-----------------------------------

i am not sure if this is really correctly fixed yet in 3.5.0.
there still seems to be flaw in NativeToJsMessageQueue.java in class 
OnlineEventsBridgeMode.
occasionally webView.setNetworkAvailable will be set to the same value as 
before and the online/offline event will not be fired, the message will not be 
passed, a callback will not be called.
(this results in indeterministic hangs of file transfers, unzip and others)
a possible direction towards a solution is to bind the toggling to the 
notification.
(maybe an even clearer design would be to refrain from using offline events and 
setNetworkAvailable to false and true each time ?)

       private class OnlineEventsBridgeMode extends BridgeMode {
        boolean online = false;
        synchronized void notifyAndToggle() { 
webView.setNetworkAvailable(online); online = !online; }
        final Runnable runnable = new Runnable() {
            public void run() {
                if (!queue.isEmpty()) {
                    notifyAndToggle();
                }
            }
        };
        @Override void reset() {
            notifyAndToggle();
        }


> File plugin callback problem with android 4.4 kitkat
> ----------------------------------------------------
>
>                 Key: CB-6047
>                 URL: https://issues.apache.org/jira/browse/CB-6047
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Android
>    Affects Versions: 3.3.0
>         Environment: Android 4.4
> dev windows
> IDE Eclipse
> Cordova 3.3
>            Reporter: *robin
>            Assignee: Andrew Grieve
>             Fix For: 3.5.0
>
>         Attachments: test_fs.zip
>
>
> I've try to use the file plugin on my android phone in 4.4 but I've got some 
> strange problem with the callback function, succeed or fail. 
> When I try to access fileSystem (window.requestFileSystem)
> The first time I don't receive the callback. But If I try a second time I've 
> got 2 callBack. 
> I've try to debug the case. I 've figure that the 2 thread executing in java 
> (JavaBind and file plugin) are synchronise on the NativeToJsMessageQueue. 
> When the plugin enqueue Message and the java bind pop Message. 
> But I think the javabind finished before the file plugin, and never see the 
> message in the queue. But the second time, I've got the 2 messages.
> I think this is the same problem describe here :
> http://stackoverflow.com/questions/20821536/phonegap-cordova-deviceready-or-requestfilesystem-not-working-android
> Thx



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

Reply via email to