package Ġcom . li any i . pa im ons notebook . ui . activity Ċ Ċ import Ġandroid . animation . Animator Set Ċ import Ġandroid . animation . Object Animator Ċ import Ġandroid . os . Bundle Ċ import Ġcom . li any i . pa im ons notebook . lib . base . Base Activity Ċ import Ġcom . li any i . pa im ons notebook . bean . g acha . G acha Log Bean Ċ import Ġcom . li any i . pa im ons notebook . bean . g acha . U IG F Excel Bean Ċ import Ġcom . li any i . pa im ons notebook . config . AppConfig Ċ import Ġcom . li any i . pa im ons notebook . databinding . Activity Loading G ach aW ish History Binding Ċ import Ġcom . li any i . pa im ons notebook . lib . information . Activity Response Code Ċ import Ġcom . li any i . pa im ons notebook . lib . information . G acha Type Ċ import Ġcom . li any i . pa im ons notebook . lib . information . Mi Ho Yo Api Ċ import Ġcom . li any i . pa im ons notebook . lib . listener . Animator Finished Ċ import Ġcom . li any i . pa im ons notebook . util .* Ċ import Ġkotlin . concurrent . thread Ċ Ċ class ĠLoading G ach aW ish History Activity Ġ: ĠBase Activity () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject { ĊĠĠĠĠĠĠĠ Ġvar Ġlog Url Ġ= Ġ"" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġlateinit Ġvar Ġbind : Activity Loading G ach aW ish History Binding ĊĠĠĠ Ġvar ĠisLoading Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbind Ġ= ĠActivity Loading G ach aW ish History Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( bind . root ) ĊĊĠĠĠĠĠĠĠ Ġinit View () ĊĠĠĠĠĠĠĠ Ġload G acha History () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Loading Animation () ĊĠĠĠĠĠĠĠ Ġset Content Margin ( bind . root ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload G acha History () Ġ{ ĊĠĠĠĠĠĠĠ Ġthread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġmutable ListOf < U IG F Excel Bean >() ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠG acha Type . g acha List . forEach Ġ{ Ġg acha Type -> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġpage Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġg acha Log : ĠG acha Log Bean ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġlast Id Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcontinue Read Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbind . g acha Name . text Ġ= ĠG acha Type . getName ByType ( g acha Type ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbind . page . text Ġ= Ġ"$ page " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= ĠMi Ho Yo Api . get G acha Log Url ( log Url , g acha Type , page , 6 , g acha Log ?. list ?. last ()?. id ? :" 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOk . get Sync ( url ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġg acha Log Ġ= ĠG SON . fromJson ( it . opt String (" data "), G acha Log Bean :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( last Id . isEmpty () && ! g acha Log !!. list . isNull OrEmpty ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Id Ġ= ĠP ai M ons Notebook Data Base . INSTANCE . getLast G acha History Id ( g acha Type . toString (), g acha Log !!. list . first (). uid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" last Id Ġ== Ġ$ last Id ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġg acha Log !!. list . forEach Ġ{ Ġbean -> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( bean ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġu ig f G acha Bean Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠU IG F Excel Bean ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġg acha _ type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem _ id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem _ type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlang , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrank _ type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG acha Type . get U IG F Type ( g acha _ type ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( u ig f G acha Bean . id != last Id ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Ġ+= Ġu ig f G acha Bean ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue Read Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// æ¯ı åĬłè½½ 1 0 é¡µ ä¼ ĳ æģ¯ 2 ~ 3 ç§Ĵ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( page % 1 0 == 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep (( 2 0 0 0 L .. 3 0 0 0 L ). random ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( AppConfig . LOAD _ G ACH A _ HISTORY _ INTERVAL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage ++ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} while ( g acha Log !!. list . size > 0 && continue Read ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( g acha Type ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG acha Type . PER MAN ENT -> Ġbind . permanent Ok . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG acha Type . CHARACTER _ ACTIVITY _ 0 1 , G acha Type . CHARACTER _ ACTIVITY _ 0 2 -> bind . character Ok . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG acha Type . NEW _ PLAY ERS -> bind . new Player Ok . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG acha Type . WE AP ON -> bind . weapon Ok . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( list . size > 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĨĻåħ¥ æķ°æį®åºĵ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠP ai M ons Notebook Data Base . INSTANCE . write G acha History For Excel ( list . first (). uid , list ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" åĬłè½½ å®ĮæĪĲ ". show Long () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Result ( Activity Response Code . OK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// è®¾ç½® åĬłè½½ åĬ¨çĶ» ĊĠĠĠ Ġprivate Ġfun Ġset Loading Animation () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġloading Width Ġ= ĠP ai M ons Note Book . context . resources . display Metrics . width Pixels Ġ- Ġ 1 0 8 . dp ĊĊĠĠĠĠĠĠĠ Ġval Ġanim Go Ġ= ĠObject Animator . of Float ( bind . loading . icon K lee ," translation X ", 1 0 f , loading Width ) ĊĠĠĠĠĠĠĠ Ġanim Go . duration Ġ= Ġ 1 5 0 0 L ĊĊĠĠĠĠĠĠĠ Ġval Ġanim Back Ġ= ĠObject Animator . of Float ( bind . loading . icon K lee ," translation X ", loading Width , 1 0 f ) ĊĠĠĠĠĠĠĠ Ġanim Back . duration Ġ= Ġ 1 5 0 0 L ĊĊĠĠĠĠĠĠĠ Ġval Ġrotate Back Ġ= Ġ ĠObject Animator . of Float ( bind . loading . icon K lee ," rotation Y ", 0 f , 1 8 0 f ) ĊĠĠĠĠĠĠĠ Ġrotate Back . duration Ġ= Ġ 5 0 0 L ĊĊĠĠĠĠĠĠĠ Ġval Ġrotate Go Ġ= Ġ ĠObject Animator . of Float ( bind . loading . icon K lee ," rotation Y ", 1 8 0 f , 0 f ) ĊĠĠĠĠĠĠĠ Ġrotate Go . duration Ġ= Ġ 5 0 0 L ĊĊĠĠĠĠĠĠĠ Ġval Ġanim Set Ġ= ĠAn imator Set () ĊĠĠĠĠĠĠĠ Ġanim Set . play ( anim Go ). before ( rotate Back ) ĊĠĠĠĠĠĠĠ Ġanim Set . play ( rotate Back ). before ( anim Back ) ĊĠĠĠĠĠĠĠ Ġanim Set . play ( anim Back ). before ( rotate Go ) ĊĠĠĠĠĠĠĠ Ġanim Set . start () ĊĊĠĠĠĠĠĠĠ Ġanim Set . addListener ( Animator Finished { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( isLoading ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanim Set . start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġ" è¯· èĢ Ĳ å¿ĥ çŃīå¾ħ åĬłè½½ å®ĮæĪĲ ~ ". show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ ĠisLoading Ġ= Ġfalse ĊĠĠĠ Ġ} Ċ Ċ }