package Ġcom . ye ah ush . quick quest . ui . setting Ċ Ċ import Ġandroid . content . Clip Data Ċ import Ġandroid . content . Clipboard Manager Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . preference . Preference Ċ import Ġandroidx . preference . Preference Fragment Compat Ċ import Ġandroidx . preference . Switch Preference Ċ import Ġcom . ye ah ush . quick quest . Main Application Ċ import Ġcom . ye ah ush . quick quest . R Ċ import Ġcom . ye ah ush . quick quest . data . local . prefs . App Preferences Ċ import Ġcom . ye ah ush . quick quest . utilities . play Resource Sound Ċ import Ġcom . ye ah ush . quick quest . utilities . show Toast Ċ import Ġcom . ye ah ush . quick quest . utilities . vi br ate Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġjavax . inject . Inject Ċ Ċ @ Android EntryPoint Ċ class ĠSettings Fragment Ġ: ĠPreference Fragment Compat (), ĠPreference . On Preference ClickListener Ġ{ ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġapp Preferences : ĠApp Preferences ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Preferences ( savedInstanceState : ĠBundle ?, Ġroot Key : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Preferences From Resource ( R . xml . root _ preferences , Ġroot Key ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġval Ġpreference Bg Music Ġ= Ġfind Preference < Switch Preference >( getString ( R . string . bg _ music _ title )) ĊĠĠĠĠĠĠĠ Ġpreference Bg Music ?. setOn Preference ChangeListener Ġ{ Ġ_, ĠnewValue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapp Ġ= Ġactivity ?. application Ġas ĠMain Application ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( newValue Ġas ĠBoolean ) Ġapp . play Bg Music () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġapp . pause Bg Music () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġpreference Sound Ġ= Ġfind Preference < Switch Preference >( getString ( R . string . sound _ title )) ĊĠĠĠĠĠĠĠ Ġpreference Sound ?. setOn Preference ChangeListener Ġ{ Ġ_, ĠnewValue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( newValue Ġas ĠBoolean ) Ġplay Resource Sound ( context , ĠR . raw . click ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġpreference V ibrate Ġ= Ġfind Preference < Switch Preference >( getString ( R . string . vi br ate _ title )) ĊĠĠĠĠĠĠĠ Ġpreference V ibrate ?. setOn Preference ChangeListener Ġ{ Ġ_, ĠnewValue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( newValue Ġas ĠBoolean ) Ġvi br ate ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfind Preference < Preference >( getString ( R . string . signature _ title )) ?. on Preference ClickListener Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis ĊĠĠĠĠĠĠĠ Ġfind Preference < Preference >( getString ( R . string . term _ title )) ?. on Preference ClickListener Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġfind Preference < Preference >( getString ( R . string . about _ title )) ?. on Preference ClickListener Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis ĊĠĠĠĠĠĠĠ Ġfind Preference < Preference >( getString ( R . string . contact _ title )) ?. on Preference ClickListener Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Preference Click ( preference : ĠPreference ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( app Preferences . is Sound Enable ()) Ġplay Resource Sound ( context , ĠR . raw . click ) ĊĠĠĠĠĠĠĠ Ġif Ġ( app Preferences . is V ibrate Enable ()) Ġvi br ate ( context ) ĊĠĠĠĠĠĠĠ Ġwhen Ġ( preference ?. key ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . term _ title ) Ġ-> Ġshow Dialog Term () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . about _ title ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . action _ settings _ to _ about ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . contact _ title ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmanager Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ?. getSystem Service ( Context . CLIP BOARD _ SERVICE ) Ġas ĠClip board Manager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠClip Data . new Plain Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . contact _ title ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . developer _ email ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmanager . set Primary Clip ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ Ġshow Toast ( it , Ġ" Email ĠCop ied Ġto ĠClip board ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Dialog Term () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= Ġcontext ?. let Ġ{ ĠAlertDialog . Builder ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( builder Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . setTitle ( getString ( R . string . term _ title )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . setMessage ( getString ( R . string . term _ content )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . set Positive Button ( R . string . ok _ button , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }