Wayne Fisher created CB-621:
-------------------------------

             Summary: camera.getPicture() calls both the success and error 
callbacks when a picture is taken.
                 Key: CB-621
                 URL: https://issues.apache.org/jira/browse/CB-621
             Project: Apache Callback
          Issue Type: Bug
          Components: BlackBerry
    Affects Versions: 1.4.0, 1.7.0
         Environment: BlackBerry PlayBook v2.0.

            Reporter: Wayne Fisher


Testing on a 2.0 Playbook, I saw both of my callbacks (success and error) 
called when a picture was successfully taken and returned to my app.

The problem appears to be here:

{code}
    cameraAPI = {
        execute: function (webWorksResult, action, args, win, fail) {
            if (action === 'takePicture') {
                blackberry.media.camera.takePicture(win, fail, fail);
                return retAsyncCall();
            }
            else {
                return retInvalidAction();
            }
        }
    },
{code}

The second parameter to WebWorks takePicture() is defined to be 
"onCameraClosed". It appears that onCameraClosed is called after the onCaptured 
(the first parameter) callback is called.

I was able to achieve the documented behaviour for camera.getPicture() by 
modifying the above code to the following:

{code}
    cameraAPI = {
        execute: function (webWorksResult, action, args, win, fail) {
            var pictureTaken = false;

            if (action === 'takePicture') {
                function success( picture ) {
                    pictureTaken = true;
                    win( picture );
                }

                function cameraClose() {
                    if( !pictureTaken ) {
                        fail( "User canceled operation." );
                    }
                }

                blackberry.media.camera.takePicture(success, cameraClose, fail);
                return retAsyncCall();
            }
            else {
                return retInvalidAction();
            }
        }
    },
{code}

I would expect that this issue also affects the use of the takePicture method 
as used in the Media APIs.

I tested with PhoneGap v1.4.0. The code example from above is from v1.7.0rc1 
which is implemented virtually the same as v1.4.0.


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to