package Ġcom . ph ic dy . my c uration . data . preference čĊč Ċ import Ġandroid . content . Context č Ċ import Ġandroid . content . SharedPreferences č Ċ import Ġcom . ph ic dy . my c uration . repository . Build Config čĊč Ċ object ĠPreference Helper Ġ{ čĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpref : ĠSharedPreferences čĊčĊĠĠĠ Ġprivate Ġconst Ġval ĠP REF _ KEY Ġ= Ġ" Filter Pref " čĊĠĠĠ Ġprivate Ġconst Ġval ĠKEY _ AUTO _ UPDATE _ INTERVAL Ġ= Ġ" auto Update Interval " čĊĠĠĠ Ġprivate Ġconst Ġval ĠKEY _ AUTO _ UPDATE _ IN _ MAIN _ UI Ġ= Ġ" auto Update In Main Ui " čĊĠĠĠ Ġprivate Ġconst Ġval ĠKEY _ THEME Ġ= Ġ" theme " čĊĠĠĠ Ġprivate Ġconst Ġval ĠKEY _ SORT _ NEW _ ARTIC LE _ TOP Ġ= Ġ" sort New Article Top " čĊĠĠĠ Ġprivate Ġconst Ġval ĠKEY _ ALL _ READ _ BACK Ġ= Ġ" all Read Back " čĊĠĠĠ Ġprivate Ġconst Ġval ĠKEY _ SEARCH _ FEED _ ID Ġ= Ġ" search Feed Id " čĊĠĠĠ Ġprivate Ġconst Ġval ĠKEY _ OPEN _ INTERNAL _ ID Ġ= Ġ" open Internal " čĊĠĠĠ Ġprivate Ġconst Ġval ĠKEY _ SW I PE _ DIRECTION Ġ= Ġ" swipe Direction " čĊĠĠĠ Ġprivate Ġconst Ġval ĠKEY _ LA UNCH _ TAB Ġ= Ġ" launch Tab " čĊĠĠĠ Ġprivate Ġconst Ġval ĠKEY _ LAST _ UPDATE _ DATE Ġ= Ġ" last Update Date " čĊĠĠĠ Ġprivate Ġconst Ġval ĠKEY _ RE VIEW _ COUNT Ġ= Ġ" review Count " čĊĠĠĠ Ġprivate Ġconst Ġval ĠKEY _ RE VIEW ED Ġ= Ġ" review ed " čĊčĊĠĠĠ Ġconst Ġval ĠS WI PE _ RIGHT _ TO _ LEFT Ġ= Ġ 0 čĊĠĠĠ Ġconst Ġval ĠS WI PE _ LEFT _ TO _ RIGHT Ġ= Ġ 1 čĊĠĠĠ Ġconst Ġval ĠS WI PE _ DEFAULT Ġ= ĠS WI PE _ RIGHT _ TO _ LEFT čĊĠĠĠ Ġconst Ġval ĠLA UNCH _ CUR ATION Ġ= Ġ 0 čĊĠĠĠ Ġconst Ġval ĠLA UNCH _ RSS Ġ= Ġ 1 čĊĠĠĠ Ġconst Ġval ĠLA UNCH _ TAB _ DEFAULT Ġ= ĠLA UNCH _ CUR ATION čĊĠĠĠ Ġconst Ġval ĠTHE ME _ LIGHT Ġ= Ġ 0 čĊĠĠĠ Ġconst Ġval ĠTHE ME _ DARK Ġ= Ġ 1 čĊĠĠĠ Ġconst Ġval ĠTHE ME _ DEFAULT Ġ= ĠTHE ME _ LIGHT čĊĠĠĠ Ġprivate Ġval ĠTHE MES Ġ= Ġint ArrayOf ( THEME _ LIGHT , ĠTHE ME _ DARK ) čĊĠĠĠ Ġprivate Ġval ĠS WI PE _ DIRECTION S Ġ= Ġint ArrayOf ( SW I PE _ RIGHT _ TO _ LEFT , ĠS WI PE _ LEFT _ TO _ RIGHT ) čĊĠĠĠ Ġprivate Ġval ĠLA UNCH _ TAB S Ġ= Ġint ArrayOf ( LA UNCH _ CUR ATION , ĠLA UNCH _ RSS ) čĊĠĠĠ Ġprivate Ġconst Ġval ĠDEFAULT _ UPDATE _ INTERVAL _ SECOND Ġ= Ġ 3 Ġ* Ġ 6 0 Ġ* Ġ 6 0 čĊĠĠĠ Ġprivate Ġval ĠDEFAULT _ RE VIEW _ COUNT Ġ= Ġif Ġ( Build Config . DEBUG ) Ġ 3 Ġelse Ġ 1 0 0 čĊčĊĠĠĠ Ġfun ĠsetUp ( context : ĠContext ) Ġ{ čĊĠĠĠĠĠĠĠ Ġpref Ġ= Ġcontext . get SharedPreferences ( PRE F _ KEY , ĠContext . MODE _ PRIVATE ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġvar Ġauto Update Interval Second : ĠInt čĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġif Ġ( pref . contains ( KEY _ AUTO _ UPDATE _ INTERVAL )) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġpref . getInt ( KEY _ AUTO _ UPDATE _ INTERVAL , ĠDEFAULT _ UPDATE _ INTERVAL _ SECOND ) čĊĠĠĠĠĠĠĠ Ġ} Ġelse ĠDEFAULT _ UPDATE _ INTERVAL _ SECOND čĊĠĠĠĠĠĠĠ Ġset ( interval Second ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġpref . put ( KEY _ AUTO _ UPDATE _ INTERVAL , Ġinterval Second ) čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠ Ġvar Ġauto Update In Main Ui : ĠBoolean čĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġpref . getBoolean ( KEY _ AUTO _ UPDATE _ IN _ MAIN _ UI , Ġfalse ) čĊĠĠĠĠĠĠĠ Ġset ( is Auto Update In Main Ui ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġpref . put ( KEY _ AUTO _ UPDATE _ IN _ MAIN _ UI , Ġis Auto Update In Main Ui ) čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠ Ġvar Ġlast Update Date : ĠLong čĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġpref . getLong ( KEY _ LAST _ UPDATE _ DATE , Ġ 0 ) čĊĠĠĠĠĠĠĠ Ġset ( last Update Date ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġpref . put ( KEY _ LAST _ UPDATE _ DATE , Ġlast Update Date ) čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠ Ġvar Ġtheme : ĠInt čĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġif Ġ( pref . contains ( KEY _ THEME )) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġpref . getInt ( KEY _ THEME , ĠTHE ME _ DEFAULT ) čĊĠĠĠĠĠĠĠ Ġ} Ġelse ĠTHE ME _ DEFAULT čĊĠĠĠĠĠĠĠ Ġset ( new Theme ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( theme Ġin ĠTHE MES ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( theme Ġ== Ġnew Theme ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpref . put ( KEY _ THEME , Ġtheme ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠ Ġvar Ġsort New Article Top : ĠBoolean čĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ! pref . contains ( KEY _ SORT _ NEW _ ARTIC LE _ TOP ) Ġ|| Ġpref . getBoolean ( KEY _ SORT _ NEW _ ARTIC LE _ TOP , Ġtrue ) čĊĠĠĠĠĠĠĠ Ġset ( isNew Article Top ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġpref . put ( KEY _ SORT _ NEW _ ARTIC LE _ TOP , Ġis New Article Top ) čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠ Ġvar Ġall Read Back : ĠBoolean čĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ! pref . contains ( KEY _ ALL _ READ _ BACK ) Ġ|| Ġpref . getBoolean ( KEY _ ALL _ READ _ BACK , Ġtrue ) čĊĠĠĠĠĠĠĠ Ġset ( is All Read Back ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġpref . put ( KEY _ ALL _ READ _ BACK , Ġis All Read Back ) čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠ Ġvar ĠisOpen Internal : ĠBoolean čĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġpref . contains ( KEY _ OPEN _ INTERNAL _ ID ) Ġ&& Ġpref . getBoolean ( KEY _ OPEN _ INTERNAL _ ID , Ġfalse ) čĊĠĠĠĠĠĠĠ Ġset ( isOpen Internal ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġpref . put ( KEY _ OPEN _ INTERNAL _ ID , ĠisOpen Internal ) čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠ Ġvar Ġswipe Direction : ĠInt čĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġif Ġ( pref . contains ( KEY _ SW I PE _ DIRECTION )) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġpref . getInt ( KEY _ SW I PE _ DIRECTION , ĠS WI PE _ DEFAULT ) čĊĠĠĠĠĠĠĠ Ġ} Ġelse ĠS WI PE _ DEFAULT čĊĠĠĠĠĠĠĠ Ġset ( new Swipe Direction ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( direction Ġin ĠS WI PE _ DIRECTION S ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( direction Ġ== Ġnew Swipe Direction ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpref . put ( KEY _ SW I PE _ DIRECTION , Ġnew Swipe Direction ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠ Ġvar Ġlaunch Tab : ĠInt čĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġif Ġ( pref . contains ( KEY _ LA UNCH _ TAB )) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġpref . getInt ( KEY _ LA UNCH _ TAB , ĠLA UNCH _ TAB _ DEFAULT ) čĊĠĠĠĠĠĠĠ Ġ} Ġelse ĠLA UNCH _ TAB _ DEFAULT čĊĠĠĠĠĠĠĠ Ġset ( new Launch Tab ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( tab Ġin ĠLA UNCH _ TAB S ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tab Ġ== Ġnew Launch Tab ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpref . put ( KEY _ LA UNCH _ TAB , Ġnew Launch Tab ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġset Search Feed Id ( feed Id : ĠInt ) Ġ{ čĊĠĠĠĠĠĠĠ Ġpref . put ( KEY _ SEARCH _ FEED _ ID , Ġfeed Id ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġget Review Count (): ĠInt Ġ= Ġif Ġ( pref . contains ( KEY _ RE VIEW _ COUNT )) Ġ{ čĊĠĠĠĠĠĠĠ Ġpref . getInt ( KEY _ RE VIEW _ COUNT , ĠDEFAULT _ RE VIEW _ COUNT ) čĊĠĠĠ Ġ} Ġelse ĠDEFAULT _ RE VIEW _ COUNT čĊčĊĠĠĠ Ġfun Ġdecrease Review Count () Ġ{ čĊĠĠĠĠĠĠĠ Ġpref . put ( KEY _ RE VIEW _ COUNT , Ġget Review Count () Ġ- Ġ 1 ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġreset Review Count () Ġ{ čĊĠĠĠĠĠĠĠ Ġpref . put ( KEY _ RE VIEW _ COUNT , ĠDEFAULT _ RE VIEW _ COUNT ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġis Reviewed (): ĠBoolean Ġ= Ġif Ġ( pref . contains ( KEY _ RE VIEW ED )) Ġ{ čĊĠĠĠĠĠĠĠ Ġpref . getBoolean ( KEY _ RE VIEW ED , Ġfalse ) čĊĠĠĠ Ġ} Ġelse Ġfalse čĊčĊĠĠĠ Ġfun Ġset Reviewed () Ġ{ čĊĠĠĠĠĠĠĠ Ġpref . put ( KEY _ RE VIEW ED , Ġtrue ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun ĠSharedPreferences . put ( key : ĠString , Ġvalue : ĠInt ) Ġ{ čĊĠĠĠĠĠĠĠ Ġedit (). put Int ( key , Ġvalue ). apply () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun ĠSharedPreferences . put ( key : ĠString , Ġvalue : ĠLong ) Ġ{ čĊĠĠĠĠĠĠĠ Ġedit (). put Long ( key , Ġvalue ). apply () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun ĠSharedPreferences . put ( key : ĠString , Ġvalue : ĠBoolean ) Ġ{ čĊĠĠĠĠĠĠĠ Ġedit (). put Boolean ( key , Ġvalue ). apply () čĊĠĠĠ Ġ} č Ċ } čĊ