From e5c6e5a2d258a1d358081ccc151cc2f2d83ceff3 Mon Sep 17 00:00:00 2001 From: Andy Phillipson Date: Thu, 8 Jun 2017 17:43:06 -0400 Subject: [PATCH 01/17] Implement proper send search design. --- src/js/controllers/tab-send.js | 10 +++++++ src/sass/views/tab-send.scss | 54 +++++++++++++++++++++++++++++++++- www/views/tab-send.html | 16 ++++++---- 3 files changed, 73 insertions(+), 7 deletions(-) diff --git a/src/js/controllers/tab-send.js b/src/js/controllers/tab-send.js index 96694847f..5c2f576ec 100644 --- a/src/js/controllers/tab-send.js +++ b/src/js/controllers/tab-send.js @@ -128,6 +128,16 @@ angular.module('copayApp.controllers').controller('tabSendController', function( updateWalletsList(); }; + $scope.searchInFocus = function() { + $scope.searchFocus = true; + }; + + $scope.searchBlurred = function() { + if ($scope.formData.search == null) { + $scope.searchFocus = false; + } + }; + $scope.findContact = function(search) { if (incomingData.redir(search)) { diff --git a/src/sass/views/tab-send.scss b/src/sass/views/tab-send.scss index dbda43f2e..cf6da856a 100644 --- a/src/sass/views/tab-send.scss +++ b/src/sass/views/tab-send.scss @@ -35,8 +35,60 @@ .send-heading { font-size: 14px; font-weight: bold; - padding-bottom: 0; + padding: 0 0 16px 0; + border: none; } + + + + .send-header-wrapper { + padding: 10px; + background-color: white; + box-shadow: 0px 5px 10px 0px #cccccc; + } + .search-wrapper { + background-color: #f2f2f2; + border-radius: 3px; + border: none; + .svg#Bitcoin_Symbol { + width: 14px; + .st0 { + fill: #cccccc; + } + } + &.focus { + background: none; + .svg#Bitcoin_Symbol { + display: none; + } + .search-input { + padding-left: 0; + &:focus::-webkit-input-placeholder { + opacity: 0; + } + } + } + } + + + .abs-v-center { + position: absolute; + top: 50%; + transform: translateY(-50%); + } + .search-input { + background-color: transparent; + padding-left: 30px; + } + .separator-left { + border-left: 1px solid #d9d9df; + padding-left: 10px; + height: 70%; + } + + + + .bitcoin-address { border-top: none; padding-bottom: .5rem; diff --git a/www/views/tab-send.html b/www/views/tab-send.html index b64ed93ef..6cd42454c 100644 --- a/www/views/tab-send.html +++ b/www/views/tab-send.html @@ -1,15 +1,19 @@ - +c {{'Send' | translate}}
-
Recipient
-
- - - +
+
Recipient
+
+ +
+ + +
+
From c7c52f1426835c2e1df5d51e672087ba40734443 Mon Sep 17 00:00:00 2001 From: Andy Phillipson Date: Thu, 8 Jun 2017 17:44:52 -0400 Subject: [PATCH 02/17] Remove blank lines. --- src/sass/views/tab-send.scss | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/sass/views/tab-send.scss b/src/sass/views/tab-send.scss index cf6da856a..8bba3cee6 100644 --- a/src/sass/views/tab-send.scss +++ b/src/sass/views/tab-send.scss @@ -38,9 +38,6 @@ padding: 0 0 16px 0; border: none; } - - - .send-header-wrapper { padding: 10px; background-color: white; @@ -69,8 +66,6 @@ } } } - - .abs-v-center { position: absolute; top: 50%; @@ -85,10 +80,6 @@ padding-left: 10px; height: 70%; } - - - - .bitcoin-address { border-top: none; padding-bottom: .5rem; From ec51f8d888d5be50d39c3a32e3effcc006b3c496 Mon Sep 17 00:00:00 2001 From: Andy Phillipson Date: Thu, 8 Jun 2017 17:45:59 -0400 Subject: [PATCH 03/17] Remove typo. --- www/views/tab-send.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/views/tab-send.html b/www/views/tab-send.html index 6cd42454c..d9fe9791a 100644 --- a/www/views/tab-send.html +++ b/www/views/tab-send.html @@ -1,4 +1,4 @@ -c + {{'Send' | translate}} From d4e7b30f71890e56f26fbddd0f801b62745d60e3 Mon Sep 17 00:00:00 2001 From: Andy Phillipson Date: Fri, 9 Jun 2017 16:44:59 -0400 Subject: [PATCH 04/17] Update mcc icons per design. --- src/sass/views/bitpayCard.scss | 1 + www/img/mcc-icons/airplane.svg | 2 +- www/img/mcc-icons/art.svg | 2 +- www/img/mcc-icons/bicycle.svg | 2 +- www/img/mcc-icons/bitcoin-topup.svg | 2 +- www/img/mcc-icons/boat.svg | 2 +- www/img/mcc-icons/books.svg | 2 +- www/img/mcc-icons/bowling.svg | 2 +- www/img/mcc-icons/bug.svg | 2 +- www/img/mcc-icons/bus.svg | 2 +- www/img/mcc-icons/camera.svg | 2 +- www/img/mcc-icons/car.svg | 2 +- www/img/mcc-icons/clean.svg | 2 +- www/img/mcc-icons/clock.svg | 2 +- www/img/mcc-icons/cocktail.svg | 2 +- www/img/mcc-icons/coins.svg | 2 +- www/img/mcc-icons/computer.svg | 2 +- www/img/mcc-icons/default.svg | 2 +- www/img/mcc-icons/diamond-ring.svg | 2 +- www/img/mcc-icons/dollar-topup.svg | 2 +- www/img/mcc-icons/euro-topup.svg | 2 +- www/img/mcc-icons/film.svg | 2 +- www/img/mcc-icons/food.svg | 4 ++-- www/img/mcc-icons/football.svg | 2 +- www/img/mcc-icons/furniture.svg | 2 +- www/img/mcc-icons/game.svg | 2 +- www/img/mcc-icons/gas.svg | 2 +- www/img/mcc-icons/golf.svg | 2 +- www/img/mcc-icons/hotel.svg | 2 +- www/img/mcc-icons/law.svg | 2 +- www/img/mcc-icons/mail.svg | 2 +- www/img/mcc-icons/medical.svg | 2 +- www/img/mcc-icons/money.svg | 2 +- www/img/mcc-icons/motorcycle.svg | 2 +- www/img/mcc-icons/music.svg | 2 +- www/img/mcc-icons/newspaper.svg | 2 +- www/img/mcc-icons/park.svg | 2 +- www/img/mcc-icons/people.svg | 2 +- www/img/mcc-icons/pet.svg | 2 +- www/img/mcc-icons/plant.svg | 2 +- www/img/mcc-icons/purchase.svg | 2 +- www/img/mcc-icons/repair.svg | 2 +- www/img/mcc-icons/sadface.svg | 2 +- www/img/mcc-icons/scissors.svg | 2 +- www/img/mcc-icons/search.svg | 2 +- www/img/mcc-icons/shirt.svg | 2 +- www/img/mcc-icons/shoes.svg | 2 +- www/img/mcc-icons/smiley-face.svg | 2 +- www/img/mcc-icons/suitcase.svg | 2 +- www/img/mcc-icons/telephone.svg | 2 +- www/img/mcc-icons/television.svg | 2 +- www/img/mcc-icons/tent.svg | 2 +- www/img/mcc-icons/ticket.svg | 2 +- www/img/mcc-icons/toy.svg | 2 +- www/img/mcc-icons/truck.svg | 2 +- www/img/mcc-icons/watch.svg | 2 +- www/views/includes/cardActivity.html | 2 -- 57 files changed, 57 insertions(+), 58 deletions(-) diff --git a/src/sass/views/bitpayCard.scss b/src/sass/views/bitpayCard.scss index a602a2238..02b5d77e0 100644 --- a/src/sass/views/bitpayCard.scss +++ b/src/sass/views/bitpayCard.scss @@ -101,6 +101,7 @@ height: 40px; border-radius: 40px; border: 1px solid; + color: #cdcdcd; &.no-border { border: none; .svg { diff --git a/www/img/mcc-icons/airplane.svg b/www/img/mcc-icons/airplane.svg index 1d096a5f1..ed1ee3a70 100644 --- a/www/img/mcc-icons/airplane.svg +++ b/www/img/mcc-icons/airplane.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/art.svg b/www/img/mcc-icons/art.svg index 399d09c7d..4437f7a61 100644 --- a/www/img/mcc-icons/art.svg +++ b/www/img/mcc-icons/art.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/bicycle.svg b/www/img/mcc-icons/bicycle.svg index 2460bfc20..26e8a9431 100644 --- a/www/img/mcc-icons/bicycle.svg +++ b/www/img/mcc-icons/bicycle.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/bitcoin-topup.svg b/www/img/mcc-icons/bitcoin-topup.svg index 17c97917c..024dcd512 100644 --- a/www/img/mcc-icons/bitcoin-topup.svg +++ b/www/img/mcc-icons/bitcoin-topup.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/boat.svg b/www/img/mcc-icons/boat.svg index 4c4df0585..5fc321e47 100644 --- a/www/img/mcc-icons/boat.svg +++ b/www/img/mcc-icons/boat.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/books.svg b/www/img/mcc-icons/books.svg index ef2d319eb..217c5642b 100644 --- a/www/img/mcc-icons/books.svg +++ b/www/img/mcc-icons/books.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/bowling.svg b/www/img/mcc-icons/bowling.svg index c3d438dc8..6d8f171fa 100644 --- a/www/img/mcc-icons/bowling.svg +++ b/www/img/mcc-icons/bowling.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/bug.svg b/www/img/mcc-icons/bug.svg index 6cea4c70e..e1aed95c2 100644 --- a/www/img/mcc-icons/bug.svg +++ b/www/img/mcc-icons/bug.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/bus.svg b/www/img/mcc-icons/bus.svg index bb32445e9..fa69bd7a9 100644 --- a/www/img/mcc-icons/bus.svg +++ b/www/img/mcc-icons/bus.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/camera.svg b/www/img/mcc-icons/camera.svg index 9abb6dc75..5c518bbfc 100644 --- a/www/img/mcc-icons/camera.svg +++ b/www/img/mcc-icons/camera.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/car.svg b/www/img/mcc-icons/car.svg index 299164f0f..df7094476 100644 --- a/www/img/mcc-icons/car.svg +++ b/www/img/mcc-icons/car.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/clean.svg b/www/img/mcc-icons/clean.svg index 2ca8b4179..2bf263eb4 100644 --- a/www/img/mcc-icons/clean.svg +++ b/www/img/mcc-icons/clean.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/clock.svg b/www/img/mcc-icons/clock.svg index 2fd640f72..abfae8e81 100644 --- a/www/img/mcc-icons/clock.svg +++ b/www/img/mcc-icons/clock.svg @@ -5,7 +5,7 @@ Created with Sketch. - + clock diff --git a/www/img/mcc-icons/cocktail.svg b/www/img/mcc-icons/cocktail.svg index c332c169c..ac72141c8 100644 --- a/www/img/mcc-icons/cocktail.svg +++ b/www/img/mcc-icons/cocktail.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/coins.svg b/www/img/mcc-icons/coins.svg index 692866c8e..8753a2cd8 100644 --- a/www/img/mcc-icons/coins.svg +++ b/www/img/mcc-icons/coins.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/computer.svg b/www/img/mcc-icons/computer.svg index a897e1644..442e7f36a 100644 --- a/www/img/mcc-icons/computer.svg +++ b/www/img/mcc-icons/computer.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/default.svg b/www/img/mcc-icons/default.svg index 379fa3d0c..1458e3115 100644 --- a/www/img/mcc-icons/default.svg +++ b/www/img/mcc-icons/default.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/diamond-ring.svg b/www/img/mcc-icons/diamond-ring.svg index 380d77351..c8acf7c60 100644 --- a/www/img/mcc-icons/diamond-ring.svg +++ b/www/img/mcc-icons/diamond-ring.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/dollar-topup.svg b/www/img/mcc-icons/dollar-topup.svg index 06d7eef77..2dd9cf755 100644 --- a/www/img/mcc-icons/dollar-topup.svg +++ b/www/img/mcc-icons/dollar-topup.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/euro-topup.svg b/www/img/mcc-icons/euro-topup.svg index 30f2782a1..07d7f65bf 100644 --- a/www/img/mcc-icons/euro-topup.svg +++ b/www/img/mcc-icons/euro-topup.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/film.svg b/www/img/mcc-icons/film.svg index c66e4cbed..71595e207 100644 --- a/www/img/mcc-icons/film.svg +++ b/www/img/mcc-icons/film.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/food.svg b/www/img/mcc-icons/food.svg index d78db31fc..b75ddfa89 100644 --- a/www/img/mcc-icons/food.svg +++ b/www/img/mcc-icons/food.svg @@ -7,7 +7,7 @@ - + @@ -15,7 +15,7 @@ - + diff --git a/www/img/mcc-icons/football.svg b/www/img/mcc-icons/football.svg index b790ee7eb..98cdc5733 100644 --- a/www/img/mcc-icons/football.svg +++ b/www/img/mcc-icons/football.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/furniture.svg b/www/img/mcc-icons/furniture.svg index 0ad767826..3db75a2e3 100644 --- a/www/img/mcc-icons/furniture.svg +++ b/www/img/mcc-icons/furniture.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/game.svg b/www/img/mcc-icons/game.svg index b8c90ab5a..b6571727a 100644 --- a/www/img/mcc-icons/game.svg +++ b/www/img/mcc-icons/game.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/gas.svg b/www/img/mcc-icons/gas.svg index 8d4fb7cba..2ca1b629c 100644 --- a/www/img/mcc-icons/gas.svg +++ b/www/img/mcc-icons/gas.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/golf.svg b/www/img/mcc-icons/golf.svg index eb8702e83..c862db239 100644 --- a/www/img/mcc-icons/golf.svg +++ b/www/img/mcc-icons/golf.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/hotel.svg b/www/img/mcc-icons/hotel.svg index 1e38d1b1c..21275241c 100644 --- a/www/img/mcc-icons/hotel.svg +++ b/www/img/mcc-icons/hotel.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/law.svg b/www/img/mcc-icons/law.svg index b43462266..9621807e3 100644 --- a/www/img/mcc-icons/law.svg +++ b/www/img/mcc-icons/law.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/mail.svg b/www/img/mcc-icons/mail.svg index 058276221..7d4ddc4aa 100644 --- a/www/img/mcc-icons/mail.svg +++ b/www/img/mcc-icons/mail.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/medical.svg b/www/img/mcc-icons/medical.svg index 10b986d54..ab9396a9c 100644 --- a/www/img/mcc-icons/medical.svg +++ b/www/img/mcc-icons/medical.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/money.svg b/www/img/mcc-icons/money.svg index 74477aacb..ab2f8cb62 100644 --- a/www/img/mcc-icons/money.svg +++ b/www/img/mcc-icons/money.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/motorcycle.svg b/www/img/mcc-icons/motorcycle.svg index ef452c618..de7c042fa 100644 --- a/www/img/mcc-icons/motorcycle.svg +++ b/www/img/mcc-icons/motorcycle.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/music.svg b/www/img/mcc-icons/music.svg index ec9916802..7d11f7e9e 100644 --- a/www/img/mcc-icons/music.svg +++ b/www/img/mcc-icons/music.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/newspaper.svg b/www/img/mcc-icons/newspaper.svg index 041f29c87..e564969f0 100644 --- a/www/img/mcc-icons/newspaper.svg +++ b/www/img/mcc-icons/newspaper.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/park.svg b/www/img/mcc-icons/park.svg index 2cf0741bf..87c4348d6 100644 --- a/www/img/mcc-icons/park.svg +++ b/www/img/mcc-icons/park.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/people.svg b/www/img/mcc-icons/people.svg index 55949d8a0..3126e0600 100644 --- a/www/img/mcc-icons/people.svg +++ b/www/img/mcc-icons/people.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/pet.svg b/www/img/mcc-icons/pet.svg index 49a4197fd..220ae5a39 100644 --- a/www/img/mcc-icons/pet.svg +++ b/www/img/mcc-icons/pet.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/plant.svg b/www/img/mcc-icons/plant.svg index 1c4af2748..a579234f2 100644 --- a/www/img/mcc-icons/plant.svg +++ b/www/img/mcc-icons/plant.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/purchase.svg b/www/img/mcc-icons/purchase.svg index 5a24fc1b0..1f7c914e0 100644 --- a/www/img/mcc-icons/purchase.svg +++ b/www/img/mcc-icons/purchase.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/repair.svg b/www/img/mcc-icons/repair.svg index 3904d394e..36a75b55c 100644 --- a/www/img/mcc-icons/repair.svg +++ b/www/img/mcc-icons/repair.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/sadface.svg b/www/img/mcc-icons/sadface.svg index a1ad7bea8..963241c4a 100644 --- a/www/img/mcc-icons/sadface.svg +++ b/www/img/mcc-icons/sadface.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/scissors.svg b/www/img/mcc-icons/scissors.svg index 7a4ed1519..519c03f53 100644 --- a/www/img/mcc-icons/scissors.svg +++ b/www/img/mcc-icons/scissors.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/search.svg b/www/img/mcc-icons/search.svg index b77d2e5af..d1ec0ddf5 100644 --- a/www/img/mcc-icons/search.svg +++ b/www/img/mcc-icons/search.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/shirt.svg b/www/img/mcc-icons/shirt.svg index 2acdc5b0b..1f67a93fe 100644 --- a/www/img/mcc-icons/shirt.svg +++ b/www/img/mcc-icons/shirt.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/shoes.svg b/www/img/mcc-icons/shoes.svg index f57f49f15..e460c4919 100644 --- a/www/img/mcc-icons/shoes.svg +++ b/www/img/mcc-icons/shoes.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/smiley-face.svg b/www/img/mcc-icons/smiley-face.svg index 847e7ec7e..99967b26e 100644 --- a/www/img/mcc-icons/smiley-face.svg +++ b/www/img/mcc-icons/smiley-face.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/suitcase.svg b/www/img/mcc-icons/suitcase.svg index af48e1730..f18da30ed 100644 --- a/www/img/mcc-icons/suitcase.svg +++ b/www/img/mcc-icons/suitcase.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/telephone.svg b/www/img/mcc-icons/telephone.svg index 2460721f9..370bd087f 100644 --- a/www/img/mcc-icons/telephone.svg +++ b/www/img/mcc-icons/telephone.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/television.svg b/www/img/mcc-icons/television.svg index 1dd0dac55..c6fcb6c60 100644 --- a/www/img/mcc-icons/television.svg +++ b/www/img/mcc-icons/television.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/tent.svg b/www/img/mcc-icons/tent.svg index ba19f2dd1..54cb9e1c7 100644 --- a/www/img/mcc-icons/tent.svg +++ b/www/img/mcc-icons/tent.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/ticket.svg b/www/img/mcc-icons/ticket.svg index cf81a1272..6906c2577 100644 --- a/www/img/mcc-icons/ticket.svg +++ b/www/img/mcc-icons/ticket.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/toy.svg b/www/img/mcc-icons/toy.svg index 370b15622..42028cae1 100644 --- a/www/img/mcc-icons/toy.svg +++ b/www/img/mcc-icons/toy.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/truck.svg b/www/img/mcc-icons/truck.svg index 8bb2f9818..bd597e9fc 100644 --- a/www/img/mcc-icons/truck.svg +++ b/www/img/mcc-icons/truck.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/img/mcc-icons/watch.svg b/www/img/mcc-icons/watch.svg index 1b4ad96c7..3ac34787f 100644 --- a/www/img/mcc-icons/watch.svg +++ b/www/img/mcc-icons/watch.svg @@ -5,7 +5,7 @@ Created with Sketch. - + diff --git a/www/views/includes/cardActivity.html b/www/views/includes/cardActivity.html index d95d5e572..68e90fdb9 100644 --- a/www/views/includes/cardActivity.html +++ b/www/views/includes/cardActivity.html @@ -8,9 +8,7 @@
{{tx.merchant.name || 'Unknown Merchant'}}
-
View Confirmation Status
From 71384624e09e4891b446326740cf116fd4ce5083 Mon Sep 17 00:00:00 2001 From: Andy Phillipson Date: Fri, 9 Jun 2017 16:47:54 -0400 Subject: [PATCH 05/17] Update mcc icon circle color. --- src/sass/views/bitpayCard.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sass/views/bitpayCard.scss b/src/sass/views/bitpayCard.scss index 02b5d77e0..a1ae39918 100644 --- a/src/sass/views/bitpayCard.scss +++ b/src/sass/views/bitpayCard.scss @@ -101,7 +101,7 @@ height: 40px; border-radius: 40px; border: 1px solid; - color: #cdcdcd; + color: #9b9bab; &.no-border { border: none; .svg { From 7eede2907986a4dcec277f05615c3136360ad801 Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Tue, 6 Jun 2017 20:52:09 -0300 Subject: [PATCH 06/17] fix sign target --- app-template/package-template.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app-template/package-template.json b/app-template/package-template.json index dfed0be08..9373b5b7d 100644 --- a/app-template/package-template.json +++ b/app-template/package-template.json @@ -107,7 +107,7 @@ "run:android": "cordova run android --device", "run:android-release": "cordova run android --device --release", "log:android": "adb logcat | grep chromium", - "sign:android": "rm -f platforms/android/build/outputs/apk/android-release-signed-aligned.apk; jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ../copay.keystore -signedjar platforms/android/build/outputs/apk/android-release-signed.apk platforms/android/build/outputs/apk/android-release-unsigned.apk copay_play && ../android-sdk-macosx/build-tools/21.1.1/zipalign -v 4 platforms/android/build/outputs/apk/android-release-signed.apk platforms/android/build/outputs/apk/android-release-signed-aligned.apk", + "sign:android": "rm -f platforms/android/build/outputs/apk/android-release-signed-aligned.apk; jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ../copay.keystore -signedjar platforms/android/build/outputs/apk/android-release-signed.apk platforms/android/build/outputs/apk/android-release-unsigned.apk copay_play && ../android-sdk-macosx/build-tools/25.0.3/zipalign -v 4 platforms/android/build/outputs/apk/android-release-signed.apk platforms/android/build/outputs/apk/android-release-signed-aligned.apk", "apply:copay": "npm i fs-extra && cd app-template && node apply.js copay && npm i && cordova prepare", "apply:bitpay": "npm i fs-extra && cd app-template && node apply.js bitpay && npm i && cordova prepare", "test": "echo \"no package tests configured\"", From 4cdbbf7d773b973746077f1a33c025a3192d7239 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Mon, 12 Jun 2017 11:32:17 -0300 Subject: [PATCH 07/17] fix PIN and fingerprint lock modal UI and enable option for devel --- src/sass/views/includes/pin.scss | 4 ++++ www/views/tab-settings.html | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/sass/views/includes/pin.scss b/src/sass/views/includes/pin.scss index 8a3547de8..fe8cc118b 100644 --- a/src/sass/views/includes/pin.scss +++ b/src/sass/views/includes/pin.scss @@ -1,5 +1,9 @@ #pin { background-color: #FAFAFA; + width: 100%; + height: 100%; + top: 0; + left: 0; .content { text-align: center; position: fixed; diff --git a/www/views/tab-settings.html b/www/views/tab-settings.html index a26061508..cfc054614 100644 --- a/www/views/tab-settings.html +++ b/www/views/tab-settings.html @@ -89,7 +89,7 @@ - + {{'Lock App' | translate}} From c65ede1db63e5cd539a6e4b7a2e791ad47e08eb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Mon, 12 Jun 2017 11:49:34 -0300 Subject: [PATCH 08/17] disabled is default option --- src/js/controllers/lockSetup.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/controllers/lockSetup.js b/src/js/controllers/lockSetup.js index cb6ff03cd..39b86de61 100644 --- a/src/js/controllers/lockSetup.js +++ b/src/js/controllers/lockSetup.js @@ -36,7 +36,7 @@ angular.module('copayApp.controllers').controller('lockSetupController', functio function getSavedMethod() { var config = configService.getSync(); - if (config.lock) return config.lock.method; + if (config.lock && config.lock.method) return config.lock.method; return 'none'; }; From fe12b3ae631ec530537c51adc42c6e2e23d94187 Mon Sep 17 00:00:00 2001 From: Andy Phillipson Date: Mon, 12 Jun 2017 13:01:06 -0400 Subject: [PATCH 09/17] Create tab-send.html --- www/views/tab-send.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/views/tab-send.html b/www/views/tab-send.html index d9fe9791a..e217bacc2 100644 --- a/www/views/tab-send.html +++ b/www/views/tab-send.html @@ -6,7 +6,7 @@
-
Recipient
+
Recipient
From da15bc939baa38c3e8d9825bfc16cf41f71993a1 Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Mon, 12 Jun 2017 16:22:50 -0300 Subject: [PATCH 10/17] allow importing HW seeds --- app-template/copay/appConfig.json | 2 +- src/js/controllers/import.js | 33 +++++++++++++++++++++++++++++-- src/js/services/profileService.js | 8 +++++--- src/js/services/trezor.js | 3 +++ www/views/tab-import-phrase.html | 15 +++++++++++--- 5 files changed, 52 insertions(+), 9 deletions(-) diff --git a/app-template/copay/appConfig.json b/app-template/copay/appConfig.json index cde53fefa..625cbd184 100644 --- a/app-template/copay/appConfig.json +++ b/app-template/copay/appConfig.json @@ -22,7 +22,7 @@ "windowsAppId": "804636ee-b017-4cad-8719-e58ac97ffa5c", "pushSenderId": "1036948132229", "description": "A Secure Bitcoin Wallet", - "version": "3.4.0", + "version": "3.4.1", "androidVersion": "340001", "_extraCSS": null, "_enabledExtensions": { diff --git a/src/js/controllers/import.js b/src/js/controllers/import.js index c5657d5cf..0c3fbdf7d 100644 --- a/src/js/controllers/import.js +++ b/src/js/controllers/import.js @@ -1,7 +1,7 @@ 'use strict'; angular.module('copayApp.controllers').controller('importController', - function($scope, $timeout, $log, $state, $stateParams, $ionicHistory, $ionicScrollDelegate, profileService, configService, sjcl, ledger, trezor, derivationPathHelper, platformInfo, bwcService, ongoingProcess, walletService, popupService, gettextCatalog, appConfigService) { + function($scope, $timeout, $log, $state, $stateParams, $ionicHistory, $ionicScrollDelegate, profileService, configService, sjcl, ledger, trezor, derivationPathHelper, platformInfo, bwcService, ongoingProcess, walletService, popupService, gettextCatalog, appConfigService, hwWallet) { var reader = new FileReader(); var defaults = configService.getDefaults(); @@ -38,6 +38,21 @@ angular.module('copayApp.controllers').controller('importController', $scope.formData.seedSource = $scope.seedOptions[0]; } + + $scope.seedOptionsAll = []; + + $scope.seedOptionsAll.push({ + id: walletService.externalSource.ledger.id, + label: walletService.externalSource.ledger.longName, + }); + + $scope.seedOptionsAll.push({ + id: walletService.externalSource.trezor.id, + label: walletService.externalSource.trezor.longName, + }); + $scope.formData.seedSourceAll = $scope.seedOptionsAll[0]; + + $timeout(function() { $scope.$apply(); }); @@ -159,6 +174,7 @@ angular.module('copayApp.controllers').controller('importController', $timeout(function() { profileService.importMnemonic(words, opts, function(err, client) { + ongoingProcess.set('importingWallet', false); if (err) { @@ -177,7 +193,7 @@ angular.module('copayApp.controllers').controller('importController', }; $scope.setDerivationPath = function() { - $scope.formData.derivationPath = $scope.formData.testnetEnabled ? derivationPathHelper.defaultTestnet : derivationPathHelper.default; + $scope.formData.testnetEnabled ? derivationPathHelper.defaultTestnet : derivationPathHelper.default; }; $scope.getFile = function() { @@ -256,6 +272,18 @@ angular.module('copayApp.controllers').controller('importController', } opts.passphrase = $scope.formData.passphrase || null; + + if ($scope.formData.fromHardwareWallet) { + $log.debug('Importing seed from hardware wallet'); + $log.warn('This wont work for Intel TEE wallets'); + + var id = $scope.formData.seedSourceAll.id; + var isMultisig = opts.derivationStrategy =='BIP48'; + var account = opts.account; + opts.entropySourcePath = 'm/' + hwWallet.getEntropyPath(id, isMultisig, account); + } + +console.log('[import.js.283:opts:]',opts); //TODO _importMnemonic(words, opts); }; @@ -269,6 +297,7 @@ angular.module('copayApp.controllers').controller('importController', lopts.externalSource = walletService.externalSource.trezor.id; lopts.bwsurl = $scope.formData.bwsurl; +console.log('[import.js.299:lopts:]',lopts); //TODO ongoingProcess.set('importingWallet', true); $log.debug('Import opts', lopts); diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index 6ef9b96b0..8c5a93662 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -208,9 +208,9 @@ angular.module('copayApp.services') }; var shouldSkipValidation = function(walletId) { - return root.profile.isChecked(platformInfo.ua, walletId) || isIOS || isWP; - } - // Used when reading wallets from the profile + return root.profile.isChecked(platformInfo.ua, walletId) || isIOS || isWP; + } + // Used when reading wallets from the profile root.bindWallet = function(credentials, cb) { if (!credentials.walletId || !credentials.m) return cb('bindWallet should receive credentials JSON'); @@ -618,6 +618,8 @@ angular.module('copayApp.services') walletClient.importFromMnemonic(words, { network: opts.networkName, passphrase: opts.passphrase, + entropySourcePath: opts.entropySourcePath, + derivationStrategy: opts.derivationStrategy || 'BIP44', account: opts.account || 0, }, function(err) { if (err) { diff --git a/src/js/services/trezor.js b/src/js/services/trezor.js index 0411386fc..b835e1ae9 100644 --- a/src/js/services/trezor.js +++ b/src/js/services/trezor.js @@ -18,7 +18,9 @@ angular.module('copayApp.services') }; root.getEntropySource = function(isMultisig, account, callback) { +console.log('[trezor.js.20:isMultisig:]',root.description.id, isMultisig, account); //TODO root.getXPubKey(hwWallet.getEntropyPath(root.description.id, isMultisig, account), function(data) { +console.log('[trezor.js.21:data:]',data); //TODO if (!data.success) return callback(hwWallet._err(data)); @@ -30,6 +32,7 @@ angular.module('copayApp.services') root.getXPubKey = function(path, callback) { $log.debug('TREZOR deriving xPub path:', path); try { +console.log('[trezor.js.35:path:]',path); //TODO TrezorConnect.getXPubKey(path, callback); } catch (e) { callback('Error connecting Trezor'); diff --git a/www/views/tab-import-phrase.html b/www/views/tab-import-phrase.html index 4146cac79..50d021038 100644 --- a/www/views/tab-import-phrase.html +++ b/www/views/tab-import-phrase.html @@ -49,14 +49,23 @@ ng-model="formData.derivationPath"> + + + From Hardware Wallet + + + + + + Testnet + + + - - Testnet -
From 210d867c59f4d421a1e3816855fa94fcfd2670f4 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Mon, 12 Jun 2017 16:53:03 -0300 Subject: [PATCH 11/17] Fix toggle --- src/js/controllers/import.js | 3 ++- www/views/tab-import-phrase.html | 11 ++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/js/controllers/import.js b/src/js/controllers/import.js index 0c3fbdf7d..331a2bfff 100644 --- a/src/js/controllers/import.js +++ b/src/js/controllers/import.js @@ -17,6 +17,7 @@ angular.module('copayApp.controllers').controller('importController', $scope.formData.account = 1; $scope.importErr = false; $scope.isCopay = appConfigService.name == 'copay'; + $scope.fromHardwareWallet = { value: false }; if ($stateParams.code) $scope.processWalletInfo($stateParams.code); @@ -273,7 +274,7 @@ angular.module('copayApp.controllers').controller('importController', opts.passphrase = $scope.formData.passphrase || null; - if ($scope.formData.fromHardwareWallet) { + if ($scope.fromHardwareWallet.value) { $log.debug('Importing seed from hardware wallet'); $log.warn('This wont work for Intel TEE wallets'); diff --git a/www/views/tab-import-phrase.html b/www/views/tab-import-phrase.html index 50d021038..5b692f17e 100644 --- a/www/views/tab-import-phrase.html +++ b/www/views/tab-import-phrase.html @@ -50,11 +50,16 @@ - - From Hardware Wallet + + From Hardware Wallet - + Testnet From cc53f305fd0a94823873934aa272c4c625725f04 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Tue, 13 Jun 2017 10:58:22 -0300 Subject: [PATCH 12/17] New release v3.5.0 --- app-template/bitpay/appConfig.json | 4 ++-- app-template/copay/appConfig.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app-template/bitpay/appConfig.json b/app-template/bitpay/appConfig.json index ec47bfdcc..1e1b40255 100644 --- a/app-template/bitpay/appConfig.json +++ b/app-template/bitpay/appConfig.json @@ -22,8 +22,8 @@ "windowsAppId": "2d1002d7-ee34-4f60-bd29-0c871ba0c195", "pushSenderId": "1036948132229", "description": "Secure Bitcoin Wallet", - "version": "3.4.0", - "androidVersion": "340001", + "version": "3.5.0", + "androidVersion": "350000", "_extraCSS": null, "_enabledExtensions": { "coinbase": true, diff --git a/app-template/copay/appConfig.json b/app-template/copay/appConfig.json index 625cbd184..deab492ac 100644 --- a/app-template/copay/appConfig.json +++ b/app-template/copay/appConfig.json @@ -22,8 +22,8 @@ "windowsAppId": "804636ee-b017-4cad-8719-e58ac97ffa5c", "pushSenderId": "1036948132229", "description": "A Secure Bitcoin Wallet", - "version": "3.4.1", - "androidVersion": "340001", + "version": "3.5.0", + "androidVersion": "350000", "_extraCSS": null, "_enabledExtensions": { "coinbase": true, From 54b6bdfd2c3f03de7c969abf4b5231e04696d8d0 Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Tue, 13 Jun 2017 11:17:02 -0300 Subject: [PATCH 13/17] updates bwc --- app-template/package-template.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app-template/package-template.json b/app-template/package-template.json index 9373b5b7d..01194e600 100644 --- a/app-template/package-template.json +++ b/app-template/package-template.json @@ -56,7 +56,7 @@ "bezier-easing": "^2.0.3", "bhttp": "^1.2.1", "bitauth": "^0.2.1", - "bitcore-wallet-client": "5.2.1", + "bitcore-wallet-client": "5.3.0", "bower": "^1.7.9", "cordova-android": "5.1.1", "cordova-custom-config": "^3.0.5", From 3c4e3d9a5123c14d575a7ead472b046c46859cfa Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Tue, 13 Jun 2017 11:29:21 -0300 Subject: [PATCH 14/17] rm console logs --- src/js/controllers/import.js | 2 -- src/js/services/trezor.js | 3 --- 2 files changed, 5 deletions(-) diff --git a/src/js/controllers/import.js b/src/js/controllers/import.js index 331a2bfff..a3b8e134e 100644 --- a/src/js/controllers/import.js +++ b/src/js/controllers/import.js @@ -284,7 +284,6 @@ angular.module('copayApp.controllers').controller('importController', opts.entropySourcePath = 'm/' + hwWallet.getEntropyPath(id, isMultisig, account); } -console.log('[import.js.283:opts:]',opts); //TODO _importMnemonic(words, opts); }; @@ -298,7 +297,6 @@ console.log('[import.js.283:opts:]',opts); //TODO lopts.externalSource = walletService.externalSource.trezor.id; lopts.bwsurl = $scope.formData.bwsurl; -console.log('[import.js.299:lopts:]',lopts); //TODO ongoingProcess.set('importingWallet', true); $log.debug('Import opts', lopts); diff --git a/src/js/services/trezor.js b/src/js/services/trezor.js index b835e1ae9..0411386fc 100644 --- a/src/js/services/trezor.js +++ b/src/js/services/trezor.js @@ -18,9 +18,7 @@ angular.module('copayApp.services') }; root.getEntropySource = function(isMultisig, account, callback) { -console.log('[trezor.js.20:isMultisig:]',root.description.id, isMultisig, account); //TODO root.getXPubKey(hwWallet.getEntropyPath(root.description.id, isMultisig, account), function(data) { -console.log('[trezor.js.21:data:]',data); //TODO if (!data.success) return callback(hwWallet._err(data)); @@ -32,7 +30,6 @@ console.log('[trezor.js.21:data:]',data); //TODO root.getXPubKey = function(path, callback) { $log.debug('TREZOR deriving xPub path:', path); try { -console.log('[trezor.js.35:path:]',path); //TODO TrezorConnect.getXPubKey(path, callback); } catch (e) { callback('Error connecting Trezor'); From c5ffc4e7ddfef72033b18a4e33faf4a33a1573d8 Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Tue, 13 Jun 2017 14:44:39 -0300 Subject: [PATCH 15/17] fix account setting in Trezor/Ledger --- src/js/controllers/import.js | 2 ++ src/js/services/trezor.js | 10 ++++------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/js/controllers/import.js b/src/js/controllers/import.js index a3b8e134e..65f3732e5 100644 --- a/src/js/controllers/import.js +++ b/src/js/controllers/import.js @@ -297,6 +297,7 @@ angular.module('copayApp.controllers').controller('importController', lopts.externalSource = walletService.externalSource.trezor.id; lopts.bwsurl = $scope.formData.bwsurl; + lopts.account = account; ongoingProcess.set('importingWallet', true); $log.debug('Import opts', lopts); @@ -353,6 +354,7 @@ angular.module('copayApp.controllers').controller('importController', lopts.externalSource = lopts.externalSource = walletService.externalSource.ledger.id; lopts.bwsurl = $scope.formData.bwsurl; + lopts.account = account; ongoingProcess.set('importingWallet', true); $log.debug('Import opts', lopts); diff --git a/src/js/services/trezor.js b/src/js/services/trezor.js index 0411386fc..3d40d88d1 100644 --- a/src/js/services/trezor.js +++ b/src/js/services/trezor.js @@ -93,7 +93,6 @@ angular.module('copayApp.services') outputs = []; var tmpOutputs = []; - if (txp.type && txp.type != 'simple') { return callback('Only TXPs type SIMPLE are supported in TREZOR'); } else if (txp.outputs) { @@ -170,7 +169,6 @@ angular.module('copayApp.services') return ''; }); - inputs = lodash.map(txp.inputs, function(i) { $log.debug("Trezor TX input path:", i.path); var pathArr = i.path.split('/'); @@ -180,12 +178,12 @@ angular.module('copayApp.services') inAmount += i.satoshis; var orderedPubKeys = root._orderPubKeys(xPubKeys, np); - var pubkeys = lodash(orderedPubKeys.map(function(v) { + var pubkeys = orderedPubKeys.map(function(v) { return { node: v, address_n: np, }; - })); + }); return { address_n: n, @@ -208,12 +206,12 @@ angular.module('copayApp.services') var np = n.slice(3); var orderedPubKeys = root._orderPubKeys(xPubKeys, np); - var pubkeys = lodash(orderedPubKeys.map(function(v) { + var pubkeys = orderedPubKeys.map(function(v) { return { node: v, address_n: np, }; - })); + }); tmpOutputs.push({ address_n: n, From d2d36b6c258cb07a3a3150d54d90e76cf4807464 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Tue, 13 Jun 2017 14:53:09 -0300 Subject: [PATCH 16/17] dummy view/state if the fingerprint check fails --- src/js/services/applicationService.js | 10 +++------- www/views/modals/fingerprintCheck.html | 5 ++++- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/js/services/applicationService.js b/src/js/services/applicationService.js index fe364a514..9bb9b5048 100644 --- a/src/js/services/applicationService.js +++ b/src/js/services/applicationService.js @@ -50,19 +50,15 @@ angular.module('copayApp.services') }); scope.openModal = function() { scope.fingerprintCheckModal.show(); - checkFingerprint(); + scope.checkFingerprint(); }; scope.hideModal = function() { root.isModalOpen = false; scope.fingerprintCheckModal.hide(); }; - - function checkFingerprint() { + scope.checkFingerprint = function() { fingerprintService.check('unlockingApp', function(err) { - if (err) { - checkFingerprint(); - return; - } + if (err) return; scope.hideModal(); }); } diff --git a/www/views/modals/fingerprintCheck.html b/www/views/modals/fingerprintCheck.html index b5e26937a..e8c97f63e 100644 --- a/www/views/modals/fingerprintCheck.html +++ b/www/views/modals/fingerprintCheck.html @@ -1,10 +1,13 @@
-
+
+
Verify your identity
+
+
From ded0118b6e7225076221111c6ed57a8b60c35522 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Wed, 14 Jun 2017 11:26:20 -0300 Subject: [PATCH 17/17] Android: API level 19 or higher supported --- app-template/config-template.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app-template/config-template.xml b/app-template/config-template.xml index 62c5321ca..b8019530a 100644 --- a/app-template/config-template.xml +++ b/app-template/config-template.xml @@ -33,6 +33,9 @@ + + +