package Ġcom . yu hang . no vel . p ir ate . ui . user . view model Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . widget . EditText Ċ import Ġcom . t ams ire e . rx kit . Rx Reg Tool Ċ import Ġcom . yu hang . no vel . p ir ate . base . Base ViewModel Ċ import Ġcom . yu hang . no vel . p ir ate . extension . nice Tip Top Ċ import Ġcom . yu hang . no vel . p ir ate . repository . network . data . p ir ate . result . Status Result Ċ import Ġcom . yu hang . no vel . p ir ate . repository . network . data . p ir ate . result . User Result Ċ Ċ class ĠLogin ViewModel Ġ: ĠBase ViewModel () Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ çĻ»å½ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġlogin ( username : ĠString , Ġpassword : ĠString ): ĠUser Result Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm Data Repository . login ( username , Ġpassword ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæ£Ģ æµĭ æīĭæľº åıĤæķ° ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcheck Params ( username Et : ĠEditText , Ġpassword Et : ĠEditText ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġusername Ġ= Ġusername Et . text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġpassword Et . text . toString () ĊĠĠĠĠĠĠĠ Ġif Ġ( username . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Activity ?. nice Tip Top ( username Et , Ġ" çĶ¨æĪ·åĲį ä¸įèĥ½ä¸ºç©º ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! Rx Reg Tool . is Mobile Simple ( username )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Activity ?. nice Tip Top ( username Et , Ġ" æīĭæľº åı· ä¸į æŃ£ç¡® ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( password . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Activity ?. nice Tip Top ( password Et , Ġ" å¯Ĩçłģ ä¸įèĥ½ä¸ºç©º ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( password . length Ġ< Ġ 6 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Activity ?. nice Tip Top ( password Et , Ġ" å¯Ĩçłģ å¿ħé¡» 6 ä½į åıĬ ä»¥ä¸Ĭ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åĲĮæŃ¥ æľ¬åľ° æĶ¶ èĹı æķ°æį® åĪ° æľįåĬ¡åĻ¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress Lint (" Check Result ") ĊĠĠĠ Ġsuspend Ġfun Ġsyn Collection (): ĠStatus Result Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// æľ¬åľ° æŁ¥æī¾ æĶ¶ èĹı åĪĹè¡¨ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġm Data Repository . query Book Info Collection All (). filter NotNull (). map Ġ{ Ġit Ġ}. toList () ĊĠĠĠĠĠĠĠ Ġif Ġ( list . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠStatus Result ( code Ġ= Ġ- 1 , Ġmsg Ġ= Ġ" æľ¬åľ° æĶ¶ èĹı æķ°æį® ä¸ºç©º ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġlist . forEach Ġ{ Ġbook Info Entity Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// æľĢæĸ° è®°å½ķ ä¸Ĭä¼ł åĪ° æľįåĬ¡åĻ¨ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlast Open Chapter Ġ= Ġm Data Repository . query Last Open Chapter ( book Info Entity . book id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġreturn ĠStatus Result ( code Ġ= Ġ- 1 , Ġmsg Ġ= Ġ" æľ¬åľ° æĶ¶ èĹı æķ°æį® ä¸ºç©º ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= Ġm Data Repository . update Read History ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbook Name Ġ= Ġbook Info Entity . book Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbook id Ġ= Ġbook Info Entity . book id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchapter id Ġ= Ġlast Open Chapter . chapter Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchapter Name Ġ= Ġlast Open Chapter . chapter Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauthor Ġ= Ġbook Info Entity . author , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcover Ġ= Ġbook Info Entity . cover , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġbook Info Entity . description , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres ou ce Type Ġ= Ġm Data Repository . query Collection ( book Info Entity . book id )?. res ou ce !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( book Info Entity . book Name . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠStatus Result ( code Ġ= Ġ- 1 , Ġmsg Ġ= Ġ" æľ¬åľ° æĶ¶ èĹı æķ°æį® ä¸ºç©º ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// æĶ¶ èĹı åĪĹè¡¨ ä¸Ĭä¼ł æľįåĬ¡åĻ¨ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Data Repository . add Collection ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbook Name Ġ= Ġbook Info Entity . book Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbook id Ġ= Ġbook Info Entity . book id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauthor Ġ= Ġbook Info Entity . author , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcover Ġ= Ġbook Info Entity . cover , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġbook Info Entity . description , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbook Status Ġ= Ġbook Info Entity . book Status , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclassify Name Ġ= Ġbook Info Entity . classify Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres ou ce Type Ġ= Ġm Data Repository . query Collection ( book Info Entity . book id )?. res ou ce !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠStatus Result ( 2 0 0 ," æĪĲåĬŁ ") ĊĊĠĠĠ Ġ} Ċ Ċ } ĊĊ