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

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

Github user sgrebnov commented on a diff in the pull request:

    
https://github.com/apache/cordova-plugin-camera/pull/115#discussion_r39375449
  
    --- Diff: src/android/CameraLauncher.java ---
    @@ -983,12 +983,39 @@ private Cursor queryImgDB(Uri contentStore) {
          * @param newImage
          */
         private void cleanup(int imageType, Uri oldImage, Uri newImage, Bitmap 
bitmap) {
    +        Uri contentStore = whichContentStore();
    +        Cursor cursor = queryImgDB(contentStore);
    +        int currentNumOfImages = cursor.getCount();
    +        int diff = currentNumOfImages - numPics;
    +        int id;
    +
             if (bitmap != null) {
                 bitmap.recycle();
             }
     
    -        // Clean up initial camera-written image file.
    -        (new 
File(FileHelper.stripFileProtocol(oldImage.toString()))).delete();
    +        // Check for camera-written image files that are not the chosen 
image
    +        // Gets rid of inital camera-written image file as well as any 
retakes
    +        // Addresses issue CD-9490
    +        if (currentNumOfImages > 0 && diff > 0) {
    +            cursor.moveToLast();
    +            id = 
Integer.valueOf(cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media._ID)));
    +
    +            if (imageType == FILE_URI) {
    +                id--;
    +                for (int i = diff; i > 0; i--) {
    +                    Uri uri = Uri.parse(contentStore + "/" + id);
    +                    
this.cordova.getActivity().getContentResolver().delete(uri, null, null);
    +                    id--;
    +                }
    +            } else {
    +                for (int i = diff; i > 0; i--) {
    --- End diff --
    
    looks like this `for` loop is the same as above; what if we keep only one 
loop, for example
    
    ```
    if (imageType == FILE_URI) {
        id--;
    }
    
    for (int i = diff; i > 0; i--) {
        Uri uri = Uri.parse(contentStore + "/" + id);
        this.cordova.getActivity().getContentResolver().delete(uri, null, null);
        id--;
    }
    ```


> LG G4 camera application saves photos when using destinationType DATA_URL
> -------------------------------------------------------------------------
>
>                 Key: CB-9490
>                 URL: https://issues.apache.org/jira/browse/CB-9490
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Plugin Camera
>         Environment: LG G4, Android 5.1
>            Reporter: Cody Balos
>            Assignee: Cody Balos
>          Time Spent: 6h
>  Remaining Estimate: 0h
>
> So far this issue only happens on an LG G4 using the stock camera application:
> Using the camera plugin, with destinationType set to DATA_URL,
> the expected functionality is for the base64 string to be returned to the 
> javascript interface, and not saved to the file system without explicitly 
> saving it separately. Using the LG G4 stock camera application, all photos 
> are saved even when using destinationType DATA_URL if the retake option is 
> used. 
> The issue does not occur when using the Google Camera application or Camera 
> 360 (both on the Play Store). 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to