package Ġorg . r ion labs . t ats u . work Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroidx . core . content . edit Ċ import Ġandroidx . preference . Preference Ċ import Ġandroidx . preference . Preference Manager Ċ import Ġorg . r ion labs . t ats u . R Ċ import Ġorg . r ion labs . t ats u . utils . Time Utils Ċ Ċ class ĠSettings Manager Ġconstructor ( private Ġval Ġcontext : ĠContext ) Ġ{ ĊĊĠĠĠ Ġval Ġkey Timer Work : ĠString ĊĠĠĠ Ġval Ġkey Timer Break : ĠString ĊĠĠĠ Ġval Ġkey Work Hours Notifications : ĠString ĊĠĠĠ Ġval Ġkey Work Hours Start : ĠString ĊĠĠĠ Ġval Ġkey Work Hours End : ĠString ĊĊĠĠĠ Ġprivate Ġval Ġkey Sil ent Mode : ĠString ĊĊĠĠĠ Ġvar Ġsilent Mode : ĠBoolean Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġshared Preference . getBoolean ( key Sil ent Mode , Ġsilent Mode DefaultValue ) ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshared Preference . edit ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Boolean ( key Sil ent Mode , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġwork Hour Notifications Enabled : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġshared Preference . getBoolean ( key Work Hours Notifications , Ġwork Hours Notifications DefaultValue ) ĊĊĠĠĠ Ġprivate Ġval Ġtimer Work DefaultValue : ĠString ĊĠĠĠ Ġprivate Ġval Ġtimer Break DefaultValue : ĠString ĊĠĠĠ Ġprivate Ġval Ġwork Hours Notifications DefaultValue : ĠBoolean ĊĠĠĠ Ġprivate Ġval Ġwork Hours Start DefaultValue : ĠInt ĊĠĠĠ Ġprivate Ġval Ġwork Hours End DefaultValue : ĠInt ĊĠĠĠ Ġprivate Ġval Ġsilent Mode DefaultValue : ĠBoolean ĊĊĠĠĠ Ġprivate Ġval Ġshared Preference : ĠSharedPreferences ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġapp Context Ġ= Ġcontext . application Context ĊĠĠĠĠĠĠĠ Ġapp Context . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Timer Work Ġ= ĠgetString ( R . string . settings _ key _ timer _ work ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Timer Break Ġ= ĠgetString ( R . string . settings _ key _ timer _ break ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Work Hours Notifications Ġ= ĠgetString ( R . string . settings _ key _ work _ hour _ notifications ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Work Hours Start Ġ= ĠgetString ( R . string . settings _ key _ work _ hour _ start ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Work Hours End Ġ= ĠgetString ( R . string . settings _ key _ work _ hour _ end ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Sil ent Mode Ġ= ĠgetString ( R . string . settings _ key _ silent _ mode ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtimer Work DefaultValue Ġ= ĠgetString ( R . string . settings _ default _ value _ timer _ work ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtimer Break DefaultValue Ġ= ĠgetString ( R . string . settings _ default _ value _ timer _ break ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwork Hours Notifications DefaultValue Ġ= ĠgetString ( R . string . settings _ default _ value _ work _ hour _ notifications ) Ġ== Ġtrue . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwork Hours Start DefaultValue Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInteger . parseInt ( getString ( R . string . settings _ default _ value _ work _ hour _ start )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwork Hours End DefaultValue Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInteger . parseInt ( getString ( R . string . settings _ default _ value _ work _ hour _ end )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsilent Mode DefaultValue Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . settings _ default _ value _ silent _ mode ) Ġ== Ġtrue . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġshared Preference Ġ= ĠPreference Manager . getDefault SharedPreferences ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġtime Summary Provider Ġ= ĠPreference . Summary Provider < Preference > Ġ{ Ġpreference Ġ-> ĊĠĠĠĠĠĠĠ Ġvar Ġtime Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġpreference ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime Ġ= Ġwhen Ġ( it . key ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Work Hours Start Ġ-> Ġget Start Work Hour () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Work Hours End Ġ-> Ġget End Work Hour () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" Preference Ġmust Ġbe Ġmanaged Ġby ĠSetting Manager ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠTime Utils . to Time String ( context , Ġtime ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġduration Summary Provider Ġ= ĠPreference . Summary Provider < Preference > Ġ{ Ġpreference Ġ-> ĊĠĠĠĠĠĠĠ Ġvar Ġminutes Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġpreference ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġminutes Ġ= Ġwhen Ġ( it . key ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Timer Work Ġ-> Ġget Work Timer In Minutes () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Timer Break Ġ-> Ġget Break Timer In Minutes () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" Preference Ġmust Ġbe Ġmanaged Ġby ĠSetting Manager ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠTime Utils . to Duration String ( context , Ġminutes ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Work Timer In Minutes (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġshared Preference . getString ( key Timer Work , Ġtimer Work DefaultValue )?. toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġtimer Work DefaultValue . toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Break Timer In Minutes (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġshared Preference . getString ( key Timer Break , Ġtimer Break DefaultValue )?. toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġtimer Break DefaultValue . toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Start Work Hour (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġshared Preference . getInt ( key Work Hours Start , Ġwork Hours Start DefaultValue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget End Work Hour (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġshared Preference . getInt ( key Work Hours End , Ġwork Hours End DefaultValue ) ĊĠĠĠ Ġ} Ċ }