package Ġlink . stand en . m ichael . slide show Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . MenuItem Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . preference . List Preference Ċ import Ġandroidx . preference . Preference Ċ import Ġandroidx . preference . Preference Fragment Compat Ċ import Ġandroidx . preference . Switch Preference Ċ Ċ /** Ċ Ġ* ĠA Ġ[ Settings Activity ] Ġthat Ġpresents Ġa Ġset Ġof Ġapplication Ġsettings . ĠOn Ċ Ġ* Ġhand set Ġdevices , Ġsettings Ġare Ġpresented Ġas Ġa Ġsingle Ġlist . ĠOn Ġtable ts , Ċ Ġ* Ġsettings Ġare Ġsplit Ġby Ġcategory , Ġwith Ġcategory Ġheaders Ġshown Ġto Ġthe Ġleft Ġof Ċ Ġ* Ġthe Ġlist Ġof Ġsettings . Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠSee Ġ[ Ċ Ġ* ĠAndroid ĠDesign : ĠSettings ]( http :// developer . android . com / design / patterns / settings . html ) Ġfor Ġdesign Ġguidelines Ġand Ġthe Ġ[ Settings Ċ Ġ* ĠAPI ĠGuide ]( http :// developer . android . com / guide / topics / ui / settings . html ) Ġfor Ġmore Ġinformation Ġon Ġdeveloping Ġa ĠSettings ĠUI . Ċ Ġ*/ Ċ Ċ class ĠSettings Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ settings ) ĊĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( findViewById ( R . id . toolbar )) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. set Display Home As Up Enabled ( true ) ĊĊĠĠĠĠĠĠĠ Ġsupport FragmentManager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( R . id . frame _ fragment , ĠSlide show Preference Fragment ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( item . itemId Ġ== Ġandroid . R . id . home ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġfragment Ġshows Ġgeneral Ġpreferences Ġonly . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠSlide show Preference Fragment Ġ: ĠPreference Fragment Compat () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate Preferences ( savedInstanceState : ĠBundle ?, Ġroot Key : ĠString ?) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Preferences From Resource ( R . xml . preferences ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreverse Order Pref Ġ= Ġfind Preference < Switch Preference >(" reverse _ order ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrandom Order Pref Ġ= Ġfind Preference < Switch Preference >(" random _ order ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠEn abling Ġreverse Ġdisables Ġrandom ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreverse Order Pref ?. on Preference ChangeListener Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPreference . On Preference ChangeListener Ġ{ Ġ_, ĠnewValue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( java . lang . Boolean . TRUE Ġ== ĠnewValue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrandom Order Pref ?. isChecked Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠEn abling Ġrandom Ġdisables Ġreverse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrandom Order Pref ?. on Preference ChangeListener Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPreference . On Preference ChangeListener Ġ{ Ġ_, ĠnewValue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( java . lang . Boolean . TRUE Ġ== ĠnewValue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreverse Order Pref ?. isChecked Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġremember Location Pref Ġ= Ġfind Preference < Switch Preference >(" remember _ location ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġauto Start Pref Ġ= Ġfind Preference < Switch Preference >(" auto _ start ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDis abling Ġremember Ġlocation Ġdisables Ġauto Ġstart ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremember Location Pref ?. on Preference ChangeListener Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPreference . On Preference ChangeListener Ġ{ Ġ_, ĠnewValue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( java . lang . Boolean . FALSE Ġ== ĠnewValue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauto Start Pref ?. isChecked Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠBind Ġthe Ġsummar ies Ġof ĠList ĠPreferences ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠonComplete Pref Ġ= Ġfind Preference < List Preference >(" action _ on _ complete ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonComplete Pref ?. on Preference ChangeListener Ġ= Ġlist Summary Listener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Summary Listener . on Preference Change ( onComplete Pref , ĠonComplete Pref ?. value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġitem . itemId ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( id Ġ== Ġandroid . R . id . home ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (). on Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠA Ġpreference Ġvalue Ġchange Ġlistener Ġthat Ġupdates Ġthe Ġpreference 's Ġsummary ĊĠĠĠĠĠĠĠĠ Ġ* Ġto Ġreflect Ġits Ġnew Ġvalue . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlist Summary Listener Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPreference . On Preference ChangeListener Ġ{ Ġpreference , Ġvalue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstring Value Ġ= Ġvalue . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( preference Ġis ĠList Preference ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFor Ġlist Ġpreferences , Ġlook Ġup Ġthe Ġcorrect Ġdisplay Ġvalue Ġin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthe Ġpreference 's Ġ' entries ' Ġlist . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġindex Ġ= Ġpreference . find IndexOf Value ( stringValue ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSet Ġthe Ġsummary Ġto Ġreflect Ġthe Ġnew Ġvalue . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreference . set Summary ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index Ġ>= Ġ 0 ) Ġpreference . entries [ index ] Ġelse Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFor Ġall Ġother Ġpreferences , Ġset Ġthe Ġsummary Ġto Ġthe Ġvalue 's ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġsimple Ġstring Ġrepresentation . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreference . summary Ġ= Ġstring Value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ }