From ba853b7c9e15013c83e5239ecba75a8e069bfaaf Mon Sep 17 00:00:00 2001 From: Gabriel Masclef Date: Tue, 9 Jan 2018 15:04:34 -0300 Subject: [PATCH] Fix: import wallet when comes from scan - Fix routing --- .../add/import-wallet/import-wallet.html | 7 ++-- .../add/import-wallet/import-wallet.scss | 3 ++ src/pages/add/import-wallet/import-wallet.ts | 34 +++++++++++++------ src/pages/send/amount/amount.ts | 4 +-- src/providers/incoming-data/incoming-data.ts | 5 ++- 5 files changed, 34 insertions(+), 19 deletions(-) diff --git a/src/pages/add/import-wallet/import-wallet.html b/src/pages/add/import-wallet/import-wallet.html index c30c82a0a..4312c148e 100644 --- a/src/pages/add/import-wallet/import-wallet.html +++ b/src/pages/add/import-wallet/import-wallet.html @@ -32,7 +32,8 @@
Type the recovery phrase (usually 12 words) - + +
@@ -49,7 +50,7 @@ {{'Coin' | translate}} - + BTC BCH @@ -76,7 +77,7 @@ Testnet - +
diff --git a/src/pages/add/import-wallet/import-wallet.scss b/src/pages/add/import-wallet/import-wallet.scss index 1c3955833..d8da55a40 100644 --- a/src/pages/add/import-wallet/import-wallet.scss +++ b/src/pages/add/import-wallet/import-wallet.scss @@ -5,4 +5,7 @@ page-import-wallet { white-space: inherit; } } + .scanner-icon { + z-index: 99; + } } diff --git a/src/pages/add/import-wallet/import-wallet.ts b/src/pages/add/import-wallet/import-wallet.ts index cc71a2d68..67ce0b76e 100644 --- a/src/pages/add/import-wallet/import-wallet.ts +++ b/src/pages/add/import-wallet/import-wallet.ts @@ -1,4 +1,4 @@ -import { Component, OnInit } from '@angular/core'; +import { Component } from '@angular/core'; import { NavController, NavParams } from 'ionic-angular'; import { Validators, FormBuilder, FormGroup } from '@angular/forms'; import { Logger } from '@nsalaun/ng-logger'; @@ -20,7 +20,7 @@ import { WalletProvider } from '../../../providers/wallet/wallet'; selector: 'page-import-wallet', templateUrl: 'import-wallet.html' }) -export class ImportWalletPage implements OnInit { +export class ImportWalletPage { private derivationPathByDefault: string; private derivationPathForTestnet: string; @@ -36,6 +36,7 @@ export class ImportWalletPage implements OnInit { public selectedTab: string; public isCordova: boolean; public file: File; + public testnetEnabled: boolean; constructor( private navCtrl: NavController, @@ -69,17 +70,17 @@ export class ImportWalletPage implements OnInit { mnemonicPassword: [null], file: [null], filePassword: [null], - derivationPath: [this.derivationPathByDefault], + derivationPath: [this.derivationPathByDefault, Validators.required], testnet: [false], bwsURL: [this.defaults.bws.url], coin: [this.navParams.data.coin ? this.navParams.data.coin : 'btc'] }); - - if (this.navParams.data.code) - this.processWalletInfo(this.navParams.data.code); } - ngOnInit() { + ionViewWillEnter() { + if (this.navParams.data.code) { + this.processWalletInfo(this.navParams.data.code); + } } selectTab(tab: string) { @@ -139,13 +140,14 @@ export class ImportWalletPage implements OnInit { if (info.type == '1' && info.hasPassphrase) this.popupProvider.ionicAlert('Error', 'Password required. Make sure to enter your password in advanced options', 'Ok'); //TODO gettextcatalog - this.importForm.value.derivationPath = info.derivationPath; - this.importForm.value.testnetEnabled = info.network == 'testnet' ? true : false; - this.importForm.value.words = info.data; + this.testnetEnabled = info.network == 'testnet' ? true : false; + this.importForm.controls['derivationPath'].setValue(info.derivationPath); + this.importForm.controls['words'].setValue(info.data); } public setDerivationPath(): void { - this.importForm.value.derivationPath = this.importForm.value.testnet ? this.derivationPathForTestnet : this.derivationPathByDefault; + let path = this.testnetEnabled ? this.derivationPathForTestnet : this.derivationPathByDefault; + this.importForm.controls['derivationPath'].setValue(path); } private importBlob(str: string, opts: any): void { @@ -328,4 +330,14 @@ export class ImportWalletPage implements OnInit { } } + public openScanner(): void { + if (this.navParams.data.fromScan) { + this.navCtrl.popToRoot(); + } else { + this.navCtrl.setRoot(HomePage); + this.navCtrl.popToRoot(); + this.navCtrl.parent.select(2); + } + } + } diff --git a/src/pages/send/amount/amount.ts b/src/pages/send/amount/amount.ts index 445c044a7..0872253e6 100644 --- a/src/pages/send/amount/amount.ts +++ b/src/pages/send/amount/amount.ts @@ -275,8 +275,8 @@ export class AmountPage { let data: any = { recipientType: this.recipientType, toAddress: this.toAddress, - amount: amount_, - amountFiat: amountFiat, + amount: this.useSendMax ? 0 : amount_, + amountFiat: this.useSendMax ? 0 : amountFiat, name: this.name, email: this.email, color: this.color, diff --git a/src/providers/incoming-data/incoming-data.ts b/src/providers/incoming-data/incoming-data.ts index 31f939ff5..42fbef7c3 100644 --- a/src/providers/incoming-data/incoming-data.ts +++ b/src/providers/incoming-data/incoming-data.ts @@ -11,7 +11,6 @@ import { AppProvider } from '../app/app'; import { AddressProvider } from '../address/address'; //pages -import { SendPage } from '../../pages/send/send'; import { ConfirmPage } from '../../pages/send/confirm/confirm'; import { AmountPage } from '../../pages/send/amount/amount'; import { JoinWalletPage } from '../../pages/add/join-wallet/join-wallet'; @@ -222,7 +221,7 @@ export class IncomingDataProvider { type: 'privateKey' }); } else if (data && ((data.substring(0, 2) == '1|') || (data.substring(0, 2) == '2|') || (data.substring(0, 2) == '3|'))) { - this.navCtrl.push(ImportWalletPage, { code: data }) + this.navCtrl.push(ImportWalletPage, { code: data, fromScan: true }) return true; } else { @@ -273,7 +272,7 @@ export class IncomingDataProvider { } private goSend(addr: string, amount: string, message: string, coin: string): void { - this.navCtrl.push(SendPage, {}); + this.navCtrl.parent.select(3); if (amount) { this.navCtrl.push(ConfirmPage, { amount: amount,