168 lines
5.2 KiB
JavaScript
168 lines
5.2 KiB
JavaScript
// 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.
|