package Ġcom . st yling android . connectivity . ui Ċ Ċ import Ġandroid . net . Network Capabilities Ċ import Ġandroid . net . Network Capabilities . NET _ CAP ABILITY _ INTER NET Ċ import Ġandroid . net . Network Capabilities . TRANSPORT _ BL U ETO OTH Ċ import Ġandroid . net . Network Capabilities . TRANSPORT _ CELL ULAR Ċ import Ġandroid . net . Network Capabilities . TRANSPORT _ ETHER NET Ċ import Ġandroid . net . Network Capabilities . TRANSPORT _ LOW PAN Ċ import Ġandroid . net . Network Capabilities . TRANSPORT _ VPN Ċ import Ġandroid . net . Network Capabilities . TRANSPORT _ WIFI Ċ import Ġandroid . net . Network Capabilities . TRANSPORT _ WIFI _ AW ARE Ċ import Ġandroid . os . Build Ċ Ċ class ĠNetwork Capabilities Mapper Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġtransport s : ĠMap < Int , ĠString > ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtransport Map Ġ= Ġmutable Map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTRAN SP ORT _ BL U ETO OTH Ġto Ġ" Bluetooth ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTRAN SP ORT _ CELL ULAR Ġto Ġ" Cell ular ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTRAN SP ORT _ ETHER NET Ġto Ġ" Ethernet ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTRAN SP ORT _ VPN Ġto Ġ" VPN ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTRAN SP ORT _ WIFI Ġto Ġ" Wi - Fi " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O _ MR 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransport Map Ġ+= ĠTRAN SP ORT _ LOW PAN Ġto Ġ" Lo WP AN " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransport Map Ġ+= ĠTRAN SP ORT _ WIFI _ AW ARE Ġto Ġ" Wi - Fi ĠA ware " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtransport s Ġ= Ġtransport Map ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmap ( capabilities : ĠNetwork Capabilities ?): ĠConnection State Ġ= ĊĠĠĠĠĠĠĠ Ġcapabilities ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConnection State . Connected ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsignal Strength Ġ= ĠConnection State . Signal Strength . get ( capabilities ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink Down stream Bandwidth Kb ps Ġ= Ġcapabilities . link Down stream Bandwidth Kb ps , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink Upstream Bandwidth Kb ps Ġ= Ġcapabilities . link Upstream Bandwidth Kb ps , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransport s Ġ= Ġtransport Names ( capabilities ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Internet Ġ= Ġcapabilities . has Capability ( NET _ CAP ABILITY _ INTER NET ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġ?: ĠConnection State . Not Connected ĊĊĠĠĠ Ġprivate Ġfun Ġtransport Names ( capabilities : ĠNetwork Capabilities ): ĠList < String > Ġ= ĊĠĠĠĠĠĠĠ Ġtransport s . filter Ġ{ Ġentry Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcapabilities . has Transport ( entry . key ) ĊĠĠĠĠĠĠĠ Ġ}. map Ġ{ Ġit . value Ġ} Ċ } Ċ