package Ġch . r my . android . http _ shortcuts . activities . variables . editor . types . date Ċ Ċ import Ġandroid . app . Application Ċ import Ġch . r my . android . http _ shortcuts . R Ċ import Ġch . r my . android . http _ shortcuts . activities . variables . editor . types . Base Variable Type ViewModel Ċ import Ġch . r my . android . http _ shortcuts . d agger . getApplication Component Ċ import Ġch . r my . android . http _ shortcuts . variables . types . Date Type Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util . Locale Ċ Ċ class ĠDate Type ViewModel ( application : ĠApplication ) Ġ: ĠBase Variable Type ViewModel < Unit , ĠDate Type ViewState >( application ) Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġget Application Component (). inject ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit ViewState () Ġ= ĠDate Type ViewState ( ĊĠĠĠĠĠĠĠ ĠdateFormat Ġ= ĠDate Type . get DateFormat ( variable ), ĊĠĠĠĠĠĠĠ Ġremember Value Ġ= Ġvariable . remember Value , ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġon DateFormat Changed ( date Format : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġperform Operation ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemporary Variable Repository . setData ForType ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( Date Type . KEY _ FORMAT Ġto ĠdateFormat ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Remember ValueChanged ( enabled : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġperform Operation ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemporary Variable Repository . set Remember Value ( enabled ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġvalidate (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSimpleDateFormat ( Date Type . get DateFormat ( variable ), ĠLocale . US ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegalArgumentException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Snackbar ( R . string . error _ invalid _ date _ format ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ } Ċ