Пример #1
0
    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);
    }
Пример #2
0
        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);
 }
Пример #4
0
        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));
        }
Пример #5
0
        public HitScoreViewResolver(
            IPoolManager poolManager,
            IEventSystem eventSystem,
            IInstantiator instantiator
            ) : base(
                poolManager,
                eventSystem,
                instantiator
                )
        {
            _canvas = GameObject.Find("Canvas");

            ViewPool.PreAllocate(10);
        }
Пример #6
0
        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));
        }
Пример #7
0
        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));
        }
Пример #8
0
        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);
    }
Пример #10
0
        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);
        }
Пример #11
0
        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);
 }
Пример #14
0
 protected override void OnPoolStarting()
 {
     ViewPool.PreAllocate(30);
 }
Пример #15
0
 public void Initialize(ExploreMiniMapDataController mapDataController, FriendTrackerController friendsController)
 {
     this.mapDataController = mapDataController;
     this.friendsController = friendsController;
     hotScenesViewPool      = new ViewPool <HotSceneCellView>(hotsceneBaseCellView, 9);
 }