/** Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 ĠSK ĠTele com ĠCo ., ĠLtd . ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp : www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . sk t . n ugu . sdk . agent . display Ċ Ċ import Ġcom . google . gson . annotations . SerializedName Ċ import Ġcom . sk t . n ugu . sdk . agent . Abstract Directive Handler Ċ import Ġcom . sk t . n ugu . sdk . agent . Default Display Agent Ċ import Ġcom . sk t . n ugu . sdk . agent . common . Direction Ċ import Ġcom . sk t . n ugu . sdk . agent . util . Ignore Error Context Request or Ċ import Ġcom . sk t . n ugu . sdk . agent . util . Message Factory Ċ import Ġcom . sk t . n ugu . sdk . core . interfaces . common . Namespace And Name Ċ import Ġcom . sk t . n ugu . sdk . core . interfaces . context . Context Getter Interface Ċ import Ġcom . sk t . n ugu . sdk . core . interfaces . directive . Blocking Policy Ċ import Ġcom . sk t . n ugu . sdk . core . interfaces . message . Message Request Ċ import Ġcom . sk t . n ugu . sdk . core . interfaces . message . Message Sender Ċ import Ġcom . sk t . n ugu . sdk . core . interfaces . message . Status Ċ import Ġcom . sk t . n ugu . sdk . core . interfaces . message . request . Event Message Request Ċ import Ġcom . sk t . n ugu . sdk . core . utils . Logger Ċ Ċ class ĠControl Focus Directive Handler ( ĊĠĠĠ Ġprivate Ġval Ġcontroller : ĠController , ĊĠĠĠ Ġprivate Ġval Ġcontext Getter : ĠContext Getter Interface , ĊĠĠĠ Ġprivate Ġval Ġmessage Sender : ĠMessage Sender , ĊĠĠĠ Ġprivate Ġval Ġnamespace And Name : ĠNamespace And Name Ċ ) Ġ: ĠAbstract Directive Handler () Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" Control Focus Directive Handler " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠNAME _ CONTROL _ FOCUS Ġ= Ġ" Control Focus " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠNAME _ SUCCEEDED Ġ= Ġ" Succeeded " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠNAME _ FAILED Ġ= Ġ" Failed " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠCONT ROL _ FOCUS Ġ= ĠNamespace And Name ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDefault Display Agent . NAMESPACE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNAME _ CONTROL _ FOCUS ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠController Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcontrol Focus ( play Service Id : ĠString , Ġdirection : ĠDirection ): ĠBoolean ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġdata Ġclass ĠControl Focus Payload ( ĊĠĠĠĠĠĠĠ Ġ@ SerializedName (" play Service Id ") ĊĠĠĠĠĠĠĠ Ġval Ġplay Service Id : ĠString , ĊĠĠĠĠĠĠĠ Ġ@ SerializedName (" direction ") ĊĠĠĠĠĠĠĠ Ġval Ġdirection : ĠDirection ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġpre Handle Directive ( info : ĠDirective Info ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġno - op ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhandle Directive ( info : ĠDirective Info ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpayload Ġ= ĠMessage Factory . create ( info . directive . payload , ĠControl Focus Payload :: class . java ) ĊĠĠĠĠĠĠĠ Ġif Ġ( payload Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLogger . w ( TAG , Ġ"[ handle Directive ] Ġcontrol Focus Ġ- Ġinvalid Ġpayload ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Handling Failed ( info , Ġ"[ handle Directive ] Ġcontrol Focus Ġ- Ġinvalid Ġpayload ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġref errer Dialog RequestId Ġ= Ġinfo . directive . header . dialog RequestId ĊĠĠĠĠĠĠĠ Ġif Ġ( controller . control Focus ( payload . play Service Id , Ġpayload . direction )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Control Focus Event ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo . directive . payload , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ NAME _ CONTROL _ FOCUS $ NAME _ SUCCEEDED ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġref errer Dialog RequestId ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Control Focus Event ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo . directive . payload , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ NAME _ CONTROL _ FOCUS $ NAME _ FAILED ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġref errer Dialog RequestId ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset Handling Completed ( info ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Handling Failed ( info : ĠDirective Info , Ġdescription : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinfo . result . set Failed ( description ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Handling Completed ( info : ĠDirective Info ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinfo . result . set Completed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcancel Directive ( info : ĠDirective Info ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Control Focus Event ( ĊĠĠĠĠĠĠĠ Ġpayload : ĠString , ĊĠĠĠĠĠĠĠ Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġref errer Dialog RequestId : ĠString ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext Getter . getContext ( object Ġ: ĠIgnore Error Context Request or () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Context ( json Context : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Sender . new Call ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Message Request . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjson Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnamespace And Name . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDefault Display Agent . VERSION . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). payload ( payload ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. referrer Dialog RequestId ( referrer Dialog RequestId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). enqueue ( Ġobject Ġ: ĠMessage Sender . Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( request : ĠMessage Request , Ġstatus : ĠStatus ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( request : ĠMessage Request ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response Start ( request : ĠMessage Request ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, Ġnamespace And Name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Configuration (): ĠMap < Namespace And Name , ĠBlock ing Policy > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġblocking Policy Ġ= ĠBlock ing Policy ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock ing Policy . MEDIUM _ AUDIO , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBlock ing Policy . MEDIUM _ AUDIO _ ONLY ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġconfiguration Ġ= ĠHashMap < Namespace And Name , ĠBlock ing Policy >() ĊĊĠĠĠĠĠĠĠ Ġconfiguration [ CONTROL _ FOCUS ] Ġ= Ġblocking Policy ĊĊĠĠĠĠĠĠĠ Ġreturn Ġconfiguration ĊĠĠĠ Ġ} Ċ }