package Ġcom . d ams ky . d anny . lib rem usic . data . prefs Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . preference . Preference Manager Ċ import Ġandroid . support . v 7 . app . AppCompat Delegate Ċ import Ġcom . d ams ky . d anny . lib rem usic . R Ċ import Ġcom . d ams ky . d anny . lib rem usic . data . db . List Level Ċ import Ġcom . d ams ky . d anny . lib rem usic . utils . Constants Ċ Ċ /** Ċ Ġ* ĠThis Ġclass Ġis Ġused Ġto Ġhandle Ġpreferences Ġoperations . Ċ Ġ* Ċ Ġ* Ġ@ param Ġcontext ĠRequired Ġto Ġgain Ġaccess Ġto Ġthe Ġapplication 's Ġpreferences . Ġ( Recommended : ĠApplication Context ) Ċ Ġ* Ċ Ġ* Ġ@ author ĠD anny ĠD ams ky Ċ Ġ*/ Ċ Ċ class ĠApp Preferences Helper ( private Ġval Ġcontext : ĠContext ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġrepeat : ĠBoolean ĊĠĠĠ Ġprivate Ġvar Ġshuffle : ĠBoolean ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpreferences Ġ= Ġget SharedPreferences () ĊĠĠĠĠĠĠĠ Ġrepeat Ġ= Ġpreferences . getBoolean ( Constants . PREFER ENCE _ REPEAT , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġshuffle Ġ= Ġpreferences . getBoolean ( Constants . PREFER ENCE _ SH UFF LE , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Boolean ( pref Name : ĠString , Ġboolean : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġget SharedPreferences (). edit () ĊĠĠĠĠĠĠĠ Ġeditor . put Boolean ( pref Name , Ġboolean ) ĊĠĠĠĠĠĠĠ Ġeditor . apply () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget SharedPreferences (): ĠSharedPreferences Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . get SharedPreferences ( Constants . PREFER ENCES _ NAME , ĠContext . MODE _ PRIVATE ) ĊĊĠĠĠ Ġprivate Ġfun ĠgetDefault SharedPreferences (): ĠSharedPreferences Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPreference Manager . getDefault SharedPreferences ( context ) ĊĊĠĠĠ Ġfun Ġis First Run ( boolean : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate Boolean ( Constants . PREFER ENCE _ FIRST _ RUN , Ġboolean ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis First Run (): ĠBoolean Ġ= Ġget SharedPreferences (). getBoolean ( Constants . PREFER ENCE _ FIRST _ RUN , Ġtrue ) ĊĊĠĠĠ Ġfun Ġupdate Indexes ( list Level : ĠList Level , Ġpositions : ĠInt Array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġget SharedPreferences (). edit () ĊĠĠĠĠĠĠĠ Ġeditor . put Int ( Constants . PREFER ENCE _ LIST _ LEVEL , Ġlist Level . index ) ĊĠĠĠĠĠĠĠ Ġeditor . put Int ( Constants . PREFER ENCE _ INDEX _ ZERO , Ġpositions [ 0 ]) ĊĠĠĠĠĠĠĠ Ġeditor . put Int ( Constants . PREFER ENCE _ INDEX _ ONE , Ġpositions [ 1 ]) ĊĠĠĠĠĠĠĠ Ġeditor . put Int ( Constants . PREFER ENCE _ INDEX _ TWO , Ġpositions [ 2 ]) ĊĠĠĠĠĠĠĠ Ġeditor . apply () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Index ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġget SharedPreferences (). edit () ĊĠĠĠĠĠĠĠ Ġeditor . put Int ( Constants . PREFER ENCE _ INDEX _ TWO , Ġposition ) ĊĠĠĠĠĠĠĠ Ġeditor . apply () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Indexes (): ĠPair < IntArray , ĠList Level >? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Level Ġ= ĠList Level . values ()[ get SharedPreferences (). getInt ( Constants . PREFER ENCE _ LIST _ LEVEL , Ġ 0 )] ĊĠĠĠĠĠĠĠ Ġval Ġindex Ġ= Ġget SharedPreferences (). getInt ( Constants . PREFER ENCE _ INDEX _ TWO , Ġ- 1 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( index Ġ== Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġpositions Ġ= Ġint ArrayOf ( get SharedPreferences (). getInt ( Constants . PREFER ENCE _ INDEX _ ZERO , Ġ- 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget SharedPreferences (). getInt ( Constants . PREFER ENCE _ INDEX _ ONE , Ġ- 1 ), Ġindex ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠPair ( positions , Ġlist Level ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Repeat Preference ( boolean : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrepeat Ġ= Ġboolean ĊĠĠĠĠĠĠĠ Ġupdate Boolean ( Constants . PREFER ENCE _ REPEAT , Ġboolean ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Repeat Preference (): ĠBoolean Ġ= Ġrepeat ĊĊĠĠĠ Ġfun Ġset Shuffle Preference ( boolean : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġshuffle Ġ= Ġboolean ĊĠĠĠĠĠĠĠ Ġupdate Boolean ( Constants . PREFER ENCE _ SH UFF LE , Ġboolean ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Shuffle Preference (): ĠBoolean Ġ= Ġshuffle ĊĊĠĠĠ Ġfun Ġget Theme (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġapp Themes Values Ġ= Ġcontext . resources . getString Array ( R . array . app _ themes _ values ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( getDefault SharedPreferences (). getString ( Constants . PREFER ENCE _ APP _ THEME , Ġapp Themes Values [ 0 ]) Ġ== Ġapp Themes Values [ 2 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠR . style . App Theme _ Black ĊĊĠĠĠĠĠĠĠ Ġreturn ĠR . style . App Theme ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Theme No ActionBar (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġapp Themes Values Ġ= Ġcontext . resources . getString Array ( R . array . app _ themes _ values ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( getDefault SharedPreferences (). getString ( Constants . PREFER ENCE _ APP _ THEME , Ġapp Themes Values [ 0 ]) Ġ== Ġapp Themes Values [ 2 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠR . style . App Theme _ Black _ No ActionBar ĊĊĠĠĠĠĠĠĠ Ġreturn ĠR . style . App Theme _ No ActionBar ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Night Mode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġapp Themes Values Ġ= Ġcontext . resources . getString Array ( R . array . app _ themes _ values ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( getDefault SharedPreferences (). getString ( Constants . PREFER ENCE _ APP _ THEME , Ġapp Themes Values [ 0 ]) Ġ== Ġapp Themes Values [ 0 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAppCompat Delegate . MODE _ N IGHT _ NO ĊĊĠĠĠĠĠĠĠ Ġreturn ĠAppCompat Delegate . MODE _ N IGHT _ YES ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Theme And Day Night Mode (): ĠPair < Int , ĠInt > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġapp Themes Values Ġ= Ġcontext . resources . getString Array ( R . array . app _ themes _ values ) ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( getDefault SharedPreferences (). getString ( Constants . PREFER ENCE _ APP _ THEME , Ġapp Themes Values [ 0 ])) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Themes Values [ 0 ] Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPair ( R . style . App Theme , ĠAppCompat Delegate . MODE _ N IGHT _ NO ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Themes Values [ 1 ] Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPair ( R . style . App Theme , ĠAppCompat Delegate . MODE _ N IGHT _ YES ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Themes Values [ 2 ] Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPair ( R . style . App Theme _ Black , ĠAppCompat Delegate . MODE _ N IGHT _ YES ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠPair (- 1 , Ġ- 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Theme And Day Night Mode No ActionBar (): ĠPair < Int , ĠInt > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġapp Themes Values Ġ= Ġcontext . resources . getString Array ( R . array . app _ themes _ values ) ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( getDefault SharedPreferences (). getString ( Constants . PREFER ENCE _ APP _ THEME , Ġapp Themes Values [ 0 ])) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Themes Values [ 0 ] Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPair ( R . style . App Theme _ No ActionBar , ĠAppCompat Delegate . MODE _ N IGHT _ NO ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Themes Values [ 1 ] Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPair ( R . style . App Theme _ No ActionBar , ĠAppCompat Delegate . MODE _ N IGHT _ YES ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Themes Values [ 2 ] Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPair ( R . style . App Theme _ Black _ No ActionBar , ĠAppCompat Delegate . MODE _ N IGHT _ YES ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠPair (- 1 , Ġ- 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Encoding (): ĠString Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetDefault SharedPreferences (). getString ( Constants . PREFER ENCE _ ENCODING , ĠConstants . DEFAULT _ ENCODING ) Ċ } Ċ