package Ġcom . nin chat . sdk . nin chat question naire . nin chat checkbox list . presenter Ċ Ċ import Ġcom . nin chat . sdk . events . On Next Questionnaire Ċ import Ġcom . nin chat . sdk . nin chat question naire . nin chat checkbox . presenter . Checkbox Update Listener Ċ import Ġcom . nin chat . sdk . nin chat question naire . nin chat checkbox list . model . Nin chat CheckBox ListModel Ċ import Ġorg . green robot . event bus . EventBus Ċ import Ġorg . json . JSONObject Ċ Ċ class ĠN in chat CheckBox List Presenter ( ĊĠĠĠĠĠĠĠ ĠjsonObject : ĠJSONObject ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġis Form Like Questionnaire : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġval Ġview Callback : ĠIN in chat Checkbox List Presenter , ĊĠĠĠĠĠĠĠ Ġval Ġupdate Callback : ĠCheckbox List Update Listener , ĊĠĠĠĠĠĠĠ Ġposition : ĠInt , ĊĠĠĠĠĠĠĠ Ġenabled : ĠBoolean , Ċ ) Ġ: ĠCheckbox Update Listener Ġ{ ĊĠĠĠ Ġprivate Ġval Ġmodel Ġ= ĠN in chat CheckBox ListModel ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Form Like Questionnaire Ġ= Ġis Form Like Questionnaire , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġposition Ġ= Ġposition , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenabled Ġ= Ġenabled ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġparse ( jsonObject Ġ= ĠjsonObject ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrender Current View ( jsonObject : ĠJSONObject ? Ġ= Ġnull , Ġenabled : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview Callback . on Render View ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions List Ġ= Ġmodel . option List , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenabled Ġ= Ġenabled , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Form View Ġ= Ġmodel . is Form Like Questionnaire ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Current View ( jsonObject : ĠJSONObject ? Ġ= Ġnull , Ġenabled : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ ĠjsonObject ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . update ( jsonObject Ġ= ĠjsonObject , Ġenabled Ġ= Ġenabled ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġview Callback . on Update View ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions List Ġ= Ġmodel . option List , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenabled Ġ= Ġenabled , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Form View Ġ= Ġmodel . is Form Like Questionnaire ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget ( position : ĠInt ): ĠJSONObject Ġ= Ġmodel . option List . get OrNull ( position ) Ġ?: ĠJSONObject () ĊĠĠĠ Ġfun Ġis Enabled (): ĠBoolean Ġ= Ġmodel . enabled ĊĠĠĠ Ġfun Ġsize (): ĠInt Ġ= Ġmodel . option List . size ĊĠĠĠ Ġoverride Ġfun ĠonUpdate ( value : ĠBoolean , ĠhasError : ĠBoolean , Ġfire Event : ĠBoolean , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate Callback . on Update ( value Ġ= Ġvalue , Ġsub list Position Ġ= Ġposition , ĠhasError Ġ= ĠhasError , Ġposition Ġ= Ġmodel . position ) ĊĠĠĠĠĠĠĠ Ġ// Ġif Ġcan Ġfire Ġa Ġevent Ġand Ġvalue Ġis Ġselected ĊĠĠĠĠĠĠĠ Ġif Ġ( fire Event Ġ&& Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). post ( On Next Questionnaire ( On Next Questionnaire . other )); ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ interface ĠIN in chat Checkbox List Presenter Ġ{ ĊĠĠĠ Ġfun Ġon Render View ( options List : ĠList < JSONObject >, Ġenabled : ĠBoolean , Ġis Form View : ĠBoolean ) ĊĠĠĠ Ġfun ĠonUpdate View ( options List : ĠList < JSONObject >, Ġenabled : ĠBoolean , Ġis Form View : ĠBoolean ) Ċ } Ċ Ċ interface ĠCheckbox List Update Listener Ġ{ ĊĠĠĠ Ġfun ĠonUpdate ( value : ĠBoolean , Ġsub list Position : ĠInt , ĠhasError : ĠBoolean , Ġposition : ĠInt ) Ċ }