package Ġcom . glo dan if . bluetooth chat . ui . activity Ċ Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . Relative Layout Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . annotation . Color Int Ċ import Ġandroidx . appcompat . app . AppCompat Delegate .* Ċ import Ġcom . glo dan if . bluetooth chat . R Ċ import Ġcom . glo dan if . bluetooth chat . ui . presenter . Settings Presenter Ċ import Ġcom . glo dan if . bluetooth chat . ui . util . Theme Holder Ċ import Ġcom . glo dan if . bluetooth chat . ui . view . Settings View Ċ import Ġcom . glo dan if . bluetooth chat . ui . widget . Switch Preference Ċ import Ġcom . glo dan if . bluetooth chat . utils . bind Ċ import Ġme . pri y esh . chrom a . Chrom a Dialog Ċ import Ġme . pri y esh . chrom a . Color Mode Ċ import Ġme . pri y esh . chrom a . Color Select Listener Ċ import Ġorg . k oin . android . ext . android . inject Ċ import Ġorg . k oin . core . parameter . parameters Of Ċ Ċ class ĠSettings Activity Ġ: ĠS keleton Activity (), ĠSettings View Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġpresenter : ĠSettings Presenter Ġby Ġinject Ġ{ ĊĠĠĠĠĠĠĠ Ġparameters Of ( this , Ġapplication Ġas ĠTheme Holder ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġcolor Preview : ĠView Ġby Ġbind ( R . id . v _ color ) ĊĠĠĠ Ġprivate Ġval Ġnotifications Header : ĠTextView Ġby Ġbind ( R . id . tv _ notifications _ header ) ĊĠĠĠ Ġprivate Ġval Ġnight Mode Subtitle : ĠTextView Ġby Ġbind ( R . id . tv _ night _ mode ) ĊĠĠĠ Ġprivate Ġval Ġsound Preference : ĠSwitch Preference Ġby Ġbind ( R . id . sp _ sound ) ĊĠĠĠ Ġprivate Ġval Ġclassification Preference : ĠSwitch Preference Ġby Ġbind ( R . id . sp _ class _ filter ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ settings , ĠActivity Type . CHILD _ ACTIVITY ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotifications Header . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsound Preference . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsound Preference . listener Ġ= Ġ{ Ġpresenter . on New Sound Preference ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclassification Preference . listener Ġ= Ġ{ Ġpresenter . on New Classification Preference ( it ) Ġ} ĊĊĠĠĠĠĠĠĠ ĠfindViewById < Relative Layout >( R . id . rl _ chat _ bg _ color _ button ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . prepare Color Picker () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠfindViewById < LinearLayout >( R . id . ll _ night _ mode _ button ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . prepare Night Mode Picker () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġpresenter . load Preferences () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdisplay Notification Setting ( sound : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsound Preference . setChecked ( sound ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdisplay Bg Color Settings (@ Color Int Ġcolor : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcolor Preview . set BackgroundColor ( color ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdisplay Night Mode Settings (@ Night Mode Ġnight Mode : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmode Label Text Ġ= Ġwhen Ġ( night Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMODE _ N IGHT _ YES Ġ-> ĠR . string . settings __ night _ mode _ on ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMODE _ N IGHT _ NO Ġ-> ĠR . string . settings __ night _ mode _ off ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMODE _ N IGHT _ FOLLOW _ SYSTEM Ġ-> ĠR . string . settings __ night _ mode _ system ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠR . string . settings __ night _ mode _ off ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnight Mode Subtitle . setText ( mode Label Text ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdisplay Discovery Setting ( classification : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġclassification Preference . setChecked ( classification ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdisplay Color Picker (@ Color Int Ġcolor : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠ ĠCh rom a Dialog . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. initial Color ( color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. color Mode ( Color Mode . RGB ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Color Selected ( color Select Listener ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show ( support FragmentManager , Ġ" Chrom a Dialog ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdisplay Night Mode Picker ( night Mode : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġitems Ġ= ĠarrayOf < CharSequence >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . settings __ night _ mode _ on ), ĠgetString ( R . string . settings __ night _ mode _ off ), ĠgetString ( R . string . settings __ night _ mode _ system ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġmodes Ġ= ĠarrayOf ( MODE _ N IGHT _ YES , ĠMODE _ N IGHT _ NO , ĠMODE _ N IGHT _ FOLLOW _ SYSTEM ) ĊĊĠĠĠĠĠĠ ĠAlertDialog . Builder ( this ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Single Choice Items ( items , Ġmodes . indexOf ( night Mode )) Ġ{ Ġdialog , Ġwhich Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . on New Night Mode Preference ( modes [ which ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Negative Button ( R . string . general __ cancel , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetTitle ( R . string . settings __ night _ mode ) ĊĠĠĠĠĠĠĠ Ġ}. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġcolor Select Listener Ġ= Ġobject Ġ: ĠColor Select Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Color Selected ( color : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . on New Color Pick ed ( color ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( presenter . is Night Mode Changed ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCon versations Activity . start ( this , Ġclear Top Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġstart ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( Intent ( context , ĠSettings Activity :: class . java )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ