< Summary

Class:ExploreV2MenuComponentController
Assembly:ExploreV2
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/ExploreV2/Scripts/MainMenu/ExploreV2Menu/ExploreV2MenuComponentController.cs
Covered lines:186
Uncovered lines:29
Coverable lines:215
Total lines:430
Line coverage:86.5% (186 of 215)
Covered branches:0
Total branches:0
Covered methods:49
Total methods:55
Method coverage:89% (49 of 55)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
ExploreV2MenuComponentController(...)0%110100%
Initialize()0%12.0112096%
Dispose()0%990100%
CreateView()0%2100%
OnWalletInitialized(...)0%6200%
OnMyAccountInitialized(...)0%6200%
CreateAnalyticsController()0%2100%
InitializePlacesAndEventsSection()0%2.032080%
OnSectionInitializedChanged(...)0%110100%
SectionInitializedChanged(...)0%2.062075%
SetVisibility(...)0%110100%
SetVisibilityOnOpenChanged(...)0%110100%
SetMenuTargetVisibility(...)0%440100%
SetSectionTargetVisibility(...)0%220100%
SetVisibility_Internal(...)0%8.228085%
OnSectionVisibilityChanged(...)0%770100%
ChangeVisibilityVarForSwitchedSections()0%330100%
OnSectionOpen(...)0%5.015091.67%
CurrentSectionIndexChanged(...)0%4.254075%
OnAfterShowAnimation()0%2100%
UpdateProfileInfo(...)0%110100%
OnCloseButtonPressed(...)0%330100%
OnWorldChange(...)0%20400%
<ShowRealmSelectorModal()0%4.943040%
ShowRealmSelectorModal()0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/ExploreV2/Scripts/MainMenu/ExploreV2Menu/ExploreV2MenuComponentController.cs

#LineLine coverage
 1using Cysharp.Threading.Tasks;
 2using DCL;
 3using DCL.Social.Friends;
 4using DCL.Tasks;
 5using DCL.Wallet;
 6using DCLServices.PlacesAPIService;
 7using DCLServices.WorldsAPIService;
 8using ExploreV2Analytics;
 9using System;
 10using System.Collections.Generic;
 11using System.Linq;
 12using System.Threading;
 13using UnityEngine;
 14using Environment = DCL.Environment;
 15
 16/// <summary>
 17/// Main controller for the feature "Explore V2".
 18/// Controls different sections: Maps, Backpack, Settings
 19/// their initialization and switching between them
 20/// </summary>
 21public class ExploreV2MenuComponentController : IExploreV2MenuComponentController
 22{
 23    private readonly IPlacesAPIService placesAPIService;
 24    private readonly IWorldsAPIService worldsAPIService;
 25    private readonly IPlacesAnalytics placesAnalytics;
 26    private readonly IRealmsInfoBridge realmsInfoBridge;
 27
 28    // TODO: Refactor the ExploreV2MenuComponentController class in order to inject UserProfileWebInterfaceBridge, theGr
 29
 30    internal const ExploreSection DEFAULT_SECTION = ExploreSection.Explore;
 31
 32    internal IExploreV2MenuComponentView view;
 33    internal IExploreV2Analytics exploreV2Analytics;
 34
 35    internal IPlacesAndEventsSectionComponentController placesAndEventsSectionController;
 36
 37    internal ExploreSection currentOpenSection;
 38    internal Dictionary<BaseVariable<bool>, ExploreSection> sectionsByVisibilityVar;
 39    private ExploreV2ComponentRealmsController realmController;
 40    private WalletCardHUDController walletCardHUDController;
 41
 42    private MouseCatcher mouseCatcher;
 43    private Dictionary<BaseVariable<bool>, ExploreSection> sectionsByInitVar;
 44    private Dictionary<ExploreSection, (BaseVariable<bool> initVar, BaseVariable<bool> visibilityVar)> sectionsVariables
 45    private CancellationTokenSource openRealmSelectorCancellationToken;
 46
 30247    internal BaseVariable<bool> isOpen => DataStore.i.exploreV2.isOpen;
 10848    internal BaseVariable<bool> isInitialized => DataStore.i.exploreV2.isInitialized;
 7249    internal BaseVariable<bool> profileCardIsOpen => DataStore.i.exploreV2.profileCardIsOpen;
 5850    internal BaseVariable<bool> placesAndEventsVisible => DataStore.i.exploreV2.placesAndEventsVisible;
 5451    internal BaseVariable<bool> isAvatarEditorInitialized => DataStore.i.HUDs.isAvatarEditorInitialized;
 5852    internal BaseVariable<bool> avatarEditorVisible => DataStore.i.HUDs.avatarEditorVisible;
 5253    internal BaseVariable<bool> isCameraReelInitialized => DataStore.i.HUDs.isCameraReelInitialized;
 5254    internal BaseVariable<bool> cameraReelSectionVisible => DataStore.i.HUDs.cameraReelSectionVisible;
 5455    internal BaseVariable<bool> isNavmapInitialized => DataStore.i.HUDs.isNavMapInitialized;
 5856    internal BaseVariable<bool> navmapVisible => DataStore.i.HUDs.navmapVisible;
 5457    internal BaseVariable<bool> isQuestInitialized => DataStore.i.Quests.isInitialized;
 5858    internal BaseVariable<bool> questVisible => DataStore.i.HUDs.questsPanelVisible;
 5459    internal BaseVariable<bool> isSettingsPanelInitialized => DataStore.i.settings.isInitialized;
 5860    internal BaseVariable<bool> settingsVisible => DataStore.i.settings.settingsPanelVisible;
 22961    internal BaseVariable<bool> isWalletInitialized => DataStore.i.wallet.isInitialized;
 5262    internal BaseVariable<bool> walletVisible => DataStore.i.wallet.isWalletSectionVisible;
 20863    internal BaseVariable<bool> isMyAccountInitialized => DataStore.i.myAccount.isInitialized;
 5264    internal BaseVariable<bool> myAccountVisible => DataStore.i.myAccount.isMyAccountSectionVisible;
 65
 24066    internal BaseVariable<int> currentSectionIndex => DataStore.i.exploreV2.currentSectionIndex;
 17767    private UserProfile ownUserProfile => UserProfile.GetOwnUserProfile();
 5268    private BaseVariable<bool> isPlacesAndEventsSectionInitialized => DataStore.i.exploreV2.isPlacesAndEventsSectionInit
 2169    private BaseVariable<bool> isPromoteChannelsToastVisible => DataStore.i.channels.isPromoteToastVisible;
 70
 5271    private RectTransform topMenuTooltipReference => view.currentTopMenuTooltipReference;
 5272    private RectTransform placesAndEventsTooltipReference => view.currentPlacesAndEventsTooltipReference;
 5273    private RectTransform backpackTooltipReference => view.currentBackpackTooltipReference;
 5274    private RectTransform mapTooltipReference => view.currentMapTooltipReference;
 5275    private RectTransform questTooltipReference => view.currentQuestTooltipReference;
 5276    private RectTransform settingsTooltipReference => view.currentSettingsTooltipReference;
 5277    private RectTransform cameraReelTooltipReference => view.cameraReelTooltipReference;
 5278    private RectTransform profileCardTooltipReference => view.currentProfileCardTooltipReference;
 79
 5280    public ExploreV2MenuComponentController(IPlacesAPIService placesAPIService, IWorldsAPIService worldsAPIService, IPla
 81        IRealmsInfoBridge realmsInfoBridge)
 82    {
 5283        this.placesAPIService = placesAPIService;
 5284        this.worldsAPIService = worldsAPIService;
 5285        this.placesAnalytics = placesAnalytics;
 5286        this.realmsInfoBridge = realmsInfoBridge;
 5287    }
 88
 89    public void Initialize()
 90    {
 5291        sectionsVariables = new Dictionary<ExploreSection, (BaseVariable<bool>, BaseVariable<bool>)>
 92        {
 93            { ExploreSection.Explore, (isPlacesAndEventsSectionInitialized, placesAndEventsVisible) },
 94            { ExploreSection.Quest, (isQuestInitialized, questVisible) },
 95            { ExploreSection.Backpack, (isAvatarEditorInitialized, avatarEditorVisible) },
 96            { ExploreSection.Map, (isNavmapInitialized, navmapVisible) },
 97            { ExploreSection.CameraReel, (isCameraReelInitialized, cameraReelSectionVisible) },
 98            { ExploreSection.Settings, (isSettingsPanelInitialized, settingsVisible) },
 99            { ExploreSection.Wallet, (isWalletInitialized, walletVisible) },
 100            { ExploreSection.MyAccount, (isMyAccountInitialized, myAccountVisible) },
 101        };
 102
 884103        sectionsByInitVar = sectionsVariables.ToDictionary(pair => pair.Value.initVar, pair => pair.Key);
 884104        sectionsByVisibilityVar = sectionsVariables.ToDictionary(pair => pair.Value.visibilityVar, pair => pair.Key);
 105
 52106        mouseCatcher = SceneReferences.i?.mouseCatcher;
 52107        exploreV2Analytics = CreateAnalyticsController();
 108
 52109        view = CreateView();
 52110        SetVisibility(false);
 111
 52112        realmController = new ExploreV2ComponentRealmsController(DataStore.i.realm, view);
 52113        realmController.Initialize();
 52114        view.currentRealmViewer.onLogoClick?.AddListener(ShowRealmSelectorModal);
 115
 52116        if (isWalletInitialized.Get())
 0117            OnWalletInitialized(true, false);
 118        else
 52119            isWalletInitialized.OnChange += OnWalletInitialized;
 120
 52121        if (isMyAccountInitialized.Get())
 0122            OnMyAccountInitialized(true, false);
 123        else
 52124            isMyAccountInitialized.OnChange += OnMyAccountInitialized;
 125
 52126        ownUserProfile.OnUpdate += UpdateProfileInfo;
 52127        UpdateProfileInfo(ownUserProfile);
 52128        view.currentProfileCard.onClick?.AddListener(() => { profileCardIsOpen.Set(!profileCardIsOpen.Get()); });
 129
 52130        view.OnCloseButtonPressed += OnCloseButtonPressed;
 52131        view.OnAfterShowAnimation += OnAfterShowAnimation;
 132
 52133        DataStore.i.exploreV2.topMenuTooltipReference.Set(topMenuTooltipReference);
 52134        DataStore.i.exploreV2.placesAndEventsTooltipReference.Set(placesAndEventsTooltipReference);
 52135        DataStore.i.exploreV2.questTooltipReference.Set(questTooltipReference);
 52136        DataStore.i.exploreV2.backpackTooltipReference.Set(backpackTooltipReference);
 52137        DataStore.i.exploreV2.mapTooltipReference.Set(mapTooltipReference);
 52138        DataStore.i.exploreV2.settingsTooltipReference.Set(settingsTooltipReference);
 52139        DataStore.i.exploreV2.profileCardTooltipReference.Set(profileCardTooltipReference);
 52140        DataStore.i.exploreV2.cameraReelTooltipReference.Set(cameraReelTooltipReference);
 141
 52142        view.OnSectionOpen += OnSectionOpen;
 143
 52144        isOpen.OnChange += SetVisibilityOnOpenChanged;
 52145        SetVisibilityOnOpenChanged(isOpen.Get());
 146
 52147        currentSectionIndex.OnChange += CurrentSectionIndexChanged;
 52148        CurrentSectionIndexChanged(currentSectionIndex.Get(), 0);
 149
 936150        foreach ((BaseVariable<bool> initVar, BaseVariable<bool> visibilityVar) sectionsVars in sectionsVariables.Values
 151        {
 416152            sectionsVars.initVar.OnChangeWithSenderInfo += OnSectionInitializedChanged;
 416153            OnSectionInitializedChanged(sectionsVars.initVar, sectionsVars.initVar.Get());
 154
 416155            sectionsVars.visibilityVar.OnChangeWithSenderInfo += OnSectionVisibilityChanged;
 416156            OnSectionVisibilityChanged(sectionsVars.visibilityVar, sectionsVars.visibilityVar.Get());
 157        }
 158
 52159        isInitialized.Set(true);
 160
 52161        currentSectionIndex.Set((int)DEFAULT_SECTION, false);
 162
 52163        view.ConfigureEncapsulatedSection(ExploreSection.Map, DataStore.i.exploreV2.configureMapInFullscreenMenu);
 52164        view.ConfigureEncapsulatedSection(ExploreSection.Settings, DataStore.i.exploreV2.configureSettingsInFullscreenMe
 52165        view.ConfigureEncapsulatedSection(ExploreSection.CameraReel, DataStore.i.exploreV2.configureCameraReelInFullScre
 52166        view.ConfigureEncapsulatedSection(ExploreSection.Wallet, DataStore.i.exploreV2.configureWalletSectionInFullscree
 52167        view.ConfigureEncapsulatedSection(ExploreSection.MyAccount, DataStore.i.exploreV2.configureMyAccountSectionInFul
 168
 52169        DataStore.i.common.isWorld.OnChange += OnWorldChange;
 52170    }
 171
 172    public void Dispose()
 173    {
 52174        realmController.Dispose();
 175
 52176        ownUserProfile.OnUpdate -= UpdateProfileInfo;
 52177        view?.currentProfileCard.onClick?.RemoveAllListeners();
 178
 52179        isOpen.OnChange -= SetVisibilityOnOpenChanged;
 52180        currentSectionIndex.OnChange -= CurrentSectionIndexChanged;
 181
 936182        foreach ((BaseVariable<bool> initVar, BaseVariable<bool> visibilityVar) sectionsVars in sectionsVariables.Values
 183        {
 416184            sectionsVars.initVar.OnChangeWithSenderInfo -= OnSectionInitializedChanged;
 416185            sectionsVars.visibilityVar.OnChangeWithSenderInfo -= OnSectionVisibilityChanged;
 186        }
 187
 52188        if (placesAndEventsSectionController != null)
 189        {
 1190            placesAndEventsSectionController.OnCloseExploreV2 -= OnCloseButtonPressed;
 1191            placesAndEventsSectionController.Dispose();
 192        }
 193
 52194        if (view != null)
 195        {
 52196            view.currentProfileCard.onClick?.RemoveAllListeners();
 52197            view.currentRealmViewer.onLogoClick?.RemoveAllListeners();
 52198            view.OnCloseButtonPressed -= OnCloseButtonPressed;
 52199            view.OnAfterShowAnimation -= OnAfterShowAnimation;
 52200            view.OnSectionOpen -= OnSectionOpen;
 52201            view.Dispose();
 202        }
 203
 52204        DataStore.i.common.isWorld.OnChange -= OnWorldChange;
 205
 52206        isWalletInitialized.OnChange -= OnWalletInitialized;
 52207        walletCardHUDController?.Dispose();
 208
 52209        isMyAccountInitialized.OnChange -= OnMyAccountInitialized;
 52210    }
 211
 212    protected internal virtual IExploreV2MenuComponentView CreateView() =>
 0213        ExploreV2MenuComponentView.Create();
 214
 215    private void OnWalletInitialized(bool current, bool previous)
 216    {
 0217        if (!current)
 0218            return;
 219
 0220        isWalletInitialized.OnChange -= OnWalletInitialized;
 221
 0222        walletCardHUDController = new WalletCardHUDController(
 223            view.currentWalletCard,
 224            new UserProfileWebInterfaceBridge(),
 225            Environment.i.platform.serviceProviders.theGraph,
 226            DataStore.i);
 0227    }
 228
 229    private void OnMyAccountInitialized(bool current, bool previous)
 230    {
 0231        if (!current)
 0232            return;
 233
 0234        isMyAccountInitialized.OnChange -= OnMyAccountInitialized;
 0235    }
 236
 237    internal virtual IExploreV2Analytics CreateAnalyticsController() =>
 0238        new ExploreV2Analytics.ExploreV2Analytics();
 239
 240    internal void InitializePlacesAndEventsSection()
 241    {
 1242        if (placesAndEventsSectionController != null)
 0243            return;
 244
 1245        placesAndEventsSectionController = new PlacesAndEventsSectionComponentController(
 246            view.currentPlacesAndEventsSection, exploreV2Analytics, DataStore.i, new UserProfileWebInterfaceBridge(),
 247            Environment.i.serviceLocator.Get<IFriendsController>(), placesAPIService, worldsAPIService, placesAnalytics)
 248
 1249        placesAndEventsSectionController.OnCloseExploreV2 += OnCloseButtonPressed;
 1250    }
 251
 252    private void OnSectionInitializedChanged(BaseVariable<bool> initVar, bool initialized, bool _ = false) =>
 420253        SectionInitializedChanged(sectionsByInitVar[initVar], initialized);
 254
 255    internal void SectionInitializedChanged(ExploreSection section, bool initialized, bool _ = false)
 256    {
 428257        view.SetSectionActive(section, initialized);
 258
 428259        if (section == ExploreSection.Explore && initialized)
 0260            InitializePlacesAndEventsSection();
 428261    }
 262
 263    public void SetVisibility(bool visible) =>
 72264        isOpen.Set(visible);
 265
 266    internal void SetVisibilityOnOpenChanged(bool open, bool _ = false) =>
 77267        SetVisibility_Internal(open);
 268
 269    internal void SetMenuTargetVisibility(ExploreSection section, bool toVisible, bool _ = false)
 270    {
 132271        if (toVisible)
 272        {
 16273            if (currentSectionIndex.Get() != (int)section)
 11274                currentSectionIndex.Set((int)section);
 275
 16276            SetSectionTargetVisibility(section, toVisible: true);
 277        }
 116278        else if (currentOpenSection == section)
 56279            SetSectionTargetVisibility(section, toVisible: false);
 116280    }
 281
 282    private void SetSectionTargetVisibility(ExploreSection section, bool toVisible)
 283    {
 72284        bool wasInTargetVisibility = toVisible ^ isOpen.Get();
 285
 72286        if (wasInTargetVisibility)
 287        {
 16288            SetVisibility(toVisible);
 16289            exploreV2Analytics.SendStartMenuVisibility(toVisible, ExploreUIVisibilityMethod.FromShortcut);
 290        }
 291
 72292        exploreV2Analytics.SendStartMenuSectionVisibility(section, toVisible);
 72293    }
 294
 295    private void SetVisibility_Internal(bool visible)
 296    {
 77297        if (view == null || DataStore.i.common.isSignUpFlow.Get())
 0298            return;
 299
 77300        if (visible)
 301        {
 302            // TODO: This is temporal while we want to keep the NEW tag for the new Backpack feature
 21303            if (DataStore.i.featureFlags.flags.Get().IsFeatureEnabled("backpack_editor_v2"))
 0304                view.SetSectionAsNew(ExploreSection.Backpack, false);
 305
 21306            view.SetWalletActive(isWalletInitialized.Get(), ownUserProfile.isGuest);
 307
 21308            if (mouseCatcher != null)
 0309                mouseCatcher.UnlockCursor();
 310
 21311            if (DataStore.i.common.isTutorialRunning.Get())
 1312                view.GoToSection(DEFAULT_SECTION);
 313
 21314            isPromoteChannelsToastVisible.Set(false);
 315        }
 316        else
 317        {
 56318            CommonScriptableObjects.isFullscreenHUDOpen.Set(false);
 319
 1008320            foreach ((BaseVariable<bool> initVar, BaseVariable<bool> visibilityVar) sectionsVars in sectionsVariables.Va
 448321                sectionsVars.visibilityVar.Set(false);
 322
 56323            profileCardIsOpen.Set(false);
 324        }
 325
 77326        DataStore.i.wallet.isWalletCardVisible.Set(visible);
 77327        view.SetVisible(visible);
 77328    }
 329
 330    private void OnSectionVisibilityChanged(BaseVariable<bool> visibilityVar, bool visible, bool previous = false)
 331    {
 426332        ExploreSection section = sectionsByVisibilityVar[visibilityVar];
 333
 426334        if (section is ExploreSection.Wallet or ExploreSection.MyAccount)
 104335            return;
 336
 322337        BaseVariable<bool> initVar = section == ExploreSection.Explore ? isInitialized : sectionsVariables[section].init
 338
 322339        if (!initVar.Get() || DataStore.i.common.isSignUpFlow.Get())
 205340            return;
 341
 117342        SetMenuTargetVisibility(sectionsByVisibilityVar[visibilityVar], visible);
 117343    }
 344
 345    private void ChangeVisibilityVarForSwitchedSections()
 346    {
 180347        foreach (BaseVariable<bool> visibilityVar in sectionsByVisibilityVar.Keys)
 80348            if (visibilityVar.Get() != (currentOpenSection == sectionsByVisibilityVar[visibilityVar]))
 10349                visibilityVar.Set(currentOpenSection == sectionsByVisibilityVar[visibilityVar]);
 10350    }
 351
 352    internal void OnSectionOpen(ExploreSection section)
 353    {
 10354        if (section != currentOpenSection)
 9355            exploreV2Analytics.SendStartMenuSectionVisibility(currentOpenSection, false);
 356
 10357        currentOpenSection = section;
 358
 10359        if (currentOpenSection == ExploreSection.Backpack)
 2360            view.ConfigureEncapsulatedSection(ExploreSection.Backpack, DataStore.i.exploreV2.configureBackpackInFullscre
 361
 10362        if (currentOpenSection == ExploreSection.Quest)
 2363            view.ConfigureEncapsulatedSection(ExploreSection.Quest, DataStore.i.exploreV2.configureQuestInFullscreenMenu
 364
 10365        if (currentOpenSection == ExploreSection.CameraReel)
 0366            DataStore.i.HUDs.cameraReelOpenSource.Set("Menu");
 367
 10368        ChangeVisibilityVarForSwitchedSections();
 369
 10370        profileCardIsOpen.Set(false);
 10371    }
 372
 373    internal void CurrentSectionIndexChanged(int current, int previous)
 374    {
 544375        if (DataStore.i.exploreV2.isInShowAnimationTransiton.Get())
 0376            return;
 377
 544378        if (Enum.IsDefined(typeof(ExploreSection), current))
 379        {
 473380            if (!view.IsSectionActive((ExploreSection)current))
 473381                CurrentSectionIndexChanged(current + 1, current);
 382            else
 0383                view.GoToSection((ExploreSection)current);
 384        }
 385        else
 71386            view.GoToSection(0);
 71387    }
 388
 389    private static void OnAfterShowAnimation() =>
 0390        CommonScriptableObjects.isFullscreenHUDOpen.Set(true);
 391
 392    internal void UpdateProfileInfo(UserProfile profile)
 393    {
 53394        view.currentProfileCard.SetIsClaimedName(profile.hasClaimedName);
 53395        view.currentProfileCard.SetProfileName(profile.userName);
 53396        view.currentProfileCard.SetProfileAddress(profile.ethAddress);
 53397        view.currentProfileCard.SetProfilePicture(profile.face256SnapshotURL);
 53398    }
 399
 400    internal void OnCloseButtonPressed(bool fromShortcut)
 401    {
 2402        SetVisibility(false);
 2403        exploreV2Analytics.SendStartMenuVisibility(false, fromShortcut ? ExploreUIVisibilityMethod.FromShortcut : Explor
 2404    }
 405
 406    private void OnWorldChange(bool isWorld, bool wasWorld)
 407    {
 0408        if (isWorld == wasWorld) return;
 409
 0410        if (isWorld && view.IsSectionActive(ExploreSection.Map))
 0411            view.HideMapOnEnteringWorld();
 412
 0413        view.SetSectionActive(ExploreSection.Map, !isWorld);
 0414    }
 415
 416    private void ShowRealmSelectorModal()
 417    {
 418        async UniTask FetchRealmsThenShowModalAsync(CancellationToken cancellationToken)
 419        {
 2420            try { await realmsInfoBridge.FetchRealmsInfo(cancellationToken); }
 0421            catch (OperationCanceledException) { return; }
 0422            catch (Exception e) { Debug.LogException(e); }
 423
 1424            view.ShowRealmSelectorModal();
 1425        }
 426
 1427        openRealmSelectorCancellationToken = openRealmSelectorCancellationToken.SafeRestart();
 1428        FetchRealmsThenShowModalAsync(openRealmSelectorCancellationToken.Token).Forget();
 1429    }
 430}

Methods/Properties

isOpen()
isInitialized()
profileCardIsOpen()
placesAndEventsVisible()
isAvatarEditorInitialized()
avatarEditorVisible()
isCameraReelInitialized()
cameraReelSectionVisible()
isNavmapInitialized()
navmapVisible()
isQuestInitialized()
questVisible()
isSettingsPanelInitialized()
settingsVisible()
isWalletInitialized()
walletVisible()
isMyAccountInitialized()
myAccountVisible()
currentSectionIndex()
ownUserProfile()
isPlacesAndEventsSectionInitialized()
isPromoteChannelsToastVisible()
topMenuTooltipReference()
placesAndEventsTooltipReference()
backpackTooltipReference()
mapTooltipReference()
questTooltipReference()
settingsTooltipReference()
cameraReelTooltipReference()
profileCardTooltipReference()
ExploreV2MenuComponentController(DCLServices.PlacesAPIService.IPlacesAPIService, DCLServices.WorldsAPIService.IWorldsAPIService, DCLServices.PlacesAPIService.IPlacesAnalytics, DCL.IRealmsInfoBridge)
Initialize()
Dispose()
CreateView()
OnWalletInitialized(System.Boolean, System.Boolean)
OnMyAccountInitialized(System.Boolean, System.Boolean)
CreateAnalyticsController()
InitializePlacesAndEventsSection()
OnSectionInitializedChanged(.BaseVariable[Boolean], System.Boolean, System.Boolean)
SectionInitializedChanged(ExploreSection, System.Boolean, System.Boolean)
SetVisibility(System.Boolean)
SetVisibilityOnOpenChanged(System.Boolean, System.Boolean)
SetMenuTargetVisibility(ExploreSection, System.Boolean, System.Boolean)
SetSectionTargetVisibility(ExploreSection, System.Boolean)
SetVisibility_Internal(System.Boolean)
OnSectionVisibilityChanged(.BaseVariable[Boolean], System.Boolean, System.Boolean)
ChangeVisibilityVarForSwitchedSections()
OnSectionOpen(ExploreSection)
CurrentSectionIndexChanged(System.Int32, System.Int32)
OnAfterShowAnimation()
UpdateProfileInfo(UserProfile)
OnCloseButtonPressed(System.Boolean)
OnWorldChange(System.Boolean, System.Boolean)
<ShowRealmSelectorModal()
ShowRealmSelectorModal()