package Ġcom . bos w el ja . watch connection . core . discovery Ċ Ċ import Ġcom . bos w el ja . watch connection . common . Watch Ċ import Ġcom . bos w el ja . watch connection . common . discovery . Capabilities Ċ import Ġcom . bos w el ja . watch connection . common . discovery . Connection Mode Ċ import Ġcom . bos w el ja . watch connection . core . Platform Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . launch Ċ Ċ /** Ċ Ġ* Ġ[ Platform ] Ġsupport Ġfor Ġdiscover ing Ġw atches , Ġwatch Ġcapabilities , Ġand Ġwatch Ġstatus . Ċ Ġ*/ Ċ public Ġabstract Ġclass ĠDiscovery Platform Ġ: ĠPlatform Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠCor outine Scope ( Dispatch ers . Default ). launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Local Capability ( Capabilities . Connection Lib Host ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠA Ġflow Ġof Ġall Ġavailable Ġw atches Ġfor Ġthis Ġplatform . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġabstract Ġfun Ġall W atches (): ĠFlow < List < Watch >> ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġa Ġflow Ġof Ġcapabilities Ġfound Ġfor Ġa Ġ[ Watch ] Ġwith Ġa Ġgiven ĠID . ĊĠĠĠĠ Ġ* Ġ@ param Ġwatch Id ĠSee Ġ[ Watch . internal Id ]. ĊĠĠĠĠ Ġ* Ġ@ return ĠA Ġ[ Flow ] Ġof Ġcapability Ġstrings Ġdeclared Ġby Ġthe Ġwatch . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġabstract Ġsuspend Ġfun Ġget Capabilities For ( watch Id : ĠString ): ĠSet < String > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCheck Ġwhether Ġthe Ġgiven Ġwatch Ġhas Ġa Ġspecified Ġcapability . ĊĠĠĠĠ Ġ* Ġ@ param Ġwatch Id ĠSee Ġ[ Watch . uid ]. ĊĠĠĠĠ Ġ* Ġ@ param Ġcapability ĠThe Ġcapability Ġto Ġlook Ġfor . ĊĠĠĠĠ Ġ* Ġ@ return Ġa Ġ[ Flow ] Ġof Ġ[ Boolean ], Ġwhere Ġtrue Ġindicates Ġthe Ġwatch Ġhas Ġthe Ġcapability . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġabstract Ġfun Ġwatch Has Capability ( watch Id : ĠString , Ġcapability : ĠString ): ĠFlow < Boolean > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġa Ġ[ Flow ] Ġof Ġ[ Watch ] es Ġwith Ġa Ġgiven Ġcapability . ĊĠĠĠĠ Ġ* Ġ@ param Ġcapability ĠThe Ġtarget Ġcapability . ĊĠĠĠĠ Ġ* Ġ@ return ĠA Ġ[ Flow ] Ġof Ġ[ Watch ] es Ġthat Ġdeclare Ġ[ capability ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġabstract Ġfun Ġw atches With Capability ( capability : ĠString ): ĠFlow < List < Watch >> ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġa Ġ[ Flow ] Ġof Ġ[ Connection Mode ] Ġfor Ġthe Ġgiven Ġwatch . ĠUse Ġthis Ġto Ġobserve Ġthe Ġconnection ĊĠĠĠĠ Ġ* Ġmode Ġof Ġa Ġwatch . ĊĠĠĠĠ Ġ* Ġ@ param Ġwatch Id ĠSee Ġ[ Watch . internal Id ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġabstract Ġfun Ġconnection Mode For ( watch Id : ĠString ): ĠFlow < Connection Mode > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDeclare Ġthis Ġdevice Ġhas Ġa Ġgiven Ġcapability . ĊĠĠĠĠ Ġ* Ġ@ param Ġcapability ĠThe Ġcapability Ġto Ġdeclare . ĊĠĠĠĠ Ġ* Ġ@ return Ġtrue Ġif Ġthe Ġlocal Ġcapabilities Ġwere Ġchanged , Ġfalse Ġotherwise . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġabstract Ġsuspend Ġfun Ġadd Local Capability ( capability : ĠString ): ĠBoolean ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDeclare Ġthis Ġdevice Ġno Ġlonger Ġhas Ġa Ġgiven Ġcapability . ĊĠĠĠĠ Ġ* Ġ@ param Ġcapability ĠThe Ġcapability Ġto Ġremove . ĊĠĠĠĠ Ġ* Ġ@ return Ġtrue Ġif Ġthe Ġlocal Ġcapabilities Ġwere Ġchanged , Ġfalse Ġotherwise . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġabstract Ġsuspend Ġfun Ġremove Local Capability ( capability : ĠString ): ĠBoolean Ċ } Ċ