/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 8 ĠSoft bank ĠRobot ics ĠEurope Ċ Ġ* ĠSee ĠCOPYING Ġfor Ġthe Ġlicense Ċ Ġ*/ Ċ Ċ package Ġcom . soft bank robot ics . q is d kt utorial s . ui . tutorials . motion . got of rame Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ Ċ import Ġcom . al de bar an . qi . sdk . Qi Context Ċ import Ġcom . al de bar an . qi . sdk . Qi SDK Ċ import Ġcom . al de bar an . qi . sdk . Robot Lifecycle Callbacks Ċ import Ġcom . al de bar an . qi . sdk . builder . Go To Builder Ċ import Ġcom . al de bar an . qi . sdk . builder . Say Builder Ċ import Ġcom . al de bar an . qi . sdk . builder . Transform Builder Ċ import Ġcom . al de bar an . qi . sdk .` object `. act uation . Go To Ċ import Ġcom . soft bank robot ics . q is d kt utorial s . R Ċ import Ġcom . soft bank robot ics . q is d kt utorial s . ui . conversation . Conversation Binder Ċ import Ġcom . soft bank robot ics . q is d kt utorial s . ui . conversation . Conversation ItemType Ċ import Ġcom . soft bank robot ics . q is d kt utorial s . ui . tutorials . Tutorial Activity Ċ import Ġkotlinx . android . synt hetic . main . activity _ aut onomous _ abilities _ tutorial .* Ċ Ċ private Ġconst Ġval ĠTAG Ġ= Ġ" Go To Tutorial Activity " Ċ Ċ /** Ċ Ġ* ĠThe Ġactivity Ġfor Ġthe ĠGo To Ġtutorial . Ċ Ġ*/ Ċ class ĠGo To Tutorial Activity Ġ: ĠTutorial Activity (), ĠRobot Lifecycle Callbacks Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġconversation Binder : ĠCon versation Binder ? Ġ= Ġnull ĊĊĠĠĠ Ġ// ĠStore Ġthe ĠGo To Ġaction . ĊĠĠĠ Ġprivate Ġvar Ġgo To : ĠGo To ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠRegister Ġthe ĠRobot Lifecycle Callbacks Ġto Ġthis ĠActivity . ĊĠĠĠĠĠĠĠ ĠQ i SDK . register ( this , Ġthis ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠUn register Ġthe ĠRobot Lifecycle Callbacks Ġfor Ġthis ĠActivity . ĊĠĠĠĠĠĠĠ ĠQ i SDK . unregister ( this , Ġthis ) ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġlayout Id Ġ= ĠR . layout . conversation _ layout ĊĊĠĠĠ Ġoverride Ġfun Ġon Robot Focus G ained ( qi Context : ĠQ i Context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠBind Ġthe Ġcon vers ational Ġevents Ġto Ġthe Ġview . ĊĠĠĠĠĠĠĠ Ġval Ġconversation Status Ġ= Ġq i Context . conversation . status ( qi Context . robot Context ) ĊĠĠĠĠĠĠĠ Ġconversation Binder Ġ= Ġconversation _ view . bind Conversation To ( conversation Status ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsay Ġ= ĠS ay Builder . with ( qi Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Text (" I Ġcan Ġmove Ġaround : ĠI Ġwill Ġgo Ġ 1 Ġmeter Ġforward .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġsay . run () ĊĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġthe ĠAct uation Ġservice Ġfrom Ġthe ĠQ i Context . ĊĠĠĠĠĠĠĠ Ġval Ġact uation Ġ= Ġq i Context . act uation ĊĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġthe Ġrobot Ġframe . ĊĠĠĠĠĠĠĠ Ġval Ġrobot Frame Ġ= Ġact uation . robot Frame () ĊĊĠĠĠĠĠĠĠ Ġ// ĠCreate Ġa Ġtransform Ġcorresponding Ġto Ġa Ġ 1 Ġmeter Ġforward Ġtranslation . ĊĠĠĠĠĠĠĠ Ġval Ġtransform Ġ= ĠTransform Builder . create () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. from X Translation ( 1 . 0 ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġthe ĠMapping Ġservice Ġfrom Ġthe ĠQ i Context . ĊĠĠĠĠĠĠĠ Ġval Ġmapping Ġ= Ġq i Context . mapping ĊĊĠĠĠĠĠĠĠ Ġ// ĠCreate Ġa ĠFree Frame Ġwith Ġthe ĠMapping Ġservice . ĊĠĠĠĠĠĠĠ Ġval Ġtarget Frame Ġ= Ġmapping . make Free Frame () ĊĊĠĠĠĠĠĠĠ Ġ// ĠUpdate Ġthe Ġtarget Ġlocation Ġrelatively Ġto ĠP ep per 's Ġcurrent Ġlocation . ĊĠĠĠĠĠĠĠ Ġtarget Frame . update ( robot Frame , Ġtransform , Ġ 0 L ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠCreate Ġa ĠGo To Ġaction . ĊĠĠĠĠĠĠĠ Ġval Ġgo To Ġ= ĠGo To Builder . with ( qi Context ) Ġ// ĠCreate Ġthe Ġbuilder Ġwith Ġthe ĠQ i Context . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Frame ( target Frame . frame ()) Ġ// ĠSet Ġthe Ġtarget Ġframe . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () Ġ// ĠBuild Ġthe ĠGo To Ġaction . ĊĊĠĠĠĠĠĠĠ Ġ// ĠAdd Ġan Ġon Ġstarted Ġlistener Ġon Ġthe ĠGo To Ġaction . ĊĠĠĠĠĠĠĠ Ġgo To . add On Started Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġ" Go To Ġaction Ġstarted ." ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i ( TAG , Ġmessage ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay Line ( message , ĠCon versation ItemType . INFO _ LOG ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthis . goTo Ġ= Ġgo To ĊĊĠĠĠĠĠĠĠ Ġ// ĠExecute Ġthe ĠGo To Ġaction Ġasynchronously . ĊĠĠĠĠĠĠĠ Ġval Ġgo To Future Ġ= Ġgo To . async (). run () ĊĊĠĠĠĠĠĠĠ Ġ// ĠAdd Ġa Ġlambda Ġto Ġthe Ġaction Ġexecution . ĊĠĠĠĠĠĠĠ Ġgo To Future . then Consume Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . is Success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġ" Go To Ġaction Ġfinished Ġwith Ġsuccess ." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i ( TAG , Ġmessage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay Line ( message , ĠCon versation ItemType . INFO _ LOG ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( it . has Error ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġ" Go To Ġaction Ġfinished Ġwith Ġerror ." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġmessage , Ġit . error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay Line ( message , ĠCon versation ItemType . ERROR _ LOG ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Robot Focus Lost () Ġ{ ĊĠĠĠĠĠĠĠ Ġconversation Binder ?. unbind () ĊĊĠĠĠĠĠĠĠ Ġ// ĠRemove Ġon Ġstarted Ġlisteners Ġfrom Ġthe ĠGo To Ġaction . ĊĠĠĠĠĠĠĠ Ġgo To ?. removeAll On Start edList eners () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Robot Focus Ref used ( reason : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠNothing Ġhere . ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdisplay Line ( text : ĠString , Ġtype : ĠCon versation ItemType ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ Ġconversation _ view ?. add Line ( text , Ġtype ) Ġ} ĊĠĠĠ Ġ} Ċ } Ċ