package Ġcom . feb ers . uest c _ bbs . module . setting Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . widget . CheckBox Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . appcompat . widget . Toolbar Ċ import Ġcom . feb ers . uest c _ bbs . R Ċ import Ġcom . feb ers . uest c _ bbs . base .* Ċ import Ġcom . feb ers . uest c _ bbs . entity . Setting Item Bean Ċ import Ġcom . feb ers . uest c _ bbs . io . CacheManager Ċ import Ġcom . feb ers . uest c _ bbs . module . dialog . Dialog Ċ import Ġcom . feb ers . uest c _ bbs . module . service . Heart Msg Service Ċ import Ġcom . feb ers . uest c _ bbs . utils .* Ċ import Ġcom . feb ers . uest c _ bbs . view . adapter . Setting Adapter Ċ import Ġkotlinx . android . synt hetic . main . activity _ setting .* Ċ import Ġkotlinx . android . synt hetic . main . layout _ toolbar _ common .* Ċ import Ġme . yo keyword . fragment ation . Swipe Back Layout Ċ Ċ class ĠSetting Activity Ġ: ĠBase Activity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsetting Adapter 1 : ĠSetting Adapter ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsetting Adapter 2 : ĠSetting Adapter ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsetting Adapter 3 : ĠSetting Adapter ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcache Item : ĠSetting Item Bean ĊĊĠĠĠ Ġprivate Ġvar Ġicon Choose View : ĠIcon Fragment ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġhome Layout Value Ġby ĠPreference Utils ( ctx , ĠHOME _ VIEW _ STYLE , ĠHOME _ VIEW _ STYLE _ BOTTOM ) ĊĠĠĠ Ġprivate Ġvar Ġswipe Back Range Ġby ĠPreference Utils ( ctx , ĠSP _ SW I PE _ BACK _ RANGE _ VALUE , ĠS WI PE _ BACK _ MED ) ĊĠĠĠ Ġprivate Ġvar Ġhint Way Ġby ĠPreference Utils ( ctx , ĠH INT _ WAY , ĠH INT _ BY _ TO AST ) ĊĠĠĠ Ġprivate Ġvar Ġloop Receive Msg Ġby ĠPreference Utils ( ctx , ĠLOOP _ RECEIVE _ MSG , Ġtrue ) ĊĠĠĠ Ġprivate Ġvar Ġenable Splash Ġby ĠPreference Utils ( ctx , ĠSP _ SPL ASH _ ENABLE , Ġtrue ) ĊĠĠĠ Ġprivate Ġvar Ġrender Content Value Ġby ĠPreference Utils ( ctx , ĠSP _ RENDER _ CONTENT _ MODE , ĠR ENDER _ MODE _ TRANSFER ) ĊĊĠĠĠ Ġprivate Ġvar Ġhome Layout Dialog : ĠAlertDialog ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġswipe Back Dialog : ĠAlertDialog ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġrender Content Dialog : ĠAlertDialog ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġset View (): ĠInt Ġ= ĠR . layout . activity _ setting ĊĠĠĠ Ġoverride Ġfun Ġset Toolbar (): ĠToolbar ? Ġ= Ġtoolbar _ common ĊĠĠĠ Ġoverride Ġfun ĠsetTitle (): ĠString ? Ġ= ĠgetString ( R . string . setting ) ĊĠĠĠ Ġoverride Ġfun Ġinit View () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġafter Created () Ġ{ ĊĠĠĠĠĠĠĠ Ġtext _ view _ setting _ 1 . setTextColor ( color Accent ()) ĊĠĠĠĠĠĠĠ Ġtext _ view _ setting _ 2 . setTextColor ( color Accent ()) ĊĠĠĠĠĠĠĠ Ġtext _ view _ setting _ 3 . setTextColor ( color Accent ()) ĊĊĠĠĠĠĠĠĠ Ġsetting Adapter 1 Ġ= ĠSetting Adapter ( ctx , Ġinit Setting Data 1 ()). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On ItemClickListener Ġ{ ĠviewHolder , Ġsetting Item Bean , Ġi Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( i ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( home Layout Dialog Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġchecked Ġ= Ġhome Layout Value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhome Layout Dialog Ġ= ĠDialog . build ( ctx ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Choice Items ( getString ( R . string . home _ layout ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( getString ( R . string . home _ layout _ bottom ), ĠgetString ( R . string . home _ layout _ drawer )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescriptions Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchecked Ġ= Ġhome Layout Value , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Checked Ġ= Ġ{ Ġitem : ĠString , Ġposition : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchecked Ġ= Ġposition ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpositive Button (" ç¡®å®ļ ", Ġaction Ġ= Ġ{ Ġdialog : ĠAlertDialog ? Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog ?. dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhome Layout Value Ġ= Ġchecked ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Hint (" éĩį åĲ¯ åºĶçĶ¨ çĶŁ æķĪ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhome Layout Dialog !!. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠcheckBox Ġ= ĠviewHolder . getView < CheckBox >( R . id . check _ box _ item _ setting ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcheckBox . isChecked Ġ= Ġ! checkBox . isChecked ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenable Splash Ġ= Ġ! enable Splash ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// æĽ´æĶ¹ æ»ĳ åĬ¨ èĮĥåĽ´ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( swipe Back Dialog Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġchecked Ġ= Ġswipe Back Range ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġswipe Back Dialog Ġ= ĠDialog . build ( ctx ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Choice Items (" è®¾ç½® æ»ĳ åĬ¨ èĮĥåĽ´ ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" ç¦ģ æŃ¢ æ»ĳ åĬ¨ ", Ġ" å±ı å¹ķ è¾¹ ç¼ ĺ ", Ġ" å±ı å¹ķ ä¸ŃéĹ´ ", Ġ" åħ¨ å±ı å¹ķ "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescriptions Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchecked Ġ= Ġswipe Back Range , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Checked Ġ= Ġ{ Ġitem : ĠString , Ġposition : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchecked Ġ= Ġposition ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpositive Button (" ç¡®å®ļ ", Ġaction Ġ= Ġ{ Ġdialog : ĠAlertDialog ? Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog ?. dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( checked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Swipe Back Enable ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġswipe Back Range Ġ= ĠS WI PE _ BACK _ FOR BID DEN ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Swipe Back Enable ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġswipe Back Range Ġ= ĠS WI PE _ BACK _ MIN ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Edge Level ( Swipe Back Layout . Edge Level . MIN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Swipe Back Enable ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġswipe Back Range Ġ= ĠS WI PE _ BACK _ MED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Edge Level ( Swipe Back Layout . Edge Level . MED ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Swipe Back Enable ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġswipe Back Range Ġ= ĠS WI PE _ BACK _ MAX ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Edge Level ( Swipe Back Layout . Edge Level . MAX ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġswipe Back Dialog !!. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( icon Choose View Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Choose View Ġ= ĠIcon Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Choose View ?. show ( support FragmentManager , Ġ" icon ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġre cycler view _ setting _ option _ 1 . adapter Ġ= Ġsetting Adapter 1 ĊĊĠĠĠĠĠĠĠ Ġsetting Adapter 2 Ġ= ĠSetting Adapter ( ctx , Ġinit Setting Data 2 ()). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On ItemClickListener Ġ{ ĠviewHolder , Ġsetting Item Bean , Ġi Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( i ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( render Content Dialog Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġchecked Ġ= Ġrender Content Value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrender Content Dialog Ġ= ĠDialog . build ( ctx ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Choice Items (" æ¸²æŁĵ æľºåĪ¶ ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" WebView åĬłè½½ æ¨¡å¼ı ", Ġ" Layout åĬ¨æĢģ æ·»åĬł æ¨¡å¼ı "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" åĬłè½½ åĽ¾çīĩ åĴĮ éŁ³ é¢ĳ èµĦæºĲ æĽ´ èĩª çĦ¶ ï¼Į åľ¨ ä½İ çīĪæľ¬ æľº åŀĭ ä¸Ĭ åı¯èĥ½ä¼ļ åĩºçİ° éĹ®é¢ĺ ", Ġ" åĬłè½½ éķ¿ åĽ¾ ãĢģ å¤§ åĽ¾ æķĪæŀľ ä¸ĢèĪ¬ ï¼Į åı¯èĥ½ä¼ļ éĢł æĪĲ åį¡ é¡ ¿ "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchecked Ġ= Ġrender Content Value , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Checked Ġ= Ġ{ Ġitem : ĠString , Ġposition : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchecked Ġ= Ġposition ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpositive Button (" ç¡®å®ļ ", Ġaction Ġ= Ġ{ Ġdialog : ĠAlertDialog ? Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog ?. dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrender Content Value Ġ= Ġchecked ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrender Content Dialog !!. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( ctx , ĠPost Item Setting Activity :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Hint Method Change () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġre cycler view _ setting _ option _ 2 . adapter Ġ= Ġsetting Adapter 2 ĊĊĠĠĠĠĠĠĠ Ġsetting Adapter 3 Ġ= ĠSetting Adapter ( ctx , Ġinit Setting Data 3 ()). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On ItemClickListener Ġ{ ĠviewHolder , Ġsetting Item Bean , Ġi Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( i ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠcheckBox Ġ= ĠviewHolder . getView < CheckBox >( R . id . check _ box _ item _ setting ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcheckBox . isChecked Ġ= Ġ! checkBox . isChecked ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Receive Msg Change (! checkBox . isChecked ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ Ġclear Cache () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġre cycler view _ setting _ option _ 3 . adapter Ġ= Ġsetting Adapter 3 ĊĊĠĠĠĠĠĠĠ Ġget Cache () ĊĠĠĠĠĠĠĠ Ġbtn _ restart _ app . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRestart Utils . restart App 2 () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbtn _ restart _ app . setTextColor ( color Accent ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Setting Data 1 (): ĠList < Setting Item Bean > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlayout Item Ġ= ĠSetting Item Bean ( getString ( R . string . home _ layout ), ĠgetString ( R . string . choose _ home _ layout )) ĊĠĠĠĠĠĠĠ Ġval Ġitem Splash Ġ= ĠSetting Item Bean (" éĹ ª å±ı å¼Ģ åħ³ ", Ġ" å¼ĢåĲ¯ åºĶçĶ¨ æĹ¶ æīĵå¼Ģ éĹ ª å±ı ", Ġshow Check Ġ= Ġtrue , Ġchecked Ġ= Ġenable Splash ) ĊĠĠĠĠĠĠĠ Ġval Ġitem Swipe Ġ= ĠSetting Item Bean (" æ»ĳ åĬ¨ èĮĥåĽ´ ", Ġ" éĢīæĭ© æ»ĳ åĬ¨ è¿ĶåĽŀ çļĦ è§¦åıĳ èĮĥåĽ´ ") ĊĠĠĠĠĠĠĠ Ġval Ġitem Icon Ġ= ĠSetting Item Bean ( getString ( R . string . icon ), ĠgetString ( R . string . icon _ style _ in _ launcher )) ĊĠĠĠĠĠĠĠ Ġreturn Ġarray ListOf ( layout Item , Ġitem Splash , Ġitem Swipe , Ġitem Icon ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġfun Ġinit Setting Data 2 (): ĠList < Setting Item Bean > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Content Mode Ġ= ĠSetting Item Bean (" æ¸²æŁĵ æľºåĪ¶ ", Ġ" éĢīæĭ© å¸ ĸ åŃĲ è¯¦æĥħ çķĮ éĿ¢çļĦ æ¸²æŁĵ æľºåĪ¶ ") ĊĠĠĠĠĠĠĠ Ġval Ġitem Post Item Ġ= ĠSetting Item Bean (" åĪĹè¡¨ æł·å¼ı ", Ġ" èĩªå®ļä¹ī å¸ ĸ åŃĲ åĪĹè¡¨ çļĦ æĺ¾ç¤º æł·å¼ı ") ĊĠĠĠĠĠĠĠ Ġval Ġitem Hint Ġ= ĠSetting Item Bean ( getString ( R . string . hint ), ĠgetString ( R . string . set _ hint _ style )) ĊĠĠĠĠĠĠĠ Ġreturn Ġarray ListOf ( item Content Mode , Ġitem Post Item , Ġitem Hint ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Setting Data 3 (): ĠList < Setting Item Bean > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Sil ence Ġ= ĠSetting Item Bean ( getString ( R . string . no _ dist ur bing ), ĠgetString ( R . string . no _ dist ur bing _ explain ), Ġshow Check Ġ= Ġtrue , Ġchecked Ġ= Ġ! loop Receive Msg ) ĊĠĠĠĠĠĠĠ Ġcache Item Ġ= ĠSetting Item Bean ( getString ( R . string . clear _ cache ), Ġ"... ") ĊĠĠĠĠĠĠĠ Ġreturn Ġarray ListOf ( item Sil ence , Ġcache Item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Hint Method Change () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( hint Way Ġ== ĠH INT _ BY _ TO AST ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhint Way Ġ= ĠH INT _ BY _ SN ACK _ BAR ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHint Utils . show ( ctx , ĠgetString ( R . string . hint _ way _ changed )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( hint Way Ġ== ĠH INT _ BY _ SN ACK _ BAR ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhint Way Ġ= ĠH INT _ BY _ TO AST ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHint Utils . show ( getString ( R . string . hint _ way _ changed )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Receive Msg Change ( is Loop : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġloop Receive Msg Ġ= Ġis Loop ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( ctx , ĠHeart Msg Service :: class . java ) ĊĠĠĠĠĠĠĠ Ġif Ġ( loop Receive Msg ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Service ( intent ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstop Service ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Cache () Ġ{ ĊĠĠĠĠĠĠĠ Ġlog d Ġ{ Ġ" åį³ å°Ĩ èİ·åıĸ ç¼ĵåŃĺ " Ġ} ĊĠĠĠĠĠĠĠ ĠThread Mgr . io Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache Item . tip Ġ= ĠCache Manager . Cache Size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog d Ġ{ Ġ" èİ·åıĸ ç¼ĵåŃĺ å¤§å°ı æĪĲåĬŁ ï¼ļ ${ cache Item . tip }" Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠThread Mgr . ui ( ctx ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetting Adapter 3 . notify Item Changed ( setting Adapter 3 . data Count - 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclear Cache () Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Hint ( getString ( R . string . clean ing )) ĊĠĠĠĠĠĠĠ ĠCache Manager . clear Cache () ĊĠĠĠĠĠĠĠ Ġget Cache () ĊĠĠĠ Ġ} Ċ Ċ }