Skip to content

Commit

Permalink
fix: the profile picture display the full image of the avatar (#5985)
Browse files Browse the repository at this point in the history
* fix: the profile picture display the full image of the avatar

* fix: the profile picture display the full image of the avatar (II)

* some code renaming

* Update SignupHUDController.cs

* Update SignupHUDController.cs

* Inject datastores in SignupHUDController

* Fix tests
  • Loading branch information
sandrade-dcl authored Nov 28, 2023
1 parent 0c11178 commit 879152e
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ async UniTaskVoid InitializeController()
var loadingScreenDataStore = DataStore.i.Get<DataStore_LoadingScreen>();
var hudsDataStore = DataStore.i.HUDs;
var featureFlagDataStore = DataStore.i.Get<DataStore_FeatureFlag>();
var backpackDataStore = DataStore.i.Get<DataStore_BackpackV2>();
var commonDataStore = DataStore.i.Get<DataStore_Common>();
var browserBridge = new WebInterfaceBrowserBridge();
var subscriptionsAPIService = Environment.i.serviceLocator.Get<ISubscriptionsAPIService>();
var userProfileWebInterfaceBridge = new UserProfileWebInterfaceBridge();
Expand All @@ -54,6 +56,8 @@ async UniTaskVoid InitializeController()
loadingScreenDataStore,
hudsDataStore,
featureFlagDataStore,
backpackDataStore,
commonDataStore,
browserBridge,
subscriptionsAPIService);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ public BackpackEditorHUDController(
dataStore.HUDs.avatarEditorVisible.OnChange += OnBackpackVisibleChanged;
dataStore.HUDs.isAvatarEditorInitialized.Set(true);
dataStore.exploreV2.configureBackpackInFullscreenMenu.OnChange += ConfigureBackpackInFullscreenMenuChanged;
dataStore.common.isSignUpFlow.OnChange += OnSignUpFlowChanged;
dataStore.backpackV2.isWaitingToBeSavedAfterSignUp.OnChange += SaveBackpackBeforeSignUpFinishes;

ConfigureBackpackInFullscreenMenuChanged(dataStore.exploreV2.configureBackpackInFullscreenMenu.Get(), null);

Expand Down Expand Up @@ -193,7 +193,7 @@ public void Dispose()
ownUserProfile.OnUpdate -= LoadUserProfileFromProfileUpdate;
dataStore.HUDs.avatarEditorVisible.OnChange -= OnBackpackVisibleChanged;
dataStore.exploreV2.configureBackpackInFullscreenMenu.OnChange -= ConfigureBackpackInFullscreenMenuChanged;
dataStore.common.isSignUpFlow.OnChange -= OnSignUpFlowChanged;
dataStore.backpackV2.isWaitingToBeSavedAfterSignUp.OnChange -= SaveBackpackBeforeSignUpFinishes;

backpackEmotesSectionController.OnNewEmoteAdded -= OnNewEmoteAdded;
backpackEmotesSectionController.OnEmotePreviewed -= OnEmotePreviewed;
Expand Down Expand Up @@ -298,9 +298,9 @@ private void CloseView()
private void ConfigureBackpackInFullscreenMenuChanged(Transform currentParentTransform, Transform previousParentTransform) =>
view.SetAsFullScreenMenuMode(currentParentTransform);

private void OnSignUpFlowChanged(bool current, bool previous)
private void SaveBackpackBeforeSignUpFinishes(bool isBackpackWaitingToBeSaved, bool _)
{
if (current)
if (!isBackpackWaitingToBeSaved)
return;

view.SetSignUpStage(SignUpStage.CustomizeAvatar);
Expand Down Expand Up @@ -453,6 +453,10 @@ private async UniTask SaveAsync(CancellationToken cancellationToken)
try
{
await TakeSnapshotsAndSaveAvatarAsync(cancellationToken);

if (dataStore.backpackV2.isWaitingToBeSavedAfterSignUp.Get())
dataStore.backpackV2.isWaitingToBeSavedAfterSignUp.Set(false);

CloseView();
}
catch (OperationCanceledException) { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,16 @@ public class SignupHUDController : IHUD
private readonly DataStore_LoadingScreen loadingScreenDataStore;
private readonly DataStore_HUDs dataStoreHUDs;
private readonly DataStore_FeatureFlag dataStoreFeatureFlag;
private readonly DataStore_BackpackV2 dataStoreBackpack;
private readonly DataStore_Common dataStoreCommon;
private readonly IBrowserBridge browserBridge;
private readonly ISubscriptionsAPIService subscriptionsAPIService;
internal readonly ISignupHUDView view;

internal string name;
internal string email;
private BaseVariable<bool> signupVisible => DataStore.i.HUDs.signupVisible;
private BaseVariable<bool> backpackVisible => DataStore.i.HUDs.avatarEditorVisible;
private BaseVariable<bool> signupVisible => dataStoreHUDs.signupVisible;
private BaseVariable<bool> backpackVisible => dataStoreHUDs.avatarEditorVisible;
private bool isNewTermsOfServiceAndEmailSubscriptionEnabled => dataStoreFeatureFlag.flags.Get().IsFeatureEnabled(NEW_TOS_AND_EMAIL_SUBSCRIPTION_FF);

private CancellationTokenSource createSubscriptionCts;
Expand All @@ -40,6 +42,8 @@ public SignupHUDController(
DataStore_LoadingScreen loadingScreenDataStore,
DataStore_HUDs dataStoreHUDs,
DataStore_FeatureFlag dataStoreFeatureFlag,
DataStore_BackpackV2 dataStoreBackpack,
DataStore_Common dataStoreCommon,
IBrowserBridge browserBridge,
ISubscriptionsAPIService subscriptionsAPIService)
{
Expand All @@ -48,9 +52,12 @@ public SignupHUDController(
this.loadingScreenDataStore = loadingScreenDataStore;
this.dataStoreHUDs = dataStoreHUDs;
this.dataStoreFeatureFlag = dataStoreFeatureFlag;
this.dataStoreBackpack = dataStoreBackpack;
this.dataStoreCommon = dataStoreCommon;
this.browserBridge = browserBridge;
this.subscriptionsAPIService = subscriptionsAPIService;
loadingScreenDataStore.decoupledLoadingHUD.visible.OnChange += OnLoadingScreenAppear;
dataStoreBackpack.isWaitingToBeSavedAfterSignUp.OnChange += OnTermsOfServiceAgreedStepAfterSaveBackpack;
}

public void Initialize()
Expand All @@ -62,7 +69,7 @@ public void Initialize()

view.OnNameScreenNext += OnNameScreenNext;
view.OnEditAvatar += OnEditAvatar;
view.OnTermsOfServiceAgreed += OnTermsOfServiceAgreed;
view.OnTermsOfServiceAgreed += OnTermsOfServiceAgreedStepBeforeSaveBackpack;
view.OnTermsOfServiceBack += OnTermsOfServiceBack;
view.OnLinkClicked += OnLinkClicked;

Expand Down Expand Up @@ -104,10 +111,11 @@ internal void OnEditAvatar()
dataStoreHUDs.avatarEditorVisible.Set(true, true);
}

internal void OnTermsOfServiceAgreed()
private void OnTermsOfServiceAgreedStepBeforeSaveBackpack()
{
WebInterface.SendPassport(name, email);
DataStore.i.common.isSignUpFlow.Set(false);
dataStoreBackpack.isWaitingToBeSavedAfterSignUp.Set(true);

newUserExperienceAnalytics?.SendTermsOfServiceAcceptedNux(name, email);

if (!isNewTermsOfServiceAndEmailSubscriptionEnabled)
Expand All @@ -117,6 +125,14 @@ internal void OnTermsOfServiceAgreed()
CreateSubscriptionAsync(email, createSubscriptionCts.Token).Forget();
}

private void OnTermsOfServiceAgreedStepAfterSaveBackpack(bool isBackpackWaitingToBeSaved, bool _)
{
if (isBackpackWaitingToBeSaved)
return;

dataStoreCommon.isSignUpFlow.Set(false);
}

private async UniTaskVoid CreateSubscriptionAsync(string emailAddress, CancellationToken cancellationToken)
{
try
Expand Down Expand Up @@ -157,9 +173,10 @@ public void Dispose()
return;
view.OnNameScreenNext -= OnNameScreenNext;
view.OnEditAvatar -= OnEditAvatar;
view.OnTermsOfServiceAgreed -= OnTermsOfServiceAgreed;
view.OnTermsOfServiceAgreed -= OnTermsOfServiceAgreedStepBeforeSaveBackpack;
view.OnTermsOfServiceBack -= OnTermsOfServiceBack;
CommonScriptableObjects.isFullscreenHUDOpen.OnChange -= OnLoadingScreenAppear;
dataStoreBackpack.isWaitingToBeSavedAfterSignUp.OnChange -= OnTermsOfServiceAgreedStepAfterSaveBackpack;
loadingScreenDataStore.decoupledLoadingHUD.visible.OnChange -= OnLoadingScreenAppear;
createSubscriptionCts.SafeCancelAndDispose();
view.Dispose();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@ public class SignupHUDControllerShould
private ISubscriptionsAPIService subscriptionsAPIService;
private DataStore_HUDs dataStoreHUDs;
private DataStore_FeatureFlag dataStoreFeatureFlag;
private BaseVariable<bool> signupVisible => DataStore.i.HUDs.signupVisible;
private DataStore_BackpackV2 dataStoreBackpack;
private DataStore_Common dataStoreCommon;
private BaseVariable<bool> signupVisible => dataStoreHUDs.signupVisible;

[SetUp]
public void SetUp()
Expand All @@ -26,12 +28,16 @@ public void SetUp()
subscriptionsAPIService = Substitute.For<ISubscriptionsAPIService>();
dataStoreHUDs = new DataStore_HUDs();
dataStoreFeatureFlag = new DataStore_FeatureFlag();
dataStoreBackpack = new DataStore_BackpackV2();
dataStoreCommon = new DataStore_Common();

hudController = new SignupHUDController(Substitute.For<IAnalytics>(),
hudView,
new DataStore_LoadingScreen(),
dataStoreHUDs,
dataStoreFeatureFlag,
dataStoreBackpack,
dataStoreCommon,
browserBridge,
subscriptionsAPIService);
hudController.Initialize();
Expand Down Expand Up @@ -104,7 +110,7 @@ public void ReactsToTermsOfServiceAgreed()
hudView.OnTermsOfServiceAgreed += Raise.Event<Action>();
//TODO assert webinterface interaction
Assert.IsFalse(signupVisible.Get());
Assert.IsFalse(DataStore.i.common.isSignUpFlow.Get());
Assert.IsFalse(dataStoreCommon.isSignUpFlow.Get());
}

[Test]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@ public class DataStore_BackpackV2
{
public readonly BaseCollection<string> previewEquippedWearables = new ();
public readonly BaseVariable<string> previewBodyShape = new ();
public readonly BaseVariable<bool> isWaitingToBeSavedAfterSignUp = new (false);
}
}

0 comments on commit 879152e

Please sign in to comment.