// Controller will call pokedexDB Services to present data to html view. // // For using sqlite you have to install $cordovaSQLite by running the following // command in your cmd.exe for windows or terminal for mac: // $ cd your_project_path // $ ionic plugin remove io.litehelpers.cordova.sqlite // $ ionic plugin add https://github.com/litehelpers/Cordova-sqlite-storage.git // // For install $cordovaSQLite plugin you also have to install this following plugin to get $cordovaSQLite work : // $ ionic plugin add com.ionic.keyboard // // Learn more about $cordovaSQLite : // http://ngcordova.com/docs/plugins/sqlite/ // // Controller of Contract List Page. appControllers.controller('imageDownloadCtrl', function ($scope, $stateParams, $mdBottomSheet, $timeout, $mdDialog, $cordovaFileTransfer, $ionicViewSwitcher, $ionicHistory, $cordovaFile, $state, pokedexDB, dataShare) { $scope.progressval = 0; $scope.currentfile = ''; $scope.progressprozent = 0; $scope.DownloadisVisible=true; $scope.AbbrechenisVisible=false; $scope.startdownloadtimer=false; // Open our new task modal $scope.downloadImages = function() { $scope.startdownloadtimer=true; $scope.DownloadisVisible=false; $scope.AbbrechenisVisible=true; //$ionicPlatform.ready(function() { //$scope.taskModal.show(); var baseurl = "http://assets.pokemon.com/assets/cms2/img/pokedex/full/"; var url=""; var filename=""; var targetPath = ""; var downloadprogress = 0; var pokedexid=1; var downloadinprogress=false; //Ordner erstellen auf SD-Karte $cordovaFile.createDir(cordova.file.externalRootDirectory, "PokedexHelperBilder", false) .then(function (success) { // success console.log('Erfolg bei Ordnererstellung. ' + success); }, function (error) { // error console.log('Error bei Ordnererstellung. ' + error); }); function downloadimage(){ downloadinprogress=true; filename=pokedexid + ".png"; if (filename.length==5){ filename='00' + filename; } if (filename.length==6){ filename='0' + filename; } url=baseurl; url=encodeURI(url + filename); targetPath = cordova.file.externalRootDirectory + "/PokedexHelperBilder/" + filename; var tempPokemon = { pokedexid: null, image: '' } //Bild Download $cordovaFileTransfer.download(url, targetPath, {Connection: "close"}, true).then(function (result) { $scope.currentfile=filename; tempPokemon.image=targetPath; tempPokemon.pokedexid=pokedexid; console.log(tempPokemon.image + " " + tempPokemon.pokedexid); pokedexDB.setPokemonImage(tempPokemon); console.log(filename + ' heruntergeladen.' + result); pokedexid=pokedexid + 1; console.log(result); downloadinprogress=false; }, function (error) { console.log('Error. ' + error.code + ' ' + error.constant); }, function (progress) { //downloadprogress=(progress.loaded / progress.total) * 100; $scope.progressprozent = Math.round(pokedexid / 152 * 100); $scope.progressval = pokedexid; $scope.currentfile=filename; //+ downloadprogress; }); console.log(pokedexid); if (pokedexid<152){ downloadtimer(); } else{ $scope.progressprozent = 'Download abgeschlossen! ' + $scope.progressprozent; $scope.DownloadisVisible=true; $scope.AbbrechenisVisible=false; $timeout(function(){ $scope.refreshData(); }, 1000); } if ( $scope.startdownloadtimer==false){ $scope.progressprozent = 'Download Abgebrochen! ' + $scope.progressprozent; } } //}); function downloadtimer(){ if ($scope.startdownloadtimer==true){ $timeout(function(){ if (downloadinprogress==false){ downloadimage(); console.log("downinprogress ist false"); }else{ console.log("downinprogress ist true"); downloadtimer(); } }, 500); } } downloadtimer(); }; $scope.refreshData=function(){ var data={command:'refresh', direction: ''}; dataShare.sendData(data); $scope.navigateTo('app.pokemonlist', {isAnimated:false}); }; // navigateTo is for navigate to other page // by using targetPage to be the destination state. // Parameter : // stateNames = target state to go. // objectData = Object data will send to destination state. $scope.navigateTo = function (stateName,objectData) { if ($ionicHistory.currentStateName() != stateName) { $ionicHistory.nextViewOptions({ disableAnimate: false, disableBack: true }); //Next view animate will display in back direction $ionicViewSwitcher.nextDirection('back'); $state.go(stateName, { isAnimated: objectData.isAnimated }); } }; $scope.downloadabbrechen = function() { $scope.DownloadisVisible=true; $scope.AbbrechenisVisible=false; $scope.startdownloadtimer=false; }; });// End of Contract List Page Controller.