package Ġcom . ddd 4 . drop it . presentation . ui . detail folder Ċ Ċ import Ġandroid . app . Alarm Manager Ċ import Ġandroid . app . Pending Intent Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . activity . view Models Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġcom . ddd 4 . drop it . presentation . R Ċ import Ġcom . ddd 4 . drop it . presentation . base . ui . Base Activity Ċ import Ġcom . ddd 4 . drop it . presentation . databinding . Activity Folder Item Detail Binding Ċ import Ġcom . ddd 4 . drop it . presentation . util . Constants Ċ import Ġcom . ddd 4 . drop it . presentation . util . alarm . Alarm Receiver Ċ import Ġcom . ddd 4 . drop it . presentation . util . toast Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ Ċ @ Android EntryPoint Ċ class ĠFolder Item Detail Activity Ġ: ĠBase Activity < Activity Folder Item Detail Binding >( R . layout . activity _ folder _ item _ detail ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠFolder Item Detail ViewModel Ġby Ġview Models () ĊĠĠĠ Ġprivate Ġvar ĠitemId Ġ= Ġ- 1 L ĊĊĠĠĠ Ġoverride Ġfun Ġset Bind () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdetail Item ViewModel Ġ= ĠviewModel ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠitemId Ġ= ĠgetId ( intent ) ĊĠĠĠĠĠĠĠ ĠviewModel . start ( itemId ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Ob serve () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . test IsEmpty . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . toast ( resources . getString ( R . string . toast _ input _ length )) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . item Delete Button . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . toast ( resources . getString ( R . string . toast _ delete )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Result ( result Code , ĠIntent (). apply Ġ{ Ġput Extra ( Constants . EXTRA _ DELETE _ ITEM Ġ, false ) Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalarm Manager Ġ= Ġthis . getSystem Service ( Context . ALARM _ SERVICE ) Ġas ĠAlarm Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠAlarm Receiver :: class . java ). putExtra ( ALARM _ ID , ĠitemId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpending Intent Ġ= ĠPending Intent . get Broadcast ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĠitemId . toInt (), Ġintent , ĠPending Intent . FLAG _ CANCEL _ CURRENT ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpending Intent ?. let { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalarm Manager . cancel ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . cancel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . edit Complete Button . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . toast ( resources . getString ( R . string . toast _ edit _ complete )) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . back Button . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetId ( intent : ĠIntent ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġintent . getLong Extra ( Constants . EXTRA _ NAME _ ITEM _ ID , Ġ- 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠresultCode Ġ= Ġ 6 0 0 0 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAL ARM _ ID Ġ= Ġ" alarm Id " ĊĠĠĠ Ġ} Ċ } Ċ