/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 Ġ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 . test Ċ Ċ import Ġandroid . content . Component Name Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . graphics . Rect Ċ import Ġandroid . graphics . Rect F Ċ import Ġandroid . os . Build Ċ import Ġandroid . view . Surface Ċ import Ġandroid . view . Surface Holder Ċ import Ġandroidx . test . core . app . Application Provider Ċ import Ġandroidx . test . ext . junit . runners . Android JUnit 4 Ċ import Ġandroidx . test . filters . Medium Test Ċ import Ġandroidx . we ar . watch face . Canvas Comp lication Ċ import Ġandroidx . we ar . watch face . Canvas Comp lication Factory Ċ import Ġandroidx . we ar . watch face . Canvas Type Ċ import Ġandroidx . we ar . watch face . Comp lication Slot Bounds Type Ċ import Ġandroidx . we ar . watch face . Comp lication Slot In fl ation Factory Ċ import Ġandroidx . we ar . watch face . Comp lication Slots Manager Ċ import Ġandroidx . we ar . watch face . Render Parameters Ċ import Ġandroidx . we ar . watch face . Renderer Ċ import Ġandroidx . we ar . watch face . Watch Face Ċ import Ġandroidx . we ar . watch face . Watch Face Service Ċ import Ġandroidx . we ar . watch face . Watch Face Type Ċ import Ġandroidx . we ar . watch face . Watch State Ċ import Ġandroidx . we ar . watch face . comp lications . System Data Sources Ċ import Ġandroidx . we ar . watch face . comp lications . data . Comp lication Data Ċ import Ġandroidx . we ar . watch face . comp lications . data . Comp lication Type Ċ import Ġandroidx . we ar . watch face . comp lications . data . No Data Comp lication Data Ċ import Ġandroidx . we ar . watch face . control . I Interactive Watch Face Ċ import Ġandroidx . we ar . watch face . control . IP ending Interactive Watch Face Ċ import Ġandroidx . we ar . watch face . control . Interactive Instance Manager Ċ import Ġandroidx . we ar . watch face . control . data . Crash Info Parcel Ċ import Ġandroidx . we ar . watch face . control . data . Wall paper Interactive Watch Face Instance Params Ċ import Ġandroidx . we ar . watch face . data . Device Config Ċ import Ġandroidx . we ar . watch face . data . Watch Ui State Ċ import Ġandroidx . we ar . watch face . style . CurrentUser Style Repository Ċ import Ġandroidx . we ar . watch face . style . data . User Style WireFormat Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Ass ume Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . mockito . Mock Ċ import Ġorg . mockito . Mockito Ċ import Ġorg . mockito . Mockito Annotations Ċ import Ġjava . time . Z onedDateTime Ċ import Ġjava . util . concurrent . Count DownLatch Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ private Ġconst Ġval ĠBIT MAP _ WIDTH Ġ= Ġ 4 0 0 Ċ private Ġconst Ġval ĠBIT MAP _ HEIGHT Ġ= Ġ 4 0 0 Ċ private Ġconst Ġval ĠTIME OUT _ MS Ġ= Ġ 8 0 0 L Ċ Ċ private Ġconst Ġval ĠINTER ACTIVE _ INSTANCE _ ID Ġ= Ġ" Interactive Test Instance " Ċ Ċ class ĠTest Xml Watch Face Service ( ĊĠĠĠ Ġtest Context : ĠContext , ĊĠĠĠ Ġprivate Ġvar Ġsurface Holder Override : ĠSurface Holder Ċ ) Ġ: ĠWatch Face Service () Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġattach Base Context ( test Context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Xml Watch Face ResourceId () Ġ= ĠR . xml . xml _ watch face ĊĊĠĠĠ Ġoverride Ġfun Ġget Wall paper Surface Holder Override () Ġ= Ġsurface Holder Override ĊĊĠĠĠ Ġoverride Ġfun Ġget Comp lication Slot In fl ation Factory () Ġ= ĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠComp lication Slot In fl ation Factory () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Canvas Comp lication Factory ( slot Id : ĠInt ): ĠCanvas Comp lication Factory Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠCanvas Comp lication Factory Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠCanvas Comp lication Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrender ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas : ĠCanvas , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbounds : ĠRect , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġz onedDateTime : ĠZ onedDateTime , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrender Parameters : ĠRender Parameters , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġslot Id : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdraw Highlight ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas : ĠCanvas , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbounds : ĠRect , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbounds Type : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġz onedDateTime : ĠZ onedDateTime , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetData () Ġ= ĠNo Data Comp lication Data () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġload Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Data : ĠComp lication Data , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Draw ables As ynchronous : ĠBoolean ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġcreate Watch Face ( ĊĠĠĠĠĠĠĠ Ġsurface Holder : ĠSurface Holder , ĊĠĠĠĠĠĠĠ Ġwatch State : ĠWatch State , ĊĠĠĠĠĠĠĠ Ġcomp lication Slots Manager : ĠComp lication Slots Manager , ĊĠĠĠĠĠĠĠ ĠcurrentUser Style Repository : ĠCurrent User Style Repository ĊĠĠĠ Ġ) Ġ= ĠWatch Face ( ĊĠĠĠĠĠĠĠ ĠWatch Face Type . DIG ITAL , ĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠRenderer . Canvas Renderer ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsurface Holder , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcurrentUser Style Repository , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwatch State , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCanvas Type . HARD WARE , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 6 L ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrender ( canvas : ĠCanvas , Ġbounds : ĠRect , Ġz onedDateTime : ĠZ onedDateTime ) Ġ{} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrender Highlight Layer ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcanvas : ĠCanvas , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbounds : ĠRect , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġz onedDateTime : ĠZ onedDateTime ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ċ } Ċ Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ @ Medium Test Ċ public Ġclass ĠXml Defined User Style Schema And Comp lication Slots Test Ġ{ ĊĊĠĠĠ Ġ@ Mock ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsurface Holder : ĠSurface Holder ĊĊĠĠĠ Ġ@ Mock ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsurface : ĠSurface ĊĊĠĠĠ Ġprivate Ġval Ġbitmap Ġ= ĠBitmap . create Bitmap ( BITMAP _ WIDTH , ĠBIT MAP _ HEIGHT , ĠBitmap . Config . ARGB _ 8 8 8 8 ) ĊĠĠĠ Ġprivate Ġval Ġcanvas Ġ= ĠCanvas ( bitmap ) ĊĠĠĠ Ġprivate Ġvar Ġinit Latch Ġ= ĠCount DownLatch ( 1 ) ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġinteractive Watch Face Instance : ĠI Interactive Watch Face ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġpublic Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ ĠAssume . assume True (" This Ġtest Ġsuite Ġassumes ĠAPI Ġ 2 9 ", ĠBuild . VERSION . SDK _ INT Ġ>= Ġ 2 9 ) ĊĠĠĠĠĠĠĠ ĠMockito Annotations . init Mocks ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Pending Wall paper Interactive Watch Face Instance () Ġ{ ĊĠĠĠĠĠĠĠ ĠInteractive Instance Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. get Existing Instance Or Set Pending Wall paper Interactive Watch Face Instance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInteractive Instance Manager . Pending Wall paper Interactive Watch Face Instance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWall paper Interactive Watch Face Instance Params ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠINTER ACTIVE _ INSTANCE _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDevice Config ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWatch Ui State ( false , Ġ 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUser Style WireFormat ( empty Map ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠIP ending Interactive Watch Face . Stub () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget ApiVersion () Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIP ending Interactive Watch Face . API _ VERSION ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Interactive Watch Face Created ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi Interactive Watch Face : ĠI Interactive Watch Face ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinteractive Watch Face Instance Ġ= Ġi Interactive Watch Face ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Latch . count Down () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Interactive Watch Face Cr ashed ( exception : ĠCrash Info Parcel ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . fail (" Watch Face Ġcr ashed : Ġ$ exception ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġpublic Ġfun Ġstatic Schema And Comp lications Read () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġservice Ġ= ĠTest Xml Watch Face Service ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApplication Provider . getApplicationContext < Context >(), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsurface Holder ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠMockito .` when `( surface Holder . surface Frame ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. thenReturn ( Rect ( 0 , Ġ 0 , ĠBIT MAP _ WIDTH , ĠBIT MAP _ HEIGHT )) ĊĠĠĠĠĠĠĠ ĠMockito .` when `( surface Holder . lock Hardware Canvas ()). thenReturn ( canvas ) ĊĠĠĠĠĠĠĠ ĠMockito .` when `( surface Holder . surface ). thenReturn ( surface ) ĊĠĠĠĠĠĠĠ ĠMockito .` when `( surface . isValid ). thenReturn ( false ) ĊĊĠĠĠĠĠĠĠ Ġset Pending Wall paper Interactive Watch Face Instance () ĊĊĠĠĠĠĠĠĠ Ġval Ġwrapper Ġ= Ġservice . onCreate Engine () Ġas ĠWatch Face Service . Engine Wrapper ĊĠĠĠĠĠĠĠ ĠassertThat ( init Latch . await ( TIMEOUT _ MS , ĠTimeUnit . MILLISECONDS )). isTrue () ĊĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwatch Face Impl Ġ= Ġwrapper . deferred Watch Face Impl . await () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġschema Ġ= Ġwatch Face Impl . currentUser Style Repository . schema ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( schema . user Style Settings . size ). isEqualTo ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( schema . user Style Settings [ 0 ]. id . value ). isEqualTo (" Time Style ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwatch Face Impl . comp lication Slots Manager . comp lication Slots . size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). isEqualTo ( 2 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġslot A Ġ= Ġwatch Face Impl . comp lication Slots Manager . comp lication Slots [ 1 0 ] !! ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( slot A . bounds Type ). isEqualTo ( Comp lication Slot Bounds Type . ROUND _ RECT ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( slot A . supported Types ). contains Exactly ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComp lication Type . SHORT _ TEXT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComp lication Type . RAN GED _ VALUE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComp lication Type . SMALL _ IMAGE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( slot A . default DataSource Type ). isEqualTo ( Comp lication Type . RAN GED _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( slot A . default DataSource Policy . primary DataSource ). isNull () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( slot A . default DataSource Policy . secondary DataSource ). isNull () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( slot A . default DataSource Policy . system DataSource Fallback ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSystem Data Sources . DATA _ SOURCE _ WATCH _ B ATTER Y ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġslot A . comp lication Slot Bounds . per Comp lication Type Bounds [ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComp lication Type . SHORT _ TEXT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ] !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRect F ( 0 . 3 f , Ġ 0 . 7 f , Ġ 0 . 7 f , Ġ 0 . 9 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġslot B Ġ= Ġwatch Face Impl . comp lication Slots Manager . comp lication Slots [ 2 0 ] !! ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( slot B . bounds Type ). isEqualTo ( Comp lication Slot Bounds Type . BACKGROUND ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( slot B . supported Types ). contains Exactly ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComp lication Type . LONG _ TEXT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( slot B . default DataSource Type ). isEqualTo ( Comp lication Type . LONG _ TEXT ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( slot B . default DataSource Policy . primary DataSource ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComponent Name (" com . package ", Ġ" com . app ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( slot B . default DataSource Policy . secondary DataSource ). isNull () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( slot B . default DataSource Policy . system DataSource Fallback ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSystem Data Sources . DATA _ SOURCE _ SUN RI SE _ SUN SET ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġslot B . comp lication Slot Bounds . per Comp lication Type Bounds [ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComp lication Type . SHORT _ TEXT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ] !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRect F ( 0 . 1 f , Ġ 0 . 2 f , Ġ 0 . 3 f , Ġ 0 . 4 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinteractive Watch Face Instance . release () ĊĠĠĠ Ġ} Ċ } Ċ