package Ġcom . to an _ it c . core . base Ċ Ċ import Ġandroid . arch . lifecycle . ViewModel Provider Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġdagger . android . support . D agger AppCompatActivity Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠTo an . IT Ġon Ġ 1 2 / 1 / 1 7 . Ċ Ġ* ĠEmail : Hu yn h van to an . it c @ gmail . com Ċ Ġ*/ Ċ Ċ abstract Ġclass ĠCore Binding Activity < VM Ġ: ĠBase ViewModel , ĠDB Ġ: ĠView Data Binding > Ġ: ĠD agger AppCompatActivity (), ĠBase View Ġ{ ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar ĠviewModel Factory : ĠViewModel Provider . Factory ĊĠĠĠ Ġlateinit Ġvar ĠviewModel : ĠVM ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠ Ġlateinit Ġvar Ġbinding : ĠDB ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġabstract Ġfun Ġsetup ViewModel (): ĠVM ĊĠĠĠ Ġabstract Ġfun Ġinf late Binding Layout ( in flater : ĠLayoutInflater ): ĠDB ĊĠĠĠ Ġabstract Ġfun Ġinit Data () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠviewModel Ġ= Ġsetup ViewModel () ĊĠĠĠĠĠĠĠ Ġbinding Ġ= Ġsetup Binding ( layout Inflater ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĠĠĠĠĠĠĠ Ġinit Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Binding ( in flater : ĠLayoutInflater ): ĠDB Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= Ġinf late Binding Layout ( in flater ) ĊĠĠĠĠĠĠĠ Ġbinding . set Variable ( BR . view , Ġthis ) ĊĠĠĠĠĠĠĠ Ġbinding . set Variable ( BR . viewModel , ĠviewModel ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding ĊĠĠĠ Ġ} Ċ }