package Ġorg . smart register . ch w . bare bone . activity Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . appcompat . widget . Toolbar Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . ner dst one . ne at android step per . core . domain . Step per Actions Ċ import Ġcom . ner dst one . ne atform core . domain . builders . Form Builder Ċ import Ġcom . ner dst one . ne atform core . domain . model . N Form ViewData Ċ import Ġcom . ner dst one . ne atform core . form . json . Json Form Builder Ċ import Ġcom . ner dst one . ne atform core . form . json . Json Form Embedded Ċ import Ġorg . joda . time . DateTime Ċ import Ġorg . joda . time . Period Ċ import Ġorg . json . JSONException Ċ import Ġorg . json . JSONObject Ċ import Ġorg . k oin . core . inject Ċ import Ġorg . smart register . ch w . bare bone . R Ċ import Ġorg . smart register . ch w . bare bone . Test Library Ċ import Ġorg . smart register . ch w . bare bone . contract . Base Register Forms Contract Ċ import Ġorg . smart register . ch w . bare bone . dao . Test Dao Ċ import Ġorg . smart register . ch w . bare bone . domain . Member Object Ċ import Ġorg . smart register . ch w . bare bone . inter actor . Base Register Forms Interactor Ċ import Ġorg . smart register . ch w . bare bone . presenter . Base Register Forms Presenter Ċ import Ġorg . smart register . ch w . bare bone . util . Constants Ċ import Ġorg . smart register . ch w . bare bone . util . DB Constants Ċ import Ġorg . smart register . ch w . bare bone . util . Json Form Constants Ċ import Ġtim ber . log . Tim ber Ċ import Ġjava . util .* ĊĊ Ċ /** Ċ Ġ* ĠCreated Ġby Ġco ze j 4 Ġon Ġ 2 0 2 0 - 0 5 - 1 3 . Ċ Ġ* Ċ Ġ* Ġ@ co ze j 4 Ġhttps :// github . com / co ze j 4 Ċ Ġ*/ Ċ /** Ċ Ġ* ĠThis Ġis Ġthe Ġactivity Ġfor Ġloading Ġtb Ġregistration Ġand Ġfollow up ĠJSON Ġforms . ĠIt Ġimplements Ġ[ Base Register Forms Contract . View ] Ċ Ġ* Ġand Ġ[ Step per Actions ] Ġ( which Ġis Ġfrom Ġthe Ġne at Ġform Ġlibrary ) Ġthat Ġprovides Ġcallback Ġmethods Ġfrom Ġthe Ċ Ġ* Ġform Ġbuilder . ĠIt Ġexposes Ġa Ġmethod Ġto Ġreceiving Ġthe Ġdata Ġfrom Ġthe Ġviews Ġand Ġexiting Ġthe Ġactivity Ċ Ġ*/ Ċ open Ġclass ĠBaseTest Registration Forms Activity Ġ: ĠAppCompatActivity (), ĠBase Register Forms Contract . View Ġ{ ĊĠĠĠ Ġprotected Ġvar Ġpresenter : ĠBase Register Forms Contract . Presenter ? Ġ= Ġnull ĊĠĠĠ Ġprotected Ġvar Ġbase EntityId : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprotected Ġvar Ġform Name : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġform Builder : ĠForm Builder ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġjson Form : ĠJSONObject ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġuse Default Ne at Form Layout : ĠBoolean ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġform Layout : ĠLinearLayout ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmain Layout : ĠLinearLayout ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsample ToolBar : ĠToolbar ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠpageTitle TextView : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġclient Name Title TextView : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġexit Form ImageView : ĠImageView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcomplete Button : ĠImageView ĊĠĠĠ Ġvar Ġmember Object : ĠMember Object ? Ġ= Ġnull ĊĠĠĠ Ġval Ġtb Library Ġby Ġinject < Test Library >() ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ test _ registration ) ĊĠĠĠĠĠĠĠ Ġmain Layout Ġ= ĠfindViewById ( R . id . main Layout ) ĊĠĠĠĠĠĠĠ Ġform Layout Ġ= ĠfindViewById ( R . id . form Layout ) ĊĠĠĠĠĠĠĠ Ġsample ToolBar Ġ= ĠfindViewById ( R . id . sample ToolBar ) ĊĠĠĠĠĠĠĠ ĠpageTitle TextView Ġ= ĠfindViewById ( R . id . page Title TextView ) ĊĠĠĠĠĠĠĠ Ġclient Name Title TextView Ġ= ĠfindViewById ( R . id . client Name Title TextView ) ĊĠĠĠĠĠĠĠ Ġexit Form ImageView Ġ= ĠfindViewById ( R . id . exit Form ImageView ) ĊĠĠĠĠĠĠĠ Ġcomplete Button Ġ= ĠfindViewById ( R . id . complete Button ) ĊĊĠĠĠĠĠĠĠ Ġwith ( this . intent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbase EntityId Ġ= ĠgetString Extra ( Constants . Activity Payload . BASE _ ENTITY _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ= ĠgetString Extra ( Constants . Activity Payload . ACTION ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġform Name Ġ= ĠgetString Extra ( Constants . Activity Payload . TB _ REGISTR ATION _ FORM _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuse Default Ne at Form Layout Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Boolean Extra ( Constants . Activity Payload . USE _ DEFAULT _ NE AT _ FORM _ LAYOUT , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjson Form Ġ= ĠJSONObject ( getString Extra ( Constants . Activity Payload . JSON _ FORM )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠJSON Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter Ġ= Ġpresenter () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmember Object Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( json Form !!. getString ( Json Form Constants . EN COUNTER _ TYPE ) Ġ== ĠConstants . EventType . TB _ COMM UN ITY _ FOLLOW UP _ FEED BACK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTest Dao . get Community Follow up Member ( base EntityId !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTest Dao . get Member ( base EntityId !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( member Object !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġage Ġ= ĠPeriod ( DateTime ( this . age ), ĠDateTime ()). years ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient Name Title TextView . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ this . firstName } Ġ${ this . middle Name } Ġ${ this . lastName }, Ġ$ age " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠpageTitle TextView . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjson Form ?. get JSONArray (" steps ") ?. getJSONObject ( 0 )?. getString (" title ") Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġexit Form ImageView . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . id Ġ== ĠR . id . exit Form ImageView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Base Test Registration Forms Activity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style . AlertDialog Theme ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle ( getString ( R . string . confirm _ form _ close )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage ( getString ( R . string . confirm _ form _ close _ explanation )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button ( R . string . yes ) Ġ{ Ġ_: ĠDialog Interface ?, Ġ_: ĠInt Ġ-> Ġfinish () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( R . string . no ) Ġ{ Ġ_: ĠDialog Interface ?, Ġ_: ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" Do ĠNothing Ġexit Ġconfirm Ġdialog ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomplete Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . id Ġ== ĠR . id . complete Button ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( form Builder ?. get FormData As Json () Ġ!= Ġ"") Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠformData Ġ= Ġform Builder !!. get FormData () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( formData . isNotEmpty ()) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( json Form !!. getString ( Json Form Constants . EN COUNTER _ TYPE ) Ġ== ĠConstants . EventType . TB _ COMM UN ITY _ FOLLOW UP _ FEED BACK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Saving Ġref erral Ġform Ġid ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠformData [ DB Constants . Key . COMM UN ITY _ REF ERR AL _ FORM _ ID ] Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN Form ViewData (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġmember Object !!. community Ref erral Form Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Saving Ġch w Ġnames ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġall SharedPreferences Ġ= Ġtb Library . context . all SharedPreferences () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠformData [ DB Constants . Key . CH W _ NAME ] Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN Form ViewData (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġall SharedPreferences . get AN MP referred Name ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġall SharedPreferences . fetch Registered AN M () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter !!. save Form ( formData , Ġjson Form !! ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" Saved ĠData Ġ= Ġ% s ", ĠGson (). toJson ( formData )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Result ( Activity . RESULT _ OK , Ġintent ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Views FromJson () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Views FromJson () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcustom Layouts Ġ= ĠArrayList < View >(). also Ġ{ Ġlist Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( layout Inflater . inflate ( R . layout . test _ registration _ form _ view , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġform Builder Ġ= ĠJson Form Builder ( json Form . toString (), Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJson Form Embedded ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġform Builder Ġas ĠJson Form Builder , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġform Layout ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). build Form ( if Ġ( use Default Ne at Form Layout !! ) Ġcustom Layouts Ġelse Ġnull ) ĊĊĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠJSON Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( ex ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpresenter () Ġ= ĠBase Register Forms Presenter ( ĊĠĠĠĠĠĠĠ Ġbase EntityId !! , Ġthis , ĠBase Register Forms Interactor () ĊĠĠĠ Ġ) ĊĊĊĠĠĠ Ġoverride Ġfun Ġset Profile View WithData () Ġ= ĠUnit Ċ Ċ }