package Ġme . yk rank . s 1 next . view . fragment Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroidx . swiper ef resh layout . widget . Swipe Refresh Layout Ċ import Ġcom . github . yk rank . android tools . ui . internal . Loading ViewModel Binding Delegate Ċ import Ġcom . github . yk rank . android tools . ui . vm . Loading ViewModel Ċ import Ġcom . github . yk rank . android tools . util . Math Util Ċ import Ġcom . github . yk rank . android tools . widget . Rx Bus Ċ import Ġio . reactivex . Single Ċ import Ġme . yk rank . s 1 next . App Ċ import Ġme . yk rank . s 1 next . data . api . Api Ċ import Ġme . yk rank . s 1 next . data . api . model . Note Ċ import Ġme . yk rank . s 1 next . data . api . model . collection . Notes Ċ import Ġme . yk rank . s 1 next . data . api . model . wrapper . Base Data Wrapper Ċ import Ġme . yk rank . s 1 next . databinding . Fragment Note Binding Ċ import Ġme . yk rank . s 1 next . view . activity . WebView Activity Ċ import Ġme . yk rank . s 1 next . view . adapter . Base RecyclerView Adapter Ċ import Ġme . yk rank . s 1 next . view . adapter . Note RecyclerView Adapter Ċ import Ġme . yk rank . s 1 next . view . event . Notice Refresh Event Ċ import Ġjava . util .* Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġy k rank Ġon Ġ 2 0 1 7 / 1 / 5 . Ċ Ġ*/ Ċ Ċ class ĠNote Fragment Ġ: ĠBase Load More Re cycle View Fragment < Base Data Wrapper < Notes >>() Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Recycler Adapter : ĠNote RecyclerView Adapter ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġinternal Ġlateinit Ġvar Ġm Rx Bus : ĠRx Bus ĊĊĠĠĠ Ġoverride Ġval Ġis Card View Container : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġval Ġre cyclerView Adapter : ĠBase RecyclerView Adapter ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġm Recycler Adapter ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠApp . app Component . inject ( this ) ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġleave Page Msg (" Note Fragment ") ĊĊĠĠĠĠĠĠĠ Ġval Ġre cyclerView Ġ= Ġre cyclerView ĊĠĠĠĠĠĠĠ Ġre cyclerView . layout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠ Ġm Recycler Adapter Ġ= ĠNote RecyclerView Adapter ( activity ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= Ġm Recycler Adapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Loading ViewModel Binding Delegate Impl ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?): ĠLoading ViewModel Binding Delegate Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠFragment Note Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġbinding . tv Hint . setOnClickListener Ġ{ ĠWebView Activity . start ( context !! , ĠApi . URL _ VIEW _ NOTE , Ġenable JS Ġ= Ġtrue , Ġpc Agent Ġ= Ġtrue ) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠLoading ViewModel Binding Delegate Note Impl ( binding ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġappend New Data ( old Data : ĠBase Data Wrapper < Notes > ?, ĠnewData : ĠBase Data Wrapper < Notes >): ĠBase Data Wrapper < Notes > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( old Data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġold Notes Ġ= Ġold Data . data . note List ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġnew Notes : ĠMutable List < Note >? Ġ= ĠnewData . data . note List ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Notes Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Notes Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠnewData . data . note List Ġ= Ġnew Notes ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( old Notes Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Notes . addAll ( 0 , Ġold Notes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠnewData ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Page Source Observable ( pageNum : ĠInt ): ĠSingle < Base Data Wrapper < Notes >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm S 1 Service . get My Notes ( pageNum ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Next ( data : ĠBase Data Wrapper < Notes >) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onNext ( data ) ĊĠĠĠĠĠĠĠ Ġval Ġnotes Ġ= Ġdata . data ĊĠĠĠĠĠĠĠ Ġif Ġ( notes Ġ!= Ġnull Ġ&& Ġnotes . note List Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Recycler Adapter . diff New DataSet ( notes . note List , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// update Ġtotal Ġpage ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Total Pages ( Math Util . divide ( notes . count , Ġnotes . per Page )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( pageNum Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Rx Bus . post ( Notice Refresh Event :: class . java , ĠNotice Refresh Event ( null , Ġfalse )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠTAG Ġ= ĠNote Fragment :: class . java . name ĊĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance (): ĠNote Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠNote Fragment () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠLoading ViewModel Binding Delegate Note Impl ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbinding : ĠFragment Note Binding ) Ġ: ĠLoading ViewModel Binding Delegate Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget Root View (): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Swipe Refresh Layout (): ĠSw ipe Refresh Layout Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . swipe Refresh Layout ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget RecyclerView (): ĠRecyclerView Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . re cyclerView ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Loading ViewModel ( loading ViewModel : ĠLoading ViewModel ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . loading ViewModel Ġ= Ġloading ViewModel ĊĠĠĠ Ġ} Ċ } Ċ