Merge pull request #5706 from gabrielbazan7/fix/swipeios

Fix swipe back on ios
This commit is contained in:
Gustavo Maximiliano Cortez 2017-03-03 11:45:21 -03:00 committed by GitHub
commit 162357835c
15 changed files with 93 additions and 33 deletions

View file

@ -7,7 +7,14 @@ angular.module('copayApp.controllers').controller('confirmController', function(
var countDown = null; var countDown = null;
var cachedSendMax = {}; var cachedSendMax = {};
$scope.isCordova = platformInfo.isCordova; $scope.isCordova = platformInfo.isCordova;
$ionicConfig.views.swipeBackEnabled(false);
$scope.$on("$ionicView.beforeLeave", function(event, data) {
$ionicConfig.views.swipeBackEnabled(true);
});
$scope.$on("$ionicView.enter", function(event, data) {
$ionicConfig.views.swipeBackEnabled(false);
});
$scope.$on("$ionicView.beforeEnter", function(event, data) { $scope.$on("$ionicView.beforeEnter", function(event, data) {

View file

@ -46,6 +46,15 @@ angular.module('copayApp.controllers').controller('completeController', function
}); });
}; };
$scope.$on("$ionicView.beforeLeave", function() {
$ionicConfig.views.swipeBackEnabled(true);
});
$scope.$on("$ionicView.enter", function() {
if (!$scope.fromSettings)
$ionicConfig.views.swipeBackEnabled(false);
});
$scope.$on("$ionicView.beforeEnter", function(event, data) { $scope.$on("$ionicView.beforeEnter", function(event, data) {
$scope.score = (data.stateParams && data.stateParams.score) ? parseInt(data.stateParams.score) : null; $scope.score = (data.stateParams && data.stateParams.score) ? parseInt(data.stateParams.score) : null;
$scope.skipped = (data.stateParams && data.stateParams.skipped) ? true : false; $scope.skipped = (data.stateParams && data.stateParams.skipped) ? true : false;
@ -53,11 +62,9 @@ angular.module('copayApp.controllers').controller('completeController', function
$scope.fromSettings = (data.stateParams && data.stateParams.fromSettings) ? true : false; $scope.fromSettings = (data.stateParams && data.stateParams.fromSettings) ? true : false;
if (!$scope.fromSettings) { if (!$scope.fromSettings) {
$ionicConfig.views.swipeBackEnabled(false);
$ionicNavBarDelegate.showBackButton(false); $ionicNavBarDelegate.showBackButton(false);
} else { } else {
$ionicNavBarDelegate.showBackButton(true); $ionicNavBarDelegate.showBackButton(true);
$ionicConfig.views.swipeBackEnabled(true);
} }
storageService.getFeedbackInfo(function(error, info) { storageService.getFeedbackInfo(function(error, info) {

View file

@ -41,15 +41,20 @@ angular.module('copayApp.controllers').controller('sendController', function($sc
if (goHome) $state.go('tabs.home'); if (goHome) $state.go('tabs.home');
}; };
$scope.$on("$ionicView.beforeLeave", function(event, data) {
$ionicConfig.views.swipeBackEnabled(true);
});
$scope.$on("$ionicView.enter", function(event, data) {
if ($scope.score)
$ionicConfig.views.swipeBackEnabled(false);
});
$scope.$on("$ionicView.beforeEnter", function(event, data) { $scope.$on("$ionicView.beforeEnter", function(event, data) {
$scope.isCordova = platformInfo.isCordova; $scope.isCordova = platformInfo.isCordova;
$scope.score = (data.stateParams && data.stateParams.score) ? parseInt(data.stateParams.score) : null; $scope.score = (data.stateParams && data.stateParams.score) ? parseInt(data.stateParams.score) : null;
$scope.feedback = {}; $scope.feedback = {};
if ($scope.score) {
$ionicConfig.views.swipeBackEnabled(false);
}
switch ($scope.score) { switch ($scope.score) {
case 1: case 1:
$scope.reaction = "Ouch!"; $scope.reaction = "Ouch!";

View file

@ -2,9 +2,16 @@
angular.module('copayApp.controllers').controller('backupRequestController', function($scope, $state, $stateParams, $ionicConfig, popupService, gettextCatalog) { angular.module('copayApp.controllers').controller('backupRequestController', function($scope, $state, $stateParams, $ionicConfig, popupService, gettextCatalog) {
$ionicConfig.views.swipeBackEnabled(false);
$scope.walletId = $stateParams.walletId; $scope.walletId = $stateParams.walletId;
$scope.$on("$ionicView.enter", function() {
$ionicConfig.views.swipeBackEnabled(false);
});
$scope.$on("$ionicView.beforeLeave", function() {
$ionicConfig.views.swipeBackEnabled(true);
});
$scope.openPopup = function() { $scope.openPopup = function() {
var title = gettextCatalog.getString('Watch out!'); var title = gettextCatalog.getString('Watch out!');

View file

@ -2,7 +2,14 @@
angular.module('copayApp.controllers').controller('collectEmailController', function($scope, $state, $timeout, $stateParams, $ionicConfig, profileService, configService, walletService, platformInfo) { angular.module('copayApp.controllers').controller('collectEmailController', function($scope, $state, $timeout, $stateParams, $ionicConfig, profileService, configService, walletService, platformInfo) {
$ionicConfig.views.swipeBackEnabled(false); $scope.$on("$ionicView.beforeLeave", function() {
$ionicConfig.views.swipeBackEnabled(true);
});
$scope.$on("$ionicView.enter", function() {
$ionicConfig.views.swipeBackEnabled(false);
});
var isCordova = platformInfo.isCordova; var isCordova = platformInfo.isCordova;
var isWP = platformInfo.isWP; var isWP = platformInfo.isWP;
var usePushNotifications = isCordova && !isWP; var usePushNotifications = isCordova && !isWP;
@ -34,8 +41,7 @@ angular.module('copayApp.controllers').controller('collectEmailController', func
$state.go('onboarding.backupRequest', { $state.go('onboarding.backupRequest', {
walletId: walletId walletId: walletId
}); });
} } else if (requiresOptIn) {
else if (requiresOptIn) {
$state.go('onboarding.notifications', { $state.go('onboarding.notifications', {
walletId: walletId walletId: walletId
}); });

View file

@ -1,6 +1,6 @@
'use strict'; 'use strict';
angular.module('copayApp.controllers').controller('disclaimerController', function($scope, $timeout, $state, $log, $ionicModal, profileService, uxLanguage, externalLinkService, storageService, $stateParams, startupService, $rootScope) { angular.module('copayApp.controllers').controller('disclaimerController', function($scope, $timeout, $state, $log, $ionicModal, $ionicConfig, profileService, uxLanguage, externalLinkService, storageService, $stateParams, startupService, $rootScope) {
$scope.$on("$ionicView.afterEnter", function() { $scope.$on("$ionicView.afterEnter", function() {
startupService.ready(); startupService.ready();
@ -11,11 +11,19 @@ angular.module('copayApp.controllers').controller('disclaimerController', functi
$scope.terms = {}; $scope.terms = {};
$scope.accepted = {}; $scope.accepted = {};
$scope.accepted.first = $scope.accepted.second = $scope.accepted.third = false; $scope.accepted.first = $scope.accepted.second = $scope.accepted.third = false;
$scope.backedUp = $stateParams.backedUp; $scope.backedUp = $stateParams.backedUp == 'false' ? false : true;
$scope.resume = $stateParams.resume; $scope.resume = $stateParams.resume || false;
$scope.shrinkView = false; $scope.shrinkView = false;
}); });
$scope.$on("$ionicView.enter", function() {
if ($scope.backedUp || $scope.resume) $ionicConfig.views.swipeBackEnabled(false);
});
$scope.$on("$ionicView.beforeLeave", function() {
$ionicConfig.views.swipeBackEnabled(true);
});
$scope.confirm = function() { $scope.confirm = function() {
profileService.setDisclaimerAccepted(function(err) { profileService.setDisclaimerAccepted(function(err) {
if (err) $log.error(err); if (err) $log.error(err);

View file

@ -2,7 +2,14 @@
angular.module('copayApp.controllers').controller('notificationsController', function($scope, $state, $timeout, $stateParams, $ionicConfig, profileService, configService, $interval) { angular.module('copayApp.controllers').controller('notificationsController', function($scope, $state, $timeout, $stateParams, $ionicConfig, profileService, configService, $interval) {
$ionicConfig.views.swipeBackEnabled(false); $scope.$on("$ionicView.enter", function() {
$ionicConfig.views.swipeBackEnabled(false);
});
$scope.$on("$ionicView.beforeLeave", function() {
$ionicConfig.views.swipeBackEnabled(true);
});
$scope.walletId = $stateParams.walletId; $scope.walletId = $stateParams.walletId;
$scope.allowNotif = function() { $scope.allowNotif = function() {

View file

@ -2,12 +2,18 @@
angular.module('copayApp.controllers').controller('welcomeController', function($scope, $state, $timeout, $ionicConfig, $log, profileService, startupService, storageService) { angular.module('copayApp.controllers').controller('welcomeController', function($scope, $state, $timeout, $ionicConfig, $log, profileService, startupService, storageService) {
$ionicConfig.views.swipeBackEnabled(false); $scope.$on("$ionicView.afterEnter", function() {
$scope.$parent.$on("$ionicView.afterEnter", function() {
startupService.ready(); startupService.ready();
}); });
$scope.$on("$ionicView.enter", function() {
$ionicConfig.views.swipeBackEnabled(false);
});
$scope.$on("$ionicView.beforeLeave", function() {
$ionicConfig.views.swipeBackEnabled(true);
});
$scope.createProfile = function() { $scope.createProfile = function() {
$log.debug('Creating profile'); $log.debug('Creating profile');
profileService.createProfile(function(err) { profileService.createProfile(function(err) {

View file

@ -699,7 +699,8 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
url: '/welcome', url: '/welcome',
views: { views: {
'onboarding': { 'onboarding': {
templateUrl: 'views/onboarding/welcome.html' templateUrl: 'views/onboarding/welcome.html',
controller: 'welcomeController'
} }
} }
}) })
@ -707,7 +708,8 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
url: '/tour', url: '/tour',
views: { views: {
'onboarding': { 'onboarding': {
templateUrl: 'views/onboarding/tour.html' templateUrl: 'views/onboarding/tour.html',
controller: 'tourController'
} }
} }
}) })
@ -715,7 +717,8 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
url: '/collectEmail/:walletId', url: '/collectEmail/:walletId',
views: { views: {
'onboarding': { 'onboarding': {
templateUrl: 'views/onboarding/collectEmail.html' templateUrl: 'views/onboarding/collectEmail.html',
controller: 'collectEmailController'
} }
} }
}) })
@ -723,7 +726,8 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
url: '/notifications/:walletId', url: '/notifications/:walletId',
views: { views: {
'onboarding': { 'onboarding': {
templateUrl: 'views/onboarding/notifications.html' templateUrl: 'views/onboarding/notifications.html',
controller: 'notificationsController'
} }
} }
}) })
@ -731,7 +735,8 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
url: '/backupRequest/:walletId', url: '/backupRequest/:walletId',
views: { views: {
'onboarding': { 'onboarding': {
templateUrl: 'views/onboarding/backupRequest.html' templateUrl: 'views/onboarding/backupRequest.html',
controller: 'backupRequestController'
} }
} }
}) })
@ -739,7 +744,8 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
url: '/backupWarning/:from/:walletId', url: '/backupWarning/:from/:walletId',
views: { views: {
'onboarding': { 'onboarding': {
templateUrl: 'views/backupWarning.html' templateUrl: 'views/backupWarning.html',
controller: 'backupWarningController'
} }
} }
}) })
@ -765,7 +771,8 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
url: '/terms', url: '/terms',
views: { views: {
'onboarding': { 'onboarding': {
templateUrl: 'views/onboarding/terms.html' templateUrl: 'views/onboarding/terms.html',
controller: 'termsController'
} }
} }
}) })

View file

@ -1,4 +1,4 @@
<ion-view id="backup-warning" class="onboarding" ng-controller="backupWarningController" hide-tabs> <ion-view id="backup-warning" class="onboarding" hide-tabs>
<ion-nav-bar> <ion-nav-bar>
<ion-nav-buttons side="primary"> <ion-nav-buttons side="primary">
<button class="button button-back button-clear" ng-click="goBack()"> <button class="button button-back button-clear" ng-click="goBack()">

View file

@ -1,5 +1,5 @@
<ion-view id="onboarding-backup-request" class="onboarding"> <ion-view id="onboarding-backup-request" class="onboarding">
<ion-content ng-controller="backupRequestController" scroll="false"> <ion-content scroll="false">
<div id="warning"> <div id="warning">
<img class="svg" src="img/onboarding-warning.svg" id="alert-icon"> <img class="svg" src="img/onboarding-warning.svg" id="alert-icon">
<div class="onboarding-topic" translate>No backup, no bitcoin.</div> <div class="onboarding-topic" translate>No backup, no bitcoin.</div>

View file

@ -1,4 +1,4 @@
<ion-view ng-controller="collectEmailController" id="onboarding-collect-email" class="onboarding"> <ion-view id="onboarding-collect-email" class="onboarding">
<ion-content scroll="false"> <ion-content scroll="false">
<div id="success-container"> <div id="success-container">
<img src="img/onboarding-success.svg" id="success-image" /> <img src="img/onboarding-success.svg" id="success-image" />

View file

@ -1,6 +1,6 @@
<ion-pane class="pane-onboarding"> <ion-pane class="pane-onboarding">
<ion-view id="onboarding-disclaimer" class="onboarding" ng-class="{'shrink': shrinkView}"> <ion-view id="onboarding-disclaimer" class="onboarding" ng-class="{'shrink': shrinkView}">
<ion-nav-bar class="bar-stable" ng-if="backedUp == 'false'"> <ion-nav-bar class="bar-stable" ng-if="!backedUp">
<ion-nav-title></ion-nav-title> <ion-nav-title></ion-nav-title>
<ion-nav-buttons side="primary"> <ion-nav-buttons side="primary">
<button class="button back-button button-clear" ng-click="goBack()"> <button class="button back-button button-clear" ng-click="goBack()">
@ -8,7 +8,7 @@
</button> </button>
</ion-nav-buttons> </ion-nav-buttons>
</ion-nav-bar> </ion-nav-bar>
<ion-content scroll="false" ng-class="{'has-header': backedUp == 'false'}"> <ion-content scroll="false" ng-class="{'has-header': !backedUp}">
<div id="onboarding-disclaimer-container"> <div id="onboarding-disclaimer-container">
<div ng-show="resume" class="onboarding-topic" id="disclaimer-topic" translate>Quick review!</div> <div ng-show="resume" class="onboarding-topic" id="disclaimer-topic" translate>Quick review!</div>
<div ng-show="!resume" class="onboarding-topic" id="disclaimer-topic" translate>Almost done! Let's review.</div> <div ng-show="!resume" class="onboarding-topic" id="disclaimer-topic" translate>Almost done! Let's review.</div>
@ -37,7 +37,7 @@
<div ng-include="'views/includes/terms.html'" direction="y"></div> <div ng-include="'views/includes/terms.html'" direction="y"></div>
</div> </div>
</div> </div>
<div id="agree-to-terms" ng-if="accepted.first && accepted.second" ng-class="{'header-present': backedUp == 'false'}"> <div id="agree-to-terms" ng-if="accepted.first && accepted.second" ng-class="{'header-present': !backedUp}">
<div id="agree-to-terms-content" class="center-block"> <div id="agree-to-terms-content" class="center-block">
<ion-checkbox ng-model="terms.accepted"></ion-checkbox> <ion-checkbox ng-model="terms.accepted"></ion-checkbox>
<p translate>I have read, understood, and agree to the <a ng-click="openTerms()" translate>Terms of Use</a>.</p> <p translate>I have read, understood, and agree to the <a ng-click="openTerms()" translate>Terms of Use</a>.</p>

View file

@ -1,5 +1,5 @@
<ion-view class="onboarding" id="onboarding-push-notifications"> <ion-view class="onboarding" id="onboarding-push-notifications">
<ion-content ng-controller="notificationsController" scroll="false"> <ion-content scroll="false">
<div class="onboarding-topic" id="notifications-topic" translate>Push Notifications</div> <div class="onboarding-topic" id="notifications-topic" translate>Push Notifications</div>
<div class="onboarding-description" translate>Would you like to receive push notifications about payments?</div> <div class="onboarding-description" translate>Would you like to receive push notifications about payments?</div>
<div class="onboarding-illustration-notifications"></div> <div class="onboarding-illustration-notifications"></div>

View file

@ -1,4 +1,4 @@
<ion-view ng-controller="tourController" class="onboarding" id="onboarding-tour"> <ion-view class="onboarding" id="onboarding-tour">
<ion-nav-bar> <ion-nav-bar>
<ion-nav-title></ion-nav-title> <ion-nav-title></ion-nav-title>
<ion-nav-buttons side="primary"> <ion-nav-buttons side="primary">