mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-09 15:58:35 +02:00
Merge pull request #11255 from misslivirose/feat/tablet-tutorial
Removing tutorial paths for first run experience
This commit is contained in:
commit
8563a05431
1 changed files with 10 additions and 62 deletions
|
@ -2803,35 +2803,18 @@ void Application::handleSandboxStatus(QNetworkReply* reply) {
|
||||||
|
|
||||||
// Get controller availability
|
// Get controller availability
|
||||||
bool hasHandControllers = false;
|
bool hasHandControllers = false;
|
||||||
HandControllerType handControllerType = Vive;
|
if (PluginUtils::isViveControllerAvailable() || PluginUtils::isOculusTouchControllerAvailable()) {
|
||||||
if (PluginUtils::isViveControllerAvailable()) {
|
|
||||||
hasHandControllers = true;
|
hasHandControllers = true;
|
||||||
handControllerType = Vive;
|
|
||||||
} else if (PluginUtils::isOculusTouchControllerAvailable()) {
|
|
||||||
hasHandControllers = true;
|
|
||||||
handControllerType = Oculus;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check tutorial content versioning
|
|
||||||
bool hasTutorialContent = contentVersion >= MIN_CONTENT_VERSION.at(handControllerType);
|
|
||||||
|
|
||||||
// Check HMD use (may be technically available without being in use)
|
// Check HMD use (may be technically available without being in use)
|
||||||
bool hasHMD = PluginUtils::isHMDAvailable();
|
bool hasHMD = PluginUtils::isHMDAvailable();
|
||||||
bool isUsingHMD = _displayPlugin->isHmd();
|
bool isUsingHMD = _displayPlugin->isHmd();
|
||||||
bool isUsingHMDAndHandControllers = hasHMD && hasHandControllers && isUsingHMD;
|
bool isUsingHMDAndHandControllers = hasHMD && hasHandControllers && isUsingHMD;
|
||||||
|
|
||||||
Setting::Handle<bool> tutorialComplete{ "tutorialComplete", false };
|
|
||||||
Setting::Handle<bool> firstRun{ Settings::firstRun, true };
|
Setting::Handle<bool> firstRun{ Settings::firstRun, true };
|
||||||
|
|
||||||
const QString HIFI_SKIP_TUTORIAL_COMMAND_LINE_KEY = "--skipTutorial";
|
|
||||||
// Skips tutorial/help behavior, and does NOT clear firstRun setting.
|
|
||||||
bool skipTutorial = arguments().contains(HIFI_SKIP_TUTORIAL_COMMAND_LINE_KEY);
|
|
||||||
bool isTutorialComplete = tutorialComplete.get();
|
|
||||||
bool shouldGoToTutorial = isUsingHMDAndHandControllers && hasTutorialContent && !isTutorialComplete && !skipTutorial;
|
|
||||||
|
|
||||||
qCDebug(interfaceapp) << "HMD:" << hasHMD << ", Hand Controllers: " << hasHandControllers << ", Using HMD: " << isUsingHMDAndHandControllers;
|
qCDebug(interfaceapp) << "HMD:" << hasHMD << ", Hand Controllers: " << hasHandControllers << ", Using HMD: " << isUsingHMDAndHandControllers;
|
||||||
qCDebug(interfaceapp) << "Tutorial version:" << contentVersion << ", sufficient:" << hasTutorialContent <<
|
|
||||||
", complete:" << isTutorialComplete << ", should go:" << shouldGoToTutorial;
|
|
||||||
|
|
||||||
// when --url in command line, teleport to location
|
// when --url in command line, teleport to location
|
||||||
const QString HIFI_URL_COMMAND_LINE_KEY = "--url";
|
const QString HIFI_URL_COMMAND_LINE_KEY = "--url";
|
||||||
|
@ -2841,58 +2824,31 @@ void Application::handleSandboxStatus(QNetworkReply* reply) {
|
||||||
addressLookupString = arguments().value(urlIndex + 1);
|
addressLookupString = arguments().value(urlIndex + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
const QString TUTORIAL_PATH = "/tutorial_begin";
|
|
||||||
|
|
||||||
static const QString SENT_TO_TUTORIAL = "tutorial";
|
|
||||||
static const QString SENT_TO_PREVIOUS_LOCATION = "previous_location";
|
static const QString SENT_TO_PREVIOUS_LOCATION = "previous_location";
|
||||||
static const QString SENT_TO_ENTRY = "entry";
|
static const QString SENT_TO_ENTRY = "entry";
|
||||||
static const QString SENT_TO_SANDBOX = "sandbox";
|
static const QString SENT_TO_SANDBOX = "sandbox";
|
||||||
|
|
||||||
QString sentTo;
|
QString sentTo;
|
||||||
|
|
||||||
if (shouldGoToTutorial) {
|
|
||||||
if (sandboxIsRunning) {
|
|
||||||
qCDebug(interfaceapp) << "Home sandbox appears to be running, going to Home.";
|
|
||||||
DependencyManager::get<AddressManager>()->goToLocalSandbox(TUTORIAL_PATH);
|
|
||||||
sentTo = SENT_TO_TUTORIAL;
|
|
||||||
} else {
|
|
||||||
qCDebug(interfaceapp) << "Home sandbox does not appear to be running, going to Entry.";
|
|
||||||
if (firstRun.get()) {
|
|
||||||
showHelp();
|
|
||||||
}
|
|
||||||
if (addressLookupString.isEmpty()) {
|
|
||||||
DependencyManager::get<AddressManager>()->goToEntry();
|
|
||||||
sentTo = SENT_TO_ENTRY;
|
|
||||||
} else {
|
|
||||||
DependencyManager::get<AddressManager>()->loadSettings(addressLookupString);
|
|
||||||
sentTo = SENT_TO_PREVIOUS_LOCATION;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
|
|
||||||
// If this is a first run we short-circuit the address passed in
|
// If this is a first run we short-circuit the address passed in
|
||||||
if (firstRun.get() && !skipTutorial) {
|
if (firstRun.get()) {
|
||||||
showHelp();
|
showHelp();
|
||||||
if (isUsingHMDAndHandControllers) {
|
if (sandboxIsRunning) {
|
||||||
if (sandboxIsRunning) {
|
qCDebug(interfaceapp) << "Home sandbox appears to be running, going to Home.";
|
||||||
qCDebug(interfaceapp) << "Home sandbox appears to be running, going to Home.";
|
DependencyManager::get<AddressManager>()->goToLocalSandbox();
|
||||||
DependencyManager::get<AddressManager>()->goToLocalSandbox();
|
sentTo = SENT_TO_SANDBOX;
|
||||||
sentTo = SENT_TO_SANDBOX;
|
|
||||||
} else {
|
|
||||||
qCDebug(interfaceapp) << "Home sandbox does not appear to be running, going to Entry.";
|
|
||||||
DependencyManager::get<AddressManager>()->goToEntry();
|
|
||||||
sentTo = SENT_TO_ENTRY;
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
|
qCDebug(interfaceapp) << "Home sandbox does not appear to be running, going to Entry.";
|
||||||
DependencyManager::get<AddressManager>()->goToEntry();
|
DependencyManager::get<AddressManager>()->goToEntry();
|
||||||
sentTo = SENT_TO_ENTRY;
|
sentTo = SENT_TO_ENTRY;
|
||||||
}
|
}
|
||||||
|
firstRun.set(false);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
qCDebug(interfaceapp) << "Not first run... going to" << qPrintable(addressLookupString.isEmpty() ? QString("previous location") : addressLookupString);
|
qCDebug(interfaceapp) << "Not first run... going to" << qPrintable(addressLookupString.isEmpty() ? QString("previous location") : addressLookupString);
|
||||||
DependencyManager::get<AddressManager>()->loadSettings(addressLookupString);
|
DependencyManager::get<AddressManager>()->loadSettings(addressLookupString);
|
||||||
sentTo = SENT_TO_PREVIOUS_LOCATION;
|
sentTo = SENT_TO_PREVIOUS_LOCATION;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
UserActivityLogger::getInstance().logAction("startup_sent_to", {
|
UserActivityLogger::getInstance().logAction("startup_sent_to", {
|
||||||
{ "sent_to", sentTo },
|
{ "sent_to", sentTo },
|
||||||
|
@ -2901,18 +2857,10 @@ void Application::handleSandboxStatus(QNetworkReply* reply) {
|
||||||
{ "has_hand_controllers", hasHandControllers },
|
{ "has_hand_controllers", hasHandControllers },
|
||||||
{ "is_using_hmd", isUsingHMD },
|
{ "is_using_hmd", isUsingHMD },
|
||||||
{ "is_using_hmd_and_hand_controllers", isUsingHMDAndHandControllers },
|
{ "is_using_hmd_and_hand_controllers", isUsingHMDAndHandControllers },
|
||||||
{ "content_version", contentVersion },
|
{ "content_version", contentVersion }
|
||||||
{ "is_tutorial_complete", isTutorialComplete },
|
|
||||||
{ "has_tutorial_content", hasTutorialContent },
|
|
||||||
{ "should_go_to_tutorial", shouldGoToTutorial }
|
|
||||||
});
|
});
|
||||||
|
|
||||||
_connectionMonitor.init();
|
_connectionMonitor.init();
|
||||||
|
|
||||||
// After all of the constructor is completed, then set firstRun to false.
|
|
||||||
if (!skipTutorial) {
|
|
||||||
firstRun.set(false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Application::importJSONFromURL(const QString& urlString) {
|
bool Application::importJSONFromURL(const QString& urlString) {
|
||||||
|
|
Loading…
Reference in a new issue