Cleanup 'Private' HMD Preview State Machine Logic

This commit is contained in:
Zach Fox 2018-04-10 16:00:18 -07:00
parent ffab27d442
commit a2f5891a0b
3 changed files with 19 additions and 29 deletions

View file

@ -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 {

View file

@ -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'});

View file

@ -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);