diff --git a/interface/resources/qml/hifi/simplifiedUI/avatarApp/AvatarApp.qml b/interface/resources/qml/hifi/simplifiedUI/avatarApp/AvatarApp.qml index ae786bfc47..7dbadc59f4 100644 --- a/interface/resources/qml/hifi/simplifiedUI/avatarApp/AvatarApp.qml +++ b/interface/resources/qml/hifi/simplifiedUI/avatarApp/AvatarApp.qml @@ -83,6 +83,10 @@ Rectangle { emptyInventoryContainer.visible = true; } + if (Settings.getValue("simplifiedUI/debugFTUE", 0) === 4) { + emptyInventoryContainer.visible = true; + } + avatarAppInventoryModel.handlePage(result.status !== "success" && result.message, result); root.updatePreviewUrl(); } @@ -360,6 +364,8 @@ Rectangle { return; } } + + root.avatarPreviewUrl = "../../images/defaultAvatar.svg"; } function fromScript(message) { diff --git a/interface/resources/qml/hifi/simplifiedUI/topBar/SimplifiedTopBar.qml b/interface/resources/qml/hifi/simplifiedUI/topBar/SimplifiedTopBar.qml index 7eaec44ea9..fb1ef55405 100644 --- a/interface/resources/qml/hifi/simplifiedUI/topBar/SimplifiedTopBar.qml +++ b/interface/resources/qml/hifi/simplifiedUI/topBar/SimplifiedTopBar.qml @@ -125,6 +125,26 @@ Rectangle { var simplifiedAvatarColors = ["Blue", "Cyan", "Green", "Magenta", "Red", "Yellow"]; var simplifiedAvatarSuffix = "/avatar.fst"; + // Use `Settings.setValue("simplifiedUI/debugFTUE", 0);` to turn off FTUE Debug Mode. + // Use `Settings.setValue("simplifiedUI/debugFTUE", 1);` to debug FTUE Screen 1. + // Use `Settings.setValue("simplifiedUI/debugFTUE", 2);` to debug FTUE Screen 2. + // Use `Settings.setValue("simplifiedUI/debugFTUE", 3);` to debug FTUE Screen 3. + // Use `Settings.setValue("simplifiedUI/debugFTUE", 4);` to force the UI to show what would happen if the user had an empty Inventory. + + var debugFTUE = Settings.getValue("simplifiedUI/debugFTUE", 0); + if (debugFTUE === 1 || debugFTUE === 2) { + scriptExecutionCount = 1; + currentAvatarURLContainsDefaultAvatar = true; + if (debugFTUE === 1) { + userHasValidAvatarInInventory = false; + currentAvatarURLContainsSimplifiedAvatar = false; + } + } else if (debugFTUE === 3) { + scriptExecutionCount = 2; + currentAvatarURLContainsDefaultAvatar = false; + currentAvatarURLContainsSimplifiedAvatar = true; + } + // If we have never auto-selected and the user is still using a default avatar or if the current avatar is not valid (fst), or if // the current avatar is the old default (Woody), use top avatar from inventory or one of the new defaults. @@ -591,7 +611,7 @@ Rectangle { } - function updatePreviewUrl() { + function updatePreviewUrl() { var previewUrl = ""; var downloadUrl = ""; for (var i = 0; i < topBarInventoryModel.count; ++i) { @@ -605,6 +625,8 @@ Rectangle { return; } } + + avatarButtonImage.source = "../images/defaultAvatar.svg"; } diff --git a/scripts/simplifiedUI/simplifiedEmote/simplifiedEmote.js b/scripts/simplifiedUI/simplifiedEmote/simplifiedEmote.js index 8633fe8870..d28376daae 100644 --- a/scripts/simplifiedUI/simplifiedEmote/simplifiedEmote.js +++ b/scripts/simplifiedUI/simplifiedEmote/simplifiedEmote.js @@ -450,11 +450,7 @@ function onGeometryChanged(rect) { function onWindowMinimizedChanged(isMinimized) { - if (isMinimized) { - handleEmoteIndicatorVisibleChanged(false); - } else if (!HMD.active) { - handleEmoteIndicatorVisibleChanged(true); - } + maybeChangeEmoteIndicatorVisibility(!isMinimized); } @@ -550,10 +546,14 @@ function showEmoteAppBar() { } -function handleEmoteIndicatorVisibleChanged(shouldBeVisible) { - if (shouldBeVisible && !emoteAppBarWindow) { +function maybeChangeEmoteIndicatorVisibility(desiredVisibility) { + if (Window.minimized || HMD.active) { + desiredVisibility = false; + } + + if (desiredVisibility && !emoteAppBarWindow) { showEmoteAppBar(); - } else if (emoteAppBarWindow) { + } else if (!desiredVisibility && emoteAppBarWindow) { emoteAppBarWindow.fromQml.disconnect(onMessageFromEmoteAppBar); emoteAppBarWindow.close(); emoteAppBarWindow = false; @@ -561,16 +561,17 @@ function handleEmoteIndicatorVisibleChanged(shouldBeVisible) { } +function handleFTUEScreensVisibilityChanged(ftueScreenVisible) { + maybeChangeEmoteIndicatorVisibility(!ftueScreenVisible); +} + + function onDisplayModeChanged(isHMDMode) { reactionsBegun.forEach(function(react) { endReactionWrapper(react); }); - if (isHMDMode) { - handleEmoteIndicatorVisibleChanged(false); - } else { - handleEmoteIndicatorVisibleChanged(true); - } + maybeChangeEmoteIndicatorVisibility(!isHMDMode); } @@ -578,6 +579,7 @@ var emojiAPI = Script.require("./emojiApp/simplifiedEmoji.js?" + Date.now()); var keyPressSignalsConnected = false; var emojiCodeMap; var customEmojiCodeMap; +var _this; function setup() { deleteOldReticles(); @@ -609,12 +611,22 @@ function setup() { HMD.displayModeChanged.connect(onDisplayModeChanged); getSounds(); - handleEmoteIndicatorVisibleChanged(true); + maybeChangeEmoteIndicatorVisibility(true); Controller.keyPressEvent.connect(keyPressHandler); Controller.keyReleaseEvent.connect(keyReleaseHandler); keyPressSignalsConnected = true; Script.scriptEnding.connect(unload); + + function Emote() { + _this = this; + } + + Emote.prototype = { + handleFTUEScreensVisibilityChanged: handleFTUEScreensVisibilityChanged + }; + + return new Emote(); } @@ -671,7 +683,6 @@ function unload() { // #region EMOJI_UTILITY -var EMOJI_52_BASE_URL = "../../resources/images/emojis/52px/"; function selectedEmoji(code) { emojiAPI.addEmoji(code); // this URL needs to be relative to SimplifiedEmoteIndicator.qml @@ -786,4 +797,6 @@ function toggleEmojiApp() { // END EMOJI // ************************************* -setup(); \ No newline at end of file +var emote = setup(); + +module.exports = emote; \ No newline at end of file diff --git a/scripts/simplifiedUI/ui/simplifiedFTUE/InitialLaunchWindow.qml b/scripts/simplifiedUI/ui/simplifiedFTUE/InitialLaunchWindow.qml index f7b6d95e03..d4af0c0d4e 100644 --- a/scripts/simplifiedUI/ui/simplifiedFTUE/InitialLaunchWindow.qml +++ b/scripts/simplifiedUI/ui/simplifiedFTUE/InitialLaunchWindow.qml @@ -28,7 +28,8 @@ Rectangle { Component.onCompleted: { if (Settings.getValue("simplifiedUI/alreadyAutoSelectedAvatarFromInventory", false) || - Settings.getValue("simplifiedUI/closedAvatarPageOfInitialLaunchWindow", false)) { + Settings.getValue("simplifiedUI/closedAvatarPageOfInitialLaunchWindow", false) || + Settings.getValue("simplifiedUI/debugFTUE", 0) === 2) { tempAvatarPageContainer.visible = false; controlsContainer.visible = true; } @@ -95,7 +96,7 @@ Rectangle { "for today. If you see this avatar in-world, walk up and " + "say hello to other new users!

" + "We want you to be you so we've built " + - "Virtual You, an Avatar Creator " + + 'Virtual You, an Avatar Creator ' + "App. Creating an avatar is as easy as taking a selfie and picking your " + "outfits! Available now on iOS and Android." color: simplifiedUI.colors.text.black diff --git a/scripts/simplifiedUI/ui/simplifiedUI.js b/scripts/simplifiedUI/ui/simplifiedUI.js index 7399c04604..b0485528e0 100644 --- a/scripts/simplifiedUI/ui/simplifiedUI.js +++ b/scripts/simplifiedUI/ui/simplifiedUI.js @@ -371,6 +371,8 @@ function displayInitialLaunchWindow() { return; } + simplifiedEmote.handleFTUEScreensVisibilityChanged(true); + initialLaunchWindow = Desktop.createWindow(INITIAL_LAUNCH_QML_PATH, { title: INITIAL_LAUNCH_WINDOW_TITLE, presentationMode: INITIAL_LAUNCH_PRESENTATION_MODE, @@ -402,6 +404,8 @@ function displaySecondLaunchWindow() { return; } + simplifiedEmote.handleFTUEScreensVisibilityChanged(true); + secondLaunchWindow = Desktop.createWindow(SECOND_LAUNCH_QML_PATH, { title: SECOND_LAUNCH_WINDOW_TITLE, presentationMode: SECOND_LAUNCH_PRESENTATION_MODE, @@ -427,6 +431,8 @@ function closeInitialLaunchWindow() { initialLaunchWindow.close(); initialLaunchWindow = null; } + + simplifiedEmote.handleFTUEScreensVisibilityChanged(false); } function closeSecondLaunchWindow() { @@ -435,6 +441,8 @@ function closeSecondLaunchWindow() { secondLaunchWindow.close(); secondLaunchWindow = null; } + + simplifiedEmote.handleFTUEScreensVisibilityChanged(false); } var INITIAL_LAUNCH_WINDOW_MESSAGE_SOURCE = "InitialLaunchWindow.qml"; @@ -764,7 +772,7 @@ function restoreLODSettings() { var nametag = Script.require("./simplifiedNametag/simplifiedNametag.js?" + Date.now()); var si = Script.require("./simplifiedStatusIndicator/simplifiedStatusIndicator.js?" + Date.now()); -var emote = Script.require("../simplifiedEmote/simplifiedEmote.js?" + Date.now()); +var simplifiedEmote = Script.require("../simplifiedEmote/simplifiedEmote.js?" + Date.now()); var oldShowAudioTools; var oldShowBubbleTools; var keepExistingUIAndScriptsSetting = Settings.getValue("simplifiedUI/keepExistingUIAndScripts", false);