[TIMOB-20609] Windows: ImageView.image doesn't handle Windows-style path
GitHub Issue | n/a |
---|---|
Type | Bug |
Priority | Critical |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2016-03-28T13:25:27.000+0000 |
Affected Version/s | Release 5.2.0 |
Fix Version/s | Release 5.3.0 |
Components | Windows |
Labels | filesystem, image, qe-5.3.0, windows_phone |
Reporter | Zakhar Zhuravlev |
Assignee | Kota Iguchi |
Created | 2016-03-20T09:01:29.000+0000 |
Updated | 2016-04-19T23:05:18.000+0000 |
Description
It's affected 5.2.0. Tested on emulator and on real device (same behaviour)
What doing this sample app: copy .png file from Resources folder to dataDirectory and try to set copied image to imageView;
*index.js:*
{noformat}
----
BUT, I found the way when it's working on windows phone(emulator and device).
*index.js:*
var directory = (Ti.Filesystem.isExternalStoragePresent()) ? Ti.Filesystem.externalStorageDirectory : Ti.Filesystem.applicationDataDirectory;
var fileIndex = 0;
var toFile;
function listFiles() {
if(OS_WINDOWS) {
alert(Ti.Filesystem.getFile(directory).getDirectoryListing());
} else {
console.warn(Ti.Filesystem.getFile(directory).getDirectoryListing());
}
}
function copyFile() {
fileIndex++;
var fromFile = Ti.Filesystem.getFile(Ti.Filesystem.resourcesDirectory, "test.png");
toFile = Ti.Filesystem.getFile(directory, '' + fileIndex + '.png');
toFile.write(fromFile.read());
}
function onImageClick() {
$.imageView.image = toFile;
// below another approaches
// $.imageView.image = toFile.read();
// $.imageView.image = toFile.nativePath;
// $.imageView.image = directory + '/' + fileIndex + '.png';
}
$.win.open();
*index.xml:*
{noformat}
var directory = ''; // when directory is empty string, image will save in the root folder
function onImageClick() {
$.imageView.image = directory + '/' + fileIndex + '.png'; // set image by path
}
As far as I can see, this issue is not because of
Ti.Filesystem
but becauseTi.UI.ImageView
does not handle image path when it has Windows-style full path such asC:\Data\Users\DefApps\APPDATA\Local\Packages\etc\etc
. Tuns out thatImage.image
doesn't handleTi.File
andTi.Blob
object too. I've changed title of this ticket.https://github.com/appcelerator/titanium_mobile_windows/pull/593
Broke down Ti.Blob & Ti.Filesystem.File support into (TIMOB-23115). Now TIMOB-20609 (this ticket) is but fix for file path with string.
https://github.com/appcelerator/titanium_mobile_windows/pull/593 Fix bugs when you use
ImageView.image
with Windows path string such astoFile.nativePath
. Test cases: [ti.ui.imageview.test.js](https://github.com/infosia/titanium_mobile_windows/blob/TIMOB-20609/Examples/NMocha/src/Assets/ti.ui.imageview.test.js#L40) Note that we splitFile
andBlob
support into TIMOB-23115.