/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* Ġ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 Ġandroidx . we ar . watch face . client Ċ Ċ import Ġandroid . content . Component Name Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . Service Connection Ċ import Ġandroid . os . IB inder Ċ import Ġandroidx . concurrent . futures . Res olvable Future Ċ import Ġandroidx . we ar . comp lications . data . Comp lication Data Ċ import Ġandroidx . we ar . watch face . control . I Interactive Watch Face W CS Ċ import Ġandroidx . we ar . watch face . control . IP ending Interactive Watch Face W CS Ċ import Ġandroidx . we ar . watch face . control . I Watch Face Control Service Ċ import Ġandroidx . we ar . watch face . control . Watch Face Control Service Ċ import Ġandroidx . we ar . watch face . control . data . Head less Watch Face Instance Params Ċ import Ġandroidx . we ar . watch face . control . data . Wall paper Interactive Watch Face Instance Params Ċ import Ġandroidx . we ar . watch face . data . Id And Comp lication Data WireFormat Ċ import Ġandroidx . we ar . watch face . style . User Style Ċ import Ġcom . google . common . util . concurrent . List enable Future Ċ Ċ /** Ċ Ġ* ĠConnect s Ġto Ġa Ġwatch Ġface 's ĠWatch Face Control Service Ġwhich Ġallows Ġthe Ġuser Ġto Ġcontrol Ġthe Ċ Ġ* Ġwatch Ġface . Ċ Ġ*/ Ċ public Ġinterface ĠWatch Face Control Client Ġ: ĠAuto Closeable Ġ{ ĊĊĠĠĠ Ġpublic Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĠConstructs Ġa Ġclient Ġwhich Ġconnects Ġto Ġa Ġwatch Ġface Ġin Ġthe Ġgiven Ġandroid Ġpackage . Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġpublic Ġfun Ġcreate Watch Face Control Client ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĠCalling Ġapplication 's Ġ[ Context ]. Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĠThe Ġname Ġof Ġthe Ġpackage Ġcontaining Ġthe Ġwatch Ġface Ġcontrol Ġservice Ġto Ġbind Ġto . Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwatch Face PackageName : ĠString ĊĠĠĠĠĠĠĠ Ġ): ĠWatch Face Control Client Ġ= ĠWatch Face Control Client Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( Watch Face Control Service . ACTION _ WATCH FACE _ CONTROL _ SERVICE ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . set Package ( watch Face PackageName ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠException Ġthrown Ġby Ġ[ Watch Face Control Client ] Ġmethods Ġwhen Ġthe Ġremote Ġservice Ġis Ġnot Ġbound . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġclass ĠService Not Bound Exception Ġ: ĠException () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthe Ġ[ Interactive Watch Face Sys Ui Client ] Ġfor Ġthe Ġgiven Ġinstance Ġid , Ġor Ġnull Ġif Ġno Ġsuch ĊĠĠĠĠ Ġ* Ġinstance Ġexists . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠWhen Ġfinished Ġcall Ġ[ Interactive Watch Face Sys Ui Client . close ] Ġto Ġrelease Ġresources . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġinstance Id ĠThe Ġname Ġof Ġthe Ġinteractive Ġwatch Ġface Ġinstance Ġto Ġretrieve ĊĠĠĠĠ Ġ* Ġ@ return ĠA Ġ[ List enable Future ] Ġfor Ġthe Ġ[ Interactive Watch Face Sys Ui Client ] Ġor Ġ` null ` Ġif ĊĠĠĠĠ Ġ* ĠĠĠ Ġ[ instanceId ] Ġis Ġun recognized , Ġor Ġ[ Service Not Bound Exception ] Ġif Ġthe ĊĠĠĠĠ Ġ* ĠĠĠ ĠWatch Face Control Service Ġis Ġnot Ġbound . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġget Interactive Watch Face Sys Ui Client Instance ( ĊĠĠĠĠĠĠĠ Ġinstance Id : ĠString ĊĠĠĠ Ġ): ĠList enable Future < Interactive Watch Face Sys Ui Client ?> ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġa Ġ[ Head less Watch Face Client ] Ġwith Ġthe Ġspecified Ġ[ Device Config ]. ĠScreenshots Ġmade Ġwith ĊĠĠĠĠ Ġ* Ġ[ Head less Watch Face Client . take Watch Face Screenshot ] Ġwill Ġbe Ġ` surface Width ` Ġx Ġ` surface Height ` Ġin ĊĠĠĠĠ Ġ* Ġsize . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠWhen Ġfinished Ġcall Ġ[ Head less Watch Face Client . close ] Ġto Ġrelease Ġresources . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġwatch Face Name ĠThe Ġ[ Component Name ] Ġof Ġthe Ġwatch Ġface Ġto Ġcreate Ġa Ġhead less Ġinstance Ġfor ĊĠĠĠĠ Ġ* ĠĠĠ Ġmust Ġbe Ġin Ġthe Ġsame ĠA PK Ġthe ĠWatch Face Control Client Ġis Ġconnected Ġto . ĠNB Ġa Ġsingle Ġapk Ġcan ĊĠĠĠĠ Ġ* ĠĠĠ Ġcontain Ġmultiple Ġwatch Ġfaces . ĊĠĠĠĠ Ġ* Ġ@ param Ġdevice Config ĠThe Ġhardware Ġ[ Device Config ] ĊĠĠĠĠ Ġ* Ġ@ param Ġsurface Width ĠThe Ġwidth Ġof Ġscreen Ġsh ots Ġtaken Ġby Ġthe Ġ[ Head less Watch Face Client ] ĊĠĠĠĠ Ġ* Ġ@ param Ġsurface Height ĠThe Ġheight Ġof Ġscreen Ġsh ots Ġtaken Ġby Ġthe Ġ[ Head less Watch Face Client ] ĊĠĠĠĠ Ġ* Ġ@ return ĠA Ġ[ List enable Future ] Ġfor Ġthe Ġ[ Head less Watch Face Client ] Ġor Ġ` null ` Ġif Ġ[ watch Face Name ] ĊĠĠĠĠ Ġ* ĠĠĠ Ġis Ġun recognized , Ġor Ġ[ Service Not Bound Exception ] Ġif Ġthe ĠWatch Face Control Service Ġis Ġnot ĊĠĠĠĠ Ġ* ĠĠĠ Ġbound . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġcreate Head less Watch Face Client ( ĊĠĠĠĠĠĠĠ Ġwatch Face Name : ĠComponent Name , ĊĠĠĠĠĠĠĠ Ġdevice Config : ĠDevice Config , ĊĠĠĠĠĠĠĠ Ġsurface Width : ĠInt , ĊĠĠĠĠĠĠĠ Ġsurface Height : ĠInt ĊĠĠĠ Ġ): ĠList enable Future < Head less Watch Face Client ?> ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRequests Ġeither Ġan Ġexisting Ġ[ Interactive Watch Face W cs Client ] Ġwith Ġthe Ġspecified Ġ[ id ] Ġor ĊĠĠĠĠ Ġ* Ġs chedules Ġcreation Ġof Ġan Ġ[ Interactive Watch Face W cs Client ] Ġfor Ġthe Ġnext Ġtime Ġthe ĊĠĠĠĠ Ġ* ĠWall paper Service Ġcreates Ġan Ġengine . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠNOTE Ġthat Ġcurrently Ġonly Ġone Ġ[ Interactive Watch Face W cs Client ] Ġper Ġprocess Ġcan Ġexist Ġat Ġa Ġtime . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġid ĠThe ĠID Ġfor Ġthe Ġrequested Ġ[ Interactive Watch Face W cs Client ]. ĊĠĠĠĠ Ġ* Ġ@ param Ġdevice Config ĠThe Ġ[ Device Config ] Ġfor Ġthe Ġwe arable . ĊĠĠĠĠ Ġ* Ġ@ param Ġsystem State ĠThe Ġinitial Ġ[ System State ] Ġfor Ġthe Ġwe arable . ĊĠĠĠĠ Ġ* Ġ@ param Ġuser Style ĠThe Ġinitial Ġ[ User Style ], Ġor Ġnull Ġif Ġthe Ġdefault Ġshould Ġbe Ġused . ĊĠĠĠĠ Ġ* Ġ@ param Ġid To Comp lication Data ĠThe Ġinitial Ġcomp lication Ġdata , Ġor Ġnull Ġif Ġunavailable . ĊĠĠĠĠ Ġ* Ġ@ return Ġa Ġ[ List enable Future ] Ġfor Ġa Ġ[ Interactive Watch Face W cs Client ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġget OrCreate Wall paper Service Back ed Interactive Watch Face W cs Client ( ĊĠĠĠĠĠĠĠ Ġid : ĠString , ĊĠĠĠĠĠĠĠ Ġdevice Config : ĠDevice Config , ĊĠĠĠĠĠĠĠ Ġsystem State : ĠSystem State , ĊĠĠĠĠĠĠĠ Ġuser Style : ĠUser Style ?, ĊĠĠĠĠĠĠĠ Ġid To Comp lication Data : ĠMap < Int , ĠComp lication Data >? ĊĠĠĠ Ġ): ĠList enable Future < Interactive Watch Face W cs Client > Ċ } Ċ Ċ internal Ġclass ĠWatch Face Control Client Impl Ġinternal Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġcontext : ĠContext , ĊĠĠĠ Ġservice Intent : ĠIntent Ċ ) Ġ: ĠWatch Face Control Client Ġ{ ĊĊĠĠĠ Ġinternal Ġvar Ġservice Future Ġ= ĠRes olvable Future . create < I Watch Face Control Service ?> () ĊĊĠĠĠ Ġprivate Ġval Ġservice Connection Ġ= Ġobject Ġ: ĠService Connection Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Service Connected ( name : ĠComponent Name , Ġbinder : ĠI Binder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice Future . set ( I Watch Face Control Service . Stub . as Interface ( binder )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Service Disconnected ( name : ĠComponent Name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice Future . set ( null ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! context . bind Service ( service Intent , Ġservice Connection , ĠContext . BIND _ AUTO _ CREATE )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice Future . set ( null ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Interactive Watch Face Sys Ui Client Instance ( ĊĠĠĠĠĠĠĠ Ġinstance Id : ĠString ĊĠĠĠ Ġ): ĠList enable Future < Interactive Watch Face Sys Ui Client ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Future Ġ= ĠRes olvable Future . create < Interactive Watch Face Sys Ui Client >() ĊĠĠĠĠĠĠĠ Ġservice Future . addListener ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġservice Ġ= Ġservice Future . get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( service Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Future . set Exception ( Watch Face Control Client . Service Not Bound Exception ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Future . set ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInteractive Watch Face Sys Ui Client Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġservice . get Interactive Watch Face Instance Sys UI ( instanceId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġrunnable Ġ-> Ġrunnable . run () Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult Future ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Head less Watch Face Client ( ĊĠĠĠĠĠĠĠ Ġwatch Face Name : ĠComponent Name , ĊĠĠĠĠĠĠĠ Ġdevice Config : ĠDevice Config , ĊĠĠĠĠĠĠĠ Ġsurface Width : ĠInt , ĊĠĠĠĠĠĠĠ Ġsurface Height : ĠInt ĊĠĠĠ Ġ): ĠList enable Future < Head less Watch Face Client ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Future Ġ= ĠRes olvable Future . create < Head less Watch Face Client ?> () ĊĠĠĠĠĠĠĠ Ġservice Future . addListener ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġservice Ġ= Ġservice Future . get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( service Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Future . set Exception ( Watch Face Control Client . Service Not Bound Exception ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Future . set ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHead less Watch Face Client Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġservice . create Head less Watch Face Instance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHead less Watch Face Instance Params ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwatch Face Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroidx . we ar . watch face . data . Device Config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevice Config . has Low Bit Ambient , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevice Config . has Burn In Protection , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevice Config . screen Shape , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevice Config . an alog Preview Reference Time Millis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevice Config . digital Preview Reference Time Millis ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsurface Width , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsurface Height ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġrunnable Ġ-> Ġrunnable . run () Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult Future ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget OrCreate Wall paper Service Back ed Interactive Watch Face W cs Client ( ĊĠĠĠĠĠĠĠ Ġid : ĠString , ĊĠĠĠĠĠĠĠ Ġdevice Config : ĠDevice Config , ĊĠĠĠĠĠĠĠ Ġsystem State : ĠSystem State , ĊĠĠĠĠĠĠĠ Ġuser Style : ĠUser Style ?, ĊĠĠĠĠĠĠĠ Ġid To Comp lication Data : ĠMap < Int , ĠComp lication Data >? ĊĠĠĠ Ġ): ĠList enable Future < Interactive Watch Face W cs Client > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Future Ġ= ĠRes olvable Future . create < Interactive Watch Face W cs Client >() ĊĠĠĠĠĠĠĠ Ġservice Future . addListener ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġservice Ġ= Ġservice Future . get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( service Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Future . set Exception ( Watch Face Control Client . Service Not Bound Exception ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexisting Instance Ġ= Ġservice . get OrCreate Interactive Watch Face W CS ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWall paper Interactive Watch Face Instance Params ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroidx . we ar . watch face . data . Device Config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevice Config . has Low Bit Ambient , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevice Config . has Burn In Protection , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevice Config . screen Shape , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevice Config . an alog Preview Reference Time Millis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevice Config . digital Preview Reference Time Millis ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroidx . we ar . watch face . data . System State ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsystem State . in Ambient Mode , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsystem State . inter ruption Filter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser Style ?. to WireFormat (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid To Comp lication Data ?. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠId And Comp lication Data WireFormat ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . key , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . value . as Wire Comp lication Data () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠIP ending Interactive Watch Face W CS . Stub () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget ApiVersion () Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIP ending Interactive Watch Face W CS . API _ VERSION ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Interactive Watch Face W cs Created ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi Interactive Watch Face W cs : ĠI Interactive Watch Face W CS ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Future . set ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInteractive Watch Face W cs Client Impl ( i Interactive Watch Face W cs ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexisting Instance ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Future . set ( Interactive Watch Face W cs Client Impl ( it )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġrunnable Ġ-> Ġrunnable . run () Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult Future ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclose () Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . unbind Service ( service Connection ) ĊĠĠĠĠĠĠĠ Ġservice Future . set ( null ) ĊĠĠĠ Ġ} Ċ } Ċ