You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "siddharthc (JIRA)" <ji...@apache.org> on 2016/08/05 21:52:20 UTC
[jira] [Created] (CB-11676) Apache Cordova File Does not Work with
File Scanner Based on Cordova File Plugin on Marshmallow 6.0
siddharthc created CB-11676:
-------------------------------
Summary: Apache Cordova File Does not Work with File Scanner Based on Cordova File Plugin on Marshmallow 6.0
Key: CB-11676
URL: https://issues.apache.org/jira/browse/CB-11676
Project: Apache Cordova
Issue Type: Bug
Components: Android
Affects Versions: 3.5.0, 3.4.0
Environment: Moto G3 Turbo : marshmallow 6.0 Does not work
Asus Zenfine 2 Android 5.0 Works as expected
Reporter: siddharthc
this is a open source project on Github
https://github.com/siddmegadeth/cordova-file-scanner
he goal is to provide a set of API to traverse,search any kind of file on ANdroid system based on file type.
The File Plugin API returns
fileError Code 5
This is not replicated on 5.0 on Zenfone
Moto G3 Turbo : marshmallow 6.0 Does not work
Asus Zenfine 2 Android 5.0 Works as expected
API USAGE :
var url = [
"cordova.file.dataDirectory",
"cordova.file.documentsDirectory",
"cordova.file.externalApplicationStorageDirectory",
"cordova.file.externalCacheDirectory",
"cordova.file.externalRootDirectory",
"cordova.file.sharedDirectory",
"cordova.file.syncedDataDirectory",
"cordova.file.applicationStorageDirectory",
"cordova.file.cacheDirectory",
"cordova.file.applicationDirectory",
"cordova.file.tempDirectory",
"cordova.file.rootDirectory"
];
fileType = ["mp3","mp4","avi","pdf"];
cordovaFile.scan(url,fileType,function(resp)
{
$rootScope.response = resp;
},function(error)
{
log(error);
});
API DETAIL DESCRIPTION
var file = angular.module("CordovaFileReader",[]);
file.service("cordovaFile",function($q,$timeout)
{
var list = [];
//var deferred = $q.defer();
// var promises = [deferred.promise];
return {
scan : function(url,fileType,success,failure)
{
var i=0;
while(i!=fileType.length)
{
list[fileType[i]] = [];
i+=1;
}
// list[fileType[0]] = [];
// list[fileType[1]] = [];
//Get List Of FilesType and Create named associativr Array
//Function Definition For fileEntry and Error
var fileSearch = function (entry) {
var dirReader = entry.createReader();
dirReader.readEntries(
function (entries) {
var i=0;
while(i!=entries.length)
{
if (entries[i].isDirectory === true) {
// Recursive -- call back into this subdirectory
fileSearch(entries[i]);
} else
{
var j=0;
while(j!=fileType.length)
{
if(entries[i].name.indexOf(fileType[j]) != -1)
{
var file = {};
file = entries[i];
file.type = fileType[j];
list[fileType[j]].push(file);
}
j+=1;
}
// if(entries[i].name.indexOf(fileType[0]) != -1)
// {
// var file = {};
// file = entries[i];
// file.type = fileType[0];
// list[fileType[0]].push(file);
// // promises.push(file);
// // console.log(file);
// }
// else if(entries[i].name.indexOf(fileType[1]) != -1)
// {
// var file = {};
// file = entries[i];
// file.type = fileType[1];
// list[fileType[1]].push(file);
// // console.log(file);
// // promises.push(file);
// }
}
i+=1;
}
// Return List As CurrentSearch File and ll Files Searched in globalLis
// deferred.resolve();
success(list);
},
function (error)
{
console.log(error);
// deferred.reject(list);
failure(error);
});
// return $q.all(promises);
}; //Func ENds
var i=0;
while(i!=url.length)
{
if (url[i] === null || url[i].length === 0)
{
continue; // skip blank / non-existent paths for this platform
}
window.resolveLocalFileSystemURL(url[i],fileSearch, function (error) {
console.log(error);
failure(error);
});
i+=1;
}
} //scan Ends
}; /// return Ends
});
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org