package Ġorg . rew ed ig ital . dialog . model . google Ċ Ċ import Ġorg . rew ed ig ital . dialog . model . dialogflow . Button Ċ import Ġorg . rew ed ig ital . dialog . model . dialogflow . Image Ċ import Ġorg . rew ed ig ital . dialog . model . dialogflow . Link Out Suggestion Ċ import Ġorg . rew ed ig ital . dialog . model . dialogflow . Suggestion Ċ import Ġorg . rew ed ig ital . dialog . model . google . table . Column Properties Ċ import Ġorg . rew ed ig ital . dialog . model . google . table . Row Ċ import Ġorg . rew ed ig ital . dialog . model . google . table . Table Card Ċ Ċ data Ġclass ĠRich Response ( ĊĠĠĠ Ġval Ġitems : ĠMutable List < Response Holder > Ġ= Ġmutable ListOf (), ĊĠĠĠ Ġval Ġsuggestions : ĠMutable List < Suggestion > Ġ= Ġmutable ListOf (), ĊĠĠĠ Ġval Ġlink Out Suggestion : ĠMutable List < Link Out Suggestion > Ġ= Ġmutable ListOf () Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġwith Simple Response ( ĊĠĠĠĠĠĠĠ Ġtext ToS peech : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġss ml : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġdisplay Text : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġ) Ġ= Ġapply Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( items . count Ġ{ Ġit Ġis ĠSimple Response Holder Ġ} Ġ> Ġ 2 ) Ġthrow ĠRuntimeException (" Too Ġmany Ġsimple Ġresponses ") ĊĠĠĠĠĠĠĠ Ġitems Ġ+= ĠSimple Response Holder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGoogle Simple Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext ToS peech , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġss ml , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay Text ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwith Carousel ( ĊĠĠĠĠĠĠĠ Ġitems : ĠMutable List < Google Carousel Item > Ġ= Ġmutable ListOf (), ĊĠĠĠĠĠĠĠ Ġimage Display Options : ĠImage Display Options Ġ= ĠImage Display Options . C ROP PED ĊĠĠĠ Ġ) Ġ= Ġapply Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . items Ġ+= ĠCar ousel Browse Holder ( Carousel Browse ( items , Ġimage Display Options )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwith Basic Card ( ĊĠĠĠĠĠĠĠ Ġtitle : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġsubtitle : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġformatted Text : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġimage : ĠGoogle Image ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġbuttons : ĠMutable List < Google Button > Ġ= Ġmutable ListOf (), ĊĠĠĠĠĠĠĠ Ġimage Display Options : ĠImage Display Options ? Ġ= ĠImage Display Options . C ROP PED ĊĠĠĠ Ġ) Ġ= Ġapply Ġ{ ĊĠĠĠĠĠĠĠ Ġitems Ġ+= ĠBasic Card Holder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGoogle Basic Card ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubtitle , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformatted Text , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuttons , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Display Options ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// fun Ġwith Structured Response () Ġ= Ġapply Ġ{ ĊĠĠĠ Ġ// ĠĠĠ Ġitems Ġ+= ĠStruct ured Response Holder ( Structured Response ()) ĊĠĠĠ Ġ//} ĊĊĠĠĠ Ġfun Ġwith Media Response ( ĊĠĠĠĠĠĠĠ Ġmedia Type : ĠMediaType Ġ= ĠMediaType . MEDIA _ TYPE _ UNSPECIFIED , ĊĠĠĠĠĠĠĠ Ġmedia Objects : ĠMutable List < Media Object > Ġ= Ġmutable ListOf () ĊĠĠĠ Ġ) Ġ= Ġapply Ġ{ ĊĠĠĠĠĠĠĠ Ġitems Ġ+= ĠMedia Response Holder ( Media Response ( media Type , Ġmedia Objects )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwith Table Card ( ĊĠĠĠĠĠĠĠ Ġtitle : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġsubtitle : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġimage : ĠImage ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġcolumn Properties : ĠMutable List < Column Properties > Ġ= Ġmutable ListOf (), ĊĠĠĠĠĠĠĠ Ġrows : ĠMutable List < Row > Ġ= Ġmutable ListOf (), ĊĠĠĠĠĠĠĠ Ġbuttons : ĠMutable List < Button > Ġ= Ġmutable ListOf () ĊĠĠĠ Ġ) Ġ= Ġapply Ġ{ ĊĠĠĠĠĠĠĠ Ġitems Ġ+= ĠTable Card Holder ( Table Card ( title , Ġsubtitle , Ġimage , Ġcolumn Properties , Ġrows , Ġbuttons )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwith Suggestions ( var arg Ġsuggestions : ĠString ) Ġ= Ġapply Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . suggestions Ġ+= Ġsuggestions . map (:: Suggestion ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwith Link Out Suggestions ( suggestions : ĠMap < String , ĠString >) Ġ= Ġapply Ġ{ ĊĠĠĠĠĠĠĠ Ġlink Out Suggestion Ġ+= Ġsuggestions . entries . map Ġ{ ĠLink Out Suggestion ( it . key , Ġit . value ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwith Link Out Suggestions ( var arg Ġsuggestions : ĠLink Out Suggestion ) Ġ= Ġapply Ġ{ ĊĠĠĠĠĠĠĠ Ġlink Out Suggestion Ġ+= Ġsuggestions ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwith Link Out Suggestion ( destination Name : ĠString , Ġuri : ĠString ) Ġ= Ġapply Ġ{ ĊĠĠĠĠĠĠĠ Ġlink Out Suggestion Ġ+= ĠLink Out Suggestion ( destination Name , Ġuri ) ĊĠĠĠ Ġ} Ċ }