Beispiel #1
0
        protected override void InitDrawer()
        {
            _Drawer.Init(_Adapters, true, false);
            _Drawer.serverDelaySetting.inputField.text = 1f + "";
            _Drawer.galleryEffectSetting.slider.value  = 0f;

            _OnPullActionTogglesPanel = _Drawer.AddLabelWithTogglesPanel(
                "On release pull: ",
                "Refresh",
                "+" + FEW_ITEMS_FOR_INSERT + "",
                "+" + MANY_ITEMS_FOR_INSERT + ""
                );
            _OnPullActionTogglesPanel.transform.SetAsFirstSibling();

            _OnPullActionTogglesPanel.ToggleChanged += (index, isOn) =>
            {
                if (!isOn)
                {
                    return;
                }

                _OnPullAction = (OnPullAction)index;

                // The content's fixed edge can only be chosen by the user on refresh, because on insert it is chosen automatically, based on the direction the refresh is done
                _Drawer.freezeContentEndEdgeToggle.transform.parent.gameObject.SetActive(_OnPullAction == OnPullAction.REFRESH);
            };

            var toggleToActivateFirst = _OnPullActionTogglesPanel.subItems[(int)OnPullAction.INSERT_FEW_AT_EDGE].toggle;

            toggleToActivateFirst.isOn = true;
            toggleToActivateFirst.onValueChanged.Invoke(true);
        }
Beispiel #2
0
        public void Init(
            IOSA[] adapters,
            bool addGravityCommand           = true,
            bool addItemEdgeFreezeCommand    = true,
            bool addContentEdgeFreezeCommand = true,
            bool addServerDelaySetting       = true,
            bool addOneItemAddRemovePanel    = true,
            bool addInsertRemoveAtIndexPanel = true
            )
        {
            _Adapters = adapters;

            scrollToPanel.mainSubPanel.button.onClick.AddListener(RequestSmoothScrollToSpecified);
            setCountPanel.button.onClick.AddListener(RequestChangeItemCountToSpecifiedIgnoringServerDelay);

            if (addGravityCommand)
            {
                contentGravityPanel = AddLabelWithTogglesPanel("Gravity when content smaller than viewport", "Start", "Center", "End");
                contentGravityPanel.ToggleChanged += (toggleIdx, isOn) =>
                {
                    if (!isOn)
                    {
                        return;
                    }

                    DoForAllAdapters((adapter) =>
                    {
                        if (adapter.IsInitialized)
                        {
                            adapter.BaseParameters.Gravity = (BaseParams.ContentGravity)(toggleIdx + 1);
                            adapter.BaseParameters.UpdateContentPivotFromGravityType();
                            //adapter.SetVirtualAbstractNormalizedScrollPosition(1d, true); // scrollto start
                        }
                    });
                };
            }

            if (addItemEdgeFreezeCommand)
            {
                freezeItemEndEdgeToggle = AddLabelWithTogglePanel("Freeze item end edge when expanding/collapsing").toggle;
            }
            if (addContentEdgeFreezeCommand)
            {
                freezeContentEndEdgeToggle = AddLabelWithTogglePanel("Freeze content end edge on add/remove/resize").toggle;
            }

            if (addServerDelaySetting)
            {
                serverDelaySetting = AddLabelWithInputPanel("Server simulated delay:");
                serverDelaySetting.inputField.text           = 1 + "";       // 1 second, initially
                serverDelaySetting.inputField.keyboardType   = TouchScreenKeyboardType.NumberPad;
                serverDelaySetting.inputField.characterLimit = 1;
            }

            if (addOneItemAddRemovePanel)
            {
                addRemoveOnePanel = AddButtonsWithOptionalInputPanel("+1 tail", "+1 head", "-1 tail", "-1 head");
                addRemoveOnePanel.transform.SetSiblingIndex(1);
                addRemoveOnePanel.button1.onClick.AddListener(() => { AddItemWithChecks(true); });
                addRemoveOnePanel.button2.onClick.AddListener(() => { AddItemWithChecks(false); });
                addRemoveOnePanel.button3.onClick.AddListener(() => { RemoveItemWithChecks(true); });
                addRemoveOnePanel.button4.onClick.AddListener(() => { RemoveItemWithChecks(false); });
            }

            if (addInsertRemoveAtIndexPanel)
            {
                addRemoveOneAtIndexPanel = AddButtonsWithOptionalInputPanel("+1 at", "-1 at", "", "", "index");
                addRemoveOneAtIndexPanel.transform.SetSiblingIndex(1);
                addRemoveOneAtIndexPanel.button1.onClick.AddListener(() => AddItemWithChecks(addRemoveOneAtIndexPanel.InputFieldValueAsInt));
                addRemoveOneAtIndexPanel.button2.onClick.AddListener(() => RemoveItemWithChecks(addRemoveOneAtIndexPanel.InputFieldValueAsInt));
            }

            galleryEffectSetting = AddLabelWithSliderPanel("Gallery effect", "None", "Max");
            galleryEffectSetting.slider.onValueChanged.AddListener((v) =>
                                                                   DoForAllAdapters((adapter) =>
            {
                var gal = adapter.BaseParameters.effects.Gallery;
                //gal.OverallAmount = gal.Scale.Amount = gal.Rotation.Amount = v;
                gal.OverallAmount = v;
            })
                                                                   );
            galleryEffectSetting.Set(0f, 1f, .1f);

            // Simulate low end device toggle
            int vSyncCountBefore      = QualitySettings.vSyncCount;
            int targetFrameRateBefore = Application.targetFrameRate;

            forceLowFPSSetting = AddLabelWithTogglePanel("Force low FPS");
            forceLowFPSSetting.transform.SetAsLastSibling();
            forceLowFPSSetting.toggle.onValueChanged.AddListener(isOn =>
            {
                if (isOn)
                {
                    vSyncCountBefore      = QualitySettings.vSyncCount;
                    targetFrameRateBefore = Application.targetFrameRate;

                    QualitySettings.vSyncCount  = 0;                     // VSync must be disabled for Application.targetFrameRate to work
                    Application.targetFrameRate = TARGET_FRAMERATE_FOR_SIMULATING_SLOW_DEVICES;
                }
                else
                {
                    if (QualitySettings.vSyncCount == 0)                     // if it wasn't modified since the last time we modified it (i.e. if it was modified externally, don't override that value)
                    {
                        QualitySettings.vSyncCount = vSyncCountBefore;
                    }

                    if (Application.targetFrameRate == TARGET_FRAMERATE_FOR_SIMULATING_SLOW_DEVICES)                     // item comment as above
                    {
                        Application.targetFrameRate = targetFrameRateBefore;
                    }
                }
            });
        }