package com.marverenic.music.adapter; import android.view.LayoutInflater; import android.view.ViewGroup; import com.marverenic.adapter.EnhancedViewHolder; import com.marverenic.adapter.HeterogeneousAdapter; import com.marverenic.adapter.HeterogeneousAdapter.SingletonSection; import com.marverenic.music.databinding.InstanceRulesHeaderBinding; import com.marverenic.music.model.AutoPlaylist; import com.marverenic.music.viewmodel.RuleHeaderViewModel; public class RuleHeaderSingleton extends SingletonSection<AutoPlaylist.Builder> { private AutoPlaylist mOriginalPlaylist; public RuleHeaderSingleton(AutoPlaylist playlist, AutoPlaylist.Builder editor) { super(editor); mOriginalPlaylist = playlist; } @Override public EnhancedViewHolder<AutoPlaylist.Builder> createViewHolder(HeterogeneousAdapter adapter, ViewGroup parent) { InstanceRulesHeaderBinding binding = InstanceRulesHeaderBinding.inflate( LayoutInflater.from(parent.getContext()), parent, false); return new ViewHolder(binding); } private class ViewHolder extends EnhancedViewHolder<AutoPlaylist.Builder> { private InstanceRulesHeaderBinding mBinding; private RuleHeaderViewModel mViewModel; public ViewHolder(InstanceRulesHeaderBinding binding) { super(binding.getRoot()); mBinding = binding; mViewModel = new RuleHeaderViewModel(itemView.getContext()); mViewModel.setOriginalReference(mOriginalPlaylist); mBinding.setViewModel(mViewModel); } @Override public void onUpdate(AutoPlaylist.Builder item, int position) { mViewModel.setBuilder(item); } } }