chanes file read process form xhttp request to tizen api

- tizen 4.0 api usable, some calls depricated since 5.0
 - update to 'openFile' only possible when killing 4.0
This commit is contained in:
Raphael Maenle
2020-05-23 12:43:59 +02:00
parent cf8af88eea
commit 6866c8e9e1
6 changed files with 247 additions and 84 deletions

View File

@ -11,7 +11,7 @@
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* limitations under the License.
*/
var events;
@ -26,47 +26,39 @@ var eventsTimeStamp = 0;
watchRadius;
function readJSON(path) {
var xhr = new XMLHttpRequest();
xhr.open('GET', path, true);
xhr.responseType = 'blob';
xhr.onload = function(e) {
if (this.status == 0) {
var file = new File([this.response], 'temp');
var fileReader = new FileReader();
fileReader.addEventListener('load', function(){
events = JSON.parse(fileReader.result);
var onError = function(e) {
console.log('Error!' + e.message);
};
var onResolveSuccess = function(dir) {
var onListFilesSuccess = function(files) {
files.forEach(function(file) {
if (!file.isDirectory) {
dir.deleteFile(file.fullPath, onDeleteSuccess, onError);
}
});
};
dir.listFiles(onListFilesSuccess, onError);
};
var onDeleteSuccess = function() {};
tizen.filesystem.resolve('/opt/usr/media/Downloads', onResolveSuccess, onError);
});
fileReader.readAsText(file);
}
/* - requests permission to view media storage
* - resolves the file 'calendarevents'
* - opens stream and reads entire file as json
*/
function onsuccess(dir){
var dirfile = dir.resolve("calendarevents");
console.log(dirfile);
/* for tizen 4.0, should work on 5.5 aswell but tizen 5.5 uses 'openFile' for Filereading */
dirfile.openStream("r", function(fs) {
events = JSON.parse(fs.read(dirfile.fileSize));
fs.close();
})
}
function onerror(e){
console.log("error"+e);
}
xhr.send();
function onsuccessPermission(){
tizen.filesystem.resolve("wgt-private", onsuccess, onerror, "rw");
}
function onErrorPermission(e){
console.log("error "+ JSON.stringify(e));
}
tizen.ppm.requestPermission("http://tizen.org/privilege/mediastorage", onsuccessPermission, onErrorPermission);
}
function getJSON() {
var downloadRequest = new tizen.DownloadRequest('https://longitudecalendar.com/userinfo/107971745944668140075/calendarevents.json', 'downloads');
var downloadRequest = new tizen.DownloadRequest('https://longitudecalendar.com/userinfo/107971745944668140075/calendarevents.json', 'wgt-private');
tizen.systeminfo.getPropertyValue('NETWORK', function(networkInfo) {
if (networkInfo.networkType === 'NONE') {
console.log('Network connection is not available.Download is not possible.');
@ -429,9 +421,7 @@ var eventsTimeStamp = 0;
function updateCalendar(offset_ms) {
var d = new Date();
var currentTime = d.getTime();
console.log("current Time: " + currentTime);
if(eventsTimeStamp + offset_ms < currentTime){
console.log("updating Events");
getJSON();
eventsTimeStamp = currentTime;
}
@ -482,6 +472,7 @@ var eventsTimeStamp = 0;
* @private
*/
function init() {
setDefaultVariables();
setDefaultEvents();
@ -492,7 +483,7 @@ var eventsTimeStamp = 0;
// Update the content of the watch every second
setInterval(function() {
drawWatchContent();
// updateCalendar(60000);
updateCalendar(600000);
}, 1000);
}