package eu.inloop.viewmodel.binding; import android.content.Context; import android.support.annotation.LayoutRes; import android.support.annotation.NonNull; import eu.inloop.viewmodel.BR; /** * Use this to define a ViewModelBinding Config for a specific screen. * <p> * Config contains layout resource ID, Context, ViewModel binding variable name */ public class ViewModelBindingConfig { @LayoutRes private final int mLayoutResource; private final int mViewModelVariableName; @NonNull private final Context mContext; /** * Create a ViewModelBinding Config object for an Activity/Fragment * This constructor should be used if the binding variable is named differently * * @param layoutResource Layout resource ID * @param viewModelVariableName Data Binding variable name for injecting the ViewModel - use * generated id (e.g. BR.mViewModel) */ public ViewModelBindingConfig(@LayoutRes int layoutResource, int viewModelVariableName, @NonNull Context context) { mLayoutResource = layoutResource; mViewModelVariableName = viewModelVariableName; mContext = context; } /** * Create a ViewModelBinding Config object for an Activity/Fragment * Use this constructor if the binding variable is named viewModel * * @param layoutResource Layout resource ID */ public ViewModelBindingConfig(@LayoutRes int layoutResource, @NonNull Context context) { this(layoutResource, BR.viewModel, context); } @LayoutRes public int getLayoutResource() { return mLayoutResource; } public int getViewModelVariableName() { return mViewModelVariableName; } @NonNull public Context getContext() { return mContext; } }