From 8efff48aeb24b733727dfab058b21aa69f28f879 Mon Sep 17 00:00:00 2001 From: Sam Cheng Hung Date: Thu, 5 Apr 2018 11:20:49 +0900 Subject: [PATCH] Update: Improves send screen layout --- app-template/package-template.json | 1 + src/js/controllers/amount.js | 4 + src/js/controllers/tab-send.js | 11 ++ src/sass/views/amount.scss | 240 ++++++++++++++++++++++++----- www/css/main.css | 168 +++++++++++++++----- www/img/icon-convert.svg | 15 ++ www/views/amount.html | 122 +++++++-------- www/views/tab-send.html | 6 +- 8 files changed, 429 insertions(+), 138 deletions(-) create mode 100644 www/img/icon-convert.svg diff --git a/app-template/package-template.json b/app-template/package-template.json index 3c92fdbbd..c4f6ec125 100644 --- a/app-template/package-template.json +++ b/app-template/package-template.json @@ -60,6 +60,7 @@ "bower": "^1.7.9", "cordova-custom-config": "^3.0.5", "cordova-plugin-qrscanner": "^2.5.0", + "cordova-plugin-vibration": "^3.0.1", "coveralls": "^2.11.9", "express": "^4.11.2", "fs": "0.0.2", diff --git a/src/js/controllers/amount.js b/src/js/controllers/amount.js index 15d7b27e6..fdf12b7e3 100644 --- a/src/js/controllers/amount.js +++ b/src/js/controllers/amount.js @@ -240,6 +240,7 @@ angular.module('copayApp.controllers').controller('amountController', function($ }; $scope.changeUnit = function() { + $scope.amountModel.amount = ''; if ($scope.alternativeAmount == 0) { $scope.alternativeAmount = null; @@ -294,6 +295,7 @@ angular.module('copayApp.controllers').controller('amountController', function($ $scope.amountModel.amount = ($scope.amountModel.amount + digit).replace('..', '.'); checkFontSize(); $scope.processAmount(); + navigator.vibrate(50); }; $scope.pushOperator = function(operator) { @@ -323,6 +325,7 @@ angular.module('copayApp.controllers').controller('amountController', function($ $scope.amountModel.amount = ($scope.amountModel.amount).toString().slice(0, -1); $scope.processAmount(); checkFontSize(); + navigator.vibrate(50); }; $scope.resetAmount = function() { @@ -464,6 +467,7 @@ angular.module('copayApp.controllers').controller('amountController', function($ $state.transitionTo('tabs.send.confirm', confirmData); } $scope.useSendMax = null; + navigator.vibrate(50); } if ($scope.showWarningMessage) { diff --git a/src/js/controllers/tab-send.js b/src/js/controllers/tab-send.js index bfda5cfc4..97e6992ac 100644 --- a/src/js/controllers/tab-send.js +++ b/src/js/controllers/tab-send.js @@ -5,6 +5,9 @@ angular.module('copayApp.controllers').controller('tabSendController', function( var originalList; var CONTACTS_SHOW_LIMIT; var currentContactsPage; + $scope.sectionDisplay = { + transferToWallet: false + }; $scope.isChromeApp = platformInfo.isChromeApp; @@ -247,4 +250,12 @@ angular.module('copayApp.controllers').controller('tabSendController', function( updateList(); }); }); + + $scope.toggle = function(section) { + $scope.sectionDisplay[section] = !$scope.sectionDisplay[section]; + $timeout(function() { + $ionicScrollDelegate.resize(); + $scope.$apply(); + }, 10); + }; }); diff --git a/src/sass/views/amount.scss b/src/sass/views/amount.scss index cd77cb501..22c5ff229 100644 --- a/src/sass/views/amount.scss +++ b/src/sass/views/amount.scss @@ -233,58 +233,220 @@ } } } - .keypad { - text-align: center; - font-size: 24px; - font-weight: lighter; - position: absolute; - bottom: 0; - width: 100%; - color: $v-mid-gray; - .row { - padding: 0 !important; - margin: 0 !important; - } + .scroll-content { + display: flex; + flex-direction: column; - .col { - line-height: 45px; - } + .send-amount { + flex: 1 1 auto; + display: flex; + flex-direction: column; + justify-content: center; - .operator { - background-color: $v-subtle-gray; - font-weight: normal; - cursor: pointer; + .send-amount-tool { + flex: 0 1 auto; - &:active { - background-color: $v-light-gray; + .send-amount-tool-input { + text-align: center; + position: relative; + padding: 10px 30px; + + .primary-amount { + input, .unit, .primary-amount-display { + font-size: 1.8em; + + @media (min-width: 375px) { + font-size: 2.1em; + } + + @media (min-width: 414px) { + font-size: 2.4em; + } + } + + &.long { + input, .unit, .primary-amount-display { + font-size: 1.6em; + + @media (min-width: 375px) { + font-size: 1.8em; + } + + @media (min-width: 414px) { + font-size: 2em; + } + } + } + + &.very-long { + input, .unit, .primary-amount-display { + font-size: 0.9em; + + @media (min-width: 375px) { + font-size: 1.3em; + } + + @media (min-width: 414px) { + font-size: 1.4em; + } + } + } + + + input { + border:0; + padding:0; + white-space:normal; + background:none; + line-height:1; + box-sizing:content-box; + display: inline-block; + vertical-align: middle; + margin: 0; + height: 1em; + margin-right: 5px; + font-family: 'ProximaNova'; + + @media (min-width: 375px) { + } + + @media (min-width: 414px) { + } + } + + .unit, + .primary-amount-display { + display: inline-block; + vertical-align: middle; + line-height: 1em; + } + + .unit { + font-weight: bold; + } + + .primary-amount-display { + margin-right: 5px; + word-break: break-all; + } + } + + .switch-currencies { + position: absolute; + right: 0; + top: 50%; + transform: translate(0, -50%); + padding: 5px; + + img { + width: 18px; + } + } + } + + .send-amount-actions { + margin-top: 15px; + } } } - .operator-send { - font-weight: bolder; - color: #fff; - background-color: $positive; - font-size: 36px; - cursor: pointer; - - &:active { - background-color: #eaeaea; + .button { + &.no-margin { + margin: 0; } } - .digit{ - cursor: pointer; - border-top: 1px solid $v-subtle-gray; - border-left: 1px solid $v-subtle-gray; - &:active { - background-color: $v-subtle-gray; - } + .notification-warning { + display: block; + padding: .75rem 1.25rem; + color: #856404; + background-color: #fff3cd; + border: 1px solid #ffeeba; + line-height: 1.4em; + margin-bottom: 20px; } - @media(max-height: 480px) { - font-size: 12px; + .keypad-container { + position: relative; + flex: 0 1 196px; + @media (min-height: 667px) { + flex: 0 1 224px; + } + + .keypad { + text-align: center; + font-size: 18px; + font-weight: lighter; + position: absolute; + bottom: 0; + width: 100%; + color: $v-mid-gray; + + @media (min-height: 667px) { + font-size: 24px; + } + + .row { + padding: 0 !important; + margin: 0 !important; + } + + .col { + line-height: 38px; + + @media (min-height: 667px) { + line-height: 45px; + } + } + + .row { + &:last-child { + .col { + padding-bottom: 10px; + } + } + } + + .operator { + background-color: $v-subtle-gray; + font-weight: normal; + cursor: pointer; + + &:active { + background-color: $v-light-gray; + } + } + + .operator-send { + font-weight: bolder; + color: #fff; + background-color: $positive; + font-size: 36px; + cursor: pointer; + + &:active { + background-color: #eaeaea; + } + } + + .digit{ + cursor: pointer; + border-top: 1px solid $v-subtle-gray; + border-left: 1px solid $v-subtle-gray; + transition: all 0.1s ease; + + &:active { + background-color: $v-subtle-gray; + } + } + + @media(max-height: 480px) { + font-size: 12px; + + } + } } } } diff --git a/www/css/main.css b/www/css/main.css index dfdcd76e2..a68565e64 100644 --- a/www/css/main.css +++ b/www/css/main.css @@ -10422,42 +10422,138 @@ textarea.d-block { margin-top: 0; font-size: 16px; } } -#view-amount .keypad { - text-align: center; - font-size: 24px; - font-weight: lighter; - position: absolute; - bottom: 0; - width: 100%; - color: #667; } - #view-amount .keypad .row { - padding: 0 !important; - margin: 0 !important; } - #view-amount .keypad .col { - line-height: 45px; } - #view-amount .keypad .operator { - background-color: #f2f2f2; - font-weight: normal; - cursor: pointer; } - #view-amount .keypad .operator:active { - background-color: #9b9bab; } - #view-amount .keypad .operator-send { - font-weight: bolder; - color: #fff; - background-color: #494949; - font-size: 36px; - cursor: pointer; } - #view-amount .keypad .operator-send:active { - background-color: #eaeaea; } - #view-amount .keypad .digit { - cursor: pointer; - border-top: 1px solid #f2f2f2; - border-left: 1px solid #f2f2f2; } - #view-amount .keypad .digit:active { - background-color: #f2f2f2; } - @media (max-height: 480px) { - #view-amount .keypad { - font-size: 12px; } } +#view-amount .scroll-content { + display: flex; + flex-direction: column; } + #view-amount .scroll-content .send-amount { + flex: 1 1 auto; + display: flex; + flex-direction: column; + justify-content: center; } + #view-amount .scroll-content .send-amount .send-amount-tool { + flex: 0 1 auto; } + #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input { + text-align: center; + position: relative; + padding: 10px 30px; } + #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount input, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .unit, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .primary-amount-display { + font-size: 1.8em; } + @media (min-width: 375px) { + #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount input, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .unit, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .primary-amount-display { + font-size: 2.1em; } } + @media (min-width: 414px) { + #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount input, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .unit, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .primary-amount-display { + font-size: 2.4em; } } + #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.long input, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.long .unit, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.long .primary-amount-display { + font-size: 1.6em; } + @media (min-width: 375px) { + #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.long input, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.long .unit, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.long .primary-amount-display { + font-size: 1.8em; } } + @media (min-width: 414px) { + #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.long input, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.long .unit, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.long .primary-amount-display { + font-size: 2em; } } + #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.very-long input, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.very-long .unit, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.very-long .primary-amount-display { + font-size: 0.9em; } + @media (min-width: 375px) { + #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.very-long input, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.very-long .unit, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.very-long .primary-amount-display { + font-size: 1.3em; } } + @media (min-width: 414px) { + #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.very-long input, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.very-long .unit, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.very-long .primary-amount-display { + font-size: 1.4em; } } + #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount input { + border: 0; + padding: 0; + white-space: normal; + background: none; + line-height: 1; + box-sizing: content-box; + display: inline-block; + vertical-align: middle; + margin: 0; + height: 1em; + margin-right: 5px; + font-family: 'ProximaNova'; } + #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .unit, + #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .primary-amount-display { + display: inline-block; + vertical-align: middle; + line-height: 1em; } + #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .unit { + font-weight: bold; } + #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .primary-amount-display { + margin-right: 5px; + word-break: break-all; } + #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .switch-currencies { + position: absolute; + right: 0; + top: 50%; + transform: translate(0, -50%); + padding: 5px; } + #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .switch-currencies img { + width: 18px; } + #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-actions { + margin-top: 15px; } + #view-amount .scroll-content .button.no-margin { + margin: 0; } + #view-amount .scroll-content .notification-warning { + display: block; + padding: .75rem 1.25rem; + color: #856404; + background-color: #fff3cd; + border: 1px solid #ffeeba; + line-height: 1.4em; + margin-bottom: 20px; } + #view-amount .scroll-content .keypad-container { + position: relative; + flex: 0 1 196px; } + @media (min-height: 667px) { + #view-amount .scroll-content .keypad-container { + flex: 0 1 224px; } } + #view-amount .scroll-content .keypad-container .keypad { + text-align: center; + font-size: 18px; + font-weight: lighter; + position: absolute; + bottom: 0; + width: 100%; + color: #667; } + @media (min-height: 667px) { + #view-amount .scroll-content .keypad-container .keypad { + font-size: 24px; } } + #view-amount .scroll-content .keypad-container .keypad .row { + padding: 0 !important; + margin: 0 !important; } + #view-amount .scroll-content .keypad-container .keypad .col { + line-height: 38px; } + @media (min-height: 667px) { + #view-amount .scroll-content .keypad-container .keypad .col { + line-height: 45px; } } + #view-amount .scroll-content .keypad-container .keypad .row:last-child .col { + padding-bottom: 10px; } + #view-amount .scroll-content .keypad-container .keypad .operator { + background-color: #f2f2f2; + font-weight: normal; + cursor: pointer; } + #view-amount .scroll-content .keypad-container .keypad .operator:active { + background-color: #9b9bab; } + #view-amount .scroll-content .keypad-container .keypad .operator-send { + font-weight: bolder; + color: #fff; + background-color: #494949; + font-size: 36px; + cursor: pointer; } + #view-amount .scroll-content .keypad-container .keypad .operator-send:active { + background-color: #eaeaea; } + #view-amount .scroll-content .keypad-container .keypad .digit { + cursor: pointer; + border-top: 1px solid #f2f2f2; + border-left: 1px solid #f2f2f2; + transition: all 0.1s ease; } + #view-amount .scroll-content .keypad-container .keypad .digit:active { + background-color: #f2f2f2; } + @media (max-height: 480px) { + #view-amount .scroll-content .keypad-container .keypad { + font-size: 12px; } } #view-confirm { background-color: #ffffff; } diff --git a/www/img/icon-convert.svg b/www/img/icon-convert.svg new file mode 100644 index 000000000..01b9016e1 --- /dev/null +++ b/www/img/icon-convert.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + diff --git a/www/views/amount.html b/www/views/amount.html index a1dd8bd7b..28a8ff14d 100644 --- a/www/views/amount.html +++ b/www/views/amount.html @@ -29,8 +29,8 @@ -
- Note: Address doesn't contain currency information, please make sure you are sending the correct currency. +
+ Note: Address doesn't contain currency information, please make sure you are sending the correct currency.
Amount @@ -61,77 +61,77 @@
-
- Note: Address doesn't contain currency information, please make sure you are sending the correct currency.

- Amount
+
+ Note: Address doesn't contain currency information, please make sure you are sending the correct currency.
Minimum amount: {{minShapeshiftAmount}}
Maximum amount: {{maxShapeshiftAmount}}
-
- - - {{unit}} - - {{globalResult}} {{unit}} - <> {{alternativeAmount || '0.00'}} {{alternativeUnit}} -
-
- - -
-
- -
- -
- -
-
-
-
- +
+
+
+ {{ amountModel.amount || 0 }}{{unit}} +
+ {{globalResult}} {{unit}} +
+ {{alternativeAmount || '0.00'}} {{alternativeUnit}} +
+
+
+
+
+
-
-
7
-
8
-
9
-
÷
-
+
+
+
+
+ +
+
-
-
4
-
5
-
6
-
×
-
+
+
7
+
8
+
9
+
-
-
1
-
2
-
3
-
+
-
+
+
4
+
5
+
6
+
-
-
.
-
0
-
-
+
+
1
+
2
+
3
+
+ +
+
.
+
0
+
+
+ diff --git a/www/views/tab-send.html b/www/views/tab-send.html index c5bfd27ef..2f33a863e 100644 --- a/www/views/tab-send.html +++ b/www/views/tab-send.html @@ -66,10 +66,12 @@
-
+
Transfer to Wallet + +
-
+