package Ġcom . luc ian bc . receipt scan . presentation . home . exports . form ĊĊ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . luc ian bc . receipt scan . R Ċ import Ġcom . luc ian bc . receipt scan . base . Base Fragment Ċ import Ġcom . sav vi . range datepicker . Calendar Picker View Ċ import Ġkotlinx . android . synt hetic . main . fragment _ date _ range .* Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ class ĠDate Range Fragment ĊĠĠĠ Ġ: ĠBase Fragment < Form ViewModel >( Form ViewModel :: class . java ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Parent ViewModel () ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ date _ range , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Calendar () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Calendar () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġcalendar . add ( Calendar . YEAR , Ġ- 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġlast Year Ġ= Ġcalendar . time ĊĠĠĠĠĠĠĠ Ġcalendar . add ( Calendar . YEAR , Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġnext Year Ġ= Ġcalendar . time ĊĊĠĠĠĠĠĠĠ Ġfun ĠForm ViewModel . range (): ĠList < Date > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirst Ġ= Ġthis . first Date . value Ġ?: ĠDate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlast Ġ= Ġthis . last Date . value Ġ?: ĠDate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( first , Ġlast ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrange Picker . init ( last Year , Ġnext Year , ĠSimpleDateFormat (" MMMM , ĠYYYY ", ĠLocale . getDefault ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. in Mode ( Calendar Picker View . Selection Mode . RANGE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Selected Dates ( viewModel . range ()) ĊĊĠĠĠĠĠĠĠ Ġfun ĠList < Date >. set Range () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( first , Ġlast ) Ġ= Ġthis . sorted (). let Ġ{ Ġit . first () Ġto Ġit . last () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . first Date . value Ġ= Ġfirst ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . last Date . value Ġ= Ġlast ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrange Picker . setOn Date Selected Listener ( object : ĠCalendar Picker View . On Date Selected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Date Selected ( date : ĠDate ?) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrange Picker . selected Dates . set Range () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Date Un selected ( date : ĠDate ?) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrange Picker . selected Dates . set Range () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ