package Ġcom . tek food s . features . dy man ic Section . presentation Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . provider . Media Store Ċ import Ġcom . google . android . material . text field . TextInput Layout Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroid . text . Input Filter Ċ import Ġandroid . text . InputType Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget .* Ċ import Ġcom . tek food s . R Ċ import Ġcom . tek food s . app . Network Constant Ċ import Ġcom . tek food s . app . Pref Ċ import Ġcom . tek food s . app . utils . App Utils Ċ import Ġcom . tek food s . app . utils . Permission Utils Ċ import Ġcom . tek food s . base . Base Response Ċ import Ġcom . tek food s . base . presentation . Base Activity Ċ import Ġcom . tek food s . base . presentation . Base Fragment Ċ import Ġcom . tek food s . features . dashboard . presentation . Dashboard Activity Ċ import Ġcom . tek food s . features . dy man ic Section . api . Dynamic Repo Provider Ċ import Ġcom . tek food s . features . dy man ic Section . model .* Ċ import Ġcom . tek food s . widgets . App Custom EditText Ċ import Ġcom . tek food s . widgets . App Custom TextView Ċ import Ġcom . el vis he w . x log . X Log Ċ import Ġcom . pn ik osis . material ish progress . Progress Wheel Ċ import Ġcom . theme change app . pick image . Permission Helper Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġjava . io . File Ċ import Ġjava . util .* Ċ import Ġkotlin . collections . ArrayList Ċ import Ġkotlin . collections . HashMap Ċ Ċ class ĠEdit Dynamic Fragment : ĠBase Fragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠmContext : ĠContext ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġll _ dynamic _ body : ĠLinearLayout ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġprogress _ wheel : ĠProgress Wheel ĊĠĠĠ Ġ// private Ġlateinit Ġvar Ġtv _ save _ btn : ĠApp Custom TextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtv _ no _ data : ĠApp Custom TextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrl _ add _ dynamic _ main : ĠRelative Layout ĊĊĠĠĠ Ġprivate Ġvar Ġselected Date Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġdate Text : ĠView ?= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġpermission Utils : ĠPermission Utils ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġdata Path Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġattachments Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġattachment Text : ĠView ?= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġdynamic ListModel : ĠDynamic List DataModel ?= Ġnull ĊĊĠĠĠ Ġprivate Ġval Ġedit List Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠArrayList < App Custom EditText >() ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtext List Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠArrayList < App Custom TextView >() ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġradio List Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠArrayList < Radio Group >() ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġradio Map Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠHashMap < String , ĠRadio Button >() ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġcheck List Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠArrayList < CheckBox >() ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠcheckBox Model List Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠArrayList < checkBox Model >() ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġval Ġspinner List Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠArrayList < Spinner >() ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġsp iner Map Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠHashMap < String , ĠString >() ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġmy Calendar : ĠCalendar Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠCalendar . getInstance ( Locale . EN GL ISH ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġdate Map Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠHashMap < String , ĠString >() ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( dynamic ListModel : ĠAny ): ĠEdit Dynamic Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠEdit Dynamic Fragment () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dynamic ListModel Ġis ĠDynamic List DataModel ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . put Serializable (" dynamic ListModel ", Ġdynamic ListModel ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . arguments Ġ= Ġbundle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfragment ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ ĠmContext Ġ= Ġcontext ĊĊĠĠĠĠĠĠĠ Ġdynamic ListModel Ġ= Ġarguments ?. get Serializable (" dynamic ListModel ") Ġas ĠDynamic List DataModel ? ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate View ( in flater , Ġcontainer , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . fragment _ dynamic , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġinit View ( view ) ĊĠĠĠĠĠĠĠ Ġget Dynamic Data () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit View ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġll _ dynamic _ body Ġ= ĠfindViewById ( R . id . ll _ dynamic _ body ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel Ġ= ĠfindViewById ( R . id . progress _ wheel ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// tv _ save _ btn Ġ= ĠfindViewById ( R . id . tv _ save _ btn ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ no _ data Ġ= ĠfindViewById ( R . id . tv _ no _ data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrl _ add _ dynamic _ main Ġ= ĠfindViewById ( R . id . rl _ add _ dynamic _ main ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrl _ add _ dynamic _ main . setOnClickListener ( null ) ĊĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Dynamic Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! App Utils . is Online ( mContext )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( getString ( R . string . no _ internet )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ no _ data . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġrepository Ġ= ĠDynamic Repo Provider . dynamic Repo Provider () ĊĠĠĠĠĠĠĠ Ġprogress _ wheel . spin () ĊĠĠĠĠĠĠĠ ĠBase Activity . composite Disposable . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . get Edit Dynamic Data ( dynamic ListModel ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġresult Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġresult Ġas ĠDynamic Response Model ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠX Log . d (" DYNAMIC ĠRESP ONSE ====== => Ġ" Ġ+ Ġresponse . status ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . status Ġ== ĠNetwork Constant . SUCCESS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . view _ list Ġ!= Ġnull Ġ&& Ġresponse . view _ list !!. size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ no _ data . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Dynamic View ( response . view _ list !! ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ no _ data . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( response . message !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ no _ data . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( response . message !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġerror Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBase Activity . is Api Initi ated Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ no _ data . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( getString ( R . string . something _ w ent _ wrong )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠX Log . d (" DYNAMIC ĠERROR ====== => Ġ" Ġ+ Ġerror . localized Message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Dynamic View ( view _ list : ĠArrayList < Dynamic DataModel >) Ġ{ ĊĠĠĠĠĠĠĠ Ġview _ list . forEach Indexed Ġ{ Ġindex , Ġit Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . type . equals (" edit ", Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtil Ġ= ĠText Input Layout ( mContext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtil . hint Ġ= Ġit . header ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġedit Text Ġ= ĠApp Custom EditText ( mContext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset TextColor ( resources . getColor ( R . color . black )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Hint TextColor ( resources . getColor ( R . color . login _ txt _ color )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Size Ġ= Ġresources . get Dimension ( R . dim en ._ 6 sdp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġit . id . toInt () Ġ// View . generate View Id () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Text ( it . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . text _ type . equals (" text ", Ġignore Case Ġ= Ġtrue ) Ġ-> Ġinput Type Ġ= ĠInput Type . TYPE _ CLASS _ TEXT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . text _ type . equals (" number ", Ġignore Case Ġ= Ġtrue ) Ġ-> Ġinput Type Ġ= ĠInput Type . TYPE _ CLASS _ NUMBER ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . text _ type . equals (" number dec ime l ", Ġignore Case Ġ= Ġtrue ) Ġ-> Ġinput Type Ġ= ĠInput Type . TYPE _ NUMBER _ FLAG _ DECIMAL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . text _ type . equals (" email ", Ġignore Case Ġ= Ġtrue ) Ġ-> Ġinput Type Ġ= ĠInput Type . TYPE _ TEXT _ VARI ATION _ EMAIL _ ADDRESS ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmax Lines Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilters Ġ= ĠarrayOf ( Input Filter . Length Filter ( it . max _ length . toInt ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit List . add ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Ġ= ĠLinearLayout . LayoutParams ( ViewGroup . LayoutParams . MATCH _ PARENT , ĠViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . top Margin Ġ= Ġresources . get Dimension Pixel Offset ( R . dim en ._ 1 0 sdp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . top Margin Ġ= Ġresources . get Dimension Pixel Offset ( R . dim en ._ 2 0 sdp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtil . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Params Ġ= Ġp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd View ( edit Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Padding ( 1 0 , Ġ 0 , Ġ 1 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġll _ dynamic _ body . addView ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( it . type . equals (" text ", Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= ĠApp Custom TextView ( mContext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Ġ= ĠLinearLayout . LayoutParams ( ViewGroup . LayoutParams . MATCH _ PARENT , ĠViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . top Margin Ġ= Ġresources . get Dimension Pixel Offset ( R . dim en ._ 1 0 sdp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . top Margin Ġ= Ġresources . get Dimension Pixel Offset ( R . dim en ._ 2 0 sdp ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Params Ġ= Ġp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Padding ( 1 0 , Ġ 0 , Ġ 1 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset TextColor ( resources . getColor ( R . color . gray )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Size Ġ= Ġresources . get Dimension ( R . dim en ._ 6 sdp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġit . id . toInt () Ġ// View . generate View Id () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġit . header ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġll _ dynamic _ body . addView ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext List . add ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( it . type . equals (" radio ", Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġradio Grp Ġ= ĠRadio Group ( mContext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġradio Grp . orientation Ġ= ĠRadio Group . HORIZONTAL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Ġ= ĠLinearLayout . LayoutParams ( ViewGroup . LayoutParams . MATCH _ PARENT , ĠViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . top Margin Ġ= Ġresources . get Dimension Pixel Offset ( R . dim en ._ 5 sdp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġradio Grp . layout Params Ġ= Ġp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġradio Grp . id Ġ= Ġit . id . toInt () Ġ// View . generate View Id () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . item _ list ?. let Ġ{ Ġitem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . forEach Ġ{ Ġit 1 Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġradio Btn Ġ= ĠRadio Button ( mContext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġradio Btn . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġit 1 . id . toInt () Ġ// View . generate View Id () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġit 1 . items ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Size Ġ= Ġresources . get Dimension ( R . dim en ._ 6 sdp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset TextColor ( resources . getColor ( R . color . black )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrb Params Ġ= ĠLinearLayout . LayoutParams ( ViewGroup . LayoutParams . WRAP _ CONTENT , ĠViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrb Params . margin End Ġ= Ġresources . get Dimension Pixel Offset ( R . dim en ._ 1 5 sdp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Params Ġ= Ġrb Params ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Checked Ġ= Ġit 1 . isSelected ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isChecked ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġradio Map . put ( radio Grp . id . toString (), Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġradio Grp . addView ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġradio Grp . setOn Checked ChangeListener Ġ{ Ġgroup , Ġchecked Id Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġgroup ?. child Count !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselected RB Ġ= Ġgroup . getChild At ( i ) Ġas ĠRadio Button ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( selected RB . id Ġ== Ġchecked Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/* for Ġ( j Ġin Ġradio List . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( radio List [ j ]. id Ġ== Ġchecked Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġradio List . remove At ( j ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}*/ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( selected RB . isChecked ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġradio Map . put ( group . id . toString (), Ġselected RB ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġll _ dynamic _ body . addView ( radio Grp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġradio List . add ( radio Grp ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( it . type . equals (" check ", Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgrp _ id Ġ= Ġit . id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . item _ list ?. let Ġ{ Ġitem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . forEach Ġ{ Ġit 1 Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠcheckBox Ġ= ĠCheckBox ( mContext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcheckBox . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset TextColor ( resources . getColor ( R . color . black )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġit 1 . items ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Size Ġ= Ġresources . get Dimension ( R . dim en ._ 6 sdp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġit 1 . id . toInt () Ġ// View . generate View Id () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Ġ= ĠLinearLayout . LayoutParams ( ViewGroup . LayoutParams . WRAP _ CONTENT , ĠViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . top Margin Ġ= Ġresources . get Dimension Pixel Offset ( R . dim en ._ 2 sdp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Params Ġ= Ġp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Checked Ġ= Ġit 1 . isSelected ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isChecked ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck List . add ( this ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġcheck List . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( check List [ i ]. id Ġ== Ġit . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck List . remove At ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(( it Ġas ĠCheckBox ). isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck List . add ( it Ġas ĠCheckBox ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcheckBox Model List . add ( checkBox Model ( grp _ id , Ġit )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġll _ dynamic _ body . addView ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( it . type . equals (" dropdown ", Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspinner Ġ= ĠSp inner ( mContext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠArrayList < String >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . item _ list ?. let Ġ{ Ġitem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . forEach Ġ{ Ġit 1 Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( it 1 . items ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarray Adapter Ġ= ĠArray Adapter < String >( mContext , Ġandroid . R . layout . simple _ spinner _ item , Ġlist ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarray Adapter . set DropDown View Resource ( android . R . layout . simple _ spinner _ dropdown _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspinner . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġarray Adapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġit . item _ list ?. indices !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . item _ list ?. get ( i )?. isSelected !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Selection ( i , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp iner Map . put ( it . id , Ġit . item _ list ?. get ( i )?. items !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// setSelection ( 0 , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Ġ= ĠLinearLayout . LayoutParams ( ViewGroup . LayoutParams . MATCH _ PARENT , ĠViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . top Margin Ġ= Ġresources . get Dimension Pixel Offset ( R . dim en ._ 5 sdp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Params Ġ= Ġp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġit . id . toInt () Ġ// View . generate View Id () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbackground Ġ= Ġresources . get Drawable ( android . R . drawable . btn _ dropdown ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Padding ( 1 5 , Ġ 1 5 , Ġ 1 5 , Ġ 1 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprompt Ġ= Ġit . header ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġll _ dynamic _ body . addView ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspinner List . add ( it ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . on ItemSelected Listener Ġ= Ġobject Ġ: ĠAdapter View . On ItemSelected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Nothing Selected ( parent : ĠAdapter View < *> ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon ItemSelected ( parent : ĠAdapter View < *> ?, Ġview : ĠView ?, Ġposition : ĠInt , Ġid : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/* for Ġ( i Ġin Ġspinner List . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( spinner List [ i ] Ġ== Ġlist [ position ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspinner List . remove At ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspinner List . add ( list [ position ]) */ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp iner Map . put ( it . id . toString (), Ġlist [ position ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( it . type . equals (" date ", Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= ĠApp Custom TextView ( mContext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Ġ= ĠLinearLayout . LayoutParams ( ViewGroup . LayoutParams . MATCH _ PARENT , ĠViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . top Margin Ġ= Ġresources . get Dimension Pixel Offset ( R . dim en ._ 5 sdp ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Params Ġ= Ġp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Padding ( 1 0 , Ġ 0 , Ġ 1 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset TextColor ( resources . getColor ( R . color . color Primary )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Size Ġ= Ġresources . get Dimension ( R . dim en ._ 6 sdp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġit . id . toInt () Ġ// View . generate View Id () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( it . value )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= ĠApp Utils . get Formatted Date ( my Calendar . time ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Date Ġ= ĠApp Utils . get Formatted Date For Api ( my Calendar . time ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= ĠApp Utils . get Formatted Date From Date ( it . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Date Ġ= Ġit . value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Compound Draw ables With Intr insic Bounds ( R . drawable . ic _ history _ calendar _ icon , Ġ 0 , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompound Drawable Padding Ġ= Ġ 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Text Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Picker Ġ= Ġandroid . app . DatePicker Dialog ( mContext , ĠR . style . DatePicker Theme , Ġdate , Ġmy Calendar . get ( Calendar . YEAR ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Calendar . get ( Calendar . MONTH ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Calendar . get ( Calendar . DAY _ OF _ MONTH )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Picker . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Map . put ( it . id . toString (), Ġselected Date ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġll _ dynamic _ body . addView ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( it . type . equals (" attachment ", Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= ĠApp Custom TextView ( mContext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Ġ= ĠLinearLayout . LayoutParams ( ViewGroup . LayoutParams . MATCH _ PARENT , ĠViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . top Margin Ġ= Ġresources . get Dimension Pixel Offset ( R . dim en ._ 5 sdp ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Params Ġ= Ġp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Padding ( 1 0 , Ġ 0 , Ġ 1 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset TextColor ( resources . getColor ( R . color . black )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Size Ġ= Ġresources . get Dimension ( R . dim en ._ 6 sdp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġit . id . toInt () Ġ// View . generate View Id () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! TextUtils . isEmpty ( it . value )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġit . value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattachments Ġ= Ġtext . toString (). trim () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġit . header ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Compound Draw ables With Intr insic Bounds ( R . drawable . ic _ attachment , Ġ 0 , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompound Drawable Padding Ġ= Ġ 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattachment Text Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Permission Check () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Picture Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġll _ dynamic _ body . addView ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= ĠApp Custom TextView ( mContext ) ĊĠĠĠĠĠĠĠ Ġval Ġp Ġ= ĠLinearLayout . LayoutParams ( ViewGroup . LayoutParams . MATCH _ PARENT , ĠViewGroup . LayoutParams . WRAP _ CONTENT ) ĊĠĠĠĠĠĠĠ Ġp . set Margins ( resources . get Dimension Pixel Offset ( R . dim en ._ 6 0 sdp ), resources . get Dimension Pixel Offset ( R . dim en ._ 3 0 sdp ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Dimension Pixel Offset ( R . dim en ._ 6 0 sdp ), resources . get Dimension Pixel Offset ( R . dim en ._ 2 0 sdp )) ĊĊĠĠĠĠĠĠĠ ĠtextView . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= ĠView . generate View Id () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Params Ġ= Ġp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset TextColor ( resources . getColor ( R . color . gray )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Size Ġ= Ġresources . get Dimension ( R . dim en ._ 6 sdp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= ĠgetString ( R . string . save ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbackground Ġ= Ġresources . get Drawable ( R . drawable . selector _ blue _ bot ton _ bg ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Padding ( resources . get Dimension Pixel Offset ( R . dim en ._ 4 sdp ), Ġresources . get Dimension Pixel Offset ( R . dim en ._ 8 sdp ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Dimension Pixel Offset ( R . dim en ._ 4 sdp ), Ġresources . get Dimension Pixel Offset ( R . dim en ._ 8 sdp )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset TextColor ( resources . getColor ( R . color . white )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Size Ġ= Ġresources . get Dimension ( R . dim en ._ 5 sdp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgravity Ġ= ĠGr avity . CENTER ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Utils . hide Soft Keyboard ( mContext Ġas ĠDashboard Activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave Data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġll _ dynamic _ body . addView ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġdate Ġ= Ġandroid . app . DatePicker Dialog . On Date Set Listener Ġ{ Ġ_, Ġyear , Ġmonth OfYear , Ġday OfMonth Ġ-> ĊĠĠĠĠĠĠĠ Ġ// ĠTODO ĠAuto - generated Ġmethod Ġstub ĊĠĠĠĠĠĠĠ Ġmy Calendar . set ( Calendar . YEAR , Ġyear ) ĊĠĠĠĠĠĠĠ Ġmy Calendar . set ( Calendar . MONTH , Ġmonth OfYear ) ĊĠĠĠĠĠĠĠ Ġmy Calendar . set ( Calendar . DAY _ OF _ MONTH , Ġday OfMonth ) ĊĊĠĠĠĠĠĠĠ Ġ( date Text Ġas ĠTextView ). text Ġ= ĠApp Utils . get Formatted Date ( my Calendar . time ) ĊĠĠĠĠĠĠĠ Ġselected Date Ġ= ĠApp Utils . get Formatted Date For Api ( my Calendar . time ) ĊĠĠĠĠĠĠĠ Ġdate Map . put (( date Text Ġas ĠTextView ). id . toString (), Ġselected Date ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Permission Check () Ġ{ ĊĠĠĠĠĠĠĠ Ġpermission Utils Ġ= ĠPermission Utils ( mContext Ġas ĠActivity , Ġobject Ġ: ĠPermission Utils . On Permission Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Permission Granted () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Picture Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Permission Not Granted () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( getString ( R . string . accept _ permission )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}, ĠarrayOf < String >( Manifest . permission . CAMERA , ĠManifest . permission . READ _ EXTERNAL _ STORAGE , ĠManifest . permission . WRITE _ EXTERNAL _ STORAGE )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Request Permission ( request Code : ĠInt , Ġpermissions : ĠArray < String >, Ġgrant Results : ĠInt Array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpermission Utils ?. on Request Permissions Result ( request Code , Ġpermissions , Ġgrant Results ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Picture Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpicture Dialog Ġ= ĠAlertDialog . Builder ( mContext ) ĊĠĠĠĠĠĠĠ Ġpicture Dialog . setTitle (" Select ĠAction ") ĊĠĠĠĠĠĠĠ Ġval Ġpicture Dialog Items Ġ= ĠarrayOf (" Select Ġphoto Ġfrom Ġgallery ", Ġ" Capture ĠImage ", Ġ" Select Ġfile Ġfrom Ġfile Ġmanager ") ĊĠĠĠĠĠĠĠ Ġpicture Dialog . set Items ( picture Dialog Items , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDialog Interface . OnClickListener Ġ{ Ġdialog , Ġwhich Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( which ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġselect Image In Album () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ( mContext Ġas ĠDashboard Activity ). open FileManager () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Camera () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). open FileManager () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġpicture Dialog . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlaunch Camera () Ġ{ ĊĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). capture Image () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġselect Image In Album () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgallery Intent Ġ= ĠIntent ( Intent . ACTION _ P ICK , ĠMedia Store . Images . Media . EXTERNAL _ CONTENT _ URI ) ĊĠĠĠĠĠĠĠ Ġgallery Intent . putExtra ( Intent . EXTRA _ LOCAL _ ONLY , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). startActivity For Result ( gallery Intent , ĠPermission Helper . REQUEST _ CODE _ STORAGE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Image ( file : ĠFile ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ( attachment Text Ġas ĠTextView ). text Ġ= Ġfile . name ĊĠĠĠĠĠĠĠ Ġdata Path Ġ= Ġfile . absolute Path ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsave Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! App Utils . is Online ( mContext )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( getString ( R . string . no _ internet )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdynamic List Ġ= ĠArrayList < Dynamic Save DataModel >() ĊĊĠĠĠĠĠĠĠ Ġedit List . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdynamic List . add ( Dynamic Save DataModel ("", Ġit . id . toString (), Ġit . text . toString (). trim ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/* text List . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdynamic List . add ( Dynamic Save DataModel ("", Ġit . id . toString (), Ġit . text . toString (). trim ())) ĊĠĠĠĠĠĠĠ Ġ}*/ ĊĊĠĠĠĠĠĠĠ Ġspinner List . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdynamic List . add ( Dynamic Save DataModel ("", Ġit . id . toString (), Ġsp iner Map [ it . id . toString ()] !! )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġradio List . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġradio Btn Ġ= Ġradio Map [ it . id . toString ()] Ġas ĠRadio Button ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdynamic List . add ( Dynamic Save DataModel ( it . id . toString (), Ġradio Btn . id . toString (), Ġradio Btn . isChecked . toString ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcheck List . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor ( i Ġin ĠcheckBox Model List . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . id Ġ== ĠcheckBox Model List [ i ]. checkBox ?. id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdynamic List . add ( Dynamic Save DataModel ( checkBox Model List [ i ]. grp _ id , ĠcheckBox Model List [ i ]. checkBox ?. id . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcheckBox Model List [ i ]. checkBox ?. isChecked . toString ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdate Map . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdynamic List . add ( Dynamic Save DataModel ("", Ġit . key , Ġit . value )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( data Path )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdynamic Input Ġ= ĠEdit Dynamic Input Params ( Pref . session _ token !! , ĠPref . user _ id !! , Ġdynamic ListModel ?. super _ id !! , Ġdynamic ListModel ?. id !! , Ġdynamic List , Ġattachments ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrepository Ġ= ĠDynamic Repo Provider . dynamic Repo Provider () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . spin () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBase Activity . composite Disposable . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . edit Dynamic Data ( dynamic Input ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġresult Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġresult Ġas ĠBase Response ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠX Log . d (" ADD ĠD Y NAMIC ĠRESP ONSE ====== => Ġ" Ġ+ Ġresponse . status ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( response . message !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . status Ġ== ĠNetwork Constant . SUCCESS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). is Dynamic Form Updated Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHandler (). post Delayed ( Runnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). on Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ 1 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġerror Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBase Activity . is Api Initi ated Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( getString ( R . string . something _ w ent _ wrong )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠX Log . d (" ADD ĠD Y NAMIC ĠERROR ====== => Ġ" Ġ+ Ġerror . localized Message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdynamic Input Ġ= ĠDynamic Submit Input Params ( Pref . session _ token !! , ĠPref . user _ id !! , Ġdynamic ListModel ?. super _ id !! , Ġdynamic ListModel ?. id !! , Ġdynamic List ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrepository Ġ= ĠDynamic Repo Provider . dynamic Repo Provider Multipart () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . spin () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBase Activity . composite Disposable . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . edit Dynamic Data Multipart ( dynamic Input , Ġdata Path , ĠmContext ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġresult Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġresult Ġas ĠBase Response ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠX Log . d (" ADD ĠD Y NAMIC ĠRESP ONSE ====== => Ġ" Ġ+ Ġresponse . status ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( response . message !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . status Ġ== ĠNetwork Constant . SUCCESS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). is Dynamic Form Updated Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHandler (). post Delayed ( Runnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). on Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ 1 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġerror Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBase Activity . is Api Initi ated Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress _ wheel . stop Spin ning () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( mContext Ġas ĠDashboard Activity ). show Sn ack Message ( getString ( R . string . something _ w ent _ wrong )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠX Log . d (" ADD ĠD Y NAMIC ĠERROR ====== => Ġ" Ġ+ Ġerror . localized Message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }