package Ġcom . example . base . base . base Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . annotation . Layout Res Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . databinding . ViewData Binding Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . lifecycle . as LiveData Ċ // import Ġcom . example . data . utils . DataStore Manager Ċ Ċ open Ġclass ĠBase Fragment < T Ġ: ĠView Data Binding >( @ Layout Res Ġval Ġlayout Res : ĠInt ) Ġ: ĠFragment () Ġ{ ĊĊ Ċ // ĠĠĠ Ġ@ Inject Ċ // ĠĠĠ Ġprotected Ġlateinit Ġvar Ġdata Store : ĠData Store Manager ĊĠĠĠ Ġlateinit Ġvar Ġbinding : ĠT ĊĠĠĠ Ġprotected Ġvar Ġtoken Ġ= Ġ"" ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠData Binding Util . inflate ( in flater , Ġlayout Res , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġbinding . onCreate View () ĊĠĠĠĠĠĠĠ Ġbinding . on View Created () ĊĠĠĠĠĠĠĠ ĠgetToken () ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun ĠT . onCreate View () Ġ= ĠUnit ĊĠĠĠ Ġopen Ġfun ĠT . on View Created () Ġ= ĠUnit ĊĊĠĠĠ Ġprivate Ġfun ĠgetToken () Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġdata Store . read Token . as LiveData (). observe ( view Lifecycle Owner ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Ġ= Ġit . token Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }