{ "id": "62201", "key": "TIMOB-1569", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "11229", "name": "Release 1.5.0 M04", "archived": true, "released": true, "releaseDate": "2010-12-06" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2011-04-17T01:56:32.000+0000", "created": "2011-04-15T02:56:16.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [ "android", "feature" ], "versions": [], "issuelinks": [], "assignee": { "name": "dthorp", "key": "dthorp", "displayName": "Don Thorp", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2011-04-17T01:56:32.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10202", "name": "Android", "description": "Android Platform" } ], "description": "{html}

Remote images are currently downloaded, but not cached. Add\nsupport for better background downloading and caching of\nimages.

{html}", "attachment": [], "flagged": false, "summary": "Android: Implement Image Cache", "creator": { "name": "dthorp", "key": "dthorp", "displayName": "Don Thorp", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "dthorp", "key": "dthorp", "displayName": "Don Thorp", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "126067", "author": { "name": "dthorp", "key": "dthorp", "displayName": "Don Thorp", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

My prototype code for the feature is on this branch dst-cachit\nit was done in 1_4_X so it'll have to be ported to 1.5.

\n

The goal of this support was to replace the current background\ndownload of images which doesn't know if something is already\ndownloaded. I also wanted to provide a cleanup thread and some\ncache configuration parameters like max # items, max mbs, scan\nfrequency. We should also add a clear method that could be invoked.\nEventually we'll turn this into a media agnostic cache manager, but\nthe initial need is for remote images. Especially wrt to TableViews\nuse of them.

{html}", "updateAuthor": { "name": "dthorp", "key": "dthorp", "displayName": "Don Thorp", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:56:17.000+0000", "updated": "2011-04-15T02:56:17.000+0000" }, { "id": "126068", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "{html}

The remote image test in KS (Base UI - Views - Image Views -\nRemote Image). Is it related to changes made for this ticket?\nTested with c680f8c in 2.1 emulator. I verified that my emulator\nhas an sdcard.

\n

There should also be a drillbit test for remote image.

\n

Logcat:

\n
\nE/TiDrawableReference(  326): java.io.FileNotFoundException: /sdcard/com.appcelerator.titanium/remote-image-cache/46b7e15e92d07bc31815c72c06be3693b5f73bed.hdr\nE/TiDrawableReference(  326):   at org.apache.harmony.luni.platform.OSFileSystem.open(OSFileSystem.java:244)\nE/TiDrawableReference(  326):   at java.io.FileInputStream.<init>(FileInputStream.java:77)\nE/TiDrawableReference(  326):   at java.io.FileReader.<init>(FileReader.java:42)\nE/TiDrawableReference(  326):   at org.appcelerator.titanium.util.TiResponseCache.get(TiResponseCache.java:179)\nE/TiDrawableReference(  326):   at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getFromCache(HttpURLConnection.java:848)\nE/TiDrawableReference(  326):   at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:755)\nE/TiDrawableReference(  326):   at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1051)\nE/TiDrawableReference(  326):   at java.net.URL.openStream(URL.java:653)\nE/TiDrawableReference(  326):   at org.appcelerator.titanium.util.TiFileHelper.openInputStream(TiFileHelper.java:147)\nE/TiDrawableReference(  326):   at org.appcelerator.titanium.view.TiDrawableReference.getInputStream(TiDrawableReference.java:359)\nE/TiDrawableReference(  326):   at org.appcelerator.titanium.view.TiDrawableReference.getBitmap(TiDrawableReference.java:171)\nE/TiDrawableReference(  326):   at org.appcelerator.titanium.view.TiDrawableReference.getBitmap(TiDrawableReference.java:233)\nE/TiDrawableReference(  326):   at org.appcelerator.titanium.util.TiBackgroundImageLoadTask.doInBackground(TiBackgroundImageLoadTask.java:71)\nE/TiDrawableReference(  326):   at org.appcelerator.titanium.util.TiBackgroundImageLoadTask.doInBackground(TiBackgroundImageLoadTask.java:28)\n
{html}", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2011-04-15T02:56:17.000+0000", "updated": "2011-04-15T02:56:17.000+0000" }, { "id": "126069", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "{html}

This also affects the \"Basic\" image view test, since it uses a\nremote url. And the Facebook login test. (Probably other tests\ntoo...)

{html}", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2011-04-15T02:56:17.000+0000", "updated": "2011-04-15T02:56:17.000+0000" }, { "id": "126070", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "{html}

(from [116948f0cb8a79ceff779c6f8955420d5aab547f])\n[#1569] TiResponseCache.get() should return null\nwhen cache doesn't contain item. If cachedir doesn't exist, create\nit. \nhttps://github.com/appcelerator/titanium_mobile/commit/116948f0cb8a...

{html}", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2011-04-15T02:56:18.000+0000", "updated": "2011-04-15T02:56:18.000+0000" }, { "id": "126071", "author": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "body": "{html}

(from [8e66e2c70caf59e50fd9b98641cc2e64acd2311f])\n[#1569] Test to guard against TiResponseCache\ncrashing \nhttps://github.com/appcelerator/titanium_mobile/commit/8e66e2c70caf...

{html}", "updateAuthor": { "name": "billdawson", "key": "billdawson", "displayName": "Bill Dawson", "active": true, "timeZone": "Europe/Berlin" }, "created": "2011-04-15T02:56:18.000+0000", "updated": "2011-04-15T02:56:18.000+0000" }, { "id": "126072", "author": { "name": "jhaynie", "key": "jhaynie", "displayName": "Jeff Haynie", "active": false, "timeZone": "America/Los_Angeles" }, "body": "{html}

(from [a0f4151a5b12ab0a7ed4a77d752ff74c1aeae581])\n[#1569 state:fixed-in-qa] work around android SDK\nbug which calls abort() even on success \nhttps://github.com/appcelerator/titanium_mobile/commit/a0f4151a5b12...

{html}", "updateAuthor": { "name": "jhaynie", "key": "jhaynie", "displayName": "Jeff Haynie", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:56:19.000+0000", "updated": "2011-04-15T02:56:19.000+0000" }, { "id": "126073", "author": { "name": "thomashuelbert", "key": "thomashuelbert", "displayName": "Thomas Huelbert", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

closed against (1.5.0.7d08f15) ks tests used: Basic image test,\nremote image

{html}", "updateAuthor": { "name": "thomashuelbert", "key": "thomashuelbert", "displayName": "Thomas Huelbert", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:56:19.000+0000", "updated": "2011-04-15T02:56:19.000+0000" }, { "id": "126074", "author": { "name": "michaeldeltito", "key": "michaeldeltito", "displayName": "Michael Del Tito", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

this is still an issue it seems under 1.5.1

\n

remote images loaded in a scrollableView are re-downloaded on\neach scroll

{html}", "updateAuthor": { "name": "michaeldeltito", "key": "michaeldeltito", "displayName": "Michael Del Tito", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T02:56:20.000+0000", "updated": "2011-04-15T02:56:20.000+0000" }, { "id": "126075", "author": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "body": "{html}

Michael, are your images getting scaled at all? Or are they the\nprecise size that will be used?

{html}", "updateAuthor": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "created": "2011-04-15T02:56:20.000+0000", "updated": "2011-04-15T02:56:20.000+0000" } ], "maxResults": 9, "total": 9, "startAt": 0 } } }