package Ġcom . example . lib _ common . base . ui . fragment Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . annotation . NonNull Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġcom . example . lib _ common . base . view model . Base ViewModel Ċ Ċ abstract Ġclass ĠBase Fragment : ĠFragment () Ġ{ ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( get Layout (), Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġinit ViewModel () ĊĠĠĠĠĠĠĠ Ġinit Data () ĊĠĠĠĠĠĠĠ Ġinit View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun Ġget Layout (): ĠInt ĊĊĠĠĠ Ġabstract Ġfun Ġinit Data () ĊĊĠĠĠ Ġabstract Ġfun Ġinit View () ĊĊĠĠĠ Ġabstract Ġfun Ġinit ViewModel () ĊĊĊĠĠĠ Ġfun Ġ< T : ĠBase ViewModel > Ġget ViewModel (@ NonNull Ġclazz : ĠClass < T >): T { ĊĊĠĠĠĠĠĠĠ Ġreturn ĠViewModel Provider ( this ). get ( clazz ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T : ĠBase ViewModel > Ġget ViewModel (@ NonNull Ġfactory : ĠViewModel Provider . Factory , Ġ@ NonNull Ġclazz : ĠClass < T >): T { ĊĊĠĠĠĠĠĠĠ Ġreturn ĠViewModel Provider ( this , Ġfactory ). get ( clazz ) ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠ Ġ} Ċ }