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

Joe Bowser edited comment on CB-2533 at 2/28/13 4:09 AM:
---------------------------------------------------------

Thanks for figuring out why I wasn't able to reproduce this bug without doing 
some intense screwing around with my phone! This is greatly appreciated!  Also, 
I totally zoned out on getPluginByClassName (My version sucked and never made 
it in the repo.) Do you want to take credit by submitting a patch?

Also, send me an e-mail about this bug! You have no idea how long we've been 
working on this issue!
                
      was (Author: bowserj):
    Thanks for figuring out why I wasn't able to reproduce this bug without 
doing some intense screwing around with my phone! This is greatly appreciated!  
Also, I totally zoned out on getPluginByClassName.  Do you want to take credit 
by submitting a patch?
                  
> App crashes after taking a picture with the camera
> --------------------------------------------------
>
>                 Key: CB-2533
>                 URL: https://issues.apache.org/jira/browse/CB-2533
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Android
>    Affects Versions: 2.4.0
>         Environment: Samsung Galaxy S3, Android 4.1.1
>            Reporter: Dean Kooiman
>            Assignee: Joe Bowser
>            Priority: Minor
>
> Hi,
> I found a bug in cordova during tests on my Samsung Galaxy S3 with android 
> 4.1.1 
> I have tried using both camera.getPicture as well as capture.captureImage
> In both cases the CameraLauncher successfully starts.  
> Both functions only succeed when the user takes a picture in landscape mode 
> (phone is horizontal). When the picture is taken in portrait mode (phone 
> vertical) the application will fail with a NPE in DroidGap, this is due to 
> DroidGap loosing its reference to the activityResultCallback when its 
> orientation changes.
> I am able to reproduce this using the default creation and camera examples:
> 1. Create the project: 
> C:\Programming\cordova\cordova-android\framework>bin\create 
> C:\Users\dean\workspace-android\DeanTest2 com.kooiman DeanTest2
> 2. Overwrite assets/www/index.html with the complete example from: 
> http://docs.phonegap.com/en/2.4.0/cordova_camera_camera.md.html#Camera
> 3. Deploy the application to a Samsung Galaxy S3
> 4. Take a picture in portrait mode and see the failure.
> I can successfully get the callback by caching the reference when the 
> Activity is destroyed, however the page is reloaded on orientation changes as 
> well (so my image is rendered and immediately cleared).  In-fact if you were 
> to take a picture in Landscape or show an image from the library and then 
> changed the orientation the images are removed, due to page reload.
> Here is my code to at least get past the NPE: (Still would like a fix for the 
> page reload on orientation changes)
> public class DeanTest2 extends DroidGap
> {
>   private static final Object CALLBACK_LOCK = new Object();
>   private static CordovaPlugin destroySafeActivityCallback = null;
>       
>   @Override
>   public void onCreate(Bundle savedInstanceState)
>   {
>     super.onCreate(savedInstanceState);
>     synchronized(CALLBACK_LOCK) {
>       if (destroySafeActivityCallback != null) {
>         activityResultCallback = destroySafeActivityCallback;
>         destroySafeActivityCallback = null;
>       }
>     }
>         
>     super.loadUrl(Config.getStartUrl());
>   }
>     
>   @Override
>   public void onDestroy() {
>     if (activityResultCallback != null) {
>       synchronized(CALLBACK_LOCK) {
>         destroySafeActivityCallback = activityResultCallback;
>       }
>     }
>       
>     super.onDestroy();
>   }
> }

--
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

Reply via email to