package Ġcom . d ht . interest . login Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . util . Log Ċ import Ġandroidx . annotation . NonNull Ċ import Ġandroidx . lifecycle . Android ViewModel Ċ import Ġcom . d ht . base lib . util . file . FileManager . Companion . instance Ċ import Ġcom . d ht . base lib . util . file . File Util Ċ // import Ġcom . d ht . base lib . util . on Service Failure Ċ import Ġcom . d ht . base lib . util . toast Ċ import Ġcom . d ht . base lib . util . toast Custom Time Ċ import Ġcom . d ht . interest . common . api . Login Api Ċ import Ġcom . d ht . network . BaseModel Ċ import Ġcom . d ht . network . Network Callback Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . Observer Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . dis pos ables . Disposable Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġjava . io . File OutputStream Ċ import Ġjava . io . IOException Ċ Ċ class ĠLogin ViewModel (@ NonNull Ġ Ġapplication : ĠApplication ) Ġ: ĊĠĠĠ ĠAndroid ViewModel ( application ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġlogin Api : ĠLogin Api Ġ= ĠLogin Api () ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ çĻ»å½ķ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġname ĠĠĠĠĠĠĠĠĠ ĠçĶ¨æĪ· ĊĠĠĠĠ Ġ* Ġ@ param Ġpassword ĠĠĠĠĠ Ġ å¯Ĩçłģ ĊĠĠĠĠ Ġ* Ġ@ param Ġlogin CallBack Ġ çĻ»å½ķ åĽŀè°ĥ æİ¥åı£ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġlog on ( ĊĠĠĠĠĠĠĠ Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġpassword : ĠString , ĊĠĠĠĠĠĠĠ Ġlogin CallBack : ĠNetwork Callback < BaseModel < String >> ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlogin Api . log on ( name , Ġpassword , Ġlogin CallBack ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æ³¨åĨĮ è´¦åı· ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġname ĠĠĠĠĠĠĠĠ ĠçĶ¨æĪ· åĲį ĊĠĠĠĠ Ġ* Ġ@ param Ġpassword ĠĠĠĠ Ġ å¯Ĩçłģ ĊĠĠĠĠ Ġ* Ġ@ param Ġregister Time Ġ æ³¨åĨĮ æĹ¶éĹ´ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġregister ( ĊĠĠĠĠĠĠĠ Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġpassword : ĠString , ĊĠĠĠĠĠĠĠ Ġregister Time : ĠString ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlogin Api . register ( name , Ġpassword , Ġregister Time , Ġregister CallBack ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġregister CallBack : ĠNetwork Callback < BaseModel < String >> Ġ= ĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠNetwork Callback < BaseModel < String >> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon ServiceException () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication . application Context . toast Custom Time (" ç½ĳç»ľ è¶ħæĹ¶ ", Ġ 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Service Failure () Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication . application Context . on Service Failure () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Session Timeout () Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication . application Context . on Session Timeout () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride ĠĠ Ġfun ĠonChange Data ( data : ĠBase Model < String > ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication . application Context . toast ( Ġdata ?. msg ? :" ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinit Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġgenerate Dim ens File (" dim ens - 3 2 0 x 4 8 0 px . xml ", Ġ 2 . 0 , Ġ 1 Ġ/ Ġ 2 . toDouble ()) ĊĠĠĠĠĠĠĠ Ġgenerate Dim ens File (" dim ens - 4 8 0 x 8 0 0 px . xml ", Ġ 2 . 0 , Ġ 0 . 8 8 ) ĊĠĠĠĠĠĠĠ Ġgenerate Dim ens File (" dim ens - 1 2 8 0 x 7 2 0 px . xml ", Ġ 2 . 0 , Ġ 1 . 0 ) ĊĠĠĠĠĠĠĠ Ġgenerate Dim ens File (" dim ens - 1 9 2 0 x 1 0 8 0 0 px . xml ", Ġ 2 . 0 , Ġ 1 . 5 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ äº§çĶŁ dim ens æĸĩä»¶ ï¼Ī åĮħåĲ« dp ï¼Ī 1 ~ 5 0 0 ï¼ī ä¸İ sp ï¼Ī 1 ~ 1 0 0 ï¼ī ï¼ī ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param ĠfileName Ġæĸĩä»¶ åĲį ĊĠĠĠĠ Ġ* Ġ@ param Ġstandard Ġä»¥ ï¼Ī 1 2 8 0 x 7 2 0 ä¸º åŁº åĩĨ Ġ 1 dp Ġ= 2 px ĊĠĠĠĠ Ġ* Ġ@ param Ġmultiple Ġ è½¬æį¢ åĢ į æķ° ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġgenerate Dim ens File ( ĊĠĠĠĠĠĠĠ ĠfileName : ĠString , ĊĠĠĠĠĠĠĠ Ġstandard : ĠDouble , ĊĠĠĠĠĠĠĠ Ġmultiple : ĠDouble ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠObservable . create < String > Ġ{ Ġemitter Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpath Ġ= ĠFile Util . music Dir Ġ+ ĠfileName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append (" <? xml Ġversion =\" 1 . 0 \" Ġencoding =\" utf - 8 \" ?> "). append ("\ n ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append ("< resources > "). append ("\ n ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 9 9 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append ("< dim en Ġname =\"" ). append (" px _ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( i ). append ("\ "> ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( String . format ("% . 1 f ", Ġi Ġ/ Ġstandard Ġ* Ġmultiple )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append (" dp </ dim en >\ n ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 1 9 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append ("< dim en Ġname =\"" ). append (" sp _ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( i ). append ("\ "> ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( String . format ("% . 1 f ", Ġi Ġ/ Ġstandard Ġ* Ġmultiple )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append (" sp </ dim en >\ n ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append ("</ resources > "). append ("\ n ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġfile OutputStream : ĠFileOutputStream ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile OutputStream Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFileOutputStream ( instance !!. createNew File ( path )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile OutputStream . write ( builder . toString (). toByteArray ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile OutputStream . flush () Ġ// å°Ĩ åĨħå®¹ ä¸Ģæ¬¡ æĢ§ åĨĻåħ¥ æĸĩä»¶ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemitter . onNext (" åĨĻåħ¥ æĪĲåĬŁ $ path ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" run () Ġreturned : Ġ$ e ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemitter . onNext (" åĨĻåħ¥ å¤±è´¥ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile OutputStream ?. close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( object Ġ: ĠObserver < String > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Subscribe ( d : ĠDis posable ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Next ( s : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" onNext : Ġs Ġ= Ġ$ s ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠThrowable ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonComplete () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" Login ViewModel " ĊĠĠĠ Ġ} Ċ Ċ }