diff --git a/config.xml b/config.xml index 30ff00f8cdce50eadea8c4b4e728fb4993bd531a..94e9b9d6547570c142c9f1fe5031e1af732b4d68 100644 --- a/config.xml +++ b/config.xml @@ -1,98 +1,98 @@ -<?xml version='1.0' encoding='utf-8'?> +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <widget id="com.Dimago.Betskills" version="2.0.6" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> - <name>Betskills</name> - <description> + <name>Betskills</name> + <description> Betskills app to see predictions of football and tennis games. </description> - <author email="contact@betskills.com" href=""> + <author email="contact@betskills.com" href=""> Betskills team </author> - <content src="index.html" /> - <access origin="*" /> - <preference name="webviewbounce" value="false" /> - <preference name="UIWebViewBounce" value="false" /> - <preference name="DisallowOverscroll" value="true" /> - <preference name="SplashScreenDelay" value="5000" /> - <preference name="ShowSplashScreenSpinner" value="false" /> - <preference name="android-minSdkVersion" value="23" /> - <preference name="BackupWebStorage" value="none" /> - <preference name="SplashScreen" value="screen" /> - <preference name="xwalkVersion" value="18+" /> - <preference name="xwalkCommandLine" value="--disable-pull-to-refresh-effect" /> - <preference name="xwalkMode" value="embedded" /> - <preference name="xwalkMultipleApk" value="true" /> - <preference name="Orientation" value="portrait" /> - <feature name="StatusBar"> - <param name="ios-package" onload="true" value="CDVStatusBar" /> - </feature> - <plugin name="cordova-plugin-console" spec="~1.0.3" /> - <plugin name="cordova-plugin-whitelist" spec="~1.2.2" /> - <plugin name="cordova-plugin-splashscreen" spec="~3.2.2" /> - <plugin name="cordova-plugin-statusbar" spec="~2.1.3" /> - <plugin name="ionic-plugin-keyboard" spec="~2.2.1" /> - <plugin name="cordova-plugin-firebase" spec="~0.1.18" /> - <plugin name="cordova-plugin-device" spec="~1.1.3" /> - <plugin name="cordova-plugin-file-transfer" spec="~1.6.1" /> - <plugin name="cordova-plugin-inapppurchase" spec="~1.1.0" /> - <plugin name="cordova-plugin-x-toast" spec="https://github.com/EddyVerbruggen/Toast-PhoneGap-Plugin.git" /> - <plugin name="cordova-plugin-badge" spec="https://github.com/katzer/cordova-plugin-badge.git" /> - <plugin name="cordova-plugin-facebook4" spec="~1.7.4"> - <variable name="APP_ID" value="1830882820517971" /> - <variable name="APP_NAME" value="Betskills" /> - </plugin> - <platform name="ios"> - <access origin="cdvfile://*" /> - <allow-intent href="cdvfile://*" /> - <preference name="iosPersistentFileLocation" value="Library" /> - <icon height="57" src="resources/ios/icon/icon.png" width="57" /> - <icon height="114" src="resources/ios/icon/icon@2x.png" width="114" /> - <icon height="40" src="resources/ios/icon/icon-40.png" width="40" /> - <icon height="80" src="resources/ios/icon/icon-40@2x.png" width="80" /> - <icon height="120" src="resources/ios/icon/icon-40@3x.png" width="120" /> - <icon height="50" src="resources/ios/icon/icon-50.png" width="50" /> - <icon height="100" src="resources/ios/icon/icon-50@2x.png" width="100" /> - <icon height="60" src="resources/ios/icon/icon-60.png" width="60" /> - <icon height="120" src="resources/ios/icon/icon-60@2x.png" width="120" /> - <icon height="180" src="resources/ios/icon/icon-60@3x.png" width="180" /> - <icon height="72" src="resources/ios/icon/icon-72.png" width="72" /> - <icon height="144" src="resources/ios/icon/icon-72@2x.png" width="144" /> - <icon height="76" src="resources/ios/icon/icon-76.png" width="76" /> - <icon height="152" src="resources/ios/icon/icon-76@2x.png" width="152" /> - <icon height="167" src="resources/ios/icon/icon-83.5@2x.png" width="167" /> - <icon height="29" src="resources/ios/icon/icon-small.png" width="29" /> - <icon height="58" src="resources/ios/icon/icon-small@2x.png" width="58" /> - <icon height="87" src="resources/ios/icon/icon-small@3x.png" width="87" /> - <splash height="1136" src="resources/ios/splash/Default-568h@2x~iphone.png" width="640" /> - <splash height="1334" src="resources/ios/splash/Default-667h.png" width="750" /> - <splash height="2208" src="resources/ios/splash/Default-736h.png" width="1242" /> - <splash height="2048" src="resources/ios/splash/Default-Portrait@2x~ipad.png" width="1536" /> - <splash height="2732" src="resources/ios/splash/Default-Portrait@~ipadpro.png" width="2048" /> - <splash height="1024" src="resources/ios/splash/Default-Portrait~ipad.png" width="768" /> - <splash height="960" src="resources/ios/splash/Default@2x~iphone.png" width="640" /> - <splash height="480" src="resources/ios/splash/Default~iphone.png" width="320" /> - </platform> - <platform name="android"> - <preference name="android-minSdkVersion" value="23" /> - <preference name="android-targetSdkVersion" value="23" /> - <preference name="SplashMaintainAspectRatio" value="true" /> - <preference name="SplashShowOnlyFirstTime" value="false" /> - <preference name="AndroidPersistentFileLocation" value="Compatibility" /> - <preference name="android-build-tool" value="gradle" /> - <access origin="cdvfile://*" /> - <allow-intent href="cdvfile://*" /> - <icon density="ldpi" src="resources/android/icon/drawable-ldpi-icon.png" /> - <icon density="mdpi" src="resources/android/icon/drawable-mdpi-icon.png" /> - <icon density="hdpi" src="resources/android/icon/drawable-hdpi-icon.png" /> - <icon density="xhdpi" src="resources/android/icon/drawable-xhdpi-icon.png" /> - <icon density="xxhdpi" src="resources/android/icon/drawable-xxhdpi-icon.png" /> - <icon density="xxxhdpi" src="resources/android/icon/drawable-xxxhdpi-icon.png" /> - <splash density="port-ldpi" src="resources/android/splash/drawable-port-ldpi-screen.png" /> - <splash density="port-mdpi" src="resources/android/splash/drawable-port-mdpi-screen.png" /> - <splash density="port-hdpi" src="resources/android/splash/drawable-port-hdpi-screen.png" /> - <splash density="port-xhdpi" src="resources/android/splash/drawable-port-xhdpi-screen.png" /> - <splash density="port-xxhdpi" src="resources/android/splash/drawable-port-xxhdpi-screen.png" /> - <splash density="port-xxxhdpi" src="resources/android/splash/drawable-port-xxxhdpi-screen.png" /> - </platform> - <icon src="resources/android/icon/drawable-xhdpi-icon.png" /> - <plugin name="com.jcjee.plugins.emailcomposer" spec="https://github.com/jcjee/email-composer.git" /> -</widget> + <content src="index.html"/> + <access origin="*"/> + <preference name="webviewbounce" value="false"/> + <preference name="UIWebViewBounce" value="false"/> + <preference name="DisallowOverscroll" value="true"/> + <preference name="SplashScreenDelay" value="5000"/> + <preference name="ShowSplashScreenSpinner" value="false"/> + <preference name="android-minSdkVersion" value="23"/> + <preference name="BackupWebStorage" value="none"/> + <preference name="SplashScreen" value="screen"/> + <preference name="xwalkVersion" value="18+"/> + <preference name="xwalkCommandLine" value="--disable-pull-to-refresh-effect"/> + <preference name="xwalkMode" value="embedded"/> + <preference name="xwalkMultipleApk" value="true"/> + <preference name="Orientation" value="portrait"/> + <feature name="StatusBar"> + <param name="ios-package" onload="true" value="CDVStatusBar"/> + </feature> + <plugin name="cordova-plugin-console" spec="~1.0.3"/> + <plugin name="cordova-plugin-whitelist" spec="~1.2.2"/> + <plugin name="cordova-plugin-splashscreen" spec="~3.2.2"/> + <plugin name="cordova-plugin-statusbar" spec="~2.1.3"/> + <plugin name="ionic-plugin-keyboard" spec="~2.2.1"/> + <plugin name="cordova-plugin-firebase" spec="~0.1.18"/> + <plugin name="cordova-plugin-device" spec="~1.1.3"/> + <plugin name="cordova-plugin-file-transfer" spec="~1.6.1"/> + <plugin name="cordova-plugin-inapppurchase" spec="~1.1.0"/> + <plugin name="cordova-plugin-x-toast" spec="https://github.com/EddyVerbruggen/Toast-PhoneGap-Plugin.git"/> + <plugin name="cordova-plugin-badge" spec="https://github.com/katzer/cordova-plugin-badge.git"/> + <plugin name="cordova-plugin-facebook4" spec="~1.7.4"> + <variable name="APP_ID" value="1830882820517971"/> + <variable name="APP_NAME" value="Betskills"/> + </plugin> + <plugin name="com.jcjee.plugins.emailcomposer" spec="https://github.com/jcjee/email-composer.git"/> + <platform name="ios"> + <access origin="cdvfile://*"/> + <allow-intent href="cdvfile://*"/> + <preference name="iosPersistentFileLocation" value="Library"/> + <splash height="1136" src="resources/ios/splash/Default-568h@2x~iphone.png" width="640"/> + <splash height="1334" src="resources/ios/splash/Default-667h.png" width="750"/> + <splash height="2208" src="resources/ios/splash/Default-736h.png" width="1242"/> + <splash height="2048" src="resources/ios/splash/Default-Portrait@2x~ipad.png" width="1536"/> + <splash height="2732" src="resources/ios/splash/Default-Portrait@~ipadpro.png" width="2048"/> + <splash height="1024" src="resources/ios/splash/Default-Portrait~ipad.png" width="768"/> + <splash height="960" src="resources/ios/splash/Default@2x~iphone.png" width="640"/> + <splash height="480" src="resources/ios/splash/Default~iphone.png" width="320"/> + <icon src="resources/ios/icon/icon.png" width="57" height="57"/> + <icon src="resources/ios/icon/icon@2x.png" width="114" height="114"/> + <icon src="resources/ios/icon/icon-40.png" width="40" height="40"/> + <icon src="resources/ios/icon/icon-40@2x.png" width="80" height="80"/> + <icon src="resources/ios/icon/icon-40@3x.png" width="120" height="120"/> + <icon src="resources/ios/icon/icon-50.png" width="50" height="50"/> + <icon src="resources/ios/icon/icon-50@2x.png" width="100" height="100"/> + <icon src="resources/ios/icon/icon-60.png" width="60" height="60"/> + <icon src="resources/ios/icon/icon-60@2x.png" width="120" height="120"/> + <icon src="resources/ios/icon/icon-60@3x.png" width="180" height="180"/> + <icon src="resources/ios/icon/icon-72.png" width="72" height="72"/> + <icon src="resources/ios/icon/icon-72@2x.png" width="144" height="144"/> + <icon src="resources/ios/icon/icon-76.png" width="76" height="76"/> + <icon src="resources/ios/icon/icon-76@2x.png" width="152" height="152"/> + <icon src="resources/ios/icon/icon-83.5@2x.png" width="167" height="167"/> + <icon src="resources/ios/icon/icon-small.png" width="29" height="29"/> + <icon src="resources/ios/icon/icon-small@2x.png" width="58" height="58"/> + <icon src="resources/ios/icon/icon-small@3x.png" width="87" height="87"/> + </platform> + <platform name="android"> + <preference name="android-minSdkVersion" value="23"/> + <preference name="android-targetSdkVersion" value="23"/> + <preference name="SplashMaintainAspectRatio" value="true"/> + <preference name="SplashShowOnlyFirstTime" value="false"/> + <preference name="AndroidPersistentFileLocation" value="Compatibility"/> + <preference name="android-build-tool" value="gradle"/> + <access origin="cdvfile://*"/> + <allow-intent href="cdvfile://*"/> + <splash density="port-ldpi" src="resources/android/splash/drawable-port-ldpi-screen.png"/> + <splash density="port-mdpi" src="resources/android/splash/drawable-port-mdpi-screen.png"/> + <splash density="port-hdpi" src="resources/android/splash/drawable-port-hdpi-screen.png"/> + <splash density="port-xhdpi" src="resources/android/splash/drawable-port-xhdpi-screen.png"/> + <splash density="port-xxhdpi" src="resources/android/splash/drawable-port-xxhdpi-screen.png"/> + <splash density="port-xxxhdpi" src="resources/android/splash/drawable-port-xxxhdpi-screen.png"/> + <icon src="resources/android/icon/drawable-ldpi-icon.png" density="ldpi"/> + <icon src="resources/android/icon/drawable-mdpi-icon.png" density="mdpi"/> + <icon src="resources/android/icon/drawable-hdpi-icon.png" density="hdpi"/> + <icon src="resources/android/icon/drawable-xhdpi-icon.png" density="xhdpi"/> + <icon src="resources/android/icon/drawable-xxhdpi-icon.png" density="xxhdpi"/> + <icon src="resources/android/icon/drawable-xxxhdpi-icon.png" density="xxxhdpi"/> + </platform> + <icon src="resources/android/icon/drawable-xhdpi-icon.png"/> +</widget> \ No newline at end of file diff --git a/key2.jks b/key2.jks new file mode 100644 index 0000000000000000000000000000000000000000..85f669fe1c0a8512294608f7a3c0bb190fd51f67 Binary files /dev/null and b/key2.jks differ diff --git a/resources/icon.png b/resources/icon.png index ec686c3620a3f5e44699f7ee83f906f9ac4d3b65..e7570953c81062b27286d6bc1d8657c05d01bfe2 100644 Binary files a/resources/icon.png and b/resources/icon.png differ diff --git a/scss/unlock.scss b/scss/unlock.scss index f1b3cd9195bd193a97cee3db1d98cd26d8daa944..0695037ca4f0855eedc12a1a1070bff0b605b5b0 100644 --- a/scss/unlock.scss +++ b/scss/unlock.scss @@ -6,7 +6,7 @@ width: 100%; text-align: center; z-index: 7; - padding: 20px; + padding: 5px; height: 100px; &.active { @@ -19,14 +19,21 @@ .content { border: 3px solid #fff; border-radius: 20px; - width: 90%; + width: 98%; + max-width: 330px; margin: auto; text-align: left; padding: 10px; text-transform: uppercase; color: $whiteColor; font-family: "OspDin"; - font-size: 20px; - box-shadow: 0px 2px 1px black; + font-size: 25px; + box-shadow: 0px 3px 1px black; + + span { + position: absolute; + right: 0; + margin-right: 10px; + } } } diff --git a/www/img/lock.png b/www/img/lock.png index 13f13b33e0452bf2565a54e91363de7ec2099f42..e36c46cfc4bfdc44925d2127037675c7b53ae1db 100644 Binary files a/www/img/lock.png and b/www/img/lock.png differ diff --git a/www/js/app.js b/www/js/app.js index 29001af7b25663af07ae007babb003a7d3faeaa7..e84fcc2a95c33a2adf16e0cd42e23508813c8da9 100644 --- a/www/js/app.js +++ b/www/js/app.js @@ -93,6 +93,7 @@ if (ionic.Platform.isIOS()) { window.FirebasePlugin.grantPermission(); } + ionic.Platform.ready(function () { constantConfig.uuid = window.cordova ? ionic.Platform.device().uuid : '7f4a6a40e5c87157'; }); diff --git a/www/js/modules/config/config.js b/www/js/modules/config/config.js index c7b191e82e2d5dd388147eba73e36f2a6e995773..d88a5dd17b9018e0419976d4943569d5cc63470d 100644 --- a/www/js/modules/config/config.js +++ b/www/js/modules/config/config.js @@ -20,9 +20,10 @@ 'push': { 'sender_id': '1006878207346', 'pluginConfig': { - 'ios': { - 'badge': true, - 'sound': true + ios: { + alert: "true", + badge: "true", + sound: "true" }, 'android': { 'iconColor': '#000000' diff --git a/www/js/modules/notification/service.js b/www/js/modules/notification/service.js index 4f05b913bf5ed5005c724293ab2471932a31d1b5..bf7b2c28c7028ace747587a74760089d7e797281 100644 --- a/www/js/modules/notification/service.js +++ b/www/js/modules/notification/service.js @@ -11,7 +11,7 @@ * @ngInject */ function NotificationService($http, constantConfig) { - var service = { + return { registerDevice: function () { @@ -20,33 +20,26 @@ locale = 'en'; } + var self = this; + ionic.Platform.ready(function () { - var deviceData = {}; if (window.cordova) { - var device = ionic.Platform.device(); - deviceData = device; - var tokenAlreadyCreated = false; - window.FirebasePlugin.getToken(function (token) { - deviceData = Object.assign(device, {'locale': locale, 'token': token}); - tokenAlreadyCreated = true; - }, function (error) { - console.log(error); - debugger; - deviceData = Object.assign(device, {'locale': locale, 'token': 'tokenCannotBeCreated'}); - }); + var deviceData = ionic.Platform.device(); + deviceData = Object.assign(deviceData, {locale: locale}); - if (!tokenAlreadyCreated) { - window.FirebasePlugin.onTokenRefresh(function (token) { - deviceData = Object.assign(device, {'locale': locale, 'token': token}); - }, function (error) { - console.log(error); - debugger; - deviceData = Object.assign(device, {'locale': locale, 'token': 'tokenCannotBeCreated'}); + if (ionic.Platform.isIOS()) { + window.FirebasePlugin.hasPermission(function(data){ + if (data.isEnabled) { + deviceData.token = self.fetchToken(); + } else { + deviceData.token = 'notAllowedToGetToken'; + } }); + } else { + deviceData.token = self.fetchToken(); } if (typeof deviceData.token === 'undefined' || deviceData.token == null) { - deviceData.locale = locale; deviceData.token = 'tokenCannotBeCreated'; } @@ -58,7 +51,8 @@ model: 'AquarisE5', uuid: '7f4a6a40e5c87157', locale: locale, - token: 'cNgyx3ZgOX4:APA91bF5eigDuJLjj8wI8SC4l5KIHATuxi-2G5whpWI1n1jWpWWwRAwbEXec4fQ2S7HW8EdUPaREXJ5fVd_TZV8rZq_eIJIEhEadeH9wpsbYmUUM7E8H8Y0Qst9KmBuHWodCFFJPJ0vh' + token: 'cNgyx3ZgOX4:APA91bF5eigDuJLjj8wI8SC4l5KIHATuxi-2G5whpWI1n1jWpWWwRAwbEXec4fQ2S7HW8EdUPaREXJ' + + '5fVd_TZV8rZq_eIJIEhEadeH9wpsbYmUUM7E8H8Y0Qst9KmBuHWodCFFJPJ0vh' } } $http.post(constantConfig.apiUrl + 'devices/register', deviceData) @@ -66,10 +60,27 @@ }, function errorCallback() { }); }); + }, + + fetchToken: function () { + var generatedToken = ""; + + window.FirebasePlugin.getToken(function (token) { + generatedToken = token; + }, function (error) { + generatedToken = 'errorGettingToken' + error; + }); + + window.FirebasePlugin.onTokenRefresh(function (token) { + generatedToken = token; + }, function (error) { + generatedToken = 'errorGettingRefreshedToken' + error; + }); + + return generatedToken; } - }; - return service; + }; } diff --git a/www/js/pages/football/controller.js b/www/js/pages/football/controller.js index ad90608d7ffc78d669413f154b0a20493d336662..0e8ca8724350f6a3ee25fc30c45b55c136adedcb 100644 --- a/www/js/pages/football/controller.js +++ b/www/js/pages/football/controller.js @@ -141,13 +141,17 @@ }; $scope.parseDate = function (date) { - var locale = window.navigator.language.split('-')[0]; - date = date.split(' ')[0].split('-'); - - if (locale === "fr") { - return date[2] + '/' + date[1] + '/' + date[0].substr(-2); + if (typeof date === 'undefined' || date == "") { + return ""; } else { - return date[1] + '/' + date[2] + '/' + date[0].substr(-2); + var locale = window.navigator.language.split('-')[0]; + date = date.split(' ')[0].split('-'); + + if (locale === "fr") { + return date[2] + '/' + date[1] + '/' + date[0].substr(-2); + } else { + return date[1] + '/' + date[2] + '/' + date[0].substr(-2); + } } }; diff --git a/www/js/pages/info/template.html b/www/js/pages/info/template.html index 3817362d73e72a527bdbd2654117546fbab1f16d..08f9284a47561b2b1bf4b5457604a107294c6969 100644 --- a/www/js/pages/info/template.html +++ b/www/js/pages/info/template.html @@ -8,15 +8,15 @@ <ion-content class="has-header info"> <h3 class="title-section" translate="info_title_1"></h3> <div class="social-networks"> - <a ng-href='{{"instagram_link"|translate}}' onclick="window.open(this.href, '_system', 'location=yes'); return false;"> + <a ng-href='{{"instagram_link"|translate}}' onclick="window.open(this.href, '_system', 'location=yes');"> <img src="img/instagram.png"> <p>Instagram</p> </a> - <a ng-href='{{"facebook_link"|translate}}' onclick="window.open(this.href, '_system', 'location=yes'); return false;"> + <a ng-href='{{"facebook_link"|translate}}' onclick="window.open(this.href, '_system', 'location=yes');"> <img src="img/facebook.png"> <p>Facebook</p> </a> - <a ng-href='{{"twitter_link"|translate}}' onclick="window.open(this.href, '_system', 'location=yes'); return false;"> + <a ng-href='{{"twitter_link"|translate}}' onclick="window.open(this.href, '_system', 'location=yes');"> <img src="img/twitter.png"> <p>Twitter</p> </a> diff --git a/www/js/pages/notifications/controller.js b/www/js/pages/notifications/controller.js index 62e386ebc6cc6a3c2773e1b2a96b3d10641c9828..2b3b42118e26a65bfb7e6a6d21b7ed76b950754e 100644 --- a/www/js/pages/notifications/controller.js +++ b/www/js/pages/notifications/controller.js @@ -94,6 +94,10 @@ }); $scope.$on("$ionicView.beforeEnter", function(event, data){ + + // Each time we open the notification page, we clean the badge + window.FirebasePlugin.setBadgeNumber(0); + $ionicLoading.show({ template: '<ion-spinner icon="ripple" class="spinner-assertive"></ion-spinner>', animation: 'fade-in',