package Ġbe . my god . vpn hot spot . manage Ċ Ċ import Ġandroid . annotation . Target Api Ċ import Ġandroid . content . Component Name Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . Intent Filter Ċ import Ġandroid . content . Service Connection Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . IB inder Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . recyclerview . widget . Default Item Animator Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġbe . my god . vpn hot spot . Local Only Hot spot Service Ċ import Ġbe . my god . vpn hot spot . R Ċ import Ġbe . my god . vpn hot spot . Te ther ing Service Ċ import Ġbe . my god . vpn hot spot . databinding . Fragment Te ther ing Binding Ċ import Ġbe . my god . vpn hot spot . net . Te ther Type Ċ import Ġbe . my god . vpn hot spot . net . Te ther ing Manager Ċ import Ġbe . my god . vpn hot spot . util . Service Foreground Connector Ċ import Ġbe . my god . vpn hot spot . util . broadcast Receiver Ċ import Ġcom . crash ly t ics . android . Crash ly t ics Ċ import Ġjava . net . NetworkInterface Ċ import Ġjava . net . Socket Exception Ċ Ċ class ĠTe ther ing Fragment Ġ: ĠFragment (), ĠService Connection Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSTART _ LOCAL _ ONLY _ HOT SP OT Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠRE PE ATER _ EDIT _ CONFIGURATION Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠRE PE ATER _ W PS Ġ= Ġ 3 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠManager Adapter Ġ: ĠList Adapter < Manager , ĠRecyclerView . ViewHolder >( Manager ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġrepe ater Manager Ġby Ġlazy Ġ{ ĠRe pe ater Manager ( this @ Te ther ing Fragment ) Ġ} ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlocal Only Hot spot Manager Ġby Ġlazy Ġ@ Target Api ( 2 6 ) Ġ{ ĠLocal Only Hot spot Manager ( this @ Te ther ing Fragment ) Ġ} ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġte ther Managers Ġby Ġlazy Ġ@ Target Api ( 2 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Te ther Manager . Wifi ( this @ Te ther ing Fragment ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTe ther Manager . Usb ( this @ Te ther ing Fragment ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTe ther Manager . Bluetooth ( this @ Te ther ing Fragment )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġwifi Manager Legacy Ġby Ġlazy Ġ@ Suppress (" De precation ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTe ther Manager . Wifi Legacy ( this @ Te ther ing Fragment ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġupdate ( active If aces : ĠList < String >, Ġlocal Only If aces : ĠList < String >, Ġerro red If aces : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġiface Lookup Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNetwork Interface . get Network Interfaces (). as Sequence (). associate By Ġ{ Ġit . name Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠSocket Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCrash ly t ics . log Exception ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġempty Map () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Te ther ing Fragment . enabled Types Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( active If aces Ġ+ Ġlocal Only If aces ). map Ġ{ ĠTe ther Type . of Interface ( it ) Ġ}. toSet () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġarray ListOf < Manager >( repe ater Manager ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= Ġ 2 6 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( local Only Hot spot Manager ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Only Hot spot Manager . update () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . addAll ( active If aces . map Ġ{ ĠInterface Manager ( this @ Te ther ing Fragment , Ġit ) Ġ}. sorted By Ġ{ Ġit . iface Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( Manage Bar ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= Ġ 2 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . addAll ( te ther Managers ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġte ther Managers . forEach Ġ{ Ġit . update ErrorMessage ( er rored If aces ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ< Ġ 2 6 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( wifi Manager Legacy ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwifi Manager Legacy . on Te ther ing Started () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsubmit List ( list ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ) Ġ= ĠgetItem ( position ). type ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManager . create ViewHolder ( LayoutInflater . from ( parent . context ), Ġparent , Ġview Type ) ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) Ġ= ĠgetItem ( position ). bind To ( holder ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġiface Lookup : ĠMap < String , ĠNetwork Interface > Ġ= Ġempty Map () ĊĠĠĠ Ġvar Ġenabled Types Ġ= Ġempty Set < Te ther Type >() ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠFragment Te ther ing Binding ĊĠĠĠ Ġvar Ġte ther ing Binder : ĠTe ther ing Service . Binder ? Ġ= Ġnull ĊĠĠĠ Ġval Ġadapter Ġ= ĠManager Adapter () ĊĠĠĠ Ġprivate Ġval Ġreceiver Ġ= Ġbroadcast Receiver Ġ{ Ġ_, Ġintent Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġextras Ġ= Ġintent . extras !! ĊĠĠĠĠĠĠĠ Ġadapter . update ( Te ther ing Manager . get Te ther ed If aces ( extras ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTe ther ing Manager . getLocal Only Te ther ed If aces ( extras ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġextras . getString ArrayList ( Te ther ing Manager . EXTRA _ ER RO RED _ T ETHER ) !! ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠData Binding Util . inflate ( in flater , ĠR . layout . fragment _ te ther ing , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġbinding . interfaces . layout Manager Ġ= ĠLinearLayoutManager ( context , ĠRecyclerView . VERTICAL , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġbinding . interfaces . item Animator Ġ= ĠDefault Item Animator () ĊĠĠĠĠĠĠĠ Ġbinding . interfaces . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġadapter . update ( emptyList (), Ġempty List (), Ġempty List ()) ĊĠĠĠĠĠĠĠ ĠService Foreground Connector ( this , Ġthis , ĠTe ther ing Service :: class ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= Ġ 2 7 ) ĠManage Bar . Data . notify Change () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( request Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRE PE ATER _ W PS Ġ-> Ġadapter . repe ater Manager . on W ps Result ( result Code , Ġdata !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRE PE ATER _ EDIT _ CONFIGURATION Ġ-> Ġadapter . repe ater Manager . on Edit Result ( result Code , Ġdata !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Request Permissions Result ( request Code : ĠInt , Ġpermissions : ĠArray < out ĠString >, Ġgrant Results : ĠInt Array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠSTART _ LOCAL _ ONLY _ HOT SP OT ) Ġ@ Target Api ( 2 6 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( grant Results . first OrNull () Ġ== ĠPackage Manager . PERMISSION _ GRAN TED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġrequire Context () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . start Foreground Service ( Intent ( context , ĠLocal Only Hot spot Service :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġsuper . on Request Permissions Result ( request Code , Ġpermissions , Ġgrant Results ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Service Connected ( name : ĠComponent Name ?, Ġservice : ĠI Binder ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġte ther ing Binder Ġ= Ġservice Ġas ĠTe ther ing Service . Binder ĊĠĠĠĠĠĠĠ Ġservice . fragment Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġrequire Context (). register Receiver ( receiver , ĠIntent Filter ( Te ther ing Manager . ACTION _ T ETHER _ STATE _ CHANGED )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Service Disconnected ( name : ĠComponent Name ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ( te ther ing Binder Ġ?: Ġreturn ). fragment Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġte ther ing Binder Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġrequire Context (). unregister Receiver ( receiver ) ĊĠĠĠ Ġ} Ċ } Ċ