package Ġka ist . ic lab . abc . common . util Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . support . design . widget . Snackbar Ċ import Ġandroid . support . v 4 . app . FragmentManager Ċ import Ġandroid . support . v 4 . content . Context Compat Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ import Ġcom . gun 0 9 1 2 . ted permission . Permission Listener Ċ import Ġcom . gun 0 9 1 2 . ted permission . T ed Permission Ċ import Ġka ist . ic lab . abc . R Ċ import Ġka ist . ic lab . abc . data . entities . Part icipation Entity Ċ import Ġka ist . ic lab . abc . foreground . dialog . Survey Preview Dialog Fragment Ċ import Ġka ist . ic lab . abc . foreground . view .* Ċ import Ġka ist . ic lab . abc . protos . Experiment Protos Ċ import Ġjava . util . ArrayList Ċ Ċ object ĠView Utils Ġ{ ĊĊĠĠĠ Ġfun Ġbind Experiment Description View ( view : ĠView , Ġdescription : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtxt Description : ĠTextView Ġ= Ġview . findViewById ( R . id . txt Description ) ĊĠĠĠĠĠĠĠ Ġtxt Description . text Ġ= Ġdescription ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbind Contact View ( view : ĠView , Ġex per im enter : ĠExperiment Protos . Ex per im enter ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtxt Name : ĠTextView Ġ= Ġview . findViewById ( R . id . txt Ex per im enter Name ) ĊĠĠĠĠĠĠĠ Ġval Ġtxt Email : ĠTextView Ġ= Ġview . findViewById ( R . id . txt Ex per im enter Email ) ĊĠĠĠĠĠĠĠ Ġval Ġtxt PhoneNumber : ĠTextView Ġ= Ġview . findViewById ( R . id . txt Ex per im enter PhoneNumber ) ĊĠĠĠĠĠĠĠ Ġval Ġtxt Web Site : ĠTextView Ġ= Ġview . findViewById ( R . id . txt Web Site ) ĊĊĠĠĠĠĠĠĠ Ġtxt Name . text Ġ= Ġex per im enter . name ĊĠĠĠĠĠĠĠ Ġtxt Email . text Ġ= Ġex per im enter . email ĊĠĠĠĠĠĠĠ Ġtxt PhoneNumber . text Ġ= Ġex per im enter . phoneNumber ĊĠĠĠĠĠĠĠ Ġtxt Web Site . text Ġ= Ġex per im enter . web Site ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbind Part icipation Info ( view : ĠView , Ġentity : ĠPart icipation Entity , Ġfragment Manager : ĠFragment Manager ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Name : ĠDefault Item View Ġ= Ġview . findViewById ( R . id . itemName ) ĊĠĠĠĠĠĠĠ Ġval Ġitem PhoneNumber : ĠDefault Item View Ġ= Ġview . findViewById ( R . id . item PhoneNumber ) ĊĠĠĠĠĠĠĠ Ġval Ġitem Aff iliation : ĠDefault Item View Ġ= Ġview . findViewById ( R . id . item Aff iliation ) ĊĠĠĠĠĠĠĠ Ġval Ġitem Gender : ĠDefault Item View Ġ= Ġview . findViewById ( R . id . item Gender ) ĊĠĠĠĠĠĠĠ Ġval Ġitem Birth Date : ĠDefault Item View Ġ= Ġview . findViewById ( R . id . item Birth Date ) ĊĠĠĠĠĠĠĠ Ġval Ġitem Experiment Group : ĠDefault Item View Ġ= Ġview . findViewById ( R . id . item Experiment Group ) ĊĠĠĠĠĠĠĠ Ġval Ġitem Experiment Survey : ĠDefault Item View Ġ= Ġview . findViewById ( R . id . item Experiment Survey ) ĊĊĠĠĠĠĠĠĠ Ġitem Name . setDescription ( entity . subject Name ) ĊĠĠĠĠĠĠĠ Ġitem Name . set Show More ( false ) ĊĊĠĠĠĠĠĠĠ Ġitem PhoneNumber . setDescription ( entity . subject PhoneNumber ) ĊĠĠĠĠĠĠĠ Ġitem PhoneNumber . set Show More ( false ) ĊĊĠĠĠĠĠĠĠ Ġitem Aff iliation . setDescription ( entity . subject Aff iliation ) ĊĠĠĠĠĠĠĠ Ġitem Aff iliation . set Show More ( false ) ĊĊĠĠĠĠĠĠĠ Ġitem Gender . setDescription ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( entity . subject Is Male ) Ġview . context . getString ( R . string . general _ gender _ male ) Ġelse Ġview . context . getString ( R . string . general _ gender _ female ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġitem Gender . set Show More ( false ) ĊĊĠĠĠĠĠĠĠ Ġitem Birth Date . setDescription ( entity . subject Birth Date . toString ()) ĊĠĠĠĠĠĠĠ Ġitem Birth Date . set Show More ( false ) ĊĊĠĠĠĠĠĠĠ Ġitem Experiment Group . setDescription ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( TextUtils . isEmpty ( entity . experiment Group )) Ġview . context . getString ( R . string . general _ undefined ) Ġelse Ġentity . experiment Group ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġitem Experiment Group . set Show More ( false ) ĊĊĠĠĠĠĠĠĠ Ġif ( TextUtils . isEmpty ( entity . survey )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Experiment Survey . setDescription ( view . context . getString ( R . string . general _ survey _ excluded )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Experiment Survey . set Show More ( false ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Experiment Survey . setDescription ( view . context . getString ( R . string . general _ survey _ included )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( fragment Manager Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Experiment Survey . set Show More ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Experiment Survey . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSurvey Preview Dialog Fragment . newInstance ( null ). show ( fragment Manager , ĠSurvey View :: class . java . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġbind Button ( button : ĠButton , Ġis Enabled : ĠBoolean , Ġstring Res : ĠInt ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbutton . isEnabled Ġ= Ġis Enabled ĊĠĠĠĠĠĠĠ Ġbutton . set BackgroundColor ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( button . context , Ġif ( isEnabled ) ĠR . color . color Button Ġelse ĠR . color . color Disabled ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġif ( string Res Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton . text Ġ= Ġbutton . context . getString ( string Res ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Sn ackBar ( view : ĠView , Ġmessage Res : ĠInt , Ġshow Always : ĠBoolean Ġ= Ġfalse , Ġaction Res : ĠInt ? Ġ= Ġnull , Ġaction : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġsn ackBar Ġ= ĠSn ackbar . make ( view , Ġmessage Res , Ġif ( show Always ) ĠSn ackbar . LENGTH _ IN DEFIN ITE Ġelse ĠSn ackbar . LENGTH _ LONG ) ĊĠĠĠĠĠĠĠ Ġif ( action Res Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsn ackBar Ġ= Ġsn ackBar . setAction ( action Res ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction ?. invoke () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsn ackBar . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Toast ( context : ĠContext ?, Ġmessage Res : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġmessage Res , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Permission Dialog ( context : ĠContext , Ġpermissions : ĠArray < String >, Ġgranted : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull , Ġdenied : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ ĠT ed Permission . with ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Permissions (* permissions ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Permission Listener ( object Ġ: ĠPermission Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Permission Granted () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgranted ?. invoke () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Permission Denied ( den ied Permissions : ĠArrayList < String > ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdenied ?. invoke () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}). check () ĊĠĠĠ Ġ} Ċ } ĊĊ