protected override RecyclerView.Adapter BuildWrappedAdapter(IMvxTemplateSelector templateSelector) { bool isGroupingSupported = MvxAdvancedRecyclerViewAttributeExtensions.IsGroupingSupported(Context, Attrs); if (!isGroupingSupported) { throw new InvalidOperationException($"You are using {nameof(MvxAdvancedExpandableRecyclerView)} without using grouping attributes. Check documentation."); } expandableItemManager = new RecyclerViewExpandableItemManager(expandCollapseSavedState); var expandableAdapter = new MvxExpandableItemAdapter(BindingContext as IMvxAndroidBindingContext); expandableAdapter.TemplateSelector = templateSelector; expandableAdapter.GroupExpandController = MvxAdvancedRecyclerViewAttributeExtensions.BuildGroupExpandController(Context, Attrs); expandableItemManager.DefaultGroupsExpandedState = expandableAdapter.GroupExpandController.AreGroupsExpandedByDefault; expandableAdapter.GroupExpandController.ExpandableItemManager = expandableItemManager; AdvancedRecyclerViewAdapter = expandableAdapter; var groupedDataConverter = MvxAdvancedRecyclerViewAttributeExtensions.BuildMvxGroupedDataConverter(Context, Attrs); expandableAdapter.ExpandableDataConverter = groupedDataConverter; wrappedAdapter = expandableItemManager.CreateWrappedAdapter(expandableAdapter); return(wrappedAdapter); }
protected override RecyclerView.Adapter BuildWrappedAdapter(IMvxTemplateSelector templateSelector) { bool isGroupingSupported = MvxAdvancedRecyclerViewAttributeExtensions.IsGroupingSupported(Context, Attrs); if (!isGroupingSupported) { throw new InvalidOperationException($"You are using {nameof(MvxAdvancedExpandableRecyclerView)} without using grouping attributes. Check documentation."); } expandableItemManager = new RecyclerViewExpandableItemManager(expandCollapseSavedState); var expandableAdapter = new MvxExpandableItemAdapter(BindingContext as IMvxAndroidBindingContext); expandableAdapter.TemplateSelector = templateSelector; expandableAdapter.GroupExpandController = MvxAdvancedRecyclerViewAttributeExtensions.BuildGroupExpandController(Context, Attrs); expandableItemManager.DefaultGroupsExpandedState = expandableAdapter.GroupExpandController.AreGroupsExpandedByDefault; expandableAdapter.GroupExpandController.ExpandableItemManager = expandableItemManager; AdvancedRecyclerViewAdapter = expandableAdapter; var groupedDataConverter = MvxAdvancedRecyclerViewAttributeExtensions.BuildMvxGroupedDataConverter(Context, Attrs); expandableAdapter.ExpandableDataConverter = groupedDataConverter; wrappedAdapter = expandableItemManager.CreateWrappedAdapter(expandableAdapter); bool isSwipeForExpandableSupported = MvxAdvancedRecyclerViewAttributeExtensions.IsSwipeForExpandableSupported(Context, Attrs); if (isSwipeForExpandableSupported) { if (MvxAdvancedRecyclerViewAttributeExtensions.IsGroupedSwipeSupported(Context, Attrs)) { var groupedSwipeableTemplate = MvxAdvancedRecyclerViewAttributeExtensions.BuildGroupSwipeableTemplate(Context, Attrs); expandableAdapter.GroupSwipeableTemplate = groupedSwipeableTemplate; } if (MvxAdvancedRecyclerViewAttributeExtensions.IsGroupedChildSwipeSupported(Context, Attrs)) { var childSwipeableTemplate = MvxAdvancedRecyclerViewAttributeExtensions.BuildGroupChildSwipeableTemplate(Context, Attrs); expandableAdapter.ChildSwipeableTemplate = childSwipeableTemplate; } _mRecyclerViewTouchActionGuardManager = new RecyclerViewTouchActionGuardManager(); _mRecyclerViewTouchActionGuardManager.SetInterceptVerticalScrollingWhileAnimationRunning(true); _mRecyclerViewTouchActionGuardManager.Enabled = true; _mRecyclerViewSwipeManager = new RecyclerViewSwipeManager(); return(_mRecyclerViewSwipeManager.CreateWrappedAdapter(wrappedAdapter)); } return(wrappedAdapter); }