From 6a7f4a042610cdac7f295f155128f0b079ff9e45 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Mon, 29 Mar 2021 21:14:00 +1300 Subject: [PATCH] Redisplay "continue without avatar entities" when re-enter address --- libraries/networking/src/AddressManager.cpp | 19 +++++++++++++++++++ libraries/networking/src/AddressManager.h | 8 ++++---- libraries/networking/src/DomainHandler.h | 4 ++++ 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/libraries/networking/src/AddressManager.cpp b/libraries/networking/src/AddressManager.cpp index 76587118f1..f0fa1365c4 100644 --- a/libraries/networking/src/AddressManager.cpp +++ b/libraries/networking/src/AddressManager.cpp @@ -415,6 +415,8 @@ void AddressManager::handleLookupString(const QString& lookupString, bool fromSu QString sanitizedString = lookupString.trimmed(); if (!sanitizedString.isEmpty()) { + resetConfirmConnectWithoutAvatarEntities(); + // make this a valid hifi URL and handle it off to handleUrl handleUrl(sanitizedString, fromSuggestions ? Suggestions : UserInput); } @@ -874,6 +876,11 @@ bool AddressManager::setDomainInfo(const QUrl& domainURL, LookupTrigger trigger) return emitHostChanged; } +void AddressManager::goToEntry(LookupTrigger trigger) { + resetConfirmConnectWithoutAvatarEntities(); + handleUrl(DEFAULT_VIRCADIA_ADDRESS, trigger); +} + void AddressManager::goToUser(const QString& username, bool shouldMatchOrientation) { QString formattedUsername = QUrl::toPercentEncoding(username); @@ -890,6 +897,11 @@ void AddressManager::goToUser(const QString& username, bool shouldMatchOrientati QByteArray(), nullptr, requestParams); } +void AddressManager::goToLastAddress() { + resetConfirmConnectWithoutAvatarEntities(); + handleUrl(_lastVisitedURL, LookupTrigger::AttemptedRefresh); +} + bool AddressManager::canGoBack() const { return (_backStack.size() > 0); } @@ -1024,3 +1036,10 @@ QString AddressManager::getPlaceName() const { } return QString(); } + +void AddressManager::resetConfirmConnectWithoutAvatarEntities() { + DomainHandler& domainHandler = DependencyManager::get()->getDomainHandler(); + if (!domainHandler.isConnected()) { + domainHandler.resetConfirmConnectWithoutAvatarEntities(); + } +} diff --git a/libraries/networking/src/AddressManager.h b/libraries/networking/src/AddressManager.h index daca6d3392..f491e59b97 100644 --- a/libraries/networking/src/AddressManager.h +++ b/libraries/networking/src/AddressManager.h @@ -301,9 +301,7 @@ public slots: * @param {location.LookupTrigger} trigger=StartupFromSettings - The reason for the function call. Helps ensure that user's * location history is correctly maintained. */ - void goToEntry(LookupTrigger trigger = LookupTrigger::StartupFromSettings) { - handleUrl(DEFAULT_VIRCADIA_ADDRESS, trigger); - } + void goToEntry(LookupTrigger trigger = LookupTrigger::StartupFromSettings); /**jsdoc * Takes you to the specified user's location. @@ -318,7 +316,7 @@ public slots: * Takes you to the last address tried. This will be the last URL tried from location.handleLookupString. * @function location.goToLastAddress */ - void goToLastAddress() { handleUrl(_lastVisitedURL, LookupTrigger::AttemptedRefresh); } + void goToLastAddress(); /**jsdoc * Checks if going back to the previous location is possible. @@ -527,6 +525,8 @@ private: void addCurrentAddressToHistory(LookupTrigger trigger); + void resetConfirmConnectWithoutAvatarEntities(); + QUrl _domainURL; QUrl _lastVisitedURL; diff --git a/libraries/networking/src/DomainHandler.h b/libraries/networking/src/DomainHandler.h index 923b5913e7..fd188ecec0 100644 --- a/libraries/networking/src/DomainHandler.h +++ b/libraries/networking/src/DomainHandler.h @@ -163,6 +163,10 @@ public: bool checkInPacketTimeout(); void clearPendingCheckins() { _checkInPacketsSinceLastReply = 0; } + void resetConfirmConnectWithoutAvatarEntities() { + _haveAskedConnectWithoutAvatarEntities = false; + } + /**jsdoc *

The reasons that you may be refused connection to a domain are defined by numeric values:

*