package Ġorg . m transit . android . commons . pref Ċ Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroidx . lifecycle . LiveData Ċ Ċ // Ġhttps :// github . com / J int in / Preferences Extension / blob / master / preferences / src / main / java / com / jint in / preference se xt ension / Preference LiveData . kt Ċ abstract Ġclass ĠPreference LiveData < T >( ĊĠĠĠ Ġprivate Ġval Ġpreferences : ĠSharedPreferences , ĊĠĠĠ Ġprivate Ġval Ġkey : ĠString , ĊĠĠĠ Ġprivate Ġval Ġnotify Init Value : ĠBoolean Ċ ) Ġ: ĠLive Data < T >() Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlistener Ġ= ĠPreference Listener () ĊĊĠĠĠ Ġoverride Ġfun Ġon Active () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Active () ĊĠĠĠĠĠĠĠ Ġlistener . register () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Inactive () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Inactive () ĊĠĠĠĠĠĠĠ Ġlistener . unregister () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun Ġget Preferences Value (): ĠT ĊĊĠĠĠ Ġinner Ġclass ĠPreference Listener Ġ: ĠSharedPreferences . On Shared Preference ChangeListener Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġneed Check When Register Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( notify Init Value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġget Preferences Value () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġregister () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . register On Shared Preference ChangeListener ( listener ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( need Check When Register ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġneed Check When Register Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Value ( get Preferences Value ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġunregister () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . unregister On Shared Preference ChangeListener ( listener ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġneed Check When Register Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Shared Preference Changed ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshared Preferences : ĠSharedPreferences ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey : ĠString ? ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( key Ġ== Ġthis @ Preference LiveData . key ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Value ( get Preferences Value ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġupdate Value ( newValue : ĠT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ!= ĠnewValue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= ĠnewValue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }