From a2f5891a0b6090711f48eadf91a12dbfa48ebe74 Mon Sep 17 00:00:00 2001 From: Zach Fox Date: Tue, 10 Apr 2018 16:00:18 -0700 Subject: [PATCH] Cleanup 'Private' HMD Preview State Machine Logic --- .../commerce/wallet/SecurityImageChange.qml | 12 ------- .../qml/hifi/commerce/wallet/WalletSetup.qml | 2 +- scripts/system/marketplaces/marketplaces.js | 34 ++++++++++--------- 3 files changed, 19 insertions(+), 29 deletions(-) diff --git a/interface/resources/qml/hifi/commerce/wallet/SecurityImageChange.qml b/interface/resources/qml/hifi/commerce/wallet/SecurityImageChange.qml index 0d7fe9ed18..216cf3c0d1 100644 --- a/interface/resources/qml/hifi/commerce/wallet/SecurityImageChange.qml +++ b/interface/resources/qml/hifi/commerce/wallet/SecurityImageChange.qml @@ -43,18 +43,6 @@ Item { } } } - - // This will cause a bug -- if you bring up security image selection in HUD mode while - // in HMD while having HMD preview enabled, then move, then finish passphrase selection, - // HMD preview will stay off. - // TODO: Fix this unlikely bug - onVisibleChanged: { - if (visible) { - sendSignalToWallet({method: 'disableHmdPreview'}); - } else { - sendSignalToWallet({method: 'maybeEnableHmdPreview'}); - } - } // Security Image Item { diff --git a/interface/resources/qml/hifi/commerce/wallet/WalletSetup.qml b/interface/resources/qml/hifi/commerce/wallet/WalletSetup.qml index 25c1041533..bb88e62a52 100644 --- a/interface/resources/qml/hifi/commerce/wallet/WalletSetup.qml +++ b/interface/resources/qml/hifi/commerce/wallet/WalletSetup.qml @@ -77,7 +77,7 @@ Item { UserActivityLogger.commerceWalletSetupProgress(timestamp, root.setupAttemptID, Math.round((timestamp - root.startingTimestamp)/1000), currentStepNumber, root.setupStepNames[currentStepNumber - 1]); - if (root.activeView === "step_2" || root.activeView === "step_3") { + if (root.activeView === "step_3") { sendSignalToWallet({method: 'disableHmdPreview'}); } else { sendSignalToWallet({method: 'maybeEnableHmdPreview'}); diff --git a/scripts/system/marketplaces/marketplaces.js b/scripts/system/marketplaces/marketplaces.js index 99c1366ae5..7fdefbcab7 100644 --- a/scripts/system/marketplaces/marketplaces.js +++ b/scripts/system/marketplaces/marketplaces.js @@ -885,13 +885,21 @@ var selectionDisplay = null; // for gridTool.js to ignore } sendAssetRecipient = null; } + + var savedDisablePreviewOptionLocked = false; + var savedDisablePreviewOption = Menu.isOptionChecked("Disable Preview");; + function maybeEnableHMDPreview() { + setTabletVisibleInSecondaryCamera(true); + DesktopPreviewProvider.setPreviewDisabledReason("USER"); + Menu.setIsOptionChecked("Disable Preview", savedDisablePreviewOption); + savedDisablePreviewOptionLocked = false; + } // Function Name: fromQml() // // Description: // -Called when a message is received from Checkout.qml. The "message" argument is what is sent from the Checkout QML // in the format "{method, params}", like json-rpc. - var isHmdPreviewDisabledBySecurity = false; function fromQml(message) { switch (message.method) { case 'purchases_openWallet': @@ -966,21 +974,19 @@ var selectionDisplay = null; // for gridTool.js to ignore openLoginWindow(); break; case 'disableHmdPreview': - var isHmdPreviewDisabled = Menu.isOptionChecked("Disable Preview"); - if (!isHmdPreviewDisabled) { + if (!savedDisablePreviewOption) { + savedDisablePreviewOption = Menu.isOptionChecked("Disable Preview"); + savedDisablePreviewOptionLocked = true; + } + + if (!savedDisablePreviewOption) { DesktopPreviewProvider.setPreviewDisabledReason("SECURE_SCREEN"); Menu.setIsOptionChecked("Disable Preview", true); setTabletVisibleInSecondaryCamera(false); - isHmdPreviewDisabledBySecurity = true; } break; case 'maybeEnableHmdPreview': - if (isHmdPreviewDisabledBySecurity) { - DesktopPreviewProvider.setPreviewDisabledReason("USER"); - Menu.setIsOptionChecked("Disable Preview", false); - setTabletVisibleInSecondaryCamera(true); - isHmdPreviewDisabledBySecurity = false; - } + maybeEnableHMDPreview(); break; case 'purchases_openGoTo': tablet.loadQMLSource("hifi/tablet/TabletAddressDialog.qml"); @@ -1111,12 +1117,7 @@ var selectionDisplay = null; // for gridTool.js to ignore || url.indexOf(MARKETPLACE_INSPECTIONCERTIFICATE_QML_PATH) !== -1); if ((!onWalletScreenNow && onWalletScreen) || (!onCommerceScreenNow && onCommerceScreen)) { // exiting wallet or commerce screen - if (isHmdPreviewDisabledBySecurity) { - DesktopPreviewProvider.setPreviewDisabledReason("USER"); - Menu.setIsOptionChecked("Disable Preview", false); - setTabletVisibleInSecondaryCamera(true); - isHmdPreviewDisabledBySecurity = false; - } + maybeEnableHMDPreview(); } onCommerceScreen = onCommerceScreenNow; @@ -1205,6 +1206,7 @@ var selectionDisplay = null; // for gridTool.js to ignore removeOverlays(); } function shutdown() { + maybeEnableHMDPreview(); deleteSendAssetParticleEffect(); ContextOverlay.contextOverlayClicked.disconnect(setCertificateInfo);