From a0b3ccaa2ec0b1cecebd98f62a9953cfcaca5590 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Mon, 19 Feb 2018 15:58:38 -0300 Subject: [PATCH 01/11] FIX: remove on going process if err --- src/pages/send/confirm/confirm.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/pages/send/confirm/confirm.ts b/src/pages/send/confirm/confirm.ts index 39d1299cd..d3ba6e33b 100644 --- a/src/pages/send/confirm/confirm.ts +++ b/src/pages/send/confirm/confirm.ts @@ -575,6 +575,7 @@ export class ConfirmPage { this.walletProvider.onlyPublish(wallet, txp).then(() => { this.openSuccessModal(true); }).catch((err: any) => { + this.onGoingProcessProvider.clear(); this.setSendError(err); }); return; @@ -588,6 +589,7 @@ export class ConfirmPage { } this.openSuccessModal(); }).catch((err: any) => { + this.onGoingProcessProvider.clear(); this.setSendError(err); return; }); @@ -599,11 +601,12 @@ export class ConfirmPage { } publishAndSign(); }).catch((err: any) => { + this.onGoingProcessProvider.clear(); this.logger.warn(err); return; }); }).catch((err: any) => { - this.onGoingProcessProvider.set('creatingTx', false); + this.onGoingProcessProvider.clear(); this.logger.warn(err); return; }); From 79e2c75f41078830f08d657edda345187875221c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Mon, 19 Feb 2018 16:05:08 -0300 Subject: [PATCH 02/11] FIX: remove on going process if confirm not accepted --- src/pages/send/confirm/confirm.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/pages/send/confirm/confirm.ts b/src/pages/send/confirm/confirm.ts index d3ba6e33b..e88cef03d 100644 --- a/src/pages/send/confirm/confirm.ts +++ b/src/pages/send/confirm/confirm.ts @@ -597,13 +597,10 @@ export class ConfirmPage { confirmTx().then((nok: boolean) => { if (nok) { + this.onGoingProcessProvider.clear(); return; } publishAndSign(); - }).catch((err: any) => { - this.onGoingProcessProvider.clear(); - this.logger.warn(err); - return; }); }).catch((err: any) => { this.onGoingProcessProvider.clear(); From 939d32defd4964557b05b26162d34cf0a67939b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Mon, 19 Feb 2018 16:12:31 -0300 Subject: [PATCH 03/11] FIX: only publish on going process --- src/providers/wallet/wallet.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/providers/wallet/wallet.ts b/src/providers/wallet/wallet.ts index d4dd3462e..656245a2a 100644 --- a/src/providers/wallet/wallet.ts +++ b/src/providers/wallet/wallet.ts @@ -1159,11 +1159,11 @@ export class WalletProvider { this.ongoingProcessProvider.set('sendingTx', true); this.publishTx(wallet, txp).then((publishedTxp) => { this.invalidateCache(wallet); - this.ongoingProcessProvider.set('sendingTx', false); + this.ongoingProcessProvider.clear(); this.events.publish('Local/TxAction', wallet.id); return resolve(); }).catch((err) => { - this.ongoingProcessProvider.set('sendingTx', false); + this.ongoingProcessProvider.clear(); return reject(this.bwcErrorProvider.msg(err)); }); }); From ae47d51a0be60db74a07021d38c93f2ef99651ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Mon, 19 Feb 2018 16:28:18 -0300 Subject: [PATCH 04/11] fixes --- src/pages/send/confirm/confirm.ts | 2 +- src/providers/wallet/wallet.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pages/send/confirm/confirm.ts b/src/pages/send/confirm/confirm.ts index e88cef03d..ba88afba3 100644 --- a/src/pages/send/confirm/confirm.ts +++ b/src/pages/send/confirm/confirm.ts @@ -573,6 +573,7 @@ export class ConfirmPage { if (!wallet.canSign() && !wallet.isPrivKeyExternal()) { this.logger.info('No signing proposal: No private key'); this.walletProvider.onlyPublish(wallet, txp).then(() => { + this.onGoingProcessProvider.clear(); this.openSuccessModal(true); }).catch((err: any) => { this.onGoingProcessProvider.clear(); @@ -589,7 +590,6 @@ export class ConfirmPage { } this.openSuccessModal(); }).catch((err: any) => { - this.onGoingProcessProvider.clear(); this.setSendError(err); return; }); diff --git a/src/providers/wallet/wallet.ts b/src/providers/wallet/wallet.ts index 656245a2a..ec5c7162a 100644 --- a/src/providers/wallet/wallet.ts +++ b/src/providers/wallet/wallet.ts @@ -1159,11 +1159,9 @@ export class WalletProvider { this.ongoingProcessProvider.set('sendingTx', true); this.publishTx(wallet, txp).then((publishedTxp) => { this.invalidateCache(wallet); - this.ongoingProcessProvider.clear(); this.events.publish('Local/TxAction', wallet.id); return resolve(); }).catch((err) => { - this.ongoingProcessProvider.clear(); return reject(this.bwcErrorProvider.msg(err)); }); }); @@ -1225,6 +1223,7 @@ export class WalletProvider { return reject(err); }); }).catch((err) => { + this.ongoingProcessProvider.clear(); return reject(this.bwcErrorProvider.msg(err)); }); } else { @@ -1241,6 +1240,7 @@ export class WalletProvider { return reject(this.bwcErrorProvider.msg(err)); }); }).catch((err) => { + this.ongoingProcessProvider.clear(); return reject(this.bwcErrorProvider.msg(err)); }); }; From 4ec18b2682e19002b0083efe618726b534a793bc Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Mon, 19 Feb 2018 16:29:24 -0300 Subject: [PATCH 05/11] Ref txp and tx details. Fix paypro description --- src/pages/tx-details/tx-details.html | 60 +++++++++-------- src/pages/tx-details/tx-details.scss | 11 ++-- src/pages/tx-details/tx-details.ts | 2 +- src/pages/txp-details/txp-details.html | 90 +++++++++++++------------- src/pages/txp-details/txp-details.scss | 12 ++-- 5 files changed, 93 insertions(+), 82 deletions(-) diff --git a/src/pages/tx-details/tx-details.html b/src/pages/tx-details/tx-details.html index 36e117c66..4a7263afe 100644 --- a/src/pages/tx-details/tx-details.html +++ b/src/pages/tx-details/tx-details.html @@ -36,8 +36,8 @@ + {{'To' | translate}} - To @@ -48,19 +48,17 @@ + {{'From' | translate}} + {{'To' | translate}} - From - To -
- - - - +
+ +
{{wallet.name}}
+ + Created by @@ -74,18 +72,12 @@ - - - + - {{'Fee' | translate}} + +
{{'Fee' | translate}}
+
{{btx.feeStr}}
@@ -93,7 +85,7 @@ ({{btx.feeRateStr}})
-
+ @@ -124,6 +116,22 @@ + +
+ {{'Memo' | translate}} +
+
+ +
+
+ + {{btx.note.body}} + {{btx.message}} + + {{'Notify me if confirmed' | translate}} @@ -150,12 +158,10 @@
-
- - - -
+ + +
- \ No newline at end of file + diff --git a/src/pages/tx-details/tx-details.scss b/src/pages/tx-details/tx-details.scss index a900a6337..599f1e18a 100644 --- a/src/pages/tx-details/tx-details.scss +++ b/src/pages/tx-details/tx-details.scss @@ -3,9 +3,11 @@ page-tx-details { $item-lateral-padding: 20px; $item-label-color: #6C6C6E; - span.label { - color: color($colors, grey); + // Small font size for ion-note + ion-note { + font-size: 1.3rem; } + .sending-label { display: flex; align-items: center; @@ -32,9 +34,10 @@ page-tx-details { } .payment-proposal-to, .wallet { + color: color($colors, grey); + font-size: 1.4rem; display: flex; align-items: center; - margin-top: 1rem; .icon-wallet { width: 25px; height: 25px; @@ -44,7 +47,7 @@ page-tx-details { } } .icon-bitcoin { - margin: 9px 2rem 9px 0; + margin: 0 9px 0 0; width: 25px; height: 25px; padding: 5px; diff --git a/src/pages/tx-details/tx-details.ts b/src/pages/tx-details/tx-details.ts index 185ff06aa..0b8d8d620 100644 --- a/src/pages/tx-details/tx-details.ts +++ b/src/pages/tx-details/tx-details.ts @@ -203,7 +203,7 @@ export class TxDetailsPage { }; this.walletProvider.editTxNote(this.wallet, args).then((res: any) => { - this.logger.info('Tx Note edited: ', res); + this.logger.info('Tx Note edited'); }).catch((err: any) => { this.logger.debug('Could not save tx comment ' + err); }); diff --git a/src/pages/txp-details/txp-details.html b/src/pages/txp-details/txp-details.html index 0822f167b..5581fe62d 100644 --- a/src/pages/txp-details/txp-details.html +++ b/src/pages/txp-details/txp-details.html @@ -24,49 +24,49 @@ - + The payment was removed by creator -
-
+
+
Payment accepted, but not yet broadcasted
- + Payment accepted. It will be broadcasted by Glidera. In case there is a problem, it can be deleted 6 hours after it was created. - Payment Sent - Payment Rejected + Payment Sent + Payment Rejected
- + Warning: this transaction has unconfirmed inputs + {{'To' | translate}} - To
- {{tx.toAddress}} - {{tx.name}} - Multiple recipients + {{tx.toAddress}} + {{tx.name}} + Multiple recipients
-
+
Recipients {{tx.recipientCount}}
-
+
To: @@ -88,16 +88,15 @@
+ {{'From' | translate}} - From -
-
- -
{{wallet.name}}
-
+
+ +
{{wallet.name}}
+ Created by @@ -107,7 +106,7 @@ - + Date @@ -116,18 +115,18 @@ - - - Memo - - +
+ {{'Memo' | translate}} + {{tx.message}} - - + + +
- + - {{'Fee' | translate}} ({{tx.feeLevelStr | translate}}) +
{{'Fee' | translate}}
+
{{tx.feelevelstr | translate}}
{{tx.feeStr}} @@ -143,11 +142,14 @@ {{'To'|translate}} - - - {{tx.paypro.domain}} - - {{tx.paypro.domain}} + + + + + + + + {{tx.paypro.domain}}
@@ -167,13 +169,9 @@
- - - {{'Merchant Message'|translate}} - - - {{tx.paypro.pr.pd.memo}} - + {{'Merchant Message' | translate}} + + {{tx.paypro.memo}}
@@ -197,13 +195,13 @@
-
+
* A payment proposal can be deleted if 1) you are the creator, and no other copayer has signed, or 2) 24 hours have passed since the proposal was created.
- @@ -212,7 +210,7 @@ - + - - \ No newline at end of file + diff --git a/src/pages/txp-details/txp-details.scss b/src/pages/txp-details/txp-details.scss index 39232d5f4..419e0f2ca 100644 --- a/src/pages/txp-details/txp-details.scss +++ b/src/pages/txp-details/txp-details.scss @@ -2,9 +2,11 @@ page-txp-details { $item-border-color: #EFEFEF; $item-lateral-padding: 20px; - span.label { - color: color($colors, grey); + // Small font size for ion-note + ion-note { + font-size: 1.3rem; } + .sending-label { display: flex; align-items: center; @@ -38,9 +40,10 @@ page-txp-details { .container-to, .container-from { .wallet, .payment-proposal-to { + color: color($colors, grey); + font-size: 1.4rem; display: flex; align-items: center; - margin-top: 1rem; .icon-wallet { width: 25px; height: 25px; @@ -50,7 +53,7 @@ page-txp-details { } } .icon-bitcoin { - margin: 9px 12px 9px 0; + margin: 0 9px 0 0; width: 25px; height: 25px; padding: 5px; @@ -138,6 +141,7 @@ page-txp-details { } } .btn-remove { + font-size: 1.2rem; color: color($colors, danger); } .btn-broadcast { From f0e7c3ee65e9d19ca61d20739a028b11c1f9a3a0 Mon Sep 17 00:00:00 2001 From: Gabriel Masclef Date: Mon, 19 Feb 2018 15:49:12 -0300 Subject: [PATCH 06/11] Fix: Icon tags --- .../integrations/bitpay-card/bitpay-card.html | 17 +++++++++-------- src/pages/settings/addressbook/addressbook.html | 6 +++--- .../wallet-information/wallet-information.html | 12 ------------ 3 files changed, 12 insertions(+), 23 deletions(-) diff --git a/src/pages/integrations/bitpay-card/bitpay-card.html b/src/pages/integrations/bitpay-card/bitpay-card.html index f64e31872..9188a7773 100644 --- a/src/pages/integrations/bitpay-card/bitpay-card.html +++ b/src/pages/integrations/bitpay-card/bitpay-card.html @@ -1,6 +1,7 @@ - BitPay Visa® Card ({{lastFourDigits}}) + BitPay Visa + ® Card ({{lastFourDigits}}) @@ -45,9 +46,9 @@ - - - + + + Confirming @@ -57,9 +58,9 @@ - - - + + + Pre-Auth Holds @@ -77,4 +78,4 @@
- + \ No newline at end of file diff --git a/src/pages/settings/addressbook/addressbook.html b/src/pages/settings/addressbook/addressbook.html index 016efa537..af4870b3c 100644 --- a/src/pages/settings/addressbook/addressbook.html +++ b/src/pages/settings/addressbook/addressbook.html @@ -14,9 +14,9 @@
- + - +
No contacts yet
Get started by adding your first one.
@@ -39,4 +39,4 @@
- + \ No newline at end of file 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 812f4b38c..2f7c935f8 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 @@ -11,63 +11,54 @@ {{walletName}} -

Coin

{{coin}} -

Wallet Id

{{walletId}}

-

Wallet Configuration (m-n)

{{M}}-{{N}} -

Wallet Network

{{network}} -

Address Type

{{addressType}} -

Derivation Strategy

{{derivationStrategy}} -

No private key -

Account

({{derivationStrategy}}) #{{account}} -
Copayers @@ -75,7 +66,6 @@ ({{'Me' | translate}}) - Extended Public Keys @@ -84,13 +74,11 @@ {{pk}} ({{basePath}}) -
Balance By Address From cc00ecdb18fee302000ac8283dba549c6542a5a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Baz=C3=A1n?= Date: Tue, 20 Feb 2018 10:13:20 -0300 Subject: [PATCH 07/11] REF: remove slide label --- src/pages/send/confirm/confirm.html | 5 ++--- src/pages/send/confirm/confirm.ts | 30 ++++++++++++++-------------- src/pages/txp-details/txp-details.ts | 20 +++++++++---------- 3 files changed, 27 insertions(+), 28 deletions(-) diff --git a/src/pages/send/confirm/confirm.html b/src/pages/send/confirm/confirm.html index 372119016..a0ed412b6 100644 --- a/src/pages/send/confirm/confirm.html +++ b/src/pages/send/confirm/confirm.html @@ -122,6 +122,5 @@ - - + + \ No newline at end of file diff --git a/src/pages/send/confirm/confirm.ts b/src/pages/send/confirm/confirm.ts index ba88afba3..d8154a14d 100644 --- a/src/pages/send/confirm/confirm.ts +++ b/src/pages/send/confirm/confirm.ts @@ -253,23 +253,23 @@ export class ConfirmPage { private setButtonText(isMultisig: boolean, isPayPro: boolean): void { if (isPayPro) { - if (this.isCordova && !this.isWindowsPhoneApp) { - this.buttonText = this.translate.instant('Slide to pay'); - } else { - this.buttonText = this.translate.instant('Click to pay'); - } + //if (this.isCordova && !this.isWindowsPhoneApp) { + // this.buttonText = this.translate.instant('Slide to pay'); + // } else { + this.buttonText = this.translate.instant('Click to pay'); + // } } else if (isMultisig) { - if (this.isCordova && !this.isWindowsPhoneApp) { - this.buttonText = this.translate.instant('Slide to accept'); - } else { - this.buttonText = this.translate.instant('Click to accept'); - } + //if (this.isCordova && !this.isWindowsPhoneApp) { + // this.buttonText = this.translate.instant('Slide to accept'); + //} else { + this.buttonText = this.translate.instant('Click to accept'); + //} } else { - if (this.isCordova && !this.isWindowsPhoneApp) { - this.buttonText = this.translate.instant('Slide to send'); - } else { - this.buttonText = this.translate.instant('Click to send'); - } + //if (this.isCordova && !this.isWindowsPhoneApp) { + // this.buttonText = this.translate.instant('Slide to send'); + //} else { + this.buttonText = this.translate.instant('Click to send'); + //} } } diff --git a/src/pages/txp-details/txp-details.ts b/src/pages/txp-details/txp-details.ts index 198795315..b8769d64b 100644 --- a/src/pages/txp-details/txp-details.ts +++ b/src/pages/txp-details/txp-details.ts @@ -120,18 +120,18 @@ export class TxpDetailsPage { }).length == this.tx.requiredSignatures - 1; if (lastSigner) { - if (this.isCordova && !this.isWindowsPhoneApp) { - this.buttonText = this.translate.instant('Slide to send'); - } else { - this.buttonText = this.translate.instant('Click to send'); - } + //if (this.isCordova && !this.isWindowsPhoneApp) { + // this.buttonText = this.translate.instant('Slide to send'); + //} else { + this.buttonText = this.translate.instant('Click to send'); + //} this.successText = this.translate.instant('Payment Sent'); } else { - if (this.isCordova && !this.isWindowsPhoneApp) { - this.buttonText = this.translate.instant('Slide to accept'); - } else { - this.buttonText = this.translate.instant('Click to accept'); - } + //if (this.isCordova && !this.isWindowsPhoneApp) { + // this.buttonText = this.translate.instant('Slide to accept'); + //} else { + this.buttonText = this.translate.instant('Click to accept'); + //} this.successText = this.translate.instant('Payment Accepted'); } } From 6ee85d5a713174c00619c3234173ec5e37ac9a9a Mon Sep 17 00:00:00 2001 From: Gabriel Masclef Date: Tue, 20 Feb 2018 11:55:56 -0300 Subject: [PATCH 08/11] Fix: success Modal renamed to finish modal --- src/app/app.module.ts | 6 +++--- .../success.html => finish/finish.html} | 4 ++-- .../success.scss => finish/finish.scss} | 2 +- .../{success/success.ts => finish/finish.ts} | 14 ++++++------- .../amazon/buy-amazon/buy-amazon.ts | 20 +++++++++---------- .../bitpay-card-topup/bitpay-card-topup.ts | 14 ++++++------- .../coinbase/buy-coinbase/buy-coinbase.ts | 12 +++++------ .../coinbase/sell-coinbase/sell-coinbase.ts | 12 +++++------ .../glidera/buy-glidera/buy-glidera.ts | 12 +++++------ .../glidera/sell-glidera/sell-glidera.ts | 12 +++++------ .../buy-mercado-libre/buy-mercado-libre.ts | 18 ++++++++--------- .../shapeshift-confirm/shapeshift-confirm.ts | 10 +++++----- src/pages/paper-wallet/paper-wallet.ts | 12 +++++------ src/pages/send/confirm/confirm.ts | 16 +++++++-------- src/pages/txp-details/txp-details.ts | 10 +++++----- 15 files changed, 87 insertions(+), 87 deletions(-) rename src/pages/{success/success.html => finish/finish.html} (90%) rename src/pages/{success/success.scss => finish/finish.scss} (98%) rename src/pages/{success/success.ts => finish/finish.ts} (54%) diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 09d88d113..10d6fe837 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -47,7 +47,7 @@ import { PaperWalletPage } from '../pages/paper-wallet/paper-wallet'; import { PayProPage } from '../pages/paypro/paypro'; import { FeeWarningPage } from '../pages/send/fee-warning/fee-warning'; import { BitcoinCashPage } from '../pages/settings/bitcoin-cash/bitcoin-cash'; -import { SuccessModalPage } from '../pages/success/success'; +import { FinishModalPage } from '../pages/finish/finish'; import { TabsPage } from '../pages/tabs/tabs'; import { TxDetailsPage } from '../pages/tx-details/tx-details'; import { TxpDetailsPage } from '../pages/txp-details/txp-details'; @@ -287,7 +287,7 @@ export function createTranslateLoader(http: HttpClient) { FeePolicyPage, SessionLogPage, SendFeedbackPage, - SuccessModalPage, + FinishModalPage, TourPage, TabsPage, TxpDetailsPage, @@ -415,7 +415,7 @@ export function createTranslateLoader(http: HttpClient) { FeePolicyPage, SessionLogPage, SendFeedbackPage, - SuccessModalPage, + FinishModalPage, TourPage, TabsPage, TxpDetailsPage, diff --git a/src/pages/success/success.html b/src/pages/finish/finish.html similarity index 90% rename from src/pages/success/success.html rename to src/pages/finish/finish.html index cbc0647fa..4df45b06c 100644 --- a/src/pages/success/success.html +++ b/src/pages/finish/finish.html @@ -4,10 +4,10 @@
- {{successText}} + {{finishText}}
- {{successComment}} + {{finishComment}}
diff --git a/src/pages/success/success.scss b/src/pages/finish/finish.scss similarity index 98% rename from src/pages/success/success.scss rename to src/pages/finish/finish.scss index 6164e645c..98155ff28 100644 --- a/src/pages/success/success.scss +++ b/src/pages/finish/finish.scss @@ -1,4 +1,4 @@ -page-success{ +page-finish{ .container { height: 100%; position: relative; diff --git a/src/pages/success/success.ts b/src/pages/finish/finish.ts similarity index 54% rename from src/pages/success/success.ts rename to src/pages/finish/finish.ts index 11d061c26..23ca5a65e 100644 --- a/src/pages/success/success.ts +++ b/src/pages/finish/finish.ts @@ -3,13 +3,13 @@ import { TranslateService } from '@ngx-translate/core'; import { NavParams, ViewController } from 'ionic-angular'; @Component({ - selector: 'page-success', - templateUrl: 'success.html', + selector: 'page-finish', + templateUrl: 'finish.html', }) -export class SuccessModalPage { +export class FinishModalPage { - public successText: string; - public successComment: string; + public finishText: string; + public finishComment: string; public cssClass: string; // success, warning, danger constructor( @@ -17,8 +17,8 @@ export class SuccessModalPage { private navParams: NavParams, private translate: TranslateService ) { - this.successText = (this.navParams.data.successText || this.navParams.data.successText == '') ? this.navParams.data.successText : this.translate.instant('Payment Sent'); - this.successComment = this.navParams.data.successComment ? this.navParams.data.successComment : ''; + this.finishText = (this.navParams.data.finishText || this.navParams.data.finishText == '') ? this.navParams.data.finishText : this.translate.instant('Payment Sent'); + this.finishComment = this.navParams.data.finishComment ? this.navParams.data.finishComment : ''; this.cssClass = this.navParams.data.cssClass ? this.navParams.data.cssClass : 'success'; } diff --git a/src/pages/integrations/amazon/buy-amazon/buy-amazon.ts b/src/pages/integrations/amazon/buy-amazon/buy-amazon.ts index 5befdf1b8..cd1d9ab2c 100644 --- a/src/pages/integrations/amazon/buy-amazon/buy-amazon.ts +++ b/src/pages/integrations/amazon/buy-amazon/buy-amazon.ts @@ -7,7 +7,7 @@ import { Logger } from '../../../../providers/logger/logger'; // Pages import { FeeWarningPage } from '../../../send/fee-warning/fee-warning'; -import { SuccessModalPage } from '../../../success/success'; +import { FinishModalPage } from '../../../finish/finish'; import { AmazonPage } from '../amazon'; // Provider @@ -308,7 +308,7 @@ export class BuyAmazonPage { this.onGoingProcessProvider.set('buyingGiftCard', false); this.logger.debug("Saved new gift card with status: " + newData.status); this.amazonGiftCard = newData; - this.openSuccessModal(); + this.openFinishModal(); }); }); }, 15000, { @@ -412,25 +412,25 @@ export class BuyAmazonPage { }); } - public openSuccessModal(): void { - let successComment: string; + public openFinishModal(): void { + let finishComment: string; let cssClass: string; if (this.amazonGiftCard.status == 'FAILURE') { - successComment = 'Your purchase could not be completed'; + finishComment = 'Your purchase could not be completed'; cssClass = 'danger'; } if (this.amazonGiftCard.status == 'PENDING') { - successComment = 'Your purchase was added to the list of pending'; + finishComment = 'Your purchase was added to the list of pending'; cssClass = 'warning'; } if (this.amazonGiftCard.status == 'SUCCESS') { - successComment = 'Bought ' + this.amountUnitStr; + finishComment = 'Bought ' + this.amountUnitStr; } if (this.amazonGiftCard.status == 'SUCCESS') { - successComment = 'Gift card generated and ready to use.'; + finishComment = 'Gift card generated and ready to use.'; } - let successText = ''; - let modal = this.modalCtrl.create(SuccessModalPage, { successText: successText, successComment: successComment, cssClass: cssClass }, { showBackdrop: true, enableBackdropDismiss: false }); + let finishText = ''; + let modal = this.modalCtrl.create(FinishModalPage, { finishText: finishText, finishComment: finishComment, cssClass: cssClass }, { showBackdrop: true, enableBackdropDismiss: false }); modal.present(); modal.onDidDismiss(() => { this.navCtrl.remove(2, 2); diff --git a/src/pages/integrations/bitpay-card/bitpay-card-topup/bitpay-card-topup.ts b/src/pages/integrations/bitpay-card/bitpay-card-topup/bitpay-card-topup.ts index a2715f362..8169fba32 100644 --- a/src/pages/integrations/bitpay-card/bitpay-card-topup/bitpay-card-topup.ts +++ b/src/pages/integrations/bitpay-card/bitpay-card-topup/bitpay-card-topup.ts @@ -6,7 +6,7 @@ import { Logger } from '../../../../providers/logger/logger'; // Pages import { FeeWarningPage } from '../../../send/fee-warning/fee-warning'; -import { SuccessModalPage } from '../../../success/success'; +import { FinishModalPage } from '../../../finish/finish'; import { BitPayCardPage } from '../bitpay-card'; // Provider @@ -422,16 +422,16 @@ export class BitPayCardTopUpPage { }); } - public openSuccessModal(): void { - let successComment: string; + public openFinishModal(): void { + let finishComment: string; if (this.sendStatus == 'success') { if (this.wallet.credentials.m == 1) - successComment = this.translate.instant('Funds were added to debit card'); + finishComment = this.translate.instant('Funds were added to debit card'); else - successComment = this.translate.instant('Transaction initiated'); + finishComment = this.translate.instant('Transaction initiated'); } - let successText = ''; - let modal = this.modalCtrl.create(SuccessModalPage, { successText: successText, successComment: successComment }, { showBackdrop: true, enableBackdropDismiss: false }); + let finishText = ''; + let modal = this.modalCtrl.create(FinishModalPage, { finishText: finishText, finishComment: finishComment }, { showBackdrop: true, enableBackdropDismiss: false }); modal.present(); modal.onDidDismiss(() => { this.navCtrl.popToRoot({ animate: false }); diff --git a/src/pages/integrations/coinbase/buy-coinbase/buy-coinbase.ts b/src/pages/integrations/coinbase/buy-coinbase/buy-coinbase.ts index 422994132..6a8f2522f 100644 --- a/src/pages/integrations/coinbase/buy-coinbase/buy-coinbase.ts +++ b/src/pages/integrations/coinbase/buy-coinbase/buy-coinbase.ts @@ -13,7 +13,7 @@ import { TxFormatProvider } from '../../../../providers/tx-format/tx-format'; import { WalletProvider } from '../../../../providers/wallet/wallet'; //pages -import { SuccessModalPage } from '../../../success/success'; +import { FinishModalPage } from '../../../finish/finish'; import { CoinbasePage } from '../coinbase'; @Component({ @@ -236,7 +236,7 @@ export class BuyCoinbasePage { this.coinbaseProvider.savePendingTransaction(updatedTx.data, {}, (err: any) => { this.onGoingProcessProvider.set('buyingBitcoin', false); if (err) this.logger.debug(err); - this.openSuccessModal(); + this.openFinishModal(); }); }).catch((err) => { this.onGoingProcessProvider.set('buyingBitcoin', false); @@ -292,10 +292,10 @@ export class BuyCoinbasePage { }); } - public openSuccessModal(): void { - let successText = 'Bought'; - let successComment = 'Bitcoin purchase completed. Coinbase has queued the transfer to your selected wallet'; - let modal = this.modalCtrl.create(SuccessModalPage, { successText: successText, successComment: successComment }, { showBackdrop: true, enableBackdropDismiss: false }); + public openFinishModal(): void { + let finishText = 'Bought'; + let finishComment = 'Bitcoin purchase completed. Coinbase has queued the transfer to your selected wallet'; + let modal = this.modalCtrl.create(FinishModalPage, { finishText: finishText, finishComment: finishComment }, { showBackdrop: true, enableBackdropDismiss: false }); modal.present(); modal.onDidDismiss(() => { this.navCtrl.remove(3, 1); diff --git a/src/pages/integrations/coinbase/sell-coinbase/sell-coinbase.ts b/src/pages/integrations/coinbase/sell-coinbase/sell-coinbase.ts index 28f6d2a21..c534b8c06 100644 --- a/src/pages/integrations/coinbase/sell-coinbase/sell-coinbase.ts +++ b/src/pages/integrations/coinbase/sell-coinbase/sell-coinbase.ts @@ -4,7 +4,7 @@ import * as _ from 'lodash'; import { Logger } from '../../../../providers/logger/logger'; //pages -import { SuccessModalPage } from '../../../success/success'; +import { FinishModalPage } from '../../../finish/finish'; import { CoinbasePage } from '../coinbase'; //providers @@ -217,7 +217,7 @@ export class SellCoinbasePage { ctx.description = this.appProvider.info.nameCase + ' Wallet: ' + this.wallet.name; this.coinbaseProvider.savePendingTransaction(ctx, null, (err: any) => { this.onGoingProcessProvider.set('sellingBitcoin', false); - this.openSuccessModal(); + this.openFinishModal(); if (err) this.logger.debug(this.coinbaseProvider.getErrorsAsString(err.errors)); }); return; @@ -358,10 +358,10 @@ export class SellCoinbasePage { this.processPaymentInfo(); } - public openSuccessModal(): void { - let successText = 'Funds sent to Coinbase Account'; - let successComment = 'The transaction is not yet confirmed, and will show as "Pending" in your Activity. The bitcoin sale will be completed automatically once it is confirmed by Coinbase'; - let modal = this.modalCtrl.create(SuccessModalPage, { successText: successText, successComment: successComment }, { showBackdrop: true, enableBackdropDismiss: false }); + public openFinishModal(): void { + let finishText = 'Funds sent to Coinbase Account'; + let finishComment = 'The transaction is not yet confirmed, and will show as "Pending" in your Activity. The bitcoin sale will be completed automatically once it is confirmed by Coinbase'; + let modal = this.modalCtrl.create(FinishModalPage, { finishText: finishText, finishComment: finishComment }, { showBackdrop: true, enableBackdropDismiss: false }); modal.present(); modal.onDidDismiss(() => { this.navCtrl.remove(3, 1); diff --git a/src/pages/integrations/glidera/buy-glidera/buy-glidera.ts b/src/pages/integrations/glidera/buy-glidera/buy-glidera.ts index 159aa79db..2c4eafba2 100644 --- a/src/pages/integrations/glidera/buy-glidera/buy-glidera.ts +++ b/src/pages/integrations/glidera/buy-glidera/buy-glidera.ts @@ -3,7 +3,7 @@ import { Events, ModalController, NavController, NavParams } from 'ionic-angular import { Logger } from '../../../../providers/logger/logger'; //pages -import { SuccessModalPage } from '../../../success/success'; +import { FinishModalPage } from '../../../finish/finish'; //providers import { GlideraProvider } from '../../../../providers/glidera/glidera'; @@ -165,7 +165,7 @@ export class BuyGlideraPage { this.onGoingProcessProvider.set('buyingBitcoin', false); if (err) return this.showError(err); this.logger.info(data); - this.openSuccessModal(); + this.openFinishModal(); }); }).catch(() => { this.onGoingProcessProvider.set('buyingBitcoin', false); @@ -198,10 +198,10 @@ export class BuyGlideraPage { this.processPaymentInfo(); } - public openSuccessModal(): void { - let successText = 'Bought'; - let successComment = 'A transfer has been initiated from your bank account. Your bitcoins should arrive to your wallet in 2-4 business day'; - let modal = this.modalCtrl.create(SuccessModalPage, { successText: successText, successComment: successComment }, { showBackdrop: true, enableBackdropDismiss: false }); + public openFinishModal(): void { + let finishText = 'Bought'; + let finishComment = 'A transfer has been initiated from your bank account. Your bitcoins should arrive to your wallet in 2-4 business day'; + let modal = this.modalCtrl.create(FinishModalPage, { finishText: finishText, finishComment: finishComment }, { showBackdrop: true, enableBackdropDismiss: false }); modal.present(); modal.onDidDismiss(() => { this.navCtrl.remove(3, 1); diff --git a/src/pages/integrations/glidera/sell-glidera/sell-glidera.ts b/src/pages/integrations/glidera/sell-glidera/sell-glidera.ts index 2de814df7..91d853362 100644 --- a/src/pages/integrations/glidera/sell-glidera/sell-glidera.ts +++ b/src/pages/integrations/glidera/sell-glidera/sell-glidera.ts @@ -4,7 +4,7 @@ import * as _ from 'lodash'; import { Logger } from '../../../../providers/logger/logger'; //pages -import { SuccessModalPage } from '../../../success/success'; +import { FinishModalPage } from '../../../finish/finish'; //providers import { ConfigProvider } from '../../../../providers/config/config'; @@ -216,7 +216,7 @@ export class SellGlideraPage { this.onGoingProcessProvider.set('sellingBitcoin', false); if (err) return this.showError(err); this.logger.info(data); - this.openSuccessModal(); + this.openFinishModal(); }); }).catch((err) => { this.onGoingProcessProvider.set('sellingBitcoin', false); @@ -266,10 +266,10 @@ export class SellGlideraPage { }); } - public openSuccessModal(): void { - let successText = 'Funds sent to Glidera Account'; - let successComment = 'The transaction is not yet confirmed, and will show as "Pending" in your Activity. The bitcoin sale will be completed automatically once it is confirmed by Glidera'; - let modal = this.modalCtrl.create(SuccessModalPage, { successText: successText, successComment: successComment }, { showBackdrop: true, enableBackdropDismiss: false }); + public openFinishModal(): void { + let finishText = 'Funds sent to Glidera Account'; + let finishComment = 'The transaction is not yet confirmed, and will show as "Pending" in your Activity. The bitcoin sale will be completed automatically once it is confirmed by Glidera'; + let modal = this.modalCtrl.create(FinishModalPage, { finishText: finishText, finishComment: finishComment }, { showBackdrop: true, enableBackdropDismiss: false }); modal.present(); modal.onDidDismiss(() => { this.navCtrl.remove(3, 1); diff --git a/src/pages/integrations/mercado-libre/buy-mercado-libre/buy-mercado-libre.ts b/src/pages/integrations/mercado-libre/buy-mercado-libre/buy-mercado-libre.ts index 7933a9b8a..62642560c 100644 --- a/src/pages/integrations/mercado-libre/buy-mercado-libre/buy-mercado-libre.ts +++ b/src/pages/integrations/mercado-libre/buy-mercado-libre/buy-mercado-libre.ts @@ -7,7 +7,7 @@ import { Logger } from '../../../../providers/logger/logger'; // Pages import { FeeWarningPage } from '../../../send/fee-warning/fee-warning'; -import { SuccessModalPage } from '../../../success/success'; +import { FinishModalPage } from '../../../finish/finish'; import { MercadoLibrePage } from '../mercado-libre'; // Provider @@ -299,7 +299,7 @@ export class BuyMercadoLibrePage { this.onGoingProcessProvider.set('Comprando Vale-Presente', false); this.logger.debug("Saved new gift card with status: " + newData.status); this.mlGiftCard = newData; - this.openSuccessModal(); + this.openFinishModal(); }); }); }, 15000, { @@ -400,22 +400,22 @@ export class BuyMercadoLibrePage { }); } - public openSuccessModal(): void { - let successComment: string; + public openFinishModal(): void { + let finishComment: string; let cssClass: string; if (this.mlGiftCard.status == 'FAILURE') { - successComment = 'Sua compra não pôde ser concluída'; + finishComment = 'Sua compra não pôde ser concluída'; cssClass = 'danger'; } if (this.mlGiftCard.status == 'PENDING') { - successComment = 'Sua compra foi adicionada à lista de pendentes'; + finishComment = 'Sua compra foi adicionada à lista de pendentes'; cssClass = 'warning'; } if (this.mlGiftCard.status == 'SUCCESS' || this.mlGiftCard.cardStatus == 'active') { - successComment = 'Vale-Presente gerado e pronto para usar'; + finishComment = 'Vale-Presente gerado e pronto para usar'; } - let successText = ''; - let modal = this.modalCtrl.create(SuccessModalPage, { successText: successText, successComment: successComment, cssClass: cssClass }, { showBackdrop: true, enableBackdropDismiss: false }); + let finishText = ''; + let modal = this.modalCtrl.create(FinishModalPage, { finishText: finishText, finishComment: finishComment, cssClass: cssClass }, { showBackdrop: true, enableBackdropDismiss: false }); modal.present(); modal.onDidDismiss(() => { this.navCtrl.remove(2, 2); diff --git a/src/pages/integrations/shapeshift/shapeshift-confirm/shapeshift-confirm.ts b/src/pages/integrations/shapeshift/shapeshift-confirm/shapeshift-confirm.ts index 93b5d6bad..ac1850bac 100644 --- a/src/pages/integrations/shapeshift/shapeshift-confirm/shapeshift-confirm.ts +++ b/src/pages/integrations/shapeshift/shapeshift-confirm/shapeshift-confirm.ts @@ -6,7 +6,7 @@ import * as moment from 'moment'; import { Logger } from '../../../../providers/logger/logger'; // Pages -import { SuccessModalPage } from '../../../success/success'; +import { FinishModalPage } from '../../../finish/finish'; import { ShapeshiftPage } from '../shapeshift'; // Providers @@ -201,7 +201,7 @@ export class ShapeshiftConfirmPage { this.shapeshiftProvider.saveShapeshift(newData, null, (err: any) => { this.logger.debug("Saved shift with status: " + newData.status); - this.openSuccessModal(); + this.openFinishModal(); }); }); } @@ -350,9 +350,9 @@ export class ShapeshiftConfirmPage { }); }; - public openSuccessModal(): void { - let successText = 'Transaction Sent'; - let modal = this.modalCtrl.create(SuccessModalPage, { successText: successText }, { showBackdrop: true, enableBackdropDismiss: false }); + public openFinishModal(): void { + let finishText = 'Transaction Sent'; + let modal = this.modalCtrl.create(FinishModalPage, { finishText: finishText }, { showBackdrop: true, enableBackdropDismiss: false }); modal.present(); modal.onDidDismiss(() => { this.navCtrl.popToRoot({ animate: false }); diff --git a/src/pages/paper-wallet/paper-wallet.ts b/src/pages/paper-wallet/paper-wallet.ts index 6f4e03510..7126646be 100644 --- a/src/pages/paper-wallet/paper-wallet.ts +++ b/src/pages/paper-wallet/paper-wallet.ts @@ -11,7 +11,7 @@ import { OnGoingProcessProvider } from '../../providers/on-going-process/on-goin import { PopupProvider } from '../../providers/popup/popup'; import { ProfileProvider } from '../../providers/profile/profile'; import { WalletProvider } from '../../providers/wallet/wallet'; -import { SuccessModalPage } from '../success/success'; +import { FinishModalPage } from '../finish/finish'; @Component({ selector: 'page-paper-wallet', @@ -163,7 +163,7 @@ export class PaperWalletPage { this._sweepWallet().then((data: any) => { this.onGoingProcessProvider.set('sweepingWallet', false); this.logger.debug('Success sweep. Destination address:' + data.destinationAddress + ' - transaction id: ' + data.txid); - this.openSuccessModal(); + this.openFinishModal(); }).catch((err: any) => { this.logger.error(err); this.popupProvider.ionicAlert(this.translate.instant('Error sweeping wallet:'), err || err.toString()); @@ -183,10 +183,10 @@ export class PaperWalletPage { }); } - public openSuccessModal(): void { - let successComment = this.translate.instant("Check the transaction on your wallet details"); - let successText = this.translate.instant('Sweep Completed'); - let modal = this.modalCtrl.create(SuccessModalPage, { successText: successText, successComment: successComment }, { showBackdrop: true, enableBackdropDismiss: false }); + public openFinishModal(): void { + let finishComment = this.translate.instant("Check the transaction on your wallet details"); + let finishText = this.translate.instant('Sweep Completed'); + let modal = this.modalCtrl.create(FinishModalPage, { finishText: finishText, finishComment: finishComment }, { showBackdrop: true, enableBackdropDismiss: false }); modal.present(); modal.onDidDismiss(() => { this.navCtrl.pop(); diff --git a/src/pages/send/confirm/confirm.ts b/src/pages/send/confirm/confirm.ts index d8154a14d..37d8d6c47 100644 --- a/src/pages/send/confirm/confirm.ts +++ b/src/pages/send/confirm/confirm.ts @@ -6,7 +6,7 @@ import { Logger } from '../../../providers/logger/logger'; // Pages import { PayProPage } from '../../paypro/paypro'; -import { SuccessModalPage } from '../../success/success'; +import { FinishModalPage } from '../../finish/finish'; import { ChooseFeeLevelPage } from '../choose-fee-level/choose-fee-level'; import { FeeWarningPage } from '../fee-warning/fee-warning'; @@ -574,7 +574,7 @@ export class ConfirmPage { this.logger.info('No signing proposal: No private key'); this.walletProvider.onlyPublish(wallet, txp).then(() => { this.onGoingProcessProvider.clear(); - this.openSuccessModal(true); + this.openFinishModal(true); }).catch((err: any) => { this.onGoingProcessProvider.clear(); this.setSendError(err); @@ -588,7 +588,7 @@ export class ConfirmPage { txid: txp.txid }); } - this.openSuccessModal(); + this.openFinishModal(); }).catch((err: any) => { this.setSendError(err); return; @@ -609,14 +609,14 @@ export class ConfirmPage { }); } - public openSuccessModal(onlyPublish?: boolean) { + public openFinishModal(onlyPublish?: boolean) { let params = {}; if (onlyPublish) { - let successText = this.translate.instant('Payment Published'); - let successComment = this.translate.instant('You could sign the transaction later in your wallet details'); - params = { successText: successText, successComment: successComment }; + let finishText = this.translate.instant('Payment Published'); + let finishComment = this.translate.instant('You could sign the transaction later in your wallet details'); + params = { finishText: finishText, finishComment: finishComment }; } - let modal = this.modalCtrl.create(SuccessModalPage, params, { showBackdrop: true, enableBackdropDismiss: false }); + let modal = this.modalCtrl.create(FinishModalPage, params, { showBackdrop: true, enableBackdropDismiss: false }); modal.present(); modal.onDidDismiss(() => { this.navCtrl.popToRoot({ animate: false }).then(() => { diff --git a/src/pages/txp-details/txp-details.ts b/src/pages/txp-details/txp-details.ts index b8769d64b..e04446770 100644 --- a/src/pages/txp-details/txp-details.ts +++ b/src/pages/txp-details/txp-details.ts @@ -14,7 +14,7 @@ import { TxFormatProvider } from '../../providers/tx-format/tx-format'; import { WalletProvider } from '../../providers/wallet/wallet'; //pages -import { SuccessModalPage } from '../success/success'; +import { FinishModalPage } from '../finish/finish'; import * as _ from 'lodash'; @@ -212,7 +212,7 @@ export class TxpDetailsPage { public sign(): void { this.loading = true; this.walletProvider.publishAndSign(this.wallet, this.tx).then((txp: any) => { - this.openSuccessModal(); + this.openFinishModal(); }).catch((err: any) => { this.setError(err, ('Could not send payment')); }); @@ -255,7 +255,7 @@ export class TxpDetailsPage { this.onGoingProcessProvider.set('broadcastingTx', true); this.walletProvider.broadcastTx(this.wallet, this.tx).then((txpb: any) => { this.onGoingProcessProvider.set('broadcastingTx', false); - this.openSuccessModal(); + this.openFinishModal(); }).catch((err: any) => { this.onGoingProcessProvider.set('broadcastingTx', false); this.setError(err, 'Could not broadcast payment'); @@ -307,8 +307,8 @@ export class TxpDetailsPage { this.viewCtrl.dismiss(); } - public openSuccessModal() { - let modal = this.modalCtrl.create(SuccessModalPage, {}, { showBackdrop: true, enableBackdropDismiss: false }); + public openFinishModal() { + let modal = this.modalCtrl.create(FinishModalPage, { finishText: this.successText }, { showBackdrop: true, enableBackdropDismiss: false }); modal.present(); modal.onDidDismiss(() => { this.close(); From 0a287aff128f6b7855ee63e1a3297171bd20da85 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Tue, 20 Feb 2018 12:20:15 -0300 Subject: [PATCH 09/11] Fix notifications when send/reject/remove a tx/txp --- src/pages/home/home.ts | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/pages/home/home.ts b/src/pages/home/home.ts index a913dc39a..c6c74ed28 100644 --- a/src/pages/home/home.ts +++ b/src/pages/home/home.ts @@ -1,4 +1,4 @@ -import { Component } from '@angular/core'; +import { Component, NgZone } from '@angular/core'; import { TranslateService } from '@ngx-translate/core'; import { Events, ModalController, NavController } from 'ionic-angular'; import { Logger } from '../../providers/logger/logger'; @@ -71,6 +71,7 @@ export class HomePage { private isNW: boolean; private isWindowsPhoneApp: boolean; private updatingWalletId: object; + private zone: any; constructor( private navCtrl: NavController, @@ -101,14 +102,11 @@ export class HomePage { this.isWindowsPhoneApp = this.platformProvider.isWP; this.showReorderBtc = false; this.showReorderBch = false; + this.zone = new NgZone({ enableLongStackTrace: false }); } - ionViewWillEnter() { + ionViewWillEnter() { this.config = this.configProvider.get(); - - this.recentTransactionsEnabled = this.config.recentTransactions.enabled; - if (this.recentTransactionsEnabled) this.getNotifications(); - this.pushNotificationsProvider.init(); this.homeIntegrations = this.homeIntegrationsProvider.get(); this.showIntegration = this.config.showIntegration; @@ -119,11 +117,16 @@ export class HomePage { return homeIntegrations.show == true; }); + // Update Tx Notifications + this.recentTransactionsEnabled = this.config.recentTransactions.enabled; + if (this.recentTransactionsEnabled) this.getNotifications(); + // BWS Events: Update Status per Wallet // NewBlock, NewCopayer, NewAddress, NewTxProposal, TxProposalAcceptedBy, TxProposalRejectedBy, txProposalFinallyRejected, // txProposalFinallyAccepted, TxProposalRemoved, NewIncomingTx, NewOutgoingTx this.events.subscribe('bwsEvent', (walletId: string) => { - this.update(walletId); + if (this.recentTransactionsEnabled) this.getNotifications(); + this.updateWallet(walletId); }); // Create, Join, Import and Delete -> Get Wallets -> Update Status for All Wallets @@ -172,11 +175,6 @@ export class HomePage { }, 10000); } - private update(walletId: string) { - if (this.recentTransactionsEnabled) this.getNotifications(); - this.updateWallet(walletId); - } - private setWallets = _.debounce(() => { this.wallets = this.profileProvider.getWallets(); this.walletsBtc = this.profileProvider.getWallets({ coin: 'btc' }); @@ -238,9 +236,7 @@ export class HomePage { this.walletProvider.getStatus(wallet, {}).then((status: any) => { wallet.status = status; wallet.error = null; - this.profileProvider.setLastKnownBalance(wallet.id, wallet.status.availableBalanceStr); - - //this.setWallets(); + this.profileProvider.setLastKnownBalance(wallet.id, wallet.status.availableBalanceStr); this.updateTxps(); this.stopUpdatingWalletId(walletId); }).catch((err: any) => { @@ -251,8 +247,10 @@ export class HomePage { private updateTxps = _.debounce(() => { this.profileProvider.getTxps({ limit: 3 }).then((data: any) => { - this.txps = data.txps; - this.txpsN = data.n; + this.zone.run(() => { + this.txps = data.txps; + this.txpsN = data.n; + }); }).catch((err: any) => { this.logger.error(err); }); @@ -262,8 +260,10 @@ export class HomePage { private getNotifications = _.debounce(() => { this.profileProvider.getNotifications({ limit: 3 }).then((data: any) => { - this.notifications = data.notifications; - this.notificationsN = data.total; + this.zone.run(() => { + this.notifications = data.notifications; + this.notificationsN = data.total; + }); }).catch((err: any) => { this.logger.error(err); }); From 6b7002593590e9ab68a6bcebab790b500e1031c1 Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Tue, 20 Feb 2018 12:23:55 -0300 Subject: [PATCH 10/11] Fix popToRoot for amazon and mercado libre --- src/pages/integrations/amazon/buy-amazon/buy-amazon.ts | 3 +-- .../mercado-libre/buy-mercado-libre/buy-mercado-libre.ts | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/pages/integrations/amazon/buy-amazon/buy-amazon.ts b/src/pages/integrations/amazon/buy-amazon/buy-amazon.ts index 5befdf1b8..bcdbf84fa 100644 --- a/src/pages/integrations/amazon/buy-amazon/buy-amazon.ts +++ b/src/pages/integrations/amazon/buy-amazon/buy-amazon.ts @@ -433,8 +433,7 @@ export class BuyAmazonPage { let modal = this.modalCtrl.create(SuccessModalPage, { successText: successText, successComment: successComment, cssClass: cssClass }, { showBackdrop: true, enableBackdropDismiss: false }); modal.present(); modal.onDidDismiss(() => { - this.navCtrl.remove(2, 2); - this.navCtrl.pop(); + this.navCtrl.popToRoot({ animate: false }); this.navCtrl.push(AmazonPage, { invoiceId: this.invoiceId }); }); } diff --git a/src/pages/integrations/mercado-libre/buy-mercado-libre/buy-mercado-libre.ts b/src/pages/integrations/mercado-libre/buy-mercado-libre/buy-mercado-libre.ts index 7933a9b8a..8dd1f9f47 100644 --- a/src/pages/integrations/mercado-libre/buy-mercado-libre/buy-mercado-libre.ts +++ b/src/pages/integrations/mercado-libre/buy-mercado-libre/buy-mercado-libre.ts @@ -418,8 +418,7 @@ export class BuyMercadoLibrePage { let modal = this.modalCtrl.create(SuccessModalPage, { successText: successText, successComment: successComment, cssClass: cssClass }, { showBackdrop: true, enableBackdropDismiss: false }); modal.present(); modal.onDidDismiss(() => { - this.navCtrl.remove(2, 2); - this.navCtrl.pop(); + this.navCtrl.popToRoot({ animate: false }); this.navCtrl.push(MercadoLibrePage, { invoiceId: this.invoiceId }); }); } From b651fdab980f3b67b31573096f071c3adde84b31 Mon Sep 17 00:00:00 2001 From: Gabriel Masclef Date: Tue, 20 Feb 2018 12:58:45 -0300 Subject: [PATCH 11/11] Fix: Warnings and finish modal on bitpay card top up --- src/app/app.module.ts | 2 +- .../amazon/buy-amazon/buy-amazon.ts | 4 ++-- .../bitpay-card-topup/bitpay-card-topup.ts | 18 ++++++++---------- .../coinbase/buy-coinbase/buy-coinbase.ts | 2 +- .../coinbase/sell-coinbase/sell-coinbase.ts | 2 +- .../glidera/buy-glidera/buy-glidera.ts | 2 +- .../glidera/sell-glidera/sell-glidera.ts | 2 +- .../buy-mercado-libre/buy-mercado-libre.ts | 4 ++-- .../shapeshift-confirm/shapeshift-confirm.ts | 2 +- src/pages/paper-wallet/paper-wallet.ts | 2 +- src/pages/send/confirm/confirm.ts | 4 ++-- src/pages/txp-details/txp-details.ts | 2 +- 12 files changed, 22 insertions(+), 24 deletions(-) diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 10d6fe837..fb21a6ce6 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -37,6 +37,7 @@ import { BackupWarningPage } from '../pages/backup/backup-warning/backup-warning import { FeedbackCompletePage } from '../pages/feedback/feedback-complete/feedback-complete'; import { FeedbackPage } from '../pages/feedback/feedback/feedback'; import { SendFeedbackPage } from '../pages/feedback/send-feedback/send-feedback'; +import { FinishModalPage } from '../pages/finish/finish'; import { IncomingDataMenuPage } from '../pages/incoming-data-menu/incoming-data-menu'; import { BackupRequestPage } from '../pages/onboarding/backup-request/backup-request'; import { CollectEmailPage } from '../pages/onboarding/collect-email/collect-email'; @@ -47,7 +48,6 @@ import { PaperWalletPage } from '../pages/paper-wallet/paper-wallet'; import { PayProPage } from '../pages/paypro/paypro'; import { FeeWarningPage } from '../pages/send/fee-warning/fee-warning'; import { BitcoinCashPage } from '../pages/settings/bitcoin-cash/bitcoin-cash'; -import { FinishModalPage } from '../pages/finish/finish'; import { TabsPage } from '../pages/tabs/tabs'; import { TxDetailsPage } from '../pages/tx-details/tx-details'; import { TxpDetailsPage } from '../pages/txp-details/txp-details'; diff --git a/src/pages/integrations/amazon/buy-amazon/buy-amazon.ts b/src/pages/integrations/amazon/buy-amazon/buy-amazon.ts index 5489e4fec..6729e4d93 100644 --- a/src/pages/integrations/amazon/buy-amazon/buy-amazon.ts +++ b/src/pages/integrations/amazon/buy-amazon/buy-amazon.ts @@ -6,8 +6,8 @@ import * as moment from 'moment'; import { Logger } from '../../../../providers/logger/logger'; // Pages -import { FeeWarningPage } from '../../../send/fee-warning/fee-warning'; import { FinishModalPage } from '../../../finish/finish'; +import { FeeWarningPage } from '../../../send/fee-warning/fee-warning'; import { AmazonPage } from '../amazon'; // Provider @@ -412,7 +412,7 @@ export class BuyAmazonPage { }); } - public openFinishModal(): void { + private openFinishModal(): void { let finishComment: string; let cssClass: string; if (this.amazonGiftCard.status == 'FAILURE') { diff --git a/src/pages/integrations/bitpay-card/bitpay-card-topup/bitpay-card-topup.ts b/src/pages/integrations/bitpay-card/bitpay-card-topup/bitpay-card-topup.ts index 8169fba32..c5a1592b8 100644 --- a/src/pages/integrations/bitpay-card/bitpay-card-topup/bitpay-card-topup.ts +++ b/src/pages/integrations/bitpay-card/bitpay-card-topup/bitpay-card-topup.ts @@ -5,8 +5,8 @@ import * as _ from 'lodash'; import { Logger } from '../../../../providers/logger/logger'; // Pages -import { FeeWarningPage } from '../../../send/fee-warning/fee-warning'; import { FinishModalPage } from '../../../finish/finish'; +import { FeeWarningPage } from '../../../send/fee-warning/fee-warning'; import { BitPayCardPage } from '../bitpay-card'; // Provider @@ -45,7 +45,6 @@ export class BitPayCardTopUpPage { public networkFee; public totalAmount; public wallet; - public sendStatus; public currencyIsoCode; public amountUnitStr; public lastFourDigits; @@ -382,14 +381,13 @@ export class BitPayCardTopUpPage { let cancelText = this.translate.instant('Cancel'); this.popupProvider.ionicConfirm(title, this.message, okText, cancelText).then((ok) => { if (!ok) { - this.sendStatus = ''; return; } this.onGoingProcessProvider.set('topup', true); this.publishAndSign(this.wallet, this.createdTx).then((txSent) => { this.onGoingProcessProvider.set('topup', false); - this.sendStatus = 'success'; + this.openFinishModal(); }).catch((err) => { this.onGoingProcessProvider.set('topup', false); this._resetValues(); @@ -422,13 +420,13 @@ export class BitPayCardTopUpPage { }); } - public openFinishModal(): void { + private openFinishModal(): void { let finishComment: string; - if (this.sendStatus == 'success') { - if (this.wallet.credentials.m == 1) - finishComment = this.translate.instant('Funds were added to debit card'); - else - finishComment = this.translate.instant('Transaction initiated'); + if (this.wallet.credentials.m == 1) { + finishComment = this.translate.instant('Funds were added to debit card'); + } + else { + finishComment = this.translate.instant('Transaction initiated'); } let finishText = ''; let modal = this.modalCtrl.create(FinishModalPage, { finishText: finishText, finishComment: finishComment }, { showBackdrop: true, enableBackdropDismiss: false }); diff --git a/src/pages/integrations/coinbase/buy-coinbase/buy-coinbase.ts b/src/pages/integrations/coinbase/buy-coinbase/buy-coinbase.ts index 6a8f2522f..cd88968f7 100644 --- a/src/pages/integrations/coinbase/buy-coinbase/buy-coinbase.ts +++ b/src/pages/integrations/coinbase/buy-coinbase/buy-coinbase.ts @@ -292,7 +292,7 @@ export class BuyCoinbasePage { }); } - public openFinishModal(): void { + private openFinishModal(): void { let finishText = 'Bought'; let finishComment = 'Bitcoin purchase completed. Coinbase has queued the transfer to your selected wallet'; let modal = this.modalCtrl.create(FinishModalPage, { finishText: finishText, finishComment: finishComment }, { showBackdrop: true, enableBackdropDismiss: false }); diff --git a/src/pages/integrations/coinbase/sell-coinbase/sell-coinbase.ts b/src/pages/integrations/coinbase/sell-coinbase/sell-coinbase.ts index c534b8c06..360c57753 100644 --- a/src/pages/integrations/coinbase/sell-coinbase/sell-coinbase.ts +++ b/src/pages/integrations/coinbase/sell-coinbase/sell-coinbase.ts @@ -358,7 +358,7 @@ export class SellCoinbasePage { this.processPaymentInfo(); } - public openFinishModal(): void { + private openFinishModal(): void { let finishText = 'Funds sent to Coinbase Account'; let finishComment = 'The transaction is not yet confirmed, and will show as "Pending" in your Activity. The bitcoin sale will be completed automatically once it is confirmed by Coinbase'; let modal = this.modalCtrl.create(FinishModalPage, { finishText: finishText, finishComment: finishComment }, { showBackdrop: true, enableBackdropDismiss: false }); diff --git a/src/pages/integrations/glidera/buy-glidera/buy-glidera.ts b/src/pages/integrations/glidera/buy-glidera/buy-glidera.ts index 2c4eafba2..a8e1e5fa6 100644 --- a/src/pages/integrations/glidera/buy-glidera/buy-glidera.ts +++ b/src/pages/integrations/glidera/buy-glidera/buy-glidera.ts @@ -198,7 +198,7 @@ export class BuyGlideraPage { this.processPaymentInfo(); } - public openFinishModal(): void { + private openFinishModal(): void { let finishText = 'Bought'; let finishComment = 'A transfer has been initiated from your bank account. Your bitcoins should arrive to your wallet in 2-4 business day'; let modal = this.modalCtrl.create(FinishModalPage, { finishText: finishText, finishComment: finishComment }, { showBackdrop: true, enableBackdropDismiss: false }); diff --git a/src/pages/integrations/glidera/sell-glidera/sell-glidera.ts b/src/pages/integrations/glidera/sell-glidera/sell-glidera.ts index 91d853362..7832dae6e 100644 --- a/src/pages/integrations/glidera/sell-glidera/sell-glidera.ts +++ b/src/pages/integrations/glidera/sell-glidera/sell-glidera.ts @@ -266,7 +266,7 @@ export class SellGlideraPage { }); } - public openFinishModal(): void { + private openFinishModal(): void { let finishText = 'Funds sent to Glidera Account'; let finishComment = 'The transaction is not yet confirmed, and will show as "Pending" in your Activity. The bitcoin sale will be completed automatically once it is confirmed by Glidera'; let modal = this.modalCtrl.create(FinishModalPage, { finishText: finishText, finishComment: finishComment }, { showBackdrop: true, enableBackdropDismiss: false }); diff --git a/src/pages/integrations/mercado-libre/buy-mercado-libre/buy-mercado-libre.ts b/src/pages/integrations/mercado-libre/buy-mercado-libre/buy-mercado-libre.ts index ac8f77b21..18661082e 100644 --- a/src/pages/integrations/mercado-libre/buy-mercado-libre/buy-mercado-libre.ts +++ b/src/pages/integrations/mercado-libre/buy-mercado-libre/buy-mercado-libre.ts @@ -6,8 +6,8 @@ import * as moment from 'moment'; import { Logger } from '../../../../providers/logger/logger'; // Pages -import { FeeWarningPage } from '../../../send/fee-warning/fee-warning'; import { FinishModalPage } from '../../../finish/finish'; +import { FeeWarningPage } from '../../../send/fee-warning/fee-warning'; import { MercadoLibrePage } from '../mercado-libre'; // Provider @@ -400,7 +400,7 @@ export class BuyMercadoLibrePage { }); } - public openFinishModal(): void { + private openFinishModal(): void { let finishComment: string; let cssClass: string; if (this.mlGiftCard.status == 'FAILURE') { diff --git a/src/pages/integrations/shapeshift/shapeshift-confirm/shapeshift-confirm.ts b/src/pages/integrations/shapeshift/shapeshift-confirm/shapeshift-confirm.ts index ac1850bac..255fee413 100644 --- a/src/pages/integrations/shapeshift/shapeshift-confirm/shapeshift-confirm.ts +++ b/src/pages/integrations/shapeshift/shapeshift-confirm/shapeshift-confirm.ts @@ -350,7 +350,7 @@ export class ShapeshiftConfirmPage { }); }; - public openFinishModal(): void { + private openFinishModal(): void { let finishText = 'Transaction Sent'; let modal = this.modalCtrl.create(FinishModalPage, { finishText: finishText }, { showBackdrop: true, enableBackdropDismiss: false }); modal.present(); diff --git a/src/pages/paper-wallet/paper-wallet.ts b/src/pages/paper-wallet/paper-wallet.ts index 7126646be..20b4061e0 100644 --- a/src/pages/paper-wallet/paper-wallet.ts +++ b/src/pages/paper-wallet/paper-wallet.ts @@ -183,7 +183,7 @@ export class PaperWalletPage { }); } - public openFinishModal(): void { + private openFinishModal(): void { let finishComment = this.translate.instant("Check the transaction on your wallet details"); let finishText = this.translate.instant('Sweep Completed'); let modal = this.modalCtrl.create(FinishModalPage, { finishText: finishText, finishComment: finishComment }, { showBackdrop: true, enableBackdropDismiss: false }); diff --git a/src/pages/send/confirm/confirm.ts b/src/pages/send/confirm/confirm.ts index 37d8d6c47..848fdaf8f 100644 --- a/src/pages/send/confirm/confirm.ts +++ b/src/pages/send/confirm/confirm.ts @@ -5,8 +5,8 @@ import * as _ from 'lodash'; import { Logger } from '../../../providers/logger/logger'; // Pages -import { PayProPage } from '../../paypro/paypro'; import { FinishModalPage } from '../../finish/finish'; +import { PayProPage } from '../../paypro/paypro'; import { ChooseFeeLevelPage } from '../choose-fee-level/choose-fee-level'; import { FeeWarningPage } from '../fee-warning/fee-warning'; @@ -609,7 +609,7 @@ export class ConfirmPage { }); } - public openFinishModal(onlyPublish?: boolean) { + private openFinishModal(onlyPublish?: boolean) { let params = {}; if (onlyPublish) { let finishText = this.translate.instant('Payment Published'); diff --git a/src/pages/txp-details/txp-details.ts b/src/pages/txp-details/txp-details.ts index e04446770..eb0737f59 100644 --- a/src/pages/txp-details/txp-details.ts +++ b/src/pages/txp-details/txp-details.ts @@ -307,7 +307,7 @@ export class TxpDetailsPage { this.viewCtrl.dismiss(); } - public openFinishModal() { + private openFinishModal() { let modal = this.modalCtrl.create(FinishModalPage, { finishText: this.successText }, { showBackdrop: true, enableBackdropDismiss: false }); modal.present(); modal.onDidDismiss(() => {