package Ġcom . ddd 4 . drop it . presentation . ui . add Ċ Ċ import Ġandroid . app . DatePicker Dialog Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . databinding . Binding Adapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . ddd 4 . drop it . presentation . entity . Presentation Entity Ċ import Ġcom . ddd 4 . drop it . presentation . ui . add . adapter . Add Category Adapter Ċ import Ġcom . ddd 4 . drop it . presentation . ui . add . adapter . Add Sub Category Adapter Ċ import Ġcom . ddd 4 . drop it . presentation . util . ItemClickListener Ċ import Ġcom . ddd 4 . drop it . presentation . util . load Url Ċ import Ġjava . util .* ĊĊ Ċ object ĠAdd Binding Ġ{ ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Binding Adapter ( value Ġ= Ġ[" add Items ", Ġ" click Listener "]) ĊĠĠĠ Ġfun Ġset Add Category Items ( view : ĠRecyclerView , Ġadd Items : ĠList < Presentation Entity . Category > ?, Ġclick Listener : ĠItem ClickListener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . adapter ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this Ġis ĠAdd Category Adapter ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . items Ġ= Ġadd Items ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAdd Category Adapter ( add Items , Ġclick Listener ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . adapter Ġ= Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Binding Adapter ( value Ġ= Ġ[" add Items ", Ġ" click Listener "]) ĊĠĠĠ Ġfun Ġset Sub Category Items ( view : ĠRecyclerView , Ġadd Items : ĠList < Presentation Entity . Sub Category > ?, Ġclick Listener : ĠItem ClickListener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . adapter Ġ= ĠAdd Sub Category Adapter ( add Items , Ġclick Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Binding Adapter ( value Ġ= Ġ[" text Change Watcher "]) ĊĠĠĠ Ġfun ĠsetName Text Watcher ( view : ĠEditText , Ġtext Watcher : ĠText Watcher ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . add TextChanged Listener ( text Watcher ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Binding Adapter ( value Ġ= Ġ[" date Picker Listener "]) ĊĠĠĠ Ġfun Ġset DatePicker Listener ( view : ĠTextView , Ġlistener : ĠDate Picker Dialog . On Date Set Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġyear Ġ= Ġcalendar . get ( Calendar . YEAR ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmonth Ġ= Ġcalendar . get ( Calendar . MONTH ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġday Ġ= Ġcalendar . get ( Calendar . DAY _ OF _ MONTH ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠDate Picker Dialog ( view . context , Ġlistener , Ġyear , Ġmonth , Ġday ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Binding Adapter (" image ") ĊĠĠĠ Ġfun Ġset Item Image ( view : ĠImageView , Ġimage : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . load Url ( image ) ĊĠĠĠĠĠĠĠ Ġview . scale Type Ġ= ĠImageView . Scale Type . CENTER _ C ROP ĊĠĠĠ Ġ} Ċ }