diff --git a/src/app/app.scss b/src/app/app.scss index f6ec948cb..1392a6e29 100644 --- a/src/app/app.scss +++ b/src/app/app.scss @@ -14,7 +14,3 @@ // To declare rules for a specific mode, create a child rule // for the .md, .ios, or .wp mode classes. The mode class is // automatically applied to the element in the app. - -.wallet-background-color-default { - background-color: #019477; -} \ No newline at end of file diff --git a/src/pages/settings/settings.html b/src/pages/settings/settings.html index 3b5071893..871016f1e 100644 --- a/src/pages/settings/settings.html +++ b/src/pages/settings/settings.html @@ -18,14 +18,14 @@ Help & support - + Preferences @@ -63,24 +63,34 @@ Lock -
- {{'Bitcoin Wallets' | translate}} - -
- + {{'Bitcoin Wallets' | translate}} + + {{'BCH Wallets' | translate}} + More diff --git a/src/pages/settings/settings.scss b/src/pages/settings/settings.scss index 3d7fcd139..333b5175a 100644 --- a/src/pages/settings/settings.scss +++ b/src/pages/settings/settings.scss @@ -5,6 +5,12 @@ page-settings { background-color: color($colors, primary); } } + .assertive { + color: color($colors, danger); + ion-label { + white-space: inherit; + } + } ion-item { cursor: pointer; } diff --git a/src/pages/settings/settings.ts b/src/pages/settings/settings.ts index 924dacbfd..bf76b69d6 100644 --- a/src/pages/settings/settings.ts +++ b/src/pages/settings/settings.ts @@ -1,11 +1,10 @@ import { Component } from '@angular/core'; -import { NavController, NavParams } from 'ionic-angular'; +import { NavController } from 'ionic-angular'; import { ModalController } from 'ionic-angular'; //providers import { AppProvider } from '../../providers/app/app'; import { LanguageProvider } from '../../providers/language/language'; -import { RateProvider } from '../../providers/rate/rate'; import { ExternalLinkProvider } from '../../providers/external-link/external-link'; import { ProfileProvider } from '../../providers/profile/profile'; @@ -20,37 +19,40 @@ import { WalletSettingsPage } from './wallet-settings/wallet-settings'; @Component({ selector: 'page-settings', templateUrl: 'settings.html', - providers: [RateProvider] }) export class SettingsPage { public appName: string; public currentLanguage: string; public languages: Array; - public walletsBtc: any; + public walletsBtc: Array; + public walletsBch: Array; constructor( private modalCtrl: ModalController, private navCtrl: NavController, - private navParams: NavParams, private app: AppProvider, private language: LanguageProvider, - private rate: RateProvider, private externalLinkProvider: ExternalLinkProvider, private profileProvider: ProfileProvider ) { this.appName = this.app.info.nameCase; this.currentLanguage = this.language.getCurrent(); this.languages = this.language.getAvailables(); + this.walletsBch = []; + this.walletsBtc = []; } ionViewDidLoad() { console.log('ionViewDidLoad SettingsPage'); } - ionViewDidEnter() { + ionViewWillEnter() { this.walletsBtc = this.profileProvider.getWallets({ coin: 'btc' }); + this.walletsBch = this.profileProvider.getWallets({ + coin: 'bch' + }); } altCurrencyModal() { diff --git a/src/pages/settings/wallet-settings/wallet-color/wallet-color.ts b/src/pages/settings/wallet-settings/wallet-color/wallet-color.ts index 5ab90718d..87fb9bc78 100644 --- a/src/pages/settings/wallet-settings/wallet-color/wallet-color.ts +++ b/src/pages/settings/wallet-settings/wallet-color/wallet-color.ts @@ -30,7 +30,7 @@ export class WalletColorPage { console.log('ionViewDidLoad WalletColorPage'); } - ionViewDidEnter() { + ionViewWillEnter() { this.wallet = this.profileProvider.getWallet(this.navParams.data.walletId); this.config = this.configProvider.get(); this.colorCount = Array(this.getColorCount()).fill(0).map((x, i) => i); diff --git a/src/pages/settings/wallet-settings/wallet-name/wallet-name.html b/src/pages/settings/wallet-settings/wallet-name/wallet-name.html index c5745e359..33153713d 100644 --- a/src/pages/settings/wallet-settings/wallet-name/wallet-name.html +++ b/src/pages/settings/wallet-settings/wallet-name/wallet-name.html @@ -14,7 +14,7 @@
Name - +
diff --git a/src/pages/settings/wallet-settings/wallet-name/wallet-name.ts b/src/pages/settings/wallet-settings/wallet-name/wallet-name.ts index 182840e8a..a7645bd86 100644 --- a/src/pages/settings/wallet-settings/wallet-name/wallet-name.ts +++ b/src/pages/settings/wallet-settings/wallet-name/wallet-name.ts @@ -1,5 +1,5 @@ import { Component } from '@angular/core'; -import { NavController, NavParams, ModalController } from 'ionic-angular'; +import { NavController, NavParams, ModalController, Events } from 'ionic-angular'; import { Logger } from '@nsalaun/ng-logger'; import { Validators, FormBuilder, FormGroup } from '@angular/forms'; @@ -14,7 +14,7 @@ import { ConfigProvider } from '../../../../providers/config/config'; export class WalletNamePage { public wallet: any; - public walletAlias: string; + public walletName: string; public walletNameForm: FormGroup; private config: any; @@ -23,7 +23,8 @@ export class WalletNamePage { private navCtrl: NavController, private navParams: NavParams, private configProvider: ConfigProvider, - private formBuilder: FormBuilder + private formBuilder: FormBuilder, + private events: Events ) { this.walletNameForm = this.formBuilder.group({ walletName: ['', Validators.compose([Validators.minLength(1), Validators.required])] @@ -34,19 +35,21 @@ export class WalletNamePage { console.log('ionViewDidLoad WalletNamePage'); } - ionViewDidEnter() { + ionViewWillEnter() { this.wallet = this.profileProvider.getWallet(this.navParams.data.walletId); this.config = this.configProvider.get(); let alias = this.config.aliasFor && this.config.aliasFor[this.wallet.credentials.walletId]; - this.walletAlias = alias ? alias : this.wallet.credentials.walletName; + this.walletNameForm.value.walletName = alias ? alias : this.wallet.credentials.walletName; + this.walletName = this.wallet.credentials.walletName; } public save(): void { - var opts = { + let opts = { aliasFor: {} }; opts.aliasFor[this.wallet.credentials.walletId] = this.walletNameForm.value.walletName; this.configProvider.set(opts); + this.events.publish('wallet:updated', this.wallet.credentials.walletId); this.navCtrl.pop(); } } \ No newline at end of file diff --git a/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-addresses/wallet-addresses.html b/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-addresses/wallet-addresses.html index 150d39b3e..210302342 100644 --- a/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-addresses/wallet-addresses.html +++ b/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-addresses/wallet-addresses.html @@ -13,22 +13,19 @@ Unused Addresses - -
- +
+ Loading addresses...
@@ -56,9 +53,9 @@ Addresses With Balance - + {{w.address}} -
{{w.amount | satToUnit}}
+
{{w.amount | satToUnit}}
diff --git a/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-addresses/wallet-addresses.ts b/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-addresses/wallet-addresses.ts index 369b0aacd..02e4f9ba9 100644 --- a/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-addresses/wallet-addresses.ts +++ b/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-addresses/wallet-addresses.ts @@ -57,7 +57,7 @@ export class WalletAddressesPage { console.log('ionViewDidLoad WalletAddressesPage'); } - ionViewDidEnter() { + ionViewWillEnter() { this.wallet = this.profileProvider.getWallet(this.navParams.data.walletId); this.allAddressesView = this.navParams.data.stateName == 'tabs.receive.allAddresses' ? true : false; if (!this.isCachedWallet(this.navParams.data.walletId)) this.init(); @@ -114,7 +114,7 @@ export class WalletAddressesPage { } private processPaths(list: any): void { - _.each(list, (n) => { + _.each(list, (n: any) => { n.path = n.path.replace(/^m/g, 'xpub'); }); } diff --git a/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-delete/wallet-delete.html b/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-delete/wallet-delete.html index b8e1beacf..951d0e8a7 100644 --- a/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-delete/wallet-delete.html +++ b/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-delete/wallet-delete.html @@ -4,7 +4,7 @@ -
+

Warning!

diff --git a/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-delete/wallet-delete.ts b/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-delete/wallet-delete.ts index 07ff110c6..fbdcfc5a6 100644 --- a/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-delete/wallet-delete.ts +++ b/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-delete/wallet-delete.ts @@ -44,7 +44,7 @@ export class WalletDeletePage { console.log('ionViewDidLoad WalletDeletePage'); } - ionViewDidEnter() { + ionViewWillEnter() { this.wallet = this.profileProvider.getWallet(this.navParams.data.walletId); this.walletName = this.wallet.name; } @@ -64,6 +64,7 @@ export class WalletDeletePage { this.pushNotificationsProvider.unsubscribe(this.wallet); this.navCtrl.setRoot(HomePage); this.navCtrl.popToRoot(); + this.navCtrl.parent.select(0); }).catch((err) => { this.popupProvider.ionicAlert('Error', err.message || err);//TODO gettextcatalog }); diff --git a/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-export/wallet-export.html b/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-export/wallet-export.html index 0877cf09a..6b6428dd3 100644 --- a/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-export/wallet-export.html +++ b/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-export/wallet-export.html @@ -9,7 +9,7 @@ File/Text - + QR Code @@ -20,13 +20,14 @@

Set up a password - + Repeat the password - + + + +
Passwords do not match
@@ -49,11 +50,11 @@
- - + +
- - + +
diff --git a/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-export/wallet-export.scss b/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-export/wallet-export.scss index e69de29bb..e05b34e17 100644 --- a/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-export/wallet-export.scss +++ b/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-export/wallet-export.scss @@ -0,0 +1,3 @@ +.page-wallet-export { + +} \ No newline at end of file diff --git a/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-export/wallet-export.ts b/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-export/wallet-export.ts index cf5686ed7..504bff16b 100644 --- a/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-export/wallet-export.ts +++ b/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-export/wallet-export.ts @@ -12,6 +12,7 @@ import { PersistenceProvider } from '../../../../../providers/persistence/persis import { AppProvider } from '../../../../../providers/app/app'; import { BackupProvider } from '../../../../../providers/backup/backup'; import { PlatformProvider } from '../../../../../providers/platform/platform'; + //pages import { HomePage } from '../../../../../pages/home/home'; @@ -52,9 +53,16 @@ export class WalletExportPage { ) { this.exportWalletForm = this.formBuilder.group({ password: ['', Validators.required], - repeatpassword: ['', Validators.required], + confirmPassword: ['', Validators.required], noSignEnabled: [''] - }); + }, { validator: this.matchingPasswords('password', 'confirmPassword') }); + } + + ionViewDidLoad() { + console.log('ionViewDidLoad WalletExportPage'); + } + + ionViewWillEnter() { this.wallet = this.profileProvider.getWallet(this.navParams.data.walletId); this.isEncrypted = this.wallet.isPrivKeyEncrypted(); this.canSign = this.wallet.canSign(); @@ -62,25 +70,22 @@ export class WalletExportPage { this.isSafari = this.platformProvider.isSafari; } - ionViewDidLoad() { - console.log('ionViewDidLoad WalletExportPage'); + private matchingPasswords(passwordKey: string, confirmPasswordKey: string) { + return (group: FormGroup): { [key: string]: any } => { + let password = group.controls[passwordKey]; + let confirmPassword = group.controls[confirmPasswordKey]; + if (password.value !== confirmPassword.value) { + return { + mismatchedPasswords: true + }; + } + } } public showAdvChange(): void { this.showAdv = !this.showAdv; }; - public checkPassword(pw1: string, pw2: string): void { - if (pw1.length > 0) { - if (pw2.length > 0) { - if (pw1 == pw2) this.result = 'correct'; - else this.result = 'incorrect'; - } else - this.result = ''; - } else - this.result = ''; - }; - public getPassword(): Promise { return new Promise((resolve, reject) => { if (this.password) return resolve(this.password); diff --git a/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-information/wallet-information.html b/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-information/wallet-information.html index 81520081f..2e764b981 100644 --- a/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-information/wallet-information.html +++ b/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-information/wallet-information.html @@ -4,7 +4,7 @@ - +

Wallet Name (at creation)

@@ -29,7 +29,7 @@

Wallet Configuration (m-n)

- {{wallet.credentials.m}}-{{wallet.credentials.n}} + {{M}}-{{N}}
@@ -54,24 +54,24 @@
- +

No private key
- +

Account

({{derivationStrategy}}) - #{{wallet.credentials.account}} + #{{account}}
- Copayers - -

{{copayer.name}}

- + Copayers + +

{{copayer.name}}

+ ({{'Me' | translate}}) @@ -85,21 +85,19 @@ ({{basePath}})
-
+
-
- Balance By Address -
-

{{a.address}}

- - {{(a.amount/1e8).toFixed(8)}} BTC - -
-
+ Balance By Address + +

{{a.address}}

+ + {{(a.amount/1e8).toFixed(8)}} BTC + +
\ No newline at end of file diff --git a/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-information/wallet-information.ts b/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-information/wallet-information.ts index 4637473f8..e0513575d 100644 --- a/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-information/wallet-information.ts +++ b/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-information/wallet-information.ts @@ -1,5 +1,5 @@ import { Component } from '@angular/core'; -import { NavController, NavParams, ModalController } from 'ionic-angular'; +import { NavController, NavParams, ModalController, Events } from 'ionic-angular'; import { Logger } from '@nsalaun/ng-logger'; import { Validators, FormBuilder, FormGroup } from '@angular/forms'; @@ -23,6 +23,12 @@ export class WalletInformationPage { public wallet: any; public walletId: string; public walletName: string; + public N: number; + public M: number; + public copayers: any; + public copayerId: any; + public balanceByAddress: any; + public account: number; public coin: string; public network: string; public addressType: string; @@ -31,6 +37,7 @@ export class WalletInformationPage { public pubKeys: Array; public externalSource: string; public canSign: boolean; + public needsBackup: boolean; private config: any; private colorCounter = 1; private BLACK_WALLET_COLOR = '#202020'; @@ -40,7 +47,8 @@ export class WalletInformationPage { private configProvider: ConfigProvider, private walletProvider: WalletProvider, private navParams: NavParams, - private navCtrl: NavController + private navCtrl: NavController, + private events: Events ) { } @@ -49,12 +57,17 @@ export class WalletInformationPage { console.log('ionViewDidLoad WalletInformationPage'); } - ionViewDidEnter() { + ionViewWillEnter() { this.wallet = this.profileProvider.getWallet(this.navParams.data.walletId); - this.config = this.configProvider.get(); this.walletName = this.wallet.credentials.walletName; this.coin = this.wallet.coin; this.walletId = this.wallet.credentials.walletId; + this.N = this.wallet.credentials.n; + this.M = this.wallet.credentials.m; + this.copayers = this.wallet.cachedStatus.wallet.copayers; + this.copayerId = this.wallet.credentials.copayerId; + this.balanceByAddress = this.wallet.balanceByAddress; + this.account = this.wallet.credentials.account; this.network = this.wallet.credentials.network; this.addressType = this.wallet.credentials.addressType || 'P2SH'; this.derivationStrategy = this.wallet.credentials.derivationStrategy || 'BIP45'; @@ -62,6 +75,8 @@ export class WalletInformationPage { this.pubKeys = _.map(this.wallet.credentials.publicKeyRing, 'xPubKey'); this.externalSource = null; this.canSign = this.wallet.canSign(); + this.needsBackup = this.wallet.needsBackup; + this.config = this.configProvider.get(); } public saveBlack(): void { @@ -78,8 +93,10 @@ export class WalletInformationPage { }; opts.colorFor[this.wallet.credentials.walletId] = color; this.configProvider.set(opts); + this.events.publish('wallet:updated', this.wallet.credentials.walletId); this.navCtrl.setRoot(HomePage); this.navCtrl.popToRoot(); + this.navCtrl.parent.select(0); }; public openWalletExtendedPrivateKey(): void { diff --git a/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-service-url/wallet-service-url.ts b/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-service-url/wallet-service-url.ts index 4be398eb0..d42bd3fac 100644 --- a/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-service-url/wallet-service-url.ts +++ b/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-service-url/wallet-service-url.ts @@ -40,7 +40,7 @@ export class WalletServiceUrlPage { console.log('ionViewDidLoad WalletServiceUrlPage'); } - ionViewDidEnter() { + ionViewWillEnter() { this.wallet = this.profileProvider.getWallet(this.navParams.data.walletId); this.defaults = this.configProvider.getDefaults(); this.config = this.configProvider.get(); diff --git a/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-settings-advanced.html b/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-settings-advanced.html index b36ea9d44..7fc5ee867 100644 --- a/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-settings-advanced.html +++ b/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-settings-advanced.html @@ -5,27 +5,21 @@ \ No newline at end of file diff --git a/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-settings-advanced.ts b/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-settings-advanced.ts index 891800eb5..4f09cea2b 100644 --- a/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-settings-advanced.ts +++ b/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-settings-advanced.ts @@ -25,13 +25,16 @@ export class WalletSettingsAdvancedPage { private navCtrl: NavController, private navParams: NavParams, ) { - this.wallet = this.profileProvider.getWallet(this.navParams.data.walletId); } ionViewDidLoad() { console.log('ionViewDidLoad WalletSettingsAdvancedPage'); } + ionViewWillEnter() { + this.wallet = this.profileProvider.getWallet(this.navParams.data.walletId); + } + public openWalletInformation(): void { this.navCtrl.push(WalletInformationPage, { walletId: this.wallet.credentials.walletId }); } diff --git a/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-transaction-history/wallet-transaction-history.ts b/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-transaction-history/wallet-transaction-history.ts index cf6922cbd..6d67b5f13 100644 --- a/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-transaction-history/wallet-transaction-history.ts +++ b/src/pages/settings/wallet-settings/wallet-settings-advanced/wallet-transaction-history/wallet-transaction-history.ts @@ -58,7 +58,7 @@ export class WalletTransactionHistoryPage { console.log('ionViewDidLoad WalletTransactionHistoryPage'); } - ionViewDidEnter() { + ionViewWillEnter() { this.wallet = this.profileProvider.getWallet(this.navParams.data.walletId); this.isCordova = this.platformProvider.isCordova; this.appName = this.appProvider.info.nameCase; diff --git a/src/pages/settings/wallet-settings/wallet-settings.html b/src/pages/settings/wallet-settings/wallet-settings.html index b0425bf2a..dedde92f0 100644 --- a/src/pages/settings/wallet-settings/wallet-settings.html +++ b/src/pages/settings/wallet-settings/wallet-settings.html @@ -4,17 +4,15 @@ - + Hide Balance @@ -23,36 +21,34 @@ Security -
+
- Request Spending Password - + Request Spending Password +
If enabled, all sensitive information (private key and recovery phrase) and actions (spending and exporting) associated with this wallet will be protected. Learn more -
+
Complete the backup process to use this option
-
+
- Request Fingerprint + Request Fingerprint
diff --git a/src/pages/settings/wallet-settings/wallet-settings.scss b/src/pages/settings/wallet-settings/wallet-settings.scss index 044758a2f..fa2b13218 100644 --- a/src/pages/settings/wallet-settings/wallet-settings.scss +++ b/src/pages/settings/wallet-settings/wallet-settings.scss @@ -5,4 +5,7 @@ page-wallet-settings { white-space: inherit; } } + .comment { + padding: 20px; + } } \ No newline at end of file diff --git a/src/pages/settings/wallet-settings/wallet-settings.ts b/src/pages/settings/wallet-settings/wallet-settings.ts index e8ee7fdb5..62192a08c 100644 --- a/src/pages/settings/wallet-settings/wallet-settings.ts +++ b/src/pages/settings/wallet-settings/wallet-settings.ts @@ -22,6 +22,9 @@ import { BackupWarningPage } from '../../backup/backup-warning/backup-warning'; export class WalletSettingsPage { public wallet: any; + public walletName: any; + public canSign: boolean; + public needsBackup: boolean; public hiddenBalance: boolean; public encryptEnabled: boolean; public touchIdEnabled: boolean; @@ -45,47 +48,41 @@ export class WalletSettingsPage { console.log('ionViewDidLoad WalletSettingsPage'); } - ionViewDidEnter() { + ionViewWillEnter() { this.wallet = this.profileProvider.getWallet(this.navParams.data.walletId); - this.config = this.configProvider.get(); + this.walletName = this.wallet.name; + this.canSign = this.wallet.canSign(); + this.needsBackup = this.wallet.needsBackup; this.hiddenBalance = this.wallet.balanceHidden; this.encryptEnabled = this.walletProvider.isEncrypted(this.wallet); this.touchIdAvailable = this.touchIdProvider.isAvailable(); + this.config = this.configProvider.get(); this.touchIdEnabled = this.config.touchIdFor ? this.config.touchIdFor[this.wallet.credentials.walletId] : null; if (this.wallet.credentials && !this.wallet.credentials.mnemonicEncrypted && !this.wallet.credentials.mnemonic) this.deleted = true; } public hiddenBalanceChange(): void { - let opts = { - balance: { - enabled: this.hiddenBalance - } - }; - this.profileProvider.toggleHideBalanceFlag(this.wallet.credentials.walletId).catch((err: any) => { - if (err) this.logger.error(err); - }); + this.profileProvider.toggleHideBalanceFlag(this.wallet.credentials.walletId); } public encryptChange(): void { if (!this.wallet) return; - var val = this.encryptEnabled; + let val = this.encryptEnabled; if (val && !this.walletProvider.isEncrypted(this.wallet)) { this.logger.debug('Encrypting private key for', this.wallet.name); this.walletProvider.encrypt(this.wallet).then(() => { - this.profileProvider.updateCredentials(JSON.parse(this.wallet.export())).then(() => { - this.logger.debug('Wallet encrypted'); - }); + this.profileProvider.updateCredentials(JSON.parse(this.wallet.export())); + this.logger.debug('Wallet encrypted'); }).catch((err: any) => { this.logger.warn(err); this.encryptEnabled = false; }) } else if (!val && this.walletProvider.isEncrypted(this.wallet)) { this.walletProvider.decrypt(this.wallet).then(() => { - this.profileProvider.updateCredentials(JSON.parse(this.wallet.export())).then(() => { - this.logger.debug('Wallet decrypted'); - }); + this.profileProvider.updateCredentials(JSON.parse(this.wallet.export())); + this.logger.debug('Wallet decrypted'); }).catch((err) => { this.logger.warn(err); this.encryptEnabled = true; @@ -108,9 +105,7 @@ export class WalletSettingsPage { this.walletProvider.setTouchId(this.wallet, !!newStatus).then(() => { this.logger.debug('Touch Id status changed: ' + newStatus); }).catch((err: any) => { - if (err) { - this.touchIdEnabled = !newStatus; - } + this.touchIdEnabled = !newStatus; }); } diff --git a/src/providers/config/config.ts b/src/providers/config/config.ts index 986b40169..1df9cad49 100644 --- a/src/providers/config/config.ts +++ b/src/providers/config/config.ts @@ -217,8 +217,6 @@ export class ConfigProvider { } _.merge(config, this.configCache, newOpts); this.configCache = config; - this.events.publish('config:updated', this.configCache); - this.persistence.storeConfig(this.configCache).then(() => { this.logger.info('Config saved'); }); diff --git a/src/providers/popup/popup.ts b/src/providers/popup/popup.ts index f867c6452..a0dec0fc9 100644 --- a/src/providers/popup/popup.ts +++ b/src/providers/popup/popup.ts @@ -55,13 +55,16 @@ export class PopupProvider { return new Promise((resolve, reject) => { let defaultText = opts && opts.defaultText ? opts.defaultText : null; let placeholder = opts && opts.placeholder ? opts.placeholder : null; + let inputType = opts && opts.type ? opts.type : 'text'; + let prompt = this.alertCtrl.create({ title: title, message: message, inputs: [ { value: defaultText, - placeholder: placeholder + placeholder: placeholder, + type: inputType }, ], buttons: [ diff --git a/src/providers/profile/profile.ts b/src/providers/profile/profile.ts index cac912d35..42741d86a 100644 --- a/src/providers/profile/profile.ts +++ b/src/providers/profile/profile.ts @@ -1,6 +1,9 @@ import { Injectable } from '@angular/core'; import { Logger } from '@nsalaun/ng-logger'; +import { Events } from 'ionic-angular'; import * as _ from 'lodash'; + +//providers import { PersistenceProvider } from '../persistence/persistence'; import { ConfigProvider } from '../config/config'; import { BwcProvider } from '../bwc/bwc'; @@ -9,6 +12,8 @@ import { WalletProvider } from '../wallet/wallet'; import { PlatformProvider } from '../platform/platform'; import { AppProvider } from '../../providers/app/app'; import { LanguageProvider } from '../../providers/language/language'; + +//models import { Profile } from '../../models/profile/profile.model'; @Injectable() @@ -32,6 +37,7 @@ export class ProfileProvider { private platformProvider: PlatformProvider, private appProvider: AppProvider, private languageProvider: LanguageProvider, + private events: Events ) { this.throttledBwsEvent = _.throttle((n, wallet) => { this.newBwsEvent(n, wallet); @@ -145,9 +151,8 @@ export class ProfileProvider { wallet.on('walletCompleted', () => { this.logger.debug('Wallet completed'); - this.updateCredentials(JSON.parse(wallet.export())).then(() => { - //$rootScope.$emit('Local/WalletCompleted', walletId); TODO - }); + this.updateCredentials(JSON.parse(wallet.export())) + //$rootScope.$emit('Local/WalletCompleted', walletId); TODO }); wallet.initialize({ @@ -163,13 +168,12 @@ export class ProfileProvider { this.logger.debug('Wallet + ' + walletId + ' status:' + JSON.stringify(wallet.status)); }); }); - - /* TODO $rootScope.$on('Local/SettingsUpdated', (e: any, walletId: string) => { - if (!walletId || walletId == wallet.id) { + this.events.subscribe('wallet:updated', (walletId: string) => { + if (walletId && walletId == wallet.id) { this.logger.debug('Updating settings for wallet:' + wallet.id); this.updateWalletSettings(wallet); } - }); */ + }); return true; } @@ -190,13 +194,9 @@ export class ProfileProvider { //$rootScope.$emit('bwsEvent', wallet.id, n.type, n); TODO } - public updateCredentials(credentials: any): Promise { - return new Promise((resolve, reject) => { - this.profile.updateWallet(credentials); - this.persistenceProvider.storeProfile(this.profile).then(() => { - return resolve(); - }); - }); + public updateCredentials(credentials: any): void { + this.profile.updateWallet(credentials); + this.persistenceProvider.storeProfile(this.profile); } public getLastKnownBalance(wid: string): Promise { @@ -824,7 +824,7 @@ export class ProfileProvider { public createDefaultWallet(): Promise { return new Promise((resolve, reject) => { - var opts: any = {}; + let opts: any = {}; opts.m = 1; opts.n = 1; opts.networkName = 'livenet'; @@ -911,15 +911,9 @@ export class ProfileProvider { }, 'createdOn']); } - public toggleHideBalanceFlag(walletId: string): Promise { - return new Promise((resolve, reject) => { - this.wallet[walletId].balanceHidden = !this.wallet[walletId].balanceHidden; - this.persistenceProvider.setHideBalanceFlag(walletId, this.wallet[walletId].balanceHidden.toString()).then(() => { - return resolve(); - }).catch((err: any) => { - return reject(err); - }); - }); + public toggleHideBalanceFlag(walletId: string): void { + this.wallet[walletId].balanceHidden = !this.wallet[walletId].balanceHidden; + this.persistenceProvider.setHideBalanceFlag(walletId, this.wallet[walletId].balanceHidden.toString()); } public getNotifications(opts: any): Promise { diff --git a/src/providers/wallet/wallet.ts b/src/providers/wallet/wallet.ts index bb069aa6f..7e510d32d 100644 --- a/src/providers/wallet/wallet.ts +++ b/src/providers/wallet/wallet.ts @@ -845,7 +845,10 @@ export class WalletProvider { // An alert dialog private askPassword(name: string, title: string): Promise { return new Promise((resolve, reject) => { - this.popupProvider.ionicPrompt(title, name, null, null, null).then((res: any) => { + let opts = { + type: 'password' + } + this.popupProvider.ionicPrompt(title, name, opts, null, null).then((res: any) => { return resolve(res); }).catch((err: any) => { return reject(err); @@ -1047,7 +1050,7 @@ export class WalletProvider { public setTouchId(wallet: any, enabled: boolean): Promise { return new Promise((resolve, reject) => { - var opts = { + let opts = { touchIdFor: {} }; opts.touchIdFor[wallet.id] = enabled;