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); }
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; } } }); }