You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cordova.apache.org by "Simon MacDonald (Resolved) (JIRA)" <ji...@apache.org> on 2011/11/21 22:32:51 UTC

[jira] [Resolved] (CB-17) WebView caching resized pictures

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

Simon MacDonald resolved CB-17.
-------------------------------

       Resolution: Fixed
    Fix Version/s: 2.0.0

I fixed this by adding a timestamp to the returned file uri to break the cache.

https://github.com/callback/callback-android/commit/3ebfb6717c149827f9b9b2ab2c31d5f2f44f6911
                
> WebView caching resized pictures
> --------------------------------
>
>                 Key: CB-17
>                 URL: https://issues.apache.org/jira/browse/CB-17
>             Project: Apache Callback
>          Issue Type: Bug
>          Components: Android
>    Affects Versions: 1.1.0
>            Reporter: Simon MacDonald
>            Assignee: Simon MacDonald
>             Fix For: 2.0.0
>
>
> If you request a picture from the photo library and you provide a targetHeight/targetWidth we create a temp file in the application cache directory called resize.jpg. If you then show this file in your PG application it works fine. Any subsequent calls to getPhoto using targetHeight/targetWidth will create a new resize.jpg but when you go to display it in your app it shows the first one as it is cached.
> Workaround: If your picture is small enough use DATA_URL
> Here is some code to reproduce:
> function getPhoto(source) {
>    sourceType=source;
>        window.resolveLocalFileSystemURI("file:///mnt/sdcard/Android/data/
> com.phonegap.helloworld/cache/resize.jpg", fileExist, onFail);
> }
>   //,allowEdit: true,targetWidth:390,targetHeight:390
> function fileExist(fileEntry) {
>                alert(fileEntry.fullPath);
>        fileEntry.remove(removeSuccess,removeFail);
> }
> function onFail(error) {
>         navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality:
> 75,
>              destinationType: destinationType.FILE_URI,
>              sourceType: sourceType,targetWidth:390,targetHeight:390});
> }
> function removeSuccess() {
>        alert("file Success Removed");
>         navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality:
> 75,
>              destinationType: destinationType.FILE_URI,
>              sourceType: sourceType,targetWidth:390,targetHeight:390});
> }
> function removeFail(error) {
>        status("Image file delete failed (error " + error.code + ")");
> }

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