package Ġcom . nin chat . sdk . nin chat question naire . nin chat dropdown select . view Ċ Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Adapter View Ċ import Ġandroid . widget . Adapter View . On ItemSelected Listener Ċ import Ġandroid . widget . Array Adapter Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . air bnb . par is . extensions . style Ċ import Ġcom . nin chat . sdk . R Ċ import Ġcom . nin chat . sdk . nin chat question naire . nin chat dropdown select . presenter . DropDown Select Update Listener Ċ import Ġcom . nin chat . sdk . nin chat question naire . nin chat dropdown select . presenter . IN in chat DropDown Select View Presenter Ċ import Ġcom . nin chat . sdk . nin chat question naire . nin chat dropdown select . presenter . Nin chat DropDown Select View Presenter Ċ import Ġcom . nin chat . sdk . utils . misc . Misc Ċ import Ġkotlinx . android . synt hetic . main . dropdown _ list . view .* Ċ import Ġkotlinx . android . synt hetic . main . dropdown _ with _ label . view .* Ċ import Ġorg . json . JSONObject ĊĊ Ċ class ĠN in chat DropDown Select ViewHolder ( ĊĠĠĠ ĠitemView : ĠView , ĊĠĠĠ ĠjsonObject : ĠJSONObject ?, ĊĠĠĠ Ġis Form Like Questionnaire : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġupdate Callback : ĠDrop Down Select Update Listener , ĊĠĠĠ Ġposition : ĠInt , ĊĠĠĠ Ġenabled : ĠBoolean , Ċ ) Ġ: ĠRecyclerView . ViewHolder ( item View ), ĠIN in chat DropDown Select View Presenter Ġ{ ĊĊĠĠĠ Ġval Ġpresenter Ġ= ĠN in chat DropDown Select View Presenter ( ĊĠĠĠĠĠĠĠ ĠjsonObject Ġ= ĠjsonObject , ĊĠĠĠĠĠĠĠ Ġis Form Like Questionnaire Ġ= Ġis Form Like Questionnaire , ĊĠĠĠĠĠĠĠ Ġview Callback Ġ= Ġthis , ĊĠĠĠĠĠĠĠ Ġupdate Callback Ġ= Ġupdate Callback , ĊĠĠĠĠĠĠĠ Ġposition Ġ= Ġposition , ĊĠĠĠĠĠĠĠ Ġenabled Ġ= Ġenabled ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . render Current View ( jsonObject Ġ= ĠjsonObject , Ġenabled Ġ= Ġenabled ) ĊĠĠĠĠĠĠĠ Ġattach User Action Handler () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate ( jsonObject : ĠJSONObject ?, Ġenabled : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . update Current View ( jsonObject , Ġenabled Ġ= Ġenabled ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġattach User Action Handler () Ġ{ ĊĠĠĠĠĠĠĠ ĠitemView . nin chat _ dropdown _ list . on ItemSelected Listener Ġ= Ġobject Ġ: ĠOn ItemSelected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon ItemSelected ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter View : ĠAdapter View < *> ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm View : ĠView ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid : ĠLong ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . on Item Selection Change ( position Ġ= Ġposition ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Nothing Selected ( p 0 : ĠAdapter View < *> ?) Ġ{} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠitemView . nin chat _ dropdown _ list _ icon . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( presenter . isEnabled ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . nin chat _ dropdown _ list . perform Click () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Selection Change ( ĊĠĠĠĠĠĠĠ Ġselected Index : ĠInt , ĊĠĠĠĠĠĠĠ Ġis Selected : ĠBoolean , ĊĠĠĠĠĠĠĠ ĠhasError : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġenabled : ĠBoolean ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠitemView . dropdown _ select _ layout . style ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isSelected ) ĠR . style . Nin chat Theme _ Questionnaire _ Dropdown _ Selected Ġelse ĠR . style . Nin chat Theme _ Questionnaire _ Dropdown ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠitemView . nin chat _ dropdown _ list _ icon ?. style ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isSelected ) ĠR . style . Nin chat Theme _ Questionnaire _ Dropdown _ Image _ Selected Ġelse ĠR . style . Nin chat Theme _ Questionnaire _ Dropdown _ Image ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠitemView . nin chat _ dropdown _ list ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Selection ( selectedIndex ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected View ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent View Ġ= Ġit Ġas ĠTextView ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent View . style ( if Ġ( isSelected ) ĠR . style . Nin chat Theme _ Questionnaire _ Dropdown _ Text _ Selected Ġelse ĠR . style . Nin chat Theme _ Questionnaire _ Dropdown _ Text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( has Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrender Error View ( selectedIndex ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrender Common View ( ĊĠĠĠĠĠĠĠ Ġlabel : ĠString ?, ĊĠĠĠĠĠĠĠ Ġoptions : ĠList < String >, ĊĠĠĠĠĠĠĠ Ġenabled : ĠBoolean , ĊĠĠĠĠĠĠĠ ĠhasError : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġselected Index : ĠInt , ĊĠĠĠĠĠĠĠ Ġis Form Like : ĠBoolean ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠitemView . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Enabled Ġ= Ġenabled ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠitemView . dropdown _ text _ label ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Enabled Ġ= Ġenabled ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( enabled ) Ġif Ġ( is Form Like ) ĠR . style . Nin chat Theme _ Questionnaire _ Label _ Form Ġelse ĠR . style . Nin chat Theme _ Questionnaire _ Label ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( is Form Like ) ĠR . style . Nin chat Theme _ Questionnaire _ Label _ Form _ Disabled Ġelse ĠR . style . Nin chat Theme _ Questionnaire _ Label _ Disabled ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= ĠMisc . to Rich Text ( label , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( label . isNull OrEmpty ()) Ġvisibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġrender Ġadapter Ġview ĊĠĠĠĠĠĠĠ ĠitemView . nin chat _ dropdown _ list ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArray Adapter < String >( item View . context , ĠR . layout . dropdown _ item _ text _ view ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd All ( options ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Enabled Ġ= Ġenabled ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Selection ( selectedIndex ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( has Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrender Error View () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Common View ( ĊĠĠĠĠĠĠĠ Ġlabel : ĠString ?, ĊĠĠĠĠĠĠĠ Ġoptions : ĠList < String >, ĊĠĠĠĠĠĠĠ Ġenabled : ĠBoolean , ĊĠĠĠĠĠĠĠ ĠhasError : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġselected Index : ĠInt , ĊĠĠĠĠĠĠĠ Ġis Form Like : ĠBoolean ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠitemView . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Enabled Ġ= Ġenabled ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdropdown _ text _ label . isEnabled Ġ= Ġenabled ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn in chat _ dropdown _ list . isEnabled Ġ= Ġenabled ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdropdown _ text _ label . style ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( enabled ) Ġif Ġ( is Form Like ) ĠR . style . Nin chat Theme _ Questionnaire _ Label _ Form Ġelse ĠR . style . Nin chat Theme _ Questionnaire _ Label ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( is Form Like ) ĠR . style . Nin chat Theme _ Questionnaire _ Label _ Form _ Disabled Ġelse ĠR . style . Nin chat Theme _ Questionnaire _ Label _ Disabled ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn in chat _ dropdown _ list . setSelection ( selectedIndex ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( label . isNull OrEmpty ()) Ġdropdown _ text _ label . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( has Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrender Error View () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrender Error View ( position : ĠInt Ġ= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ ĠitemView . dropdown _ select _ layout . style ( R . style . Nin chat Theme _ Questionnaire _ Dropdown _ Error ) ĊĠĠĠĠĠĠĠ ĠitemView . nin chat _ dropdown _ list . style ( R . style . Nin chat Theme _ Questionnaire _ Dropdown _ Spinner ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ interface ĠIN in chat DropDown Select ViewHolder Ġ{ ĊĠĠĠ Ġfun Ġon Item Selection Change ( position : ĠInt ) Ċ }