/* Ċ Ġ* Ġ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 . style Ċ Ċ import Ġandroid . graphics . drawable . Icon Ċ import Ġandroidx . annotation . Restrict To Ċ import Ġandroidx . we ar . watch face . style . data . Boolean User Style Category WireFormat Ċ import Ġandroidx . we ar . watch face . style . data . Double Range User Style Category WireFormat Ċ import Ġandroidx . we ar . watch face . style . data . List User Style Category WireFormat Ċ import Ġandroidx . we ar . watch face . style . data . Long Range User Style Category WireFormat Ċ import Ġandroidx . we ar . watch face . style . data . User Style Category WireFormat Ċ Ċ /** Ċ Ġ* ĠWatch Ġfaces Ġoften Ġhave Ġuser Ġconfigurable Ġstyles . ĠThe Ġdefinition Ġof Ġwhat Ġis Ġa Ġstyle Ġis Ġleft Ġup Ċ Ġ* Ġto Ġthe Ġwatch Ġface Ġbut Ġit Ġtypically Ġincorpor ates Ġa Ġvariety Ġof Ġcategories Ġsuch Ġas : Ġcolor , Ċ Ġ* Ġvisual Ġtheme Ġfor Ġwatch Ġhands , Ġfont , Ġtick Ġshape , Ġcomp lications , Ġaudio Ġelements , Ġetc ... Ċ Ġ*/ Ċ abstract Ġclass ĠUser Style Category ( ĊĠĠĠ Ġ/** ĠIdentifier Ġfor Ġthe Ġelement , Ġmust Ġbe Ġunique . Ġ*/ ĊĠĠĠ Ġval Ġid : ĠString , ĊĊĠĠĠ Ġ/** ĠLocal ized Ġhuman Ġreadable Ġname Ġfor Ġthe Ġelement , Ġused Ġin Ġthe Ġuser Style Ġselection ĠUI . Ġ*/ ĊĠĠĠ Ġval ĠdisplayName : ĠString , ĊĊĠĠĠ Ġ/** ĠLocal ized Ġdescription Ġstring Ġdisplayed Ġunder Ġthe ĠdisplayName . Ġ*/ ĊĠĠĠ Ġval Ġdescription : ĠString , ĊĊĠĠĠ Ġ/** ĠIcon Ġfor Ġuse Ġin Ġthe Ġstyle Ġselection ĠUI . Ġ*/ ĊĠĠĠ Ġval Ġicon : ĠIcon ?, ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠList Ġof Ġoptions Ġfor Ġthis ĠUser Style Category . ĠDep ending Ġon Ġthe Ġtype Ġof ĠUser Style Category Ġthis ĊĠĠĠĠ Ġ* Ġmay Ġbe Ġan Ġex haustive Ġlist , Ġor Ġjust Ġexamples Ġto Ġpopulate Ġa ĠListView Ġin Ġcase Ġthe ĊĠĠĠĠ Ġ* ĠUser Style Category Ġisn 't Ġsupported Ġby Ġthe ĠUI Ġ( e . g . Ġa Ġnew ĠWatch Face Ġwith Ġan Ġold ĠComp anion ). ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġoptions : ĠList < Option >, ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġdefault Ġoption Ġindex , Ġused Ġif Ġnothing Ġhas Ġbeen Ġselected Ġwithin Ġthe Ġ[ options ] Ġlist . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġdefault Option Index : ĠInt , ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUsed Ġby Ġthe Ġstyle Ġconfiguration ĠUI . ĠDescri bes Ġwhich Ġrendering Ġlayers Ġthis Ġstyle Ġaffects . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġaffects Layers : ĠCollection < Layer > Ċ ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** Ġ@ hide Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Restrict To ( Restrict To . Scope . LIBRARY _ GROUP _ PREFIX ) ĊĠĠĠĠĠĠĠ Ġfun Ġcreate From WireFormat ( wire Format : ĠUser Style Category WireFormat ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( wire Format ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBoolean User Style Category WireFormat Ġ-> ĠBoolean User Style Category ( wire Format ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDouble Range User Style Category WireFormat Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDouble Range User Style Category ( wire Format ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠList User Style Category WireFormat Ġ-> ĠList User Style Category ( wire Format ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLong Range User Style Category WireFormat Ġ-> ĠLong Range User Style Category ( wire Format ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Unknown ĠStyle Category WireFormat Ġ" Ġ+ Ġwire Format :: java Class . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( default Option Index Ġ>= Ġ 0 Ġ&& Ġdefault Option Index Ġ< Ġoptions . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" default Option Index Ġmust Ġbe Ġin Ġthe Ġrange Ġ[ 0 Ġ.. Ġoptions . size )" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġget Category Option For Id ( id : ĠString ?) Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( id Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoptions [ default Option Index ] ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Option For Id ( id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġconstructor ( wire Format : ĠUser Style Category WireFormat ) Ġ: Ġthis ( ĊĠĠĠĠĠĠĠ Ġwire Format . m Id , ĊĠĠĠĠĠĠĠ Ġwire Format . m DisplayName , ĊĠĠĠĠĠĠĠ Ġwire Format . m Description , ĊĠĠĠĠĠĠĠ Ġwire Format . m Icon , ĊĠĠĠĠĠĠĠ Ġwire Format . m Options . map Ġ{ ĠOption . createFrom WireFormat ( it ) Ġ}, ĊĠĠĠĠĠĠĠ Ġwire Format . m Default Option Index , ĊĠĠĠĠĠĠĠ Ġwire Format . mA ffect s Layers . map Ġ{ ĠLayer . values ()[ it ] Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ/** Ġ@ hide Ġ*/ ĊĠĠĠ Ġ@ Restrict To ( Restrict To . Scope . LIBRARY _ GROUP _ PREFIX ) ĊĠĠĠ Ġabstract Ġfun Ġto WireFormat (): ĠUser Style Category WireFormat ĊĊĠĠĠ Ġ/** Ġ@ hide Ġ*/ ĊĠĠĠ Ġ@ Restrict To ( Restrict To . Scope . LIBRARY _ GROUP _ PREFIX ) ĊĠĠĠ Ġfun Ġget WireFormat Options List () Ġ= Ġoptions . map Ġ{ Ġit . to WireFormat () Ġ} ĊĊĠĠĠ Ġ/** ĠReturns Ġthe Ġdefault Ġfor Ġwhen Ġthe Ġuser Ġhasn 't Ġselected Ġan Ġoption . Ġ*/ ĊĠĠĠ Ġfun ĠgetDefault Option () Ġ= Ġoptions [ default Option Index ] ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRepresents Ġa Ġchoice Ġwithin Ġa Ġstyle Ġcategory . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ property Ġid ĠMachine Ġreadable Ġidentifier Ġfor Ġthe Ġstyle Ġsetting . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġabstract Ġclass ĠOption ( ĊĠĠĠĠĠĠĠ Ġ/** ĠIdentifier Ġfor Ġthe Ġoption , Ġmust Ġbe Ġunique Ġwithin Ġthe ĠUser Style Category . Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġid : ĠString ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** Ġ@ hide Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Restrict To ( Restrict To . Scope . LIBRARY _ GROUP _ PREFIX ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġcreate From WireFormat ( wire Format : ĠUser Style Category WireFormat . Option WireFormat ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( wire Format ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBoolean User Style Category WireFormat . Boolean Option WireFormat Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBoolean User Style Category . Boolean Option ( wire Format ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDouble Range User Style Category WireFormat . Double Range Option WireFormat Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDouble Range User Style Category . Double Range Option ( wire Format ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠList User Style Category WireFormat . List Option WireFormat Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠList User Style Category . List Option ( wire Format ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLong Range User Style Category WireFormat . Long Range Option WireFormat Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLong Range User Style Category . Long Range Option ( wire Format ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Unknown ĠStyle Category WireFormat . Option WireFormat Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwire Format :: java Class . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** Ġ@ hide Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Restrict To ( Restrict To . Scope . LIBRARY _ GROUP _ PREFIX ) ĊĠĠĠĠĠĠĠ Ġabstract Ġfun Ġto WireFormat (): ĠUser Style Category WireFormat . Option WireFormat ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTrans lates Ġan Ġoption Ġname Ġinto Ġan Ġoption . ĠThis Ġwill Ġneed Ġto Ġbe Ġoverridden Ġfor Ġuser Style ĊĠĠĠĠ Ġ* Ġcategories Ġthat Ġcan 't Ġsens ibly Ġbe Ġfully Ġenum erated Ġ( e . g . Ġa Ġfull Ġ 2 4 - bit Ġcolor Ġpicker ). ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġoption Id ĠThe ĠID Ġof Ġthe Ġoption ĊĠĠĠĠ Ġ* Ġ@ return ĠAn Ġ[ Option ] Ġcorresponding Ġto Ġthe Ġname . ĠThis Ġcould Ġeither Ġbe Ġone Ġof Ġthe ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġoptions Ġfrom Ġuser Style Categories Ġor Ġa Ġnewly Ġconstructed ĠOption Ġdepending Ġon Ġthe Ġnature ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġof Ġthe ĠUser Style Category . ĠIf Ġoption Name Ġis Ġun recognized Ġthen Ġthe Ġdefault Ġvalue Ġfor Ġthe ĊĠĠĠĠ Ġ* ĠĠĠĠ Ġcategory Ġshould Ġbe Ġreturned . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġget Option For Id ( option Id : ĠString ) Ġ= ĊĠĠĠĠĠĠĠ Ġoptions . find Ġ{ Ġit . id Ġ== Ġoption Id Ġ} Ġ?: Ġoptions [ default Option Index ] Ċ } Ċ