196 lines
4.9 KiB
JavaScript
196 lines
4.9 KiB
JavaScript
// Ionic Starter App
|
|
|
|
// angular.module is a global place for creating, registering and retrieving Angular modules
|
|
// 'starter' is the name of this angular module example (also set in a <body> attribute in index.html)
|
|
// the 2nd parameter is an array of 'requires'
|
|
// 'starter.services' is found in services.js
|
|
// 'starter.controllers' is found in controllers.js
|
|
var db;
|
|
|
|
angular.module('starter', ['ionic', 'ngCordova', 'jett.ionic.filter.bar','starter.controllers', 'starter.services'])
|
|
|
|
.run(function($ionicPlatform, $window, $ionicHistory, $database, $ionicPopup, $state, $window, $rootScope) {
|
|
|
|
$ionicPlatform.ready(function() {
|
|
|
|
|
|
$rootScope.storeinit=99;
|
|
$rootScope.adfree=0;
|
|
|
|
|
|
$ionicPlatform.registerBackButtonAction(function(event) {
|
|
|
|
// Handle Android back button to avoid the application exits accidentaly
|
|
if ($state.current.name=="tab.dash") {
|
|
$ionicPopup.confirm({
|
|
title: 'System-Hinweis',
|
|
template: 'Möchten Sie die App beenden?'
|
|
}).then(function(res) {
|
|
if (res) {
|
|
ionic.Platform.exitApp();
|
|
}
|
|
});
|
|
} else {
|
|
$ionicHistory.clearCache();
|
|
$ionicHistory.nextViewOptions({
|
|
historyRoot: true
|
|
});
|
|
$state.go('tab.dash');
|
|
}
|
|
}, 100);
|
|
|
|
|
|
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
|
|
// for form inputs)
|
|
if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
|
|
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
|
|
cordova.plugins.Keyboard.disableScroll(true);
|
|
|
|
}
|
|
|
|
// Mandatory for InAppBrowser plugin
|
|
if(window.cordova){
|
|
//window.open = cordova.InAppBrowser.open;
|
|
}
|
|
// Copy the populated database to mobile device destination
|
|
//if (window.sqlitePlugin && window.cordova) {
|
|
if (window.sqlitePlugin && window.cordova) {
|
|
window.plugins.sqlDB.copy("pokedex.db", function (e) {
|
|
console.log(e);
|
|
});
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
* Google-Stroe Initialisieren START
|
|
*/
|
|
|
|
function StoreInitsuccessHandler (result) {
|
|
$rootScope.storeinit=1;
|
|
inappbilling.getPurchases(purchasessuccess, purchasesfail);
|
|
}
|
|
|
|
function StoreIniterrorHandler (error) {
|
|
$rootScope.storeinit=0;
|
|
}
|
|
|
|
|
|
if((window.device && device.platform == "Android") && typeof inappbilling !== "undefined") {
|
|
inappbilling.init(StoreInitsuccessHandler, StoreIniterrorHandler, {showLog:true});
|
|
}
|
|
|
|
//FlateRate gekauft?
|
|
|
|
function purchasessuccess (result) {
|
|
var p = result[0];
|
|
|
|
if(p['productId'] == 'rosenflatrate') {
|
|
$rootScope.flatrate=1;
|
|
}
|
|
}
|
|
|
|
function purchasesfail (error) {
|
|
alert("ERROR: \r\n"+error );
|
|
}
|
|
|
|
/*
|
|
* Google-Stroe Initialisieren ENDE
|
|
*/
|
|
|
|
|
|
// Initialize database through $database service
|
|
db = $database.initDB();
|
|
|
|
|
|
if (window.StatusBar) {
|
|
// org.apache.cordova.statusbar required
|
|
StatusBar.styleDefault();
|
|
}
|
|
|
|
});
|
|
})
|
|
|
|
.config(function($stateProvider, $urlRouterProvider,$ionicConfigProvider,$ionicFilterBarConfigProvider) {
|
|
|
|
// Ionic uses AngularUI Router which uses the concept of states
|
|
// Learn more here: https://github.com/angular-ui/ui-router
|
|
// Set up the various states which the app can be in.
|
|
// Each state's controller can be found in controllers.js
|
|
if(ionic.Platform.isAndroid()){
|
|
$ionicConfigProvider.scrolling.jsScrolling(false);
|
|
}
|
|
|
|
$stateProvider
|
|
|
|
.state('init', {
|
|
url: '/init',
|
|
templateUrl: 'templates/init.html',
|
|
controller: 'InitCtrl'
|
|
})
|
|
|
|
.state('firstrun', {
|
|
url: '/first',
|
|
templateUrl: 'templates/firstrun.html',
|
|
controller: 'FirstRunCtrl'
|
|
})
|
|
|
|
.state('imagedownload', {
|
|
url: '/imagedownload',
|
|
templateUrl: 'templates/imagedownload.html',
|
|
controller: 'ImageDownloadCtrl'
|
|
})
|
|
|
|
// setup an abstract state for the tabs directive
|
|
.state('tab', {
|
|
url: '/tab',
|
|
abstract: true,
|
|
templateUrl: 'templates/tabs.html'
|
|
})
|
|
|
|
// Each tab has its own nav history stack:
|
|
.state('tab.dash', {
|
|
url: '/dash',
|
|
views: {
|
|
'tab-dash': {
|
|
templateUrl: 'templates/tab-dash.html',
|
|
controller: 'DashCtrl'
|
|
}
|
|
}
|
|
})
|
|
|
|
.state('tab.chats', {
|
|
url: '/chats',
|
|
views: {
|
|
'tab-chats': {
|
|
templateUrl: 'templates/tab-chats.html',
|
|
controller: 'ChatsCtrl'
|
|
}
|
|
}
|
|
})
|
|
.state('tab.chat-detail', {
|
|
url: '/chats/:chatId',
|
|
views: {
|
|
'tab-chats': {
|
|
templateUrl: 'templates/chat-detail.html',
|
|
controller: 'ChatDetailCtrl'
|
|
}
|
|
}
|
|
})
|
|
|
|
.state('tab.account', {
|
|
url: '/account',
|
|
views: {
|
|
'tab-account': {
|
|
templateUrl: 'templates/tab-account.html',
|
|
controller: 'AccountCtrl'
|
|
}
|
|
}
|
|
});
|
|
|
|
// if none of the above states are matched, use this as the fallback
|
|
$urlRouterProvider.otherwise('/init');
|
|
$ionicConfigProvider.tabs.position('bottom');
|
|
|
|
});
|