package Ġcom . ben ny hu o . tie gu any in . compiler . k sp . activity . builder Ċ Ċ import Ġcom . ben ny hu o . tie gu any in . compiler . k sp . activity . Activity Class Ċ import Ġcom . ben ny hu o . tie gu any in . compiler . k sp . basic . types . ACTIVITY _ COMPAT Ċ import Ġcom . ben ny hu o . tie gu any in . compiler . k sp . basic . types . INT ENT Ċ import Ġcom . ben ny hu o . tie gu any in . compiler . k sp . utils . is Default Ċ import Ġcom . ben ny hu o . tie gu any in . compiler . k sp . utils . to Kotlin TypeName Ċ import Ġcom . squareup . kotlin po et . Fun Spec Ċ import Ġcom . squareup . kotlin po et . Type Spec Ċ import Ġcom . squareup . kotlin po et . UNIT Ċ Ċ class ĠFinish Method Builder ( private Ġval Ġactivity Class : ĠActivity Class ) Ġ{ ĊĊĠĠĠ Ġfun Ġbuild ( type Builder : ĠType Spec . Builder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfinish Method Builder Ġ= ĠFun Spec . builder (" smart Finish ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Annotation ( Jvm Static :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. returns ( UNIT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Parameter (" activity ", Ġactivity Class . declaration . to Kotlin TypeName ()) ĊĊĠĠĠĠĠĠĠ Ġ// handle Ġresult Ġparameters . ĊĠĠĠĠĠĠĠ Ġactivity Class . result Parameters . also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish Method Builder . add Statement (" val Ġintent Ġ= Ġ% T ()", ĠINTENT . kotlin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Statement (" activity . set Result ( 1 , Ġintent )") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. forEach Ġ{ Ġresult Parameter Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish Method Builder . add Parameter ( result Parameter . name , Ġresult Parameter . kotlin TypeName ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish Method Builder . add Statement ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" intent . putExtra (% S , Ġ% L )", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Parameter . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Parameter . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfinish Method Builder . add Statement ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"% T . finish After Transition ( activity )", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠACT IVITY _ COMPAT . kotlin ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// handle Ġpending Ġtransitions . ĊĠĠĠĠĠĠĠ Ġval Ġpending Transition On Finish Ġ= Ġactivity Class . pending Transition On Finish ĊĠĠĠĠĠĠĠ Ġif Ġ(! pending Transition On Finish . is Default ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish Method Builder . add Statement ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" activity . override Pending Transition (% L , Ġ% L )", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpending Transition On Finish . enter Anim , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpending Transition On Finish . exit Anim ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtype Builder . addFunction ( finish Method Builder . build ()) ĊĠĠĠ Ġ} Ċ }