/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 Ġ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 Ġcom . example . android . interact ives lice provider . slice builders Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . net . Uri Ċ import Ġandroid . net . wifi . Wifi Manager Ċ import Ġandroid . provider . Settings Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . core . graphics . drawable . Icon Compat Ċ import Ġandroidx . slice . Slice Ċ import Ġandroidx . slice . builders . List Builder Ċ import Ġandroidx . slice . builders . Slice Action Ċ import Ġandroidx . slice . builders . header Ċ import Ġandroidx . slice . builders . list Ċ import Ġandroidx . slice . builders . row Ċ import Ġandroidx . slice . builders . see More Row Ċ import Ġcom . example . android . interact ives lice provider . Interactive Slice Provider Ċ import Ġcom . example . android . interact ives lice provider . Slice Actions Broadcast Receiver Ċ import Ġcom . example . android . interact ives lice provider . R Ċ import Ġcom . example . android . interact ives lice provider . R . drawable Ċ import Ġcom . example . android . interact ives lice provider . Slice Builder Ċ Ċ class ĠW ifi Slice Builder ( ĊĠĠĠ Ġval Ġcontext : ĠContext , ĊĠĠĠ Ġslice Uri : ĠUri Ċ ) Ġ: ĠSlice Builder ( slice Uri ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġbuild Slice (): ĠSlice Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġwifi Ġstate ĊĠĠĠĠĠĠĠ Ġval Ġwifi Manager Ġ= Ġcontext . application Context ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getSystem Service ( Context . WIFI _ SERVICE ) Ġas ĠW ifi Manager ĊĠĠĠĠĠĠĠ Ġval Ġwifi State Ġ= Ġwifi Manager . wifi State ĊĠĠĠĠĠĠĠ Ġvar Ġwifi Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġstate : ĠString ĊĠĠĠĠĠĠĠ Ġwhen Ġ( wifi State ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠW ifi Manager . WIFI _ STATE _ DISABLED , ĠW ifi Manager . WIFI _ STATE _ DIS AB LING Ġ-> Ġstate Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" disconnected " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠW ifi Manager . WIFI _ STATE _ ENABLED , ĠW ifi Manager . WIFI _ STATE _ EN AB LING Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= Ġwifi Manager . connection Info . ssid ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwifi Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠW ifi Manager . WIFI _ STATE _ UNKNOWN Ġ-> Ġstate Ġ= Ġ"" Ġ// Ġjust Ġdon 't Ġshow Ġanything ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġstate Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġthe Ġfirst Ġrow Ġas Ġa Ġtoggle ĊĠĠĠĠĠĠĠ Ġval Ġfinal Wifi Enabled Ġ= Ġwifi Enabled ĊĠĠĠĠĠĠĠ Ġval Ġmain Action Ġ= ĠSlice Action . create ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInteractive Slice Provider . get Pending Intent ( context , ĠSettings . ACTION _ WIFI _ SETTINGS ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIcon Compat . create With Resource ( context , Ġdrawable . ic _ wifi ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠList Builder . ICON _ IMAGE , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Wi - fi ĠSettings " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġtoggle CD String Ġ= Ġif Ġ( wifi Enabled ) Ġ" Turn Ġwifi Ġoff " Ġelse Ġ" Turn Ġwifi Ġon " ĊĠĠĠĠĠĠĠ Ġval Ġslice CD String Ġ= Ġif Ġ( wifi Enabled ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Wifi Ġconnected Ġto Ġ$ state " ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Wifi Ġdisconnected , Ġ 1 0 Ġnetworks Ġavailable " ĊĠĠĠĠĠĠĠ Ġreturn Ġlist ( context , Ġslice Uri , ĠList Builder . INFINITY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Accent Color ( Context Compat . getColor ( context , ĠR . color . slice _ accent _ color )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Wi - fi " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubtitle Ġ= Ġstate ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġslice CD String ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprimary Action Ġ= Ġmain Action ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Action ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSlice Action . create Toggle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSlice Actions Broadcast Receiver . get Intent ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĠInteractive Slice Provider . ACTION _ WIFI _ CHANGED , Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle CD String , Ġfinal Wifi Enabled ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAdd Ġfake Ġwifi Ġnetworks ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwifi Icons Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf ( R . drawable . ic _ wifi _ full , ĠR . drawable . ic _ wifi _ low , ĠR . drawable . ic _ wifi _ fair ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġicon Id Ġ= Ġwifi Icons [ i Ġ% Ġwifi Icons . size ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġicon Ġ= ĠIcon Compat . create With Resource ( context , Ġicon Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnetwork Name Ġ= Ġ" Network $ i " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġnetwork Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetTitle Item ( icon , ĠList Builder . ICON _ IMAGE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlocked Ġ= Ġi Ġ% Ġ 3 Ġ== Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( locked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd End Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon Compat . create With Resource ( context , ĠR . drawable . ic _ lock ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠList Builder . ICON _ IMAGE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Content Description (" Connect Ġto Ġ$ network Name , Ġpassword Ġneeded ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Content Description (" Connect Ġto Ġ$ network Name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( locked ) Ġ" Open Ġwifi Ġpassword Ġdialog " Ġelse Ġ" Connect Ġto Ġ$ network Name " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprimary Action Ġ= ĠSlice Action . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSlice Actions Broadcast Receiver . get Intent ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĠInteractive Slice Provider . ACTION _ TO AST , Ġmessage ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠList Builder . ICON _ IMAGE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAdd Ġsee Ġmore Ġintent ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsee More Row Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" See Ġall Ġavailable Ġnetworks " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd End Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon Compat . create With Resource ( context , ĠR . drawable . ic _ right _ caret ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠList Builder . SMALL _ IMAGE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprimary Action Ġ= Ġmain Action ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTAG Ġ= Ġ" List Slice Builder " ĊĠĠĠ Ġ} Ċ }