From bf9ad6fc06b6d904d6d08fd005a6e12a55f8414d Mon Sep 17 00:00:00 2001
From: blavenie <benoit.lavenier@e-is.pro>
Date: Tue, 5 Jul 2016 10:25:10 +0200
Subject: [PATCH] - disable effects on old device (=without 'a' grade) - clean
code on motion effects
---
www/js/app.js | 46 +++++++----
www/js/controllers/currency-controllers.js | 20 +++--
www/js/controllers/wallet-controllers.js | 9 +-
www/js/controllers/wot-controllers.js | 12 +--
www/js/services/utils-services.js | 95 ++++++++++++++--------
www/templates/wot/view_identity.html | 2 +-
6 files changed, 111 insertions(+), 73 deletions(-)
diff --git a/www/js/app.js b/www/js/app.js
index f15edef4..4a59bf35 100644
--- a/www/js/app.js
+++ b/www/js/app.js
@@ -18,23 +18,26 @@ angular.module('cesium', ['ionic', 'ionic-material', 'ngMessages', 'ngAnimate',
})
.filter('formatDecimal', function() {
- return function(input) {
- if (input === undefined) return '0';
- //if (input === Infinity || input === -Infinity) {
- // return '∞';
- //}
- if (Math.abs(input) < 0.0001) return '~ 0';
- return numeral(input-0.00005).format('0,0.0000').replace(',', ' ');
- };
- })
+ return function(input) {
+ if (input === undefined) return '0';
+ //if (input === Infinity || input === -Infinity) {
+ // return '∞';
+ //}
+ if (Math.abs(input) < 0.0001) return '~ 0';
+ return numeral(input-0.00005).format('0,0.0000').replace(',', ' ');
+ };
+ })
.filter('formatNumeral', function() {
- return function(input, pattern) {
- if (input === undefined) return '0';
- if (Math.abs(input) < 0.0001) return '~ 0';
- return numeral(input).format(pattern).replace(',', ' ');
- };
- })
+ return function(input, pattern) {
+ if (input === undefined) return '0';
+ //if (isNaN(input)) {
+ // return 'NaN';
+ //}
+ if (Math.abs(input) < 0.0001) return '~ 0';
+ return numeral(input).format(pattern).replace(',', ' ');
+ };
+ })
.filter('formatDate', function() {
return function(input) {
@@ -140,7 +143,8 @@ angular.module('cesium', ['ionic', 'ionic-material', 'ngMessages', 'ngAnimate',
.config(function($ionicNativeTransitionsProvider){
'ngInject';
// Use native transition
- var enableNativeTransitions = ionic.Platform.isAndroid() || ionic.Platform.isIOS();
+ var enableNativeTransitions = (ionic.Platform.isAndroid() || ionic.Platform.isIOS()) &&
+ ionic.Platform.grade.toLowerCase()=='a';
$ionicNativeTransitionsProvider.enable(enableNativeTransitions);
})
// endRemoveIf(no-device)
@@ -230,7 +234,8 @@ angular.module('cesium', ['ionic', 'ionic-material', 'ngMessages', 'ngAnimate',
};
})
-.run(function($rootScope, amMoment, $translate, Device) {
+.run(function($rootScope, amMoment, $translate, Device, UIUtils, $ionicConfig
+) {
'ngInject';
// We use 'Device.ready()' instead of '$ionicPlatform.ready()', because it could be call many times
@@ -255,6 +260,13 @@ angular.module('cesium', ['ionic', 'ionic-material', 'ngMessages', 'ngAnimate',
// org.apache.cordova.statusbar required
StatusBar.styleDefault();
}
+
+ // Ionic Platform Grade is not A, disabling views transitions
+ if (ionic.Platform.grade.toLowerCase()!='a') {
+ console.log('Disable visual effects because plateform grade is not [a] but [' + ionic.Platform.grade + ']');
+ $ionicConfig.views.transition('none');
+ UIUtils.disableEffects();
+ }
});
$rootScope.onLanguageChange = function() {
diff --git a/www/js/controllers/currency-controllers.js b/www/js/controllers/currency-controllers.js
index 84496d69..f0a9aafe 100644
--- a/www/js/controllers/currency-controllers.js
+++ b/www/js/controllers/currency-controllers.js
@@ -95,13 +95,7 @@ function CurrencyViewController($scope, $rootScope, $state, BMA, $q, UIUtils, $i
PeersController.call(this, $scope, $rootScope, BMA, UIUtils, $q, $interval, $timeout);
- $scope.search = {
- text: '',
- results: {},
- options: {
- listInset: true
- }
- };
+ $scope.search = {};
$scope.formData = {
useRelative: Wallet.data.settings.useRelative
};
@@ -109,6 +103,18 @@ function CurrencyViewController($scope, $rootScope, $state, BMA, $q, UIUtils, $i
$scope.node = null;
$scope.loading = true;
+ $scope.currency = '';
+ $scope.M = 0;
+ $scope.MoverN = 0;
+ $scope.UD = 0;
+ $scope.cactual = 0;
+ $scope.c = 0;
+ $scope.dt = 0;
+ $scope.sigQty = 0;
+ $scope.time = 0;
+ $scope.difficulty = 0;
+ $scope.Nprev = 0;
+
$scope.$on('$ionicView.enter', function(e, $state) {
$scope.closeNode();
diff --git a/www/js/controllers/wallet-controllers.js b/www/js/controllers/wallet-controllers.js
index fd003ee9..3b5756a3 100644
--- a/www/js/controllers/wallet-controllers.js
+++ b/www/js/controllers/wallet-controllers.js
@@ -90,9 +90,7 @@ function WalletController($scope, $rootScope, $state, $q, $ionicPopup, $ionicAct
$scope.refreshConvertedBalance();
// Set Motion
$timeout(function() {
- UIUtils.motion.fadeSlideInRight({
- startVelocity: 3000
- });
+ UIUtils.motion.fadeSlideInRight();
// Set Ink
UIUtils.ink({selector: '.item'});
}, 10);
@@ -121,7 +119,6 @@ function WalletController($scope, $rootScope, $state, $q, $ionicPopup, $ionicAct
// Set Motion
$timeout(function() {
UIUtils.motion.fadeSlideInRight({
- startVelocity: 3000,
selector: '.item-pending'
});
// Set Ink
@@ -353,9 +350,7 @@ function WalletTxErrorController($scope, $rootScope, $ionicPopup, $timeout, UIUt
$scope.walletData = wallet;
// Set Motion
$timeout(function() {
- UIUtils.motion.fadeSlideInRight({
- startVelocity: 3000
- });
+ UIUtils.motion.fadeSlideInRight();
// Set Ink
UIUtils.ink({selector: '.item'});
}, 10);
diff --git a/www/js/controllers/wot-controllers.js b/www/js/controllers/wot-controllers.js
index 47157e65..411c57f8 100644
--- a/www/js/controllers/wot-controllers.js
+++ b/www/js/controllers/wot-controllers.js
@@ -161,11 +161,8 @@ function WotIdentityViewController($scope, $state, BMA, Wallet, UIUtils, $q, $ti
$scope.loaded = true;
$timeout(function() {
- UIUtils.motion.fadeSlideInRight({
- selector: '.animate-fade-slide-in .item',
- startVelocity: 3000
- });
- }, 100);
+ UIUtils.motion.fadeSlideInRight();
+ }, 10);
UIUtils.ink();
};
BMA.wot.lookup({ search: pub })
@@ -285,10 +282,7 @@ function WotCertificationsViewController($scope, $state, BMA, Wallet, UIUtils, $
$scope.loaded = true;
// Set Motion
$timeout(function() {
- UIUtils.motion.fadeSlideInRight({
- selector: '.animate-fade-slide-in-right .item',
- startVelocity: 3000
- });
+ UIUtils.motion.fadeSlideInRight();
}, 10);
if ($scope.canCertify) {
$scope.showFab('fab-certify');
diff --git a/www/js/services/utils-services.js b/www/js/services/utils-services.js
index 6390c5d6..5e882458 100644
--- a/www/js/services/utils-services.js
+++ b/www/js/services/utils-services.js
@@ -167,51 +167,81 @@ angular.module('cesium.utils.services', ['ngResource'])
}
function resizeImageFromFile(file) {
- return $q(function(resolve, reject) {
+ return $q(function(resolve, reject) {
- var reader = new FileReader();
+ var reader = new FileReader();
- reader.onload = function(event){
- var img = document.createElement("img");
+ reader.onload = function(event){
+ var img = document.createElement("img");
- img.onload = function(event) {
- var width = event.target.width;
- var height = event.target.height;
+ img.onload = function(event) {
+ var width = event.target.width;
+ var height = event.target.height;
- if (width > height) {
- if (width > CONST.MAX_WIDTH) {
- height *= CONST.MAX_WIDTH / width;
- width = CONST.MAX_WIDTH;
- }
- } else {
- if (height > CONST.MAX_HEIGHT) {
- width *= CONST.MAX_HEIGHT / height;
- height = CONST.MAX_HEIGHT;
- }
+ if (width > height) {
+ if (width > CONST.MAX_WIDTH) {
+ height *= CONST.MAX_WIDTH / width;
+ width = CONST.MAX_WIDTH;
}
- var canvas = document.createElement("canvas");
- canvas.width = width;
- canvas.height = height;
- var ctx = canvas.getContext("2d");
- ctx.drawImage(event.target, 0, 0, canvas.width, canvas.height);
-
- var dataurl = canvas.toDataURL();
+ } else {
+ if (height > CONST.MAX_HEIGHT) {
+ width *= CONST.MAX_HEIGHT / height;
+ height = CONST.MAX_HEIGHT;
+ }
+ }
+ var canvas = document.createElement("canvas");
+ canvas.width = width;
+ canvas.height = height;
+ var ctx = canvas.getContext("2d");
+ ctx.drawImage(event.target, 0, 0, canvas.width, canvas.height);
- resolve(dataurl);
- };
+ var dataurl = canvas.toDataURL();
- img.src = event.target.result;
+ resolve(dataurl);
};
- if (file) {
- reader.readAsDataURL(file);
+ img.src = event.target.result;
+ };
+
+ if (file) {
+ reader.readAsDataURL(file);
+ }
+ else {
+ //reject("Not a file");
+ }
+ });
+ }
+
+ function disableEffects() {
+ this.ink = function(){};
+
+ function disableMotion(baseSelector) {
+ return function(options) {
+ if (!options || !options.selector) {
+ options = {
+ selector: (baseSelector + ' .item')
+ };
}
- else {
- //reject("Not a file");
+ var parentsInDom = document.querySelectorAll(baseSelector);
+ for (var i = 0; i < parentsInDom.length; i++) {
+ var parent = parentsInDom[i];
+ parent.className = parent.className.replace(/\banimate-[a-z- ]+\b/,'');
}
- });
+
+ var itemsInDom = document.querySelectorAll(options.selector);
+ for (var j = 0; j < itemsInDom.length; j++) {
+ var child = itemsInDom[j];
+ child.style.webkitTransitionDelay = "0s";
+ child.style.transitionDelay = "0s";
+ child.className += ' in done';
+ }
+ };
}
+ this.motion.fadeSlideIn= disableMotion('.animate-fade-slide-in');
+ this.motion.fadeSlideInRight = disableMotion('.animate-fade-slide-in-right');
+ }
+
return {
alert: {
error: alertError,
@@ -228,6 +258,7 @@ angular.module('cesium.utils.services', ['ngResource'])
onError: onError,
ink: ionicMaterialInk.displayEffect,
motion: ionicMaterialMotion,
+ disableEffects: disableEffects,
selection: {
select: selectElementText,
get: getSelectionText
diff --git a/www/templates/wot/view_identity.html b/www/templates/wot/view_identity.html
index 87b1911e..ecb57b42 100644
--- a/www/templates/wot/view_identity.html
+++ b/www/templates/wot/view_identity.html
@@ -30,7 +30,7 @@
<div class="col col-20 hidden-xs hidden-sm">
</div>
- <div class="col list animate-fade-slide-in">
+ <div class="col list animate-fade-slide-in-right">
<!-- Certifications count -->
<a class="item item-icon-left item-text-wrap item-icon-right ink" ng-if="hasSelf"
--
GitLab