/* Ċ Ġ* Ġ ĠCopyright Ġ 2 0 1 8 ĠGoogle ĠInc . Ċ Ġ* Ċ Ġ* Ġ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 Ġcom . example . android . slice . kotlin Ċ Ċ import Ġandroid . app . Pending Intent Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroidx . core . graphics . drawable . Icon Compat Ċ import Ġandroidx . slice . Slice Ċ import Ġandroidx . slice . Slice Provider Ċ import Ġandroidx . slice . builders . List Builder Ċ import Ġandroidx . slice . builders . List Builder . INFINITY Ċ import Ġandroidx . slice . builders . Slice Action Ċ import Ġandroidx . slice . builders . input Range Ċ import Ġandroidx . slice . builders . list Ċ import Ġandroidx . slice . builders . row Ċ import Ġcom . example . android . snippets . R Ċ Ċ class ĠGetting Started Slice Provider Ġ: ĠSlice Provider () Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġbrightness Pending Intent : ĠPending Intent ĊĊĠĠĠ Ġ// Ġ[ START Ġon _ bind _ slice ] ĊĠĠĠ Ġoverride Ġfun Ġon Bind Slice ( slice Uri : ĠUri ): ĠSlice ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġactivity Action Ġ= Ġcreate Activity Action () ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( slice Uri . path Ġ== Ġ"/ hello ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist ( context , Ġslice Uri , ĠList Builder . INFINITY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprimary Action Ġ= Ġactivity Action ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Hello ĠWorld ." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist ( context , Ġslice Uri , ĠList Builder . INFINITY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprimary Action Ġ= Ġactivity Action ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" URI Ġnot Ġrecognized ." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// Ġ[ END Ġon _ bind _ slice ] ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Slice Provider (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ[ START Ġcreate _ slice ] ĊĠĠĠ Ġfun Ġcreate Slice ( slice Uri : ĠUri ): ĠSlice Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġactivity Action Ġ= Ġcreate Activity Action () ĊĠĠĠĠĠĠĠ Ġreturn Ġlist ( context , Ġslice Uri , ĠIN FIN ITY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Perform Ġaction Ġin Ġapp " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprimary Action Ġ= Ġactivity Action ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate Activity Action (): ĠSlice Action Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠMainActivity :: class . java ) ĊĠĠĠĠĠĠĠ Ġreturn ĠSlice Action . create ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPending Intent . getActivity ( context , Ġ 0 , ĠIntent ( context , ĠMainActivity :: class . java ), Ġ 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIcon Compat . create With Resource ( context , ĠR . drawable . ic _ home ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠList Builder . ICON _ IMAGE , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Enter Ġapp " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// Ġ[ END Ġcreate _ slice ] ĊĊĠĠĠ Ġ// Ġ[ START Ġcreate _ brightness _ slice ] ĊĠĠĠ Ġfun Ġcreate Brightness Slice ( slice Uri : ĠUri ): ĠSlice Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtoggle Action Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSlice Action . create Toggle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Toggle Intent (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Toggle Ġadaptive Ġbrightness ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġlist ( context , Ġslice Uri , ĠList Builder . INFINITY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Adaptive Ġbrightness " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubtitle Ġ= Ġ" Optim izes Ġbrightness Ġfor Ġavailable Ġlight " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprimary Action Ġ= Ġtoggle Action ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Range Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput Action Ġ= Ġ( brightness Pending Intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmax Ġ= Ġ 1 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ 4 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate Toggle Intent (): ĠPending Intent Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠMy Broadcast Receiver :: class . java ) ĊĠĠĠĠĠĠĠ Ġreturn ĠPending Intent . get Broadcast ( context , Ġ 0 , Ġintent , Ġ 0 ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// Ġ[ END Ġcreate _ brightness _ slice ] ĊĊĠĠĠ Ġlateinit Ġvar Ġaction Icon : ĠIcon Compat ĊĊĠĠĠ Ġ// Ġ[ START Ġcreate _ dynamic _ slice ] ĊĠĠĠ Ġfun Ġcreate Dynamic Slice ( slice Uri : ĠUri ): ĠSlice Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( slice Uri . path ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ count " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoast And Increment Action Ġ= ĠSlice Action . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Toast And Increment Intent (" Item Ġclicked ."), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Icon , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠList Builder . ICON _ IMAGE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Increment ." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist ( context , Ġslice Uri , ĠList Builder . INFINITY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprimary Action Ġ= Ġtoast And Increment Action ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Count : Ġ${ My Broadcast Receiver . received Count }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubtitle Ġ= Ġ" Click Ġme " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist ( context , Ġslice Uri , ĠList Builder . INFINITY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprimary Action Ġ= Ġcreate Activity Action () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" URI Ġnot Ġfound ." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate Toast And Increment Intent ( s : ĠString ): ĠPending Intent Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠPending Intent . get Broadcast ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( context , ĠMy Broadcast Receiver :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. putExtra ( My Broadcast Receiver . EXTRA _ MESSAGE , Ġs ), Ġ 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// Ġ[ END Ġcreate _ dynamic _ slice ] Ċ }