package Ġpl . ang ul ski . salary tracker . app . salary . ui Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . design . widget . Snackbar Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġdagger . android . support . D agger Fragment Ċ import Ġkotlinx . android . synt hetic . main . fragment _ salary _ list .* Ċ import Ġpl . ang ul ski . mobile . extension . inflate Ċ import Ġpl . ang ul ski . mobile . view . recycler . Infinite Scroll Listener Ċ import Ġpl . ang ul ski . mobile . view . View Binder Ċ import Ġpl . ang ul ski . salary tracker . app . R Ċ import Ġpl . ang ul ski . salary tracker . app . salary . ui . list . Sal aries Adapter Ċ import Ġpl . ang ul ski . salary tracker . domain . salary .* Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠSal ary List Fragment Ġ: ĠD agger Fragment (), ĠList Salary View , ĠAdd Salary View Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġget Sal aries : ĠGet Sal aries UseCase ĊĊĠĠĠ Ġoverride Ġvar ĠlistView State : ĠList Salary ViewState Ġby ĠView Binder Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠList Salary ViewState . Salary List Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( salary _ list . adapter Ġas ĠSal aries Adapter ). replace Sal aries ( it . sal aries ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠList Salary ViewState . Failure Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Short ErrorMessage (" Failed Ġfetching Ġsal aries ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġvar Ġadd ViewState : ĠAdd Salary ViewState Ġby ĠView Binder Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAdd Salary ViewState . New Salary Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( salary _ list . adapter Ġas ĠSal aries Adapter ). add Salary ( it . salary ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAdd Salary ViewState . Failure Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Short ErrorMessage (" Failed Ġadding Ġsalary ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Short ErrorMessage ( text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠSn ackbar . make ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsalary _ list , Ġtext , ĠSn ackbar . LENGTH _ SHORT ĊĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcontainer ?. inflate ( R . layout . fragment _ salary _ list ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġsalary _ list . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclear On Scroll Listeners () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlinear Layout Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= Ġlinear Layout ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd On Scroll Listener ( Infinite Scroll Listener ({ Ġget Sal aries . execute () Ġ}, Ġlinear Layout )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinit Adapter () ĊĊĠĠĠĠĠĠĠ Ġget Sal aries . execute () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Adapter () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( salary _ list . adapter Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsalary _ list . adapter Ġ= ĠSal aries Adapter () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance (): ĠSal ary List Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSal ary List Fragment () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ