package Ġcom . example . fragment . user . fragment Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġcom . example . fragment . library . base . utils . Activity Callback Ċ import Ġcom . example . fragment . library . base . utils . Activity Result Helper Ċ import Ġcom . example . fragment . library . base . utils . Cache Utils Ċ import Ġcom . example . fragment . library . common . bean . User Bean Ċ import Ġcom . example . fragment . library . common . constant . Keys Ċ import Ġcom . example . fragment . library . common . constant . Router Ċ import Ġcom . example . fragment . library . common . dialog . Standard Dialog Ċ import Ġcom . example . fragment . library . common . fragment . ViewModel Fragment Ċ import Ġcom . example . fragment . library . common . utils . Wan Helper Ċ import Ġcom . example . fragment . module . user . databinding . Fragment Setting Binding Ċ import Ġcom . example . fragment . user . model . User ViewModel Ċ Ċ class ĠSetting Fragment Ġ: ĠViewModel Fragment < Fragment Setting Binding , ĠUser ViewModel >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġset View Binding ( in flater : ĠLayoutInflater ): ĠFragment Setting Binding Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠFragment Setting Binding . inflate ( in flater ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġsetup View () ĊĠĠĠĠĠĠĠ Ġupdate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup View () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . black . setOnClickListener Ġ{ Ġbase Activity . on Back Pressed () Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . system Theme . setOn Checked ChangeListener Ġ{ Ġview , Ġis Checked Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġui Mode Ġ= Ġif Ġ( isChecked ) Ġ- 1 Ġelse Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Switch Button ( ui Mode ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠW an Helper . set UI Mode ( ui Mode ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbase Activity . init UI Mode () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ 2 0 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . dark Theme . setOn Checked ChangeListener Ġ{ Ġview , Ġis Checked Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġui Mode Ġ= Ġif Ġ( isChecked ) Ġ 2 Ġelse Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Switch Button ( ui Mode ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠW an Helper . set UI Mode ( ui Mode ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbase Activity . init UI Mode () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ 3 0 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . screen Record . setOn Checked ChangeListener Ġ{ Ġview , Ġis Checked Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbase Activity . show Tips (" 3 s åĲİ å¼Ģå§ĭ å½ķ åĪ¶ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Result Helper . request Screen Record ( base Activity , Ġobject Ġ: ĠActivity Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Result ( result Code : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠActivity . RESULT _ OK Ġ&& Ġdata Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . screen Record . isChecked Ġ= Ġbase Activity . start Record ( result Code , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbase Activity . show Tips (" æ²¡æľī å½ķ å±ı æĿĥéĻĲ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . screen Record . isChecked Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ 3 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . screen Record . isChecked Ġ= Ġ! base Activity . stop Record () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ 5 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . cache Size . text Ġ= ĠCache Utils . getTotal Cache Size ( base Activity ) ĊĠĠĠĠĠĠĠ Ġbinding . clear Cache . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStandard Dialog . newInstance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent (" ç¡®å®ļ è¦ģ æ¸ħ éĻ¤ ç¼ĵåŃĺ åĲĹ ï¼Ł ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setOn Dialog ClickListener ( object Ġ: ĠStandard Dialog . On Dialog ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Confirm ( dialog : ĠStandard Dialog ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCache Utils . clear All Cache ( base Activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . cache Size . text Ġ= ĠCache Utils . getTotal Cache Size ( base Activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Cancel ( dialog : ĠStandard Dialog ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show ( child FragmentManager ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . update . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStandard Dialog . newInstance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle (" æĦŁ è°¢ ä½¿çĶ¨ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent (" åĸľ æ¬¢ çļĦè¯Ŀ ï¼Į è¯· ç»Ļ é¢ Ĺ âĻ ¥ åĵĪ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setOn Dialog ClickListener ( object Ġ: ĠStandard Dialog . On Dialog ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Confirm ( dialog : ĠStandard Dialog ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargs Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġargs . putString ( Keys . URL , Ġ" https :// github . com / m ia owm ia ow / Fragment Project ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbase Activity . navigation ( Router . WEB , Ġargs ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Cancel ( dialog : ĠStandard Dialog ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show ( child FragmentManager ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . about . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargs Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . putString ( Keys . URL , Ġ" https :// wan android . com ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbase Activity . navigation ( Router . WEB , Ġargs ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . privacy Policy . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargs Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . putString ( Keys . URL , Ġ" file :/// android _ asset / privacy _ policy . html ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbase Activity . navigation ( Router . WEB , Ġargs ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . feedback . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargs Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . putString ( Keys . URL , Ġ" https :// github . com / m ia owm ia ow / Fragment Project / issues ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbase Activity . navigation ( Router . WEB , Ġargs ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . logout . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStandard Dialog . newInstance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent (" ç¡®å®ļ éĢĢåĩº çĻ»å½ķ åĲĹ ï¼Ł ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setOn Dialog ClickListener ( object Ġ: ĠStandard Dialog . On Dialog ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Confirm ( dialog : ĠStandard Dialog ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . logout () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Cancel ( dialog : ĠStandard Dialog ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show ( child FragmentManager ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate () Ġ{ ĊĠĠĠĠĠĠĠ ĠW an Helper . getUser (). observe ( view Lifecycle Owner , Ġ{ Ġuser Bean Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . logout . visibility Ġ= Ġif Ġ( user Bean . id . isNotBlank ()) ĠView . VISIBLE Ġelse ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ ĠW an Helper . get UI Mode (). observe ( view Lifecycle Owner , Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Switch Button ( result ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ ĠviewModel . logout Result . observe ( view Lifecycle Owner , Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result . errorCode Ġ== Ġ" 0 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠW an Helper . setUser ( User Bean ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbase Activity . on Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result . error Msg . isNotBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbase Activity . show Tips ( result . error Msg ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Switch Button ( ui Mode : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( ui Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . system Theme . isChecked Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . system Theme . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . dark Theme . isChecked Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . dark Theme . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . system Theme . isChecked Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . system Theme . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . dark Theme . isChecked Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . dark Theme . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . system Theme . isChecked Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . system Theme . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . dark Theme . isChecked Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . dark Theme . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }