package Ġcom . god sle w . account Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . god sle w . account . databinding . Fragment Account Binding Ċ import Ġcom . god sle w . core . android . app . App Router Type Ċ import Ġcom . god sle w . core . android . extensions . bind To Ċ import Ġcom . god sle w . core . android . factory . ViewModel Factory Ċ import Ġcom . god sle w . core . android . presenter . Base Fragment Ċ import Ġcom . god sle w . core . component . accounts . Item Account Ċ import Ġcom . god sle w . core . component . accounts . Item Add Account Ċ import Ġcom . god sle w . core . java . entity . Account Ċ import Ġcom . x wr ay . group ie . Group Adapter Ċ import Ġcom . x wr ay . group ie . Group ie ViewHolder Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . rx kotlin . addTo Ċ import Ġjavax . inject . Inject ĊĊ Ċ class ĠAccount Fragment Ġ: ĠBase Fragment () Ġ{ ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġfun Ġnew Instance () Ġ= ĠAccount Fragment () ĊĠ Ġ} ĊĊĠ Ġprivate Ġval Ġdis posable Ġ= ĠComposite Disposable () ĊĊĠ Ġ@ Inject ĊĠ Ġinternal Ġlateinit Ġvar Ġapp Router : ĠApp Router Type ĊĊĠ Ġ@ Inject ĊĠ Ġinternal Ġlateinit Ġvar Ġfactory : ĠViewModel Factory < Account ViewModel > ĊĠ Ġprivate Ġval ĠviewModel : ĠAccount ViewModel Ġby Ġview Models Ġ{ Ġfactory Ġ} ĊĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠFragment Account Binding ĊĊĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠ Ġ): ĠView ? Ġ{ ĊĠĠĠ Ġbinding Ġ= ĠFragment Account Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġreturn Ġbinding . root ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĠĠĠ Ġsetup () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠ Ġsuper . on Resume () ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġsetup () Ġ{ ĊĠĠĠ Ġval Ġadd Account Ġ: Ġ() Ġ-> ĠUnit Ġ= Ġ{ ĊĠĠĠĠĠ ĠstartActivity ( app Router . get OAuth Activity ( require Context ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġopen Account Ġ: Ġ( account Ġ: ĠAccount ) Ġ-> ĠUnit Ġ= Ġ{ ĊĠĠĠĠĠ ĠstartActivity ( app Router . getTime line Creator Activity ( require Context (), Ġit )) ĊĠĠĠ Ġ} ĊĠĠĠ ĠviewModel . accounts ĊĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠ Ġ. bind To Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġaccounts Ġ= Ġit . map Ġ{ Ġac Ġ-> ĠItem Account ( ac , Ġopen Account ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġadd Item Ġ= ĠItem Add Account ( add Account ) ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Adapter Ġ= Ġbinding . list . adapter ĊĠĠĠĠĠĠĠ Ġif Ġ( current Adapter Ġis ĠGroup Adapter ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġcurrent Adapter . update Async ( accounts Ġ+ Ġadd Item ) ĊĠĠĠĠĠĠĠ Ġ} else Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġval Ġmanager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠGroup Adapter < Group ie ViewHolder >() ĊĠĠĠĠĠĠĠĠĠ Ġbinding . list . layout Manager Ġ= Ġmanager ĊĠĠĠĠĠĠĠĠĠ Ġbinding . list . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠĠĠ Ġadapter . update Async ( accounts Ġ+ Ġadd Item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ}. addTo ( dis posable ) ĊĊĠĠĠ ĠviewModel . setup () ĊĠ Ġ} Ċ Ċ } Ċ