// 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 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'); });