/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 Ġå¤§ åīį èī¯ ä»ĭ Ġ( OH MA E ĠR y os uke ) Ċ Ġ* Ċ Ġ* ĠThis Ġsoftware Ġis Ġreleased Ġunder Ġthe ĠMIT ĠLicense . Ċ Ġ* Ġhttp :// opensource . org / licenses / MIT Ċ Ġ*/ Ċ Ċ package Ġnet . mm 2 d . orientation . tabs Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Build Ċ Ċ object ĠOpen Uri Utils Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġdefault Browser Package : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġbrowser Packages : ĠSet < String >? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġget Browser Packages ( context : ĠContext ): ĠSet < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġbrowser Packages ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġget Browser Packages Inner ( context ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbrowser Packages Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Browser Packages Inner ( context : ĠContext ): ĠSet < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġflags Ġ= Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ) ĠPackage Manager . MATCH _ ALL Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġreturn Ġcontext . package Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. query Intent Activities ( make Browser Test Intent (), Ġflags ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map NotNull Ġ{ Ġit . activity Info ?. packageName Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toSet () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetDefault Browser Package ( context : ĠContext ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Browser Package ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠgetDefault Browser Package Inner ( context )?. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Browser Package Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetDefault Browser Package Inner ( context : ĠContext ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠpackageName Ġ= Ġcontext . package Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. resolve Activity ( make Browser Test Intent (), Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . activity Info ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . packageName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( get Browser Packages ( context ). contains ( packageName )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠpackageName ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmake Browse Intent ( uri : ĠString ): ĠIntent Ġ= ĊĠĠĠĠĠĠĠ ĠIntent ( Intent . ACTION _ VIEW , ĠUri . parse ( uri )). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . add Category ( Intent . CATEGORY _ BRO WS ABLE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmake Browser Test Intent (): ĠIntent Ġ= ĊĠĠĠĠĠĠĠ Ġmake Browse Intent (" http :// www . example . com /") Ċ } Ċ