/* Ċ Ġ* Ġ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 . comp lications Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Component Name Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . Service Connection Ċ import Ġandroid . graphics . drawable . Icon Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . IB inder Ċ import Ġandroid . support . we arable . comp lications . IP review Comp lication Data Callback Ċ import Ġandroid . support . we arable . comp lications . I Provider Info Service Ċ import Ġandroidx . annotation . Requires Api Ċ import Ġandroidx . annotation . Restrict To Ċ import Ġandroidx . annotation . Visible ForTesting Ċ import Ġandroidx . we ar . comp lications . Comp lication DataSource Info Retriever . Result Ċ import Ġandroidx . we ar . comp lications . data . Comp lication Data Ċ import Ġandroidx . we ar . comp lications . data . Comp lication Type Ċ import Ġandroidx . we ar . comp lications . data . Comp lication Type . Companion . from Wire Type Ċ import Ġandroidx . we ar . comp lications . data . Long Text Comp lication Data Ċ import Ġandroidx . we ar . comp lications . data . Mono chrom atic Image Ċ import Ġandroidx . we ar . comp lications . data . Mono chrom atic Image Comp lication Data Ċ import Ġandroidx . we ar . comp lications . data . No Data Comp lication Data Ċ import Ġandroidx . we ar . comp lications . data . Photo Image Comp lication Data Ċ import Ġandroidx . we ar . comp lications . data . Plain Comp lication Text Ċ import Ġandroidx . we ar . comp lications . data . Range d Value Comp lication Data Ċ import Ġandroidx . we ar . comp lications . data . Short Text Comp lication Data Ċ import Ġandroidx . we ar . comp lications . data . Small Image Ċ import Ġandroidx . we ar . comp lications . data . Small Image Comp lication Data Ċ import Ġandroidx . we ar . comp lications . data . Small ImageType Ċ import Ġandroidx . we ar . comp lications . data . to Api Comp lication Data Ċ import Ġandroidx . we ar . utility . Trace Event Ċ import Ġkotlinx . coroutines . Comp letable Deferred Ċ import Ġkotlinx . coroutines . suspend C ancellable Coroutine Ċ import Ġkotlin . coroutines . resume Ċ import Ġkotlin . coroutines . resume With Exception Ċ Ċ private Ġtype alias ĠWire Comp lication Provider Info Ġ= ĊĠĠĠ Ġandroid . support . we arable . comp lications . Comp lication Provider Info Ċ Ċ /** Ċ Ġ* ĠRetrieves Ġ[ Result ] Ġfor Ġa Ġwatch Ġface 's Ġcomp lications . Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠTo Ġuse Ġconstruct Ġan Ġinstance Ġand Ġcall Ġ[ retrieve Comp lication DataSource Info ] Ġwhich Ġreturns Ġan Ġarray Ċ Ġ* Ġof Ġ[ Result ] Ġobjects . Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠFurther Ġcalls Ġto Ġ[ retrieve Comp lication DataSource Info ] Ġmay Ġbe Ġmade Ġusing Ġthe Ġsame Ġinstance Ġof Ġthis Ċ Ġ* Ġclass , Ġbut Ġ[ close ] Ġmust Ġbe Ġcalled Ġwhen Ġit Ġis Ġno Ġlonger Ġneeded . ĠOnce Ġrelease Ġhas Ġbeen Ċ Ġ* Ġcalled , Ġfurther Ġretrieval Ġattempts Ġwill Ġfail . Ċ Ġ*/ Ċ public Ġclass ĠComp lication DataSource Info Retriever Ġ: ĠAuto Closeable Ġ{ ĊĠĠĠ Ġ/** ĠResults Ġfor Ġ[ retrieve Comp lication DataSource Info ]. Ġ*/ ĊĠĠĠ Ġpublic Ġclass ĠResult Ġinternal Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġ/** ĠThe Ġid Ġfor Ġthe Ġcomp lication Ġslot , Ġas Ġpassed Ġto Ġ[ retrieve Comp lication DataSource Info ]. Ġ*/ ĊĠĠĠĠĠĠĠ Ġpublic Ġval Ġslot Id : ĠInt , ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠDetails Ġof Ġthe Ġcomp lication Ġdata Ġsource Ġfor Ġthat Ġcomp lication , Ġor Ġ` null ` Ġif Ġno ĊĠĠĠĠĠĠĠĠ Ġ* Ġcomp lication Ġdata Ġsource Ġis Ġcurrently Ġconfigured . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġpublic Ġval Ġinfo : Ġandroidx . we ar . comp lications . Comp lication DataSource Info ? ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠProvider Info Service Connection Ġ: ĠService Connection Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Suppress Lint (" Synt hetic Accessor ") ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Service Connected ( name : ĠComponent Name , Ġservice : ĠI Binder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdeferred Service . complete ( I Provider Info Service . Stub . as Interface ( service )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Suppress Lint (" Synt hetic Accessor ") ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Service Disconnected ( name : ĠComponent Name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdeferred Service . complete Exception ally ( Service Disconnected Exception ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Synt hetic Accessor ") ĊĠĠĠ Ġprivate Ġval Ġservice Connection : ĠService Connection Ġ= ĠProvider Info Service Connection () ĊĠĠĠ Ġprivate Ġvar Ġcontext : ĠContext ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġdeferred Service Ġ= ĠComp letable Deferred < I Provider Info Service >() ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ hide ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Visible ForTesting ĊĠĠĠ Ġ@ Restrict To ( Restrict To . Scope . LIBRARY ) ĊĠĠĠ Ġpublic Ġvar Ġclosed : ĠBoolean Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġ/** Ġ@ param Ġcontext Ġthe Ġcurrent Ġcontext Ġ*/ ĊĠĠĠ Ġpublic Ġconstructor ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . context Ġ= Ġcontext ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( ACTION _ GET _ COMP LIC ATION _ CONFIG ) ĊĠĠĠĠĠĠĠ Ġintent . set Package ( PROVIDER _ INFO _ SERVICE _ PACKAGE ) ĊĠĠĠĠĠĠĠ Ġcontext . bind Service ( intent , Ġservice Connection , ĠContext . BIND _ AUTO _ CREATE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠException Ġthrown Ġif Ġthe Ġservice Ġdisconnect s . Ġ*/ ĊĠĠĠ Ġpublic Ġclass ĠService Disconnected Exception Ġ: ĠException () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ hide ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Visible ForTesting ĊĠĠĠ Ġ@ Restrict To ( Restrict To . Scope . LIBRARY ) ĊĠĠĠ Ġpublic Ġconstructor ( service : ĠI Provider Info Service ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdeferred Service . complete ( service ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRequests Ġ[ Result ] Ġfor Ġthe Ġspecified Ġcomp lication Ġids Ġon Ġthe Ġspecified ĊĠĠĠĠ Ġ* Ġwatch Ġface . ĠWhen Ġthe Ġinfo Ġis Ġreceived , Ġthe Ġlistener Ġwill Ġreceive Ġa Ġcallback Ġfor Ġeach Ġid . ĊĠĠĠĠ Ġ* ĠThese Ġcallbacks Ġwill Ġoccur Ġon Ġthe Ġmain Ġthread . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġwill Ġonly Ġwork Ġif Ġthe Ġpackage Ġof Ġthe Ġcurrent Ġapp Ġis Ġthe Ġsame Ġas Ġthe Ġpackage Ġof Ġthe ĊĠĠĠĠ Ġ* Ġspecified Ġwatch Ġface . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġwatch Face Component Ġthe ĠComponent Name Ġof Ġthe ĠWatch Face Service Ġfor Ġwhich Ġinfo Ġis ĊĠĠĠĠ Ġ* Ġbeing Ġrequested ĊĠĠĠĠ Ġ* Ġ@ param Ġwatch Face Comp lication Ids Ġids Ġof Ġthe Ġcomp lications Ġthat Ġinfo Ġis Ġbeing Ġrequested Ġfor ĊĠĠĠĠ Ġ* Ġ@ return ĠAn Ġarray Ġof Ġ[ Result ]. ĠIf Ġthe Ġlook Ġup Ġfails Ġnull Ġwill Ġbe Ġreturned . ĊĠĠĠĠ Ġ* Ġ@ throws Ġ[ Service Disconnected Exception ] Ġif Ġthe Ġservice Ġdisconnected Ġduring Ġthe Ġcall . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( Service Disconnected Exception :: class ) ĊĠĠĠ Ġpublic Ġsuspend Ġfun Ġretrieve Comp lication DataSource Info ( ĊĠĠĠĠĠĠĠ Ġwatch Face Component : ĠComponent Name , ĊĠĠĠĠĠĠĠ Ġwatch Face Comp lication Ids : ĠInt Array ĊĠĠĠ Ġ): ĠArray < Result >? Ġ= ĊĠĠĠĠĠĠĠ ĠTrace Event (" Comp lication DataSource Info Retriever . retrieve Comp lication DataSource Info "). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire (! closed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" retrieve Comp lication DataSource Info Ġcalled Ġafter Ġclose " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġawait Deferred Service (). get Provider Infos ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwatch Face Component , Ġwatch Face Comp lication Ids ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ?. map Indexed Ġ{ Ġindex , Ġinfo Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwatch Face Comp lication Ids [ index ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo ?. to Api Comp lication DataSource Info () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ?. to Typed Array () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRequests Ġpreview Ġ[ Comp lication Data ] Ġfor Ġa Ġcomp lication Ġdata Ġsource Ġ[ Component Name ] Ġand ĊĠĠĠĠ Ġ* Ġ[ Comp lication Type ]. ĠNote Ġif Ġ` null ` Ġis Ġreturned ĊĠĠĠĠ Ġ* Ġ[ Comp lication DataSource Info . fallback Preview Data ] Ġcan Ġbe Ġused Ġto Ġgenerate Ġfallback Ġpreview ĊĠĠĠĠ Ġ* Ġdata Ġbased Ġon Ġthe Ġname Ġand Ġicon Ġof Ġthe Ġprovider . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcomp lication DataSource Component ĠThe Ġ[ Component Name ] Ġof Ġthe Ġcomp lication Ġdata Ġsource ĊĠĠĠĠ Ġ* Ġfrom Ġwhich Ġpreview Ġdata Ġis Ġrequested . ĊĠĠĠĠ Ġ* Ġ@ param Ġcomp lication Type ĠThe Ġrequested Ġ[ Comp lication Type ] Ġfor Ġthe Ġpreview Ġdata . ĊĠĠĠĠ Ġ* Ġ@ return ĠThe Ġpreview Ġ[ Comp lication Data ] Ġor Ġ` null ` Ġif Ġthe Ġcomp lication Ġdata Ġsource Ġcomponent ĊĠĠĠĠ Ġ* Ġdoesn 't Ġexist , Ġor Ġif Ġit Ġdoesn 't Ġsupport Ġcomp lication Type , Ġor Ġif Ġthe Ġremote Ġservice Ġdoesn 't ĊĠĠĠĠ Ġ* Ġsupport Ġthis ĠAPI . ĊĠĠĠĠ Ġ* Ġ@ throws Ġ[ Service Disconnected Exception ] Ġif Ġthe Ġservice Ġdisconnected Ġduring Ġthe Ġcall . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( Service Disconnected Exception :: class ) ĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . R ) ĊĠĠĠ Ġpublic Ġsuspend Ġfun Ġretrieve Preview Comp lication Data ( ĊĠĠĠĠĠĠĠ Ġcomp lication DataSource Component : ĠComponent Name , ĊĠĠĠĠĠĠĠ Ġcomp lication Type : ĠComp lication Type ĊĠĠĠ Ġ): ĠComp lication Data ? Ġ= ĠTrace Event ( ĊĠĠĠĠĠĠĠ Ġ" Comp lication DataSource Info Retriever . request Preview Comp lication Data " ĊĠĠĠ Ġ). use Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire (! closed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" retrieve Preview Comp lication Data Ġcalled Ġafter Ġclose " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġservice Ġ= Ġawait Deferred Service () ĊĠĠĠĠĠĠĠ Ġif Ġ( service . apiVersion Ġ< Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsuspend C ancellable Coroutine Ġ{ Ġcontinuation Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdeath Observer Ġ= ĠI Binder . Death Recipient Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinuation . resume With Exception ( Service Disconnected Exception ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice . as Binder (). link To Death ( death Observer , Ġ 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠNot Ġa Ġhuge Ġdeal Ġbut Ġwe Ġmight Ġas Ġwell Ġunlink Ġthe Ġdeath Observer . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontinuation . invoke On Cancellation Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġservice . as Binder (). unlink To Death ( death Observer , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! service . request Preview Comp lication Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication DataSource Component , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomp lication Type . to Wire Comp lication Type (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠI Preview Comp lication Data Callback . Stub () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġupdate Comp lication Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata : Ġandroid . support . we arable . comp lications . Comp lication Data ? ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġservice . as Binder (). unlink To Death ( death Observer , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinuation . resume ( data ?. to Api Comp lication Data ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġservice . as Binder (). unlink To Death ( death Observer , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinuation . resume ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġawait Deferred Service (): ĠI Provider Info Service Ġ= ĊĠĠĠĠĠĠĠ ĠTrace Event (" Comp lication DataSource Info Retriever . await Deferred Service "). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdeferred Service . await () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRelease s Ġthe Ġconnection Ġto Ġthe Ġcomp lication Ġsystem Ġused Ġby Ġthis Ġclass . ĠThis Ġmust ĊĠĠĠĠ Ġ* Ġbe Ġcalled Ġwhen Ġthe Ġretrie ver Ġis Ġno Ġlonger Ġneeded . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠAny Ġoutstanding Ġor Ġsubsequent Ġfutures Ġreturned Ġby Ġ[ retrieve Comp lication DataSource Info ] Ġwill ĊĠĠĠĠ Ġ* Ġresolve Ġwith Ġnull . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġclass Ġimplements Ġthe ĠJava Ġ` Auto C losable ` Ġinterface Ġand ĊĠĠĠĠ Ġ* Ġmay Ġbe Ġused Ġwith Ġtry - with - resources . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġclose () Ġ{ ĊĠĠĠĠĠĠĠ Ġclosed Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġcontext ?. unbind Service ( service Connection ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĠThe Ġpackage Ġof Ġthe Ġservice Ġthat Ġsupp lies Ġcomp lication Ġdata Ġsource Ġinfo . Ġ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPRO VIDER _ INFO _ SERVICE _ PACKAGE Ġ= Ġ" com . google . android . we arable . app " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠACTION _ GET _ COMP LIC ATION _ CONFIG Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" android . support . we arable . comp lications . ACTION _ GET _ COMP LIC ATION _ CONFIG " ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠH older Ġof Ġdetails Ġof Ġa Ġcomp lication Ġdata Ġsource , Ġfor Ġuse Ġby Ġwatch Ġfaces Ġ( for Ġexample , Ċ Ġ* Ġto Ġshow Ġthe Ġcurrent Ġcomp lication Ġdata Ġsource Ġin Ġsettings ). ĠA Ċ Ġ* Ġ[ Comp lication DataSource Info Retriever ] Ġcan Ġbe Ġused Ġto Ġobtain Ġreferences Ġof Ġthis Ġclass Ġfor Ġeach Ċ Ġ* Ġof Ġa Ġwatch Ġface 's Ġcomp lications . Ċ Ġ*/ Ċ public Ġclass ĠComp lication DataSource Info ( ĊĠĠĠ Ġ/** ĠThe Ġname Ġof Ġthe Ġapplication Ġcontaining Ġthe Ġcomp lication Ġdata Ġsource . Ġ*/ ĊĠĠĠ Ġpublic Ġval ĠappName : ĠString , ĊĊĠĠĠ Ġ/** ĠThe Ġname Ġof Ġthe Ġcomp lication Ġdata Ġsource . Ġ*/ ĊĠĠĠ Ġpublic Ġval Ġname : ĠString , ĊĊĠĠĠ Ġ/** ĠThe Ġicon Ġfor Ġthe Ġcomp lication Ġdata Ġsource . Ġ*/ ĊĠĠĠ Ġpublic Ġval Ġicon : ĠIcon , ĊĊĠĠĠ Ġ/** ĠThe Ġtype Ġof Ġthe Ġcomp lication Ġprovided Ġby Ġthe Ġdata Ġsource . Ġ*/ ĊĠĠĠ Ġpublic Ġval Ġtype : ĠComp lication Type , ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġcomp lication Ġdata Ġsource 's Ġ{@ link ĠComponent Name }. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġfield Ġis Ġpopulated Ġonly Ġon ĠAndroid ĠR Ġand Ġabove Ġand Ġit Ġis Ġ` null ` Ġotherwise . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġval Ġcomponent Name : ĠComponent Name ?, Ċ ) Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠL az ily Ġconstructed Ġfallback Ġpreview Ġ[ Comp lication Data ] Ġbased Ġon Ġthis ĊĠĠĠĠ Ġ* ĠComp lication DataSource Info . ĠThis Ġis Ġuseful Ġwhen ĊĠĠĠĠ Ġ* Ġ[ Comp lication DataSource Info Retriever . retrieve Preview Comp lication Data ] Ġreturns Ġ` null ` Ġ( e . g . ĊĠĠĠĠ Ġ* Ġon Ġa Ġpre - android ĠR Ġdevice ). ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġval Ġfallback Preview Data : ĠComp lication Data Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontent Description Ġ= ĠPlain Comp lication Text . Builder ( name ). build () ĊĠĠĠĠĠĠĠ Ġwhen Ġ( type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠComp lication Type . SHORT _ TEXT Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠShort Text Comp lication Data . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlain Comp lication Text . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . take ( Short Text Comp lication Data . MAX _ TEXT _ LENGTH ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). build (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). set Mono chrom atic Image ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMono chrom atic Image . Builder ( icon ). build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠComp lication Type . LONG _ TEXT Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLong Text Comp lication Data . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlain Comp lication Text . Builder ( name ). build (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). set Mono chrom atic Image ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMono chrom atic Image . Builder ( icon ). build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠComp lication Type . SMALL _ IMAGE Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSmall Image Comp lication Data . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSmall Image . Builder ( icon , ĠSmall ImageType . ICON ). build (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠComp lication Type . MON O CH ROM AT IC _ IMAGE Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMono chrom atic Image Comp lication Data . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMono chrom atic Image . Builder ( icon ). build (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠComp lication Type . PH OTO _ IMAGE Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhoto Image Comp lication Data . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠComp lication Type . RAN GED _ VALUE Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRange d Value Comp lication Data . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). set Mono chrom atic Image ( Mono chrom atic Image . Builder ( icon ). build ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setText ( Plain Comp lication Text . Builder ( name ). build ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠNo Data Comp lication Data () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . R ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire ( component Name Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Component Name Ġis Ġrequired Ġon ĠAndroid ĠR Ġand Ġabove " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConverts Ġthis Ġvalue Ġto Ġ[ Wire Comp lication Provider Info ] Ġobject Ġused Ġfor Ġserialization . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ hide ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Restrict To ( Restrict To . Scope . LIBRARY _ GROUP ) ĊĠĠĠ Ġpublic Ġfun Ġto Wire Comp lication Provider Info (): ĠWire Comp lication Provider Info Ġ= ĊĠĠĠĠĠĠĠ ĠWire Comp lication Provider Info ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠappName , Ġname , Ġicon , Ġtype . to Wire Comp lication Type (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomponent Name ĊĠĠĠĠĠĠĠ Ġ) Ċ } Ċ Ċ // ĠU gh Ġwe Ġneed Ġthis Ġsince Ġthe Ġlinter Ġwants Ġthe Ġmethod Ġsignature Ġall Ġon Ġone Ġline ... Ċ type alias ĠApi Info Ġ= Ġandroidx . we ar . comp lications . Comp lication DataSource Info Ċ Ċ /** Ċ Ġ* Ġ@ hide Ċ Ġ*/ Ċ @ Restrict To ( Restrict To . Scope . LIBRARY _ GROUP ) Ċ public Ġfun ĠWire Comp lication Provider Info . to Api Comp lication DataSource Info (): ĠApi Info Ġ= ĊĠĠĠ ĠComp lication DataSource Info ( ĊĠĠĠĠĠĠĠ ĠappName !! , Ġprovider Name !! , Ġprovider Icon !! , Ġfrom Wire Type ( comp lication Type ), ĊĠĠĠĠĠĠĠ Ġprovider Component Name ĊĠĠĠ Ġ) Ċ