You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Jonathan Bond-Caron (JIRA)" <ji...@apache.org> on 2013/07/03 16:15:20 UTC

[jira] [Updated] (CB-4071) Capture error callback (should be an object)

     [ https://issues.apache.org/jira/browse/CB-4071?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Bond-Caron updated CB-4071:
------------------------------------

    Description: 
When using camera.getPicture(), the cameraError is documented as a string but on Android & iOS, it's actually an object.

On the native side in 2.7: 

Android:

    private static final int CAPTURE_INTERNAL_ERR = 0;

//  private static final int CAPTURE_APPLICATION_BUSY = 1;

//  private static final int CAPTURE_INVALID_ARGUMENT = 2;
    
    private static final int CAPTURE_NO_MEDIA_FILES = 3;

iOS:
enum CDVCaptureError {
   
 CAPTURE_INTERNAL_ERR = 0,
    
 CAPTURE_APPLICATION_BUSY = 1,
    
 CAPTURE_INVALID_ARGUMENT = 2,
    
 CAPTURE_NO_MEDIA_FILES = 3,
    
 CAPTURE_NOT_SUPPORTED = 20

};

Windows 8:
only string errors

Android and iOS have the same looking api on the native side, error callback Android returns JSON: {message: '', code: int}, iOS returns JSON: {message: '', status: int}, 

Looking at the javascript api, it looks like it should return a 'new CaptureError()' on the errorCallback, is that the direction for 3.0?

Windows only sends a string as the callback error, it's difficult to know if the user just cancelled taking a picture or what kind of specific error occurred.

Should I look into creating a patch?

This probably affects other apis, overall I'd like to see the CaptureError() returned more consistently instead of strings.

It would make sense to improve this in 3.0 and possibly break BC for those expecting strings.

CaptureError() could implemented a 'toString()' to mitigate potential issues.



  was:
When using camera.getPicture(), the cameraError is documented as a string but on Android & iOS, it's actually an object.

On the native side in 2.7: 

Android:

    private static final int CAPTURE_INTERNAL_ERR = 0;

//  private static final int CAPTURE_APPLICATION_BUSY = 1;

//  private static final int CAPTURE_INVALID_ARGUMENT = 2;
    
    private static final int CAPTURE_NO_MEDIA_FILES = 3;

iOS:
enum CDVCaptureError {
   
 CAPTURE_INTERNAL_ERR = 0,
    
 CAPTURE_APPLICATION_BUSY = 1,
    
 CAPTURE_INVALID_ARGUMENT = 2,
    
 CAPTURE_NO_MEDIA_FILES = 3,
    
 CAPTURE_NOT_SUPPORTED = 20

};

Windows 8:
only string errors

Android and iOS have the same looking api on the native side, error callback Android returns JSON: {message: '', code: int}, iOS returns JSON: {message: '', status: int}, 

Looking at the javascript api, it looks like it should return a 'new CaptureError()' on the errorCallback, is that the direction for 3.0?

Windows only sends a string as the callback error, it's difficult to know if the user just cancelled taking a picture or what kind of specific error occurred.

Should I look into creating a patch?

This probably affects other apis, overall I'd like to see the CaptureError() returned more consistently instead of strings.

It must sense to improve this in 3.0 and possibly break BC for those expecting strings.

CaptureError() could implemented a 'toString()' to mitigate potential issues.



    
> Capture error callback (should be an object)
> --------------------------------------------
>
>                 Key: CB-4071
>                 URL: https://issues.apache.org/jira/browse/CB-4071
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Android, iOS, Windows 8
>    Affects Versions: 2.9.0
>         Environment: All
>            Reporter: Jonathan Bond-Caron
>            Assignee: Joe Bowser
>            Priority: Critical
>
> When using camera.getPicture(), the cameraError is documented as a string but on Android & iOS, it's actually an object.
> On the native side in 2.7: 
> Android:
>     private static final int CAPTURE_INTERNAL_ERR = 0;
> //  private static final int CAPTURE_APPLICATION_BUSY = 1;
> //  private static final int CAPTURE_INVALID_ARGUMENT = 2;
>     
>     private static final int CAPTURE_NO_MEDIA_FILES = 3;
> iOS:
> enum CDVCaptureError {
>    
>  CAPTURE_INTERNAL_ERR = 0,
>     
>  CAPTURE_APPLICATION_BUSY = 1,
>     
>  CAPTURE_INVALID_ARGUMENT = 2,
>     
>  CAPTURE_NO_MEDIA_FILES = 3,
>     
>  CAPTURE_NOT_SUPPORTED = 20
> };
> Windows 8:
> only string errors
> Android and iOS have the same looking api on the native side, error callback Android returns JSON: {message: '', code: int}, iOS returns JSON: {message: '', status: int}, 
> Looking at the javascript api, it looks like it should return a 'new CaptureError()' on the errorCallback, is that the direction for 3.0?
> Windows only sends a string as the callback error, it's difficult to know if the user just cancelled taking a picture or what kind of specific error occurred.
> Should I look into creating a patch?
> This probably affects other apis, overall I'd like to see the CaptureError() returned more consistently instead of strings.
> It would make sense to improve this in 3.0 and possibly break BC for those expecting strings.
> CaptureError() could implemented a 'toString()' to mitigate potential issues.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira