/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 ĠMid hun ĠHar ik umar Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . ae . apps . message counter . data . preferences Ċ Ċ import Ġandroid . content . SharedPreferences Ċ import Ġcom . ae . apps . message counter . data . business . DEFAULT _ INDEX _ TIME _ STAMP Ċ import Ġjava . util .* Ċ Ċ class ĠPreference Repository Ġprivate Ġconstructor ( private Ġval Ġpreferences : ĠSharedPreferences ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( preferences : ĠSharedPreferences ) Ġ= ĠPreference Repository ( preferences ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetMessage Limit Value (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġraw Val Ġ= Ġpreferences . getString ( PRE F _ KEY _ MESSAGE _ LIMIT _ VALUE , ĠDEFAULT _ MESSAGE _ LIMIT . toString ()) ĊĠĠĠĠĠĠĠ Ġval Ġlimit : ĠInt ĊĠĠĠĠĠĠĠ Ġlimit Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInteger . valueOf ( raw Val !! ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNumber FormatException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDEFAULT _ MESSAGE _ LIMIT ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġlimit ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Cycle StartDate (): ĠDate Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcycle Start Ġ= ĠInteger . valueOf ( preferences . getString ( PRE F _ KEY _ CYCLE _ START _ DATE , ĠDEFAULT _ CYCLE _ START _ DATE ) !! ) ĊĠĠĠĠĠĠĠ Ġval Ġcalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġif Ġ( calendar . get ( Calendar . DATE ) Ġ< Ġcycle Start ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . add ( Calendar . MONTH , Ġ- 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcalendar . set ( Calendar . DATE , Ġcycle Start ) ĊĠĠĠĠĠĠĠ Ġreturn Ġcalendar . time ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġh istoric Messages Indexed () Ġ= Ġpreferences . getBoolean ( PRE F _ KEY _ HIST OR IC _ DATA _ INDEX ED , Ġfalse ) ĊĊĠĠĠ Ġfun Ġset Historic Message Indexed () Ġ= Ġpreferences . edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. put Boolean ( PRE F _ KEY _ HIST OR IC _ DATA _ INDEX ED , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply () ĊĊĠĠĠ Ġfun ĠgetLast Sent TimeStamp () Ġ= Ġpreferences . getString ( PRE F _ KEY _ LAST _ SENT _ TIME _ STAMP , ĠDEFAULT _ INDEX _ TIME _ STAMP ) !! ĊĊĠĠĠ Ġfun ĠgetLast Sent MessageId () Ġ= Ġpreferences . getString ( PRE F _ KEY _ LAST _ SENT _ MESSAGE _ ID , Ġ" 0 ") !! ĊĊĠĠĠ Ġfun Ġset Last Sent TimeStamp ( time Stamp : ĠString ) Ġ= Ġpreferences . edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. putString ( PRE F _ KEY _ LAST _ SENT _ TIME _ STAMP , Ġtime Stamp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply () ĊĊĠĠĠ Ġfun Ġmessage Limit Notification Enabled () Ġ= Ġpreferences . getBoolean ( PRE F _ KEY _ ENABLE _ NOTIFICATION , Ġfalse ) ĊĊĠĠĠ Ġfun Ġset Last Sent MessageId ( message Id : ĠString ) Ġ= Ġpreferences . edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. putString ( PRE F _ KEY _ LAST _ SENT _ MESSAGE _ ID , ĠmessageId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply () ĊĊĠĠĠ Ġfun Ġbackground Service Enabled () Ġ= Ġpreferences . getBoolean ( PRE F _ KEY _ ENABLE _ BACKGROUND _ SERVICE , Ġtrue ) ĊĊĠĠĠ Ġfun Ġhas Don ated () Ġ= Ġpreferences . getBoolean ( PRE F _ KEY _ D ON ATIONS _ MA DE , Ġfalse ) ĊĊĠĠĠ Ġfun Ġsave Don ations Made () Ġ= Ġpreferences . edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. put Boolean ( PRE F _ KEY _ D ON ATIONS _ MA DE , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply () ĊĊĠĠĠ Ġfun Ġhas Runtime Permissions () Ġ= Ġpreferences . getBoolean ( PRE F _ KEY _ VALID _ RUN _ TIME _ PERMISSION S , Ġfalse ) ĊĊĠĠĠ Ġfun Ġsave Runtime Permissions ( value : ĠBoolean ) Ġ= Ġpreferences . edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. put Boolean ( PRE F _ KEY _ VALID _ RUN _ TIME _ PERMISSION S , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply () ĊĊĠĠĠ Ġfun Ġget Settings Hint Reviewed () Ġ= Ġpreferences . getBoolean ( PRE F _ KEY _ SETTINGS _ HINT _ RE VIEW ED , Ġfalse ) ĊĊĠĠĠ Ġfun Ġset Settings Hint Reviewed () Ġ= Ġpreferences . edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. put Boolean ( PRE F _ KEY _ SETTINGS _ HINT _ RE VIEW ED , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply () ĊĊĠĠĠ Ġfun Ġis Index In Process () Ġ= Ġpreferences . getBoolean ( PRE F _ KEY _ INDEX _ IN _ PROCESS , Ġfalse ) ĊĊĠĠĠ Ġfun Ġset Index In Process ( index Status : Boolean ) Ġ= Ġpreferences . edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. put Boolean ( PRE F _ KEY _ INDEX _ IN _ PROCESS , Ġindex Status ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply () Ċ }