package Ġcom . hus k iel abs . ba ac . emo j il ist Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġcom . hus k iel abs . ba ac . R Ċ import Ġcom . hus k iel abs . ba ac . databinding . Emoji List Fragment Binding Ċ import Ġcom . hus k iel abs . ba ac . shared . view Binding Ċ import Ġcom . hus k iel abs . ba ac . shared . watch Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġjavax . inject . Inject Ċ Ċ @ Android EntryPoint Ċ class ĠEmoji List Fragment Ġ: ĠFragment ( R . layout . emoji _ list _ fragment ) Ġ{ ĊĊĠ Ġprivate Ġval Ġbinding Ġby Ġview Binding ( Emoji List Fragment Binding :: bind ) ĊĠ Ġprivate Ġval ĠviewModel : ĠEmoji List Contract . ViewModel Ġby Ġview Models < Emoji List ViewModel >() ĊĊĠ Ġ@ Inject ĊĠ Ġlateinit Ġvar Ġemoji ListAdapter : ĠEmoji ListAdapter ĊĊĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠ Ġbinding . recycler Emoji . adapter Ġ= Ġemoji ListAdapter ĊĊĠĠĠ ĠviewModel . getAll E moj is () ĊĊĠĠĠ Ġbind Inputs () ĊĠĠĠ Ġbind Outputs () ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġbind Inputs () Ġ= Ġwith ( binding ) Ġ{ ĊĠĠĠ Ġswipe Refresh . setOn Refresh Listener Ġ{ ĠviewModel . getAll E moj is () Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġbind Outputs () Ġ= Ġwith ( viewModel ) Ġ{ ĊĠĠĠ Ġwatch ( state ) Ġ{ Ġstate Ġ-> ĊĠĠĠĠĠ Ġwith ( binding ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprogress Emoji List . isVisible Ġ= Ġstate . loading ĊĠĠĠĠĠĠĠ Ġre cycler Emoji . isVisible Ġ= Ġ! state . loading ĊĠĠĠĠĠĠĠ Ġtext Empty . isVisible Ġ= Ġstate . show Empty View ĊĊĠĠĠĠĠĠĠ Ġload Adapter ( state . emoji Url List ) ĊĊĠĠĠĠĠĠĠ Ġswipe Refresh . is Refresh ing Ġ= Ġfalse ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġload Adapter ( emoji Url List : ĠList < String >) Ġ{ ĊĠĠĠ Ġemoji ListAdapter . submit List ( emoji Url List ) ĊĠ Ġ} Ċ } Ċ