package Ġcom . kotlin . browser Ċ Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . preference . Preference Ċ import Ġandroid . preference . Preference Fragment Ċ import Ġandroid . preference . Preference Screen Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Toast Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ import Ġcom . kotlin . browser . application .* Ċ import Ġorg . jetbrains . ank o . do Async Ċ import Ġorg . jetbrains . ank o . ui Thread Ċ Ċ class ĠSettings Activity Ġ: ĠBase Activity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Fragment : ĠSetting Preference Fragment ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġenable Back Press () ĊĊĠĠĠĠĠĠĠ Ġval Ġbegin Transaction Ġ= Ġfragment Manager . beginTransaction () ĊĠĠĠĠĠĠĠ Ġm Fragment Ġ= ĠSetting Preference Fragment () ĊĊĠĠĠĠĠĠĠ Ġbegin Transaction . replace ( android . R . id . content , Ġm Fragment ) ĊĠĠĠĠĠĠĠ Ġbegin Transaction . commit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! m Fragment . is Waiting ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠSetting Preference Fragment Ġ: ĠPreference Fragment (), ĠSharedPreferences . On Shared Preference ChangeListener Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġis Waiting Ġ= Ġfalse ĊĠĠĠ Ġfun Ġis Waiting () Ġ= Ġis Waiting ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( bundle : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( bundle ) ĊĠĠĠĠĠĠĠ Ġadd Preferences From Resource ( R . xml . preferences ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView ?, ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġpreference Screen . shared Preferences . register On Shared Preference ChangeListener ( this ) ĊĠĠĠĠĠĠĠ Ġset Search Summary () ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġpreference Screen . shared Preferences . unregister On Shared Preference ChangeListener ( this ) ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Preference Tree Click ( preference Screen : ĠPreference Screen ?, Ġpreference : ĠPreference ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠ Ġwhen ( preference ?. title Res ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠ ĠR . string . preference _ title _ clear _ history Ġ-> ĠSn ackbar ( R . string . toast _ clear _ history ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Async Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSQL Helper . clear All Record () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġui Thread Ġ{ Ġtoast ( R . string . toast _ clear _ history _ success ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Preference Tree Click ( preference Screen , Ġpreference ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Shared Preference Changed ( shared Preferences : ĠSharedPreferences ?, Ġkey : ĠString ?) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( key ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠKey . SEARCH _ ENGINE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Search Summary () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġset Search Summary () Ġ{ ĊĠĠĠĠĠĠĠ Ġfind Preference ( getString ( R . string . preference _ key _ search _ engine _ id )). summary Ġ= Ġresources ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getString Array ( R . array . preference _ entries _ search _ engine _ id )[ SP . search Engine . toInt ()] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtoast ( msg : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( activity , Ġmsg , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtoast ( msg : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( activity , Ġmsg , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠSn ackbar ( msg : ĠInt , Ġconfirm : ĠFunc ) Ġ{ ĊĠĠĠĠĠĠĠ ĠSn ackbar . make ( view !! , Ġmsg , ĠSn ackbar . LENGTH _ LONG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAction ( R . string . dialog _ button _ confirm ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfirm () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. show () ĊĠĠĠ Ġ} Ċ Ċ }