public void Setup() { if (isSetup) { return; } isSetup = true; friendPool = new ViewPool <ExploreFriendsView>(friendsView, 0); friendViewById = new Dictionary <string, ExploreFriendsView>(); crowdHandler = new CrowdHandler(); crowdHandler.onInfoUpdate += OnCrowdInfoUpdated; mapInfoHandler = new MapInfoHandler(); mapInfoHandler.onInfoUpdate += OnMapInfoUpdated; friendsHandler = new FriendsHandler(mapInfoHandler); friendsHandler.onFriendAdded += OnFriendAdded; friendsHandler.onFriendRemoved += OnFriendRemoved; thumbnailHandler = new ThumbnailHandler(); animationHandler = new AnimationHandler(viewAnimator); }
protected override void SetupAttribute(Entity <IUIPool> uiEntity, IView view)//, GameObject go) { Debug.Log($"Update parent for {uiEntity.GetAttribute<Name, string>()}"); var parentId = uiEntity.Get <Parent>().Id; var parent = UIPool.GetElement(parentId); var parentView = ViewPool.GetByIdentity(parent.Get <ViewLink>().Id); view.SetParent(parentView); }
ExplosionViewResolver( IPoolManager poolManager, IEventSystem eventSystem, IInstantiator instantiator ) : base( poolManager, eventSystem, instantiator ) { ViewPool.PreAllocate(20); }
public void should_allocate_in_bulk_when_needing_more_instances() { var mockViewHandler = Substitute.For <IViewHandler>(); var pool = new ViewPool(5, mockViewHandler); pool.AllocateInstance(); mockViewHandler.Received(5).CreateView(); Assert.Equal(5, pool.PooledObjects.Count); Assert.Equal(4, pool.PooledObjects.Count(x => x.IsInUse == false)); Assert.Equal(1, pool.PooledObjects.Count(x => x.IsInUse)); }
public HitScoreViewResolver( IPoolManager poolManager, IEventSystem eventSystem, IInstantiator instantiator ) : base( poolManager, eventSystem, instantiator ) { _canvas = GameObject.Find("Canvas"); ViewPool.PreAllocate(10); }
public void should_pre_allocate_views() { var mockViewHandler = Substitute.For <IViewHandler>(); mockViewHandler.CreateView().Returns(null); var pool = new ViewPool(5, mockViewHandler); pool.PreAllocate(20); mockViewHandler.Received(20).CreateView(); Assert.Equal(20, pool.PooledObjects.Count); Assert.All(pool.PooledObjects, x => Assert.False(x.IsInUse)); Assert.All(pool.PooledObjects, x => Assert.Null(x.ViewObject)); }
public void should_not_allocate_in_bulk_when_views_not_in_use() { var mockViewHandler = Substitute.For <IViewHandler>(); var pool = new ViewPool(5, mockViewHandler); var viewObject = new ViewObjectContainer(null); pool.PooledObjects.Add(viewObject); pool.AllocateInstance(); mockViewHandler.Received(0).CreateView(); mockViewHandler.Received(1).SetActiveState(Arg.Any <object>(), true); Assert.Equal(1, pool.PooledObjects.Count); Assert.Equal(1, pool.PooledObjects.Count(x => x.IsInUse)); }
public void should_not_destroy_on_deallocation() { var mockViewHandler = Substitute.For <IViewHandler>(); var pool = new ViewPool(5, mockViewHandler); var actualView = new object(); var viewObject = new ViewObjectContainer(actualView) { IsInUse = true }; pool.PooledObjects.Add(viewObject); pool.ReleaseInstance(actualView); mockViewHandler.Received(0).DestroyView(actualView); mockViewHandler.Received(1).SetActiveState(actualView, false); Assert.Equal(1, pool.PooledObjects.Count); Assert.Equal(1, pool.PooledObjects.Count(x => x.IsInUse == false)); }
public void Initialize() { if (isInitialized) { return; } isInitialized = true; friendPool = new ViewPool <ExploreFriendsView>(friendsView, 0); friendViewById = new Dictionary <string, ExploreFriendsView>(); mapInfoHandler = new MapInfoHandler(); friendsHandler = new FriendsHandler(mapInfoHandler); friendsHandler.onFriendAdded += OnFriendAdded; friendsHandler.onFriendRemoved += OnFriendRemoved; thumbnailHandler = new ThumbnailHandler(); animationHandler = new AnimationHandler(viewAnimator); }
public void should_empty_pool() { var mockViewHandler = Substitute.For <IViewHandler>(); var pool = new ViewPool(5, mockViewHandler); for (var i = 0; i < 10; i++) { var viewObject = new ViewObjectContainer(null); if (i < 5) { viewObject.IsInUse = true; } pool.PooledObjects.Add(viewObject); } pool.EmptyPool(); mockViewHandler.Received(10).DestroyView(Arg.Any <object>()); Assert.Empty(pool.PooledObjects); }
public void should_only_deallocate_unsued_views() { var mockViewHandler = Substitute.For <IViewHandler>(); var pool = new ViewPool(5, mockViewHandler); for (var i = 0; i < 10; i++) { var viewObject = new ViewObjectContainer(null); if (i < 5) { viewObject.IsInUse = true; } pool.PooledObjects.Add(viewObject); } pool.DeAllocate(10); mockViewHandler.Received(5).DestroyView(Arg.Any <object>()); Assert.Equal(5, pool.PooledObjects.Count); Assert.All(pool.PooledObjects, x => Assert.True(x.IsInUse)); }
public SelfDestructionViewResolver(IPoolManager poolManager, IEventSystem eventSystem) : base(poolManager, eventSystem) { ViewPool.PreAllocate(20); }
public void Initialize(FriendTrackerController friendsController) { this.friendsController = friendsController; hotScenesViewPool = new ViewPool <HotSceneCellView>(hotsceneBaseCellView, 9); }
protected override void OnPoolStarting() { ViewPool.PreAllocate(30); }
public void Initialize(ExploreMiniMapDataController mapDataController, FriendTrackerController friendsController) { this.mapDataController = mapDataController; this.friendsController = friendsController; hotScenesViewPool = new ViewPool <HotSceneCellView>(hotsceneBaseCellView, 9); }