package Ġcom . k us amar u . st android . nic ov ideo . fragment Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . k us amar u . st android . nico api . nic ore po . N ico Repo Data Class Ċ import Ġcom . k us amar u . st android . nic ov ideo . adapter . N ico Repo Adapter Ċ import Ġcom . k us amar u . st android . nic ov ideo . view model . factory . N ico Repo ViewModel Factory Ċ import Ġcom . k us amar u . st android . nic ov ideo . view model . N ico Repo ViewModel Ċ import Ġcom . k us amar u . st android . databinding . Fragment N ic ov ideo N ic ore po Binding Ċ Ċ /** Ċ Ġ* Ġãĥ ĭ ãĤ³ ãĥ¬ ãĥĿ Fragment Ċ Ġ* ãĢĢ Ċ Ġ* ĠuserId Ġ| String Ġ| Ġãĥ ¦ãĥ¼ãĤ¶ãĥ¼ ID ãĤĴ åħ¥ ãĤĮãĤĭ ãģ¨ ãģĿãģ® ãĥ¦ãĥ¼ãĤ¶ãĥ¼ ãģ® ãĥĭ ãĤ³ ãĥ¬ ãĥĿ ãĤĴ åıĸ ãĤĬ ãģ« è¡Į ãģį ãģ¾ãģĻ ãĢĤ ãģªãģĦ åł´åĲĪãģ¯ èĩª åĪĨ ãģ® ãĥĭ ãĤ³ ãĥ¬ ãĥĿ ãĤĴ åıĸ ãĤĬ ãģ« è¡Į ãģį ãģ¾ãģĻ Ċ Ġ* Ġ--- Ġãģ« ãĤĵ ãģĦ Ġ--- Ċ Ġ* Ġshow _ video ĠĠ Ġ| ĠBoolean ĠĠ Ġ| Ġ åĪĿ æľŁ çĬ¶æħĭ ãģĭãĤī åĭķ çĶ» ãģ® ãĥģ ãĤ§ ãĥĥãĤ¯ ãĤĴ åħ¥ ãĤĮ ãģŁ ãģĦ åł´åĲĪãģ¯ ä½¿ ãģ£ãģ¦ ãģıãģłãģķãģĦ Ċ Ġ* Ġshow _ live ĠĠĠ Ġ| ĠBoolean ĠĠ Ġ| Ġ åĪĿ æľŁ çĬ¶æħĭ ãģĭãĤī çĶŁ æĶ¾ éĢģ ãģ® ãĥģ ãĤ§ ãĥĥãĤ¯ ãĤĴ åħ¥ ãĤĮ ãģŁ ãģĦ åł´åĲĪãģ¯ ä½¿ ãģ£ãģ¦ ãģıãģłãģķãģĦ Ċ Ġ* Ġ*/ Ċ class ĠN ico Video N ico Repo Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġ/** Ġãĥĩãĥ¼ãĤ¿ åıĸå¾Ĺ ãģ¨ ãģĭ ä¿ĿæĮģ ãģ¨ ãģĭ ãģ® ViewModel Ġ*/ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġn ico Repo ViewModel : ĠN ico Repo ViewModel ĊĊĠĠĠ Ġ/** ĠRecyclerView ãģ¸ æ¸ ¡ ãģĻ éħį åĪĹ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġre cyclerView List Ġ= Ġarray ListOf < N ico Repo Data Class >() ĊĊĠĠĠ Ġ/** ĠRecyclerView ãģ« ãĤ»ãĥĥãĥĪ ãģĻãĤĭ Adapter Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġn ico Repo Adapter Ġ= ĠN ico Repo Adapter ( re cyclerView List ) ĊĊĠĠĠ Ġ/** ĠfindViewById é § Ĩ éĢ Ĳ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġview Binding Ġby Ġlazy Ġ{ ĠFragment N ic ov ideo N ic ore po Binding . inflate ( layout Inflater ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġview Binding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġval ĠuserId Ġ= Ġarguments ?. getString (" userId ") ĊĠĠĠĠĠĠĠ Ġn ico Repo ViewModel Ġ= ĠViewModel Provider ( this , ĠN ico Repo ViewModel Factory ( require Activity (). application , ĠuserId )). get ( N ico Repo ViewModel :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠRecyclerView åĪĿ æľŁ åĮĸ ĊĠĠĠĠĠĠĠ Ġinit RecyclerView () ĊĊĠĠĠĠĠĠĠ Ġ// Ġ èªŃãģ¿ è¾¼ ãģ¿ LiveData ãģĨ ãģĳ ãģ¨ ãĤĬ ĊĠĠĠĠĠĠĠ Ġn ico Repo ViewModel . loading LiveData . observe ( view Lifecycle Owner ) Ġ{ ĠisLoading Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Binding . fragment N ic ov ideo N ic ore po Swipe . is Refresh ing Ġ= ĠisLoading ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ éħį åĪĹ åıĹ ãģĳ åıĸ ãĤĬ ĊĠĠĠĠĠĠĠ Ġn ico Repo ViewModel . nico Repo DataList LiveData . observe ( view Lifecycle Owner ) Ġ{ Ġparse List Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView List . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView List . addAll ( parse List ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn ico Repo Adapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ ãģ ² ãģ£ ãģ ± ãģ£ãģ¦ æĽ´æĸ° ĊĠĠĠĠĠĠĠ Ġview Binding . fragment N ic ov ideo N ic ore po Swipe . setOn Refresh Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġãĥĩãĥ¼ãĤ¿ æ¶Ī ãģĻ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView List . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn ico Repo ViewModel . getN ico Repo () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ ãģĿ ãĥ¼ ãģ¨ ĊĠĠĠĠĠĠĠ Ġview Binding . fragment N ic ov ideo N ic ore po Filter Live Chip . setOn Checked ChangeListener Ġ{ Ġbutton View , Ġis Checked Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn ico Repo ViewModel . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Show Live Ġ= Ġis Checked ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilter And Post LiveData () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġview Binding . fragment N ic ov ideo N ic ore po Filter Video Chip . setOn Checked ChangeListener Ġ{ Ġbutton View , Ġis Checked Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn ico Repo ViewModel . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Show Video Ġ= Ġis Checked ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilter And Post LiveData () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġargument ãģ® åĢ¤ ãĤĴ éģ© çĶ¨ ãģĻãĤĭ ĊĠĠĠĠĠĠĠ Ġview Binding . fragment N ic ov ideo N ic ore po Filter Live Chip . isChecked Ġ= Ġarguments ?. getBoolean (" show _ live ", Ġtrue ) Ġ?: Ġtrue ĊĠĠĠĠĠĠĠ Ġview Binding . fragment N ic ov ideo N ic ore po Filter Video Chip . isChecked Ġ= Ġarguments ?. getBoolean (" show _ video ", Ġtrue ) Ġ?: Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠRecyclerView ãĤĴ åĪĿ æľŁ åĮĸ ĊĠĠĠ Ġprivate Ġfun Ġinit RecyclerView () Ġ{ ĊĠĠĠĠĠĠĠ Ġview Binding . fragment N ic ov ideo N ic ore po Recycler view . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġn ico Repo Adapter ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }