package Ġcom . ere z studio . motion monitor . base . ui Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . databinding . ViewData Binding Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . ere z studio . motion monitor . BR Ċ import Ġcom . ere z studio . motion monitor . R Ċ import Ġcom . ere z studio . motion monitor . databinding . Fragment Base Binding Ċ Ċ abstract Ġclass ĠBase Fragment < VM Ġ: ĠBase ViewModel , ĠDB Ġ: ĠView Data Binding >( private Ġval Ġlayout Res Id : ĠInt ) Ġ: ĊĠĠĠ ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġroot Fragment : ĠBase Fragment < *, Ġ* >? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġroot Binding : ĠFragment Base Binding ĊĊĠĠĠ Ġprotected Ġabstract Ġval ĠviewModel : ĠVM ĊĊĠĠĠ Ġprotected Ġlateinit Ġvar Ġbinding : ĠDB ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( root Fragment Ġ== Ġnull ) Ġroot Fragment Ġ= Ġthis ĊĊĠĠĠĠĠĠĠ Ġroot Binding Ġ= ĠData Binding Util . inflate ( in flater , ĠR . layout . fragment _ base , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠData Binding Util . inflate < DB >( in flater , Ġlayout Res Id , Ġroot Binding . child Fragment Frame , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Variable ( BR . viewModel , ĠviewModel ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġroot Binding . root ĊĠĠĠ Ġ} Ċ Ċ }