package Ġde . sch alter . los ungen . components . preferences . time Picker Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Typed Array Ċ import Ġandroid . text . format . DateFormat Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroidx . preference . Dialog Preference Ċ import Ġde . sch alter . los ungen . R Ċ import Ġde . sch alter . los ungen . background Tasks . daily Notifications . Schedule Notification Ċ import Ġde . sch alter . los ungen . utils . Preference Tags Ċ import Ġjava . util .* ĊĊ Ċ class ĠTime Preference ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ: ĠDialog Preference ( context , Ġattrs ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcalendar : ĠCalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠ Ġprivate Ġvar Ġtime Ġ= ĠPreference Tags . NOTIFICATION _ TIME _ DEFAULT _ VALUE ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġpositive ButtonText Ġ= Ġcontext . resources . getString ( R . string . save ) ĊĠĠĠĠĠĠĠ Ġnegative ButtonText Ġ= Ġcontext . resources . getString ( R . string . cancel ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Hour () Ġ= Ġtime Ġ/ Ġ 6 0 ĊĠĠĠ Ġfun Ġget Minute () Ġ= Ġtime Ġ% Ġ 6 0 ĊĊĠĠĠ Ġfun Ġset Time ( hour : ĠInt ? Ġ= Ġnull , Ġminute : ĠInt ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Hour Ġ= Ġhour Ġ?: Ġget Hour () ĊĠĠĠĠĠĠĠ Ġval Ġnew Minute Ġ= Ġminute Ġ?: Ġget Minute () ĊĊĠĠĠĠĠĠĠ Ġtime Ġ= Ġnew Minute Ġ+ Ġ 6 0 Ġ* Ġnew Hour ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Get DefaultValue ( a : ĠTyped Array , Ġindex : ĠInt ): ĠAny Ġ{ ĊĠĠĠĠĠĠĠ Ġtime Ġ= Ġa . getInt ( index , Ġ 6 0 Ġ* Ġ 7 ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtime . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Set Initial Value ( restore Value : ĠBoolean , ĠdefaultValue : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġtime Ġ= Ġif Ġ( restore Value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( defaultValue Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Pers isted Int ( time ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Pers isted Int (( defaultValue Ġas ĠString ). toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( defaultValue Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( defaultValue Ġas ĠString ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Summary (): ĠCharSequence Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhours Ġ= Ġget Hour () ĊĠĠĠĠĠĠĠ Ġval Ġminutes Ġ= Ġget Minute () ĊĠĠĠĠĠĠĠ Ġcalendar . set ( Calendar . HOUR _ OF _ DAY , Ġhours ) ĊĠĠĠĠĠĠĠ Ġcalendar . set ( Calendar . MINUTE , Ġminutes ) ĊĠĠĠĠĠĠĠ Ġreturn ĠDate Format . getTime Format ( context ). format ( Date ( calendar . time In Millis )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpersist Value () Ġ{ ĊĠĠĠĠĠĠĠ Ġpersist Int ( time ) ĊĠĠĠĠĠĠĠ ĠSchedule Notification ( context ). schedule Notification ( time ) ĊĠĠĠĠĠĠĠ Ġnotify Changed () ĊĠĠĠ Ġ} Ċ Ċ }