package Ġcom . vn . nt es co . adapter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . Spinner Ċ import Ġandroid . widget . TextView Ċ import Ġcom . squareup . pic asso . Pic asso Ċ import Ġcom . vn . nt es co . R Ċ import Ġcom . vn . nt es co . adapter . adapters Spinner . Data Spinner Adapter Ċ import Ġcom . vn . nt es co . listener . ItemClickListener Ċ import Ġcom . vn . nt es co . model .* Ċ import Ġcom . vn . nt es co . utils . Dimension Utils Ċ import Ġcom . vn . nt es co . utils . Pref Utils Ċ import Ġcom . vn . nt es co . utils . Write Log Ċ import Ġkotlinx . android . synt hetic . main . activity _ che mical _ calculation .* Ċ import Ġkotlin . collections . ArrayList Ċ Ċ class ĠCheck List Child Adapter ( val ĠmContext : ĠContext ) Ġ: ĠRecyclerView . Adapter < Check List Child Adapter . ViewHolder >() Ġ{ ĊĠĠĠ Ġvar Ġcheck List Child : ĠMutable List < Check List Child > ĊĠĠĠ Ġvar Ġitem ClickListener : ĠItem ClickListener ? Ġ= Ġnull ; ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck List Child Ġ= ĠArrayList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetData ( mutable List : ĠMutable List < Check List Child >) Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck List Child Ġ= Ġmutable List ; ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġposition : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( LayoutInflater . from ( mContext ). inflate ( R . layout . item _ check _ list _ child , Ġparent , Ġfalse ), Ġcheck List Child ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( view Holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewHolder . tv Add Product Specification . visibility Ġ= Ġif Ġ( position Ġ== Ġitem Count Ġ- Ġ 1 ) ĠView . VISIBLE Ġelse ĠView . GONE ĊĠĠĠĠĠĠĠ ĠviewHolder . tv Add Product Specification . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck List Child . add ( Check List Child ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġitem ClickListener ?. on Item Click ( check List Child [ position ], position ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠviewHolder . ed t Product Specification . setText ( check List Child [ position ]. product Specification ) ĊĠĠĠĠĠĠĠ ĠviewHolder . ed t Product Status . setText ( check List Child [ position ]. status ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġclass ĠViewHolder ( v : ĠView , Ġcheck List Child : ĠMutable List < Check List Child >) Ġ: ĠRecyclerView . ViewHolder ( v ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġed t Product Specification : ĠEditText ĊĠĠĠĠĠĠĠ Ġvar Ġed t Product Status : ĠEditText ĊĠĠĠĠĠĠĠ Ġvar Ġtv Add Product Specification : ĠTextView ĊĠĠĠĠĠĠĠ Ġvar Ġspecification Text Watcher : ĠText Watcher Ġ= Ġobject Ġ: ĠText Watcher Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( s : ĠEdit able ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck List Child [ adapter Position ]. product Specification Ġ= Ġs . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġcount : ĠInt , Ġafter : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġstatus Text Watcher : ĠText Watcher Ġ= Ġobject Ġ: ĠText Watcher Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( s : ĠEdit able ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck List Child [ adapter Position ]. status Ġ= Ġs . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġcount : ĠInt , Ġafter : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġed t Product Specification Ġ= Ġv . findViewById ( R . id . ed t Product Specification ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġed t Product Status Ġ= Ġv . findViewById ( R . id . ed t Product Status ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Add Product Specification Ġ= Ġv . findViewById ( R . id . tv Add Product Specification ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove Text ChangeListener () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Text ChangeListener () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġadd Text ChangeListener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġed t Product Specification . add TextChanged Listener ( specification Text Watcher ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġed t Product Status . add TextChanged Listener ( status Text Watcher ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġremove Text ChangeListener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġed t Product Specification . remove TextChanged Listener ( specification Text Watcher ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġed t Product Status . remove TextChanged Listener ( status Text Watcher ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcheck List Child . size ĊĠĠĠ Ġ} Ċ Ċ }