/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠLe o Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . xin . wan android . ui . rank Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroidx . constraint layout . widget . Constraint Layout Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġcom . sc wang . smart refresh . layout . api . Refresh Layout Ċ import Ġcom . sc wang . smart refresh . layout . constant . Refresh State Ċ import Ġcom . sc wang . smart refresh . layout . listener . On Refresh Load More Listener Ċ import Ġcom . xin . wan android . R Ċ import Ġcom . xin . wan android . base . Base V MA ct ivity Ċ import Ġkotlinx . android . synt hetic . main . activity _ person _ rank .* Ċ import Ġkotlinx . android . synt hetic . main . common _ toolbar .* Ċ import Ġkotlinx . android . synt hetic . main . header _ person _ rank .* Ċ Ċ /** Ċ Ġ* Ċ Ġ* ĠĠ ĠâĸĪ âĸĪâĸĪâĸĪâĸĪ âĸĴ âĸĪ ĠĠĠ ĠâĸĪâĸĪ Ġ Ġâĸ Ħ âĸĪâĸĪâĸĪâĸĪ âĸĦ ĠĠ ĠâĸĪâĸĪ Ġâĸ Ħ âĸĪ âĸĢ ĠĠĠĠĠĠ ĠâĸĪ âĸĪâĸĪâĸĪâĸĪ âĸĪ âķĹ ĠâĸĪâĸĪ âķĹ ĠĠ ĠâĸĪâĸĪ âķĹ ĠâĸĪ âĸĪâĸĪâĸĪâĸĪ âĸĪ âķĹ Ċ Ġ* Ġâĸ ĵ âĸĪâĸĪ ĠĠ Ġâĸ Ĵ ĠâĸĪâĸĪ Ġ Ġâĸ ĵ âĸĪâĸĪ âĸĴ âĸĴ âĸĪâĸĪ âĸĢ Ġâĸ Ģ âĸĪ ĠĠ ĠâĸĪâĸĪ âĸĦ âĸĪ âĸĴ ĠĠĠĠĠĠĠ ĠâĸĪâĸĪ âķ Ķ âķĲâķĲ âĸĪâĸĪ âķĹ âĸĪâĸĪ âķĳ ĠĠ ĠâĸĪâĸĪ âķĳ âĸĪâĸĪ âķ Ķ âķĲâķĲâķĲâķĲ âķ Ŀ Ċ Ġ* Ġâĸ Ĵ âĸĪâĸĪâĸĪâĸĪ Ġâĸ ĳ âĸ ĵ âĸĪâĸĪ Ġ Ġâĸ Ĵ âĸĪâĸĪ âĸĳ âĸĴ âĸ ĵ âĸĪ ĠĠĠ Ġâĸ Ħ Ġâĸ ĵ âĸĪâĸĪ âĸĪ âĸĦ âĸĳ ĠĠĠĠĠĠĠ ĠâĸĪ âĸĪâĸĪâĸĪâĸĪ âĸĪ âķ Ķ âķ Ŀ âĸĪâĸĪ âķĳ ĠĠ ĠâĸĪâĸĪ âķĳ âĸĪâĸĪ âķĳ Ġ ĠâĸĪ âĸĪâĸĪ âķĹ Ċ Ġ* Ġâĸ ĳ âĸ ĵ âĸĪ âĸĴ Ġ Ġâĸ ĳ âĸ ĵ âĸ ĵ âĸĪ Ġ Ġâĸ ĳ âĸĪâĸĪ âĸĳ âĸĴ âĸ ĵ âĸ ĵ âĸĦ Ġâĸ Ħ âĸĪâĸĪ âĸĴ âĸ ĵ âĸĪâĸĪ ĠâĸĪ âĸĦ ĠĠĠĠĠĠĠ ĠâĸĪâĸĪ âķ Ķ âķĲâķĲ âĸĪâĸĪ âķĹ âĸĪâĸĪ âķĳ ĠĠ ĠâĸĪâĸĪ âķĳ âĸĪâĸĪ âķĳ ĠĠ ĠâĸĪâĸĪ âķĳ Ċ Ġ* Ġâĸ ĳ âĸĴ âĸĪ âĸĳ ĠĠ Ġâĸ Ĵ âĸĴ âĸĪâĸĪâĸĪâĸĪ âĸĪ âĸ ĵ Ġâĸ Ĵ Ġâĸ ĵ âĸĪâĸĪ âĸĪ âĸĢ Ġâĸ ĳ âĸĴ âĸĪâĸĪ âĸĴ ĠâĸĪ âĸĦ ĠĠĠĠĠĠ ĠâĸĪ âĸĪâĸĪâĸĪâĸĪ âĸĪ âķ Ķ âķ Ŀ âķ ļ âĸĪâĸĪâĸĪâĸĪ âĸĪâĸĪ âķ Ķ âķ Ŀ âķ ļ âĸĪâĸĪâĸĪâĸĪ âĸĪâĸĪ âķ Ķ âķ Ŀ Ċ Ġ* Ġ Ġâĸ Ĵ Ġâĸ ĳ ĠĠ Ġâĸ ĳ âĸĴ âĸ ĵ âĸĴ Ġâĸ Ĵ Ġâĸ Ĵ Ġâĸ ĳ Ġâĸ ĳ âĸĴ Ġâĸ Ĵ Ġ Ġâĸ ĳ âĸĴ Ġâĸ Ĵ âĸĴ Ġâĸ ĵ âĸĴ ĠĠĠĠĠĠ Ġâķ ļ âķĲâķĲâķĲâķĲ âķĲâķ Ŀ Ġ Ġâķ ļ âķĲâķĲâķĲâķĲ âķĲâķ Ŀ Ġ Ġâķ ļ âķĲâķĲâķĲâķĲ âķĲâķ Ŀ Ċ Ġ* Ġ Ġâĸ ĳ ĠĠĠĠ Ġâĸ ĳ âĸĳ âĸĴ âĸĳ Ġâĸ ĳ Ġâĸ ĳ ĠĠ Ġâĸ ĳ Ġ Ġâĸ Ĵ ĠĠ Ġâĸ ĳ Ġâĸ ĳ âĸĴ Ġâĸ Ĵ âĸĳ Ċ Ġ* Ġ Ġâĸ ĳ Ġâĸ ĳ ĠĠĠ Ġâĸ ĳ âĸĳâĸĳ Ġâĸ ĳ Ġâĸ ĳ Ġâĸ ĳ ĠĠĠĠĠĠĠ Ġâĸ ĳ Ġâĸ ĳ âĸĳ Ġâĸ ĳ Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠ Ġâĸ ĳ ĠĠĠĠ Ġâĸ ĳ Ġâĸ ĳ ĠĠĠĠĠ Ġâĸ ĳ Ġ Ġâĸ ĳ Ċ Ġ*@ author Ġ: ĠLe o Ċ Ġ*@ date Ġ: Ġ 2 0 2 0 / 9 / 1 4 Ġ 1 4 : 5 3 Ċ Ġ*@ since Ġ: Ġx inx in isco ol @ gmail . com Ċ Ġ*@ desc Ġ: Ċ Ġ*/ Ċ class ĠPerson Rank Activity Ġ: ĠBase V MA ct ivity < Person Rank ViewModel >() Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġadapter Ġby Ġlazy Ġ{ ĠPerson Rank Adapter () Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget ViewModel Class (): ĠClass < Person Rank ViewModel > Ġ= ĠPerson Rank ViewModel :: class . java ĊĊĠĠĠ Ġoverride Ġfun Ġinit Layout View (): ĠInt Ġ= ĠR . layout . activity _ person _ rank ĊĊĠĠĠ Ġ@ Suppress Lint (" Inf late Params ") ĊĠĠĠ Ġoverride Ġfun Ġinit Event () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. set Display Show Title Enabled ( false ) ĊĠĠĠĠĠĠĠ Ġtoolbar . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Toolbar Title . text Ġ Ġ= Ġ" æĪĳçļĦ ç§¯ åĪĨ " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Navigation Icon ( R . drawable . ic _ arrow _ back _ white _ 2 4 dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Navigation OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġm Header Group Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( this ). inflate ( R . layout . header _ person _ rank , Ġnull ) Ġas ĠConstraint Layout ĊĠĠĠĠĠĠĠ Ġadapter . add Header View ( m Header Group ) ĊĠĠĠĠĠĠĠ Ġrv Person Rank . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġs rf Person Rank . setOn Refresh Load More Listener ( object Ġ: ĠOn Refresh Load More Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonLoad More ( refresh Layout : ĠRefresh Layout ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm ViewModel . get More User Rank Info () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Layout . finish Load More () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Refresh ( refresh Layout : ĠRefresh Layout ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm ViewModel . getUser Rank Info () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Layout . finish Refresh () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġm ViewModel . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetUser Rank Info () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Rank . observe ( this @ Person Rank Activity , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscore Ġ= Ġ" ç§¯ åĪĨ :${ it . coin Count }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlevel Ġ= Ġ" çŃī çº§ :${ it . level }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrank Ġ= Ġ" æİĴ åĲį :${ it . rank }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Scores . text Ġ= Ġscore ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Level . text Ġ= Ġlevel ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Rank . text Ġ= Ġrank ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Rank Info . observe ( this @ Person Rank Activity , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . set List ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Data . observe ( this @ Person Rank Activity , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRefresh State . None Ġ-> Ġs rf Person Rank . finish Load More With No More Data () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRefresh State . Load Finish Ġ-> Ġs rf Person Rank . finish Load More () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġreturn @ Observer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }