/* Ċ Ġ* Ġ( c ) ĠCopyright ĠIBM ĠCorp . Ġ 2 0 2 1 Ċ Ġ* Ġ( c ) ĠCopyright ĠInst ana ĠInc . Ġand Ġcontributors Ġ 2 0 2 1 Ċ Ġ*/ Ċ Ċ package Ġcom . inst ana . android . session Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . net . Connectivity Manager Ċ import Ġandroid . tele phony . Tele phony Manager Ċ import Ġandroidx . annotation . Restrict To Ċ import Ġcom . inst ana . android . Inst ana Ċ import Ġcom . inst ana . android . core . Inst ana Config Ċ import Ġcom . inst ana . android . core . Inst ana Work Manager Ċ import Ġcom . inst ana . android . core . event . models . Beacon Ċ import Ġcom . inst ana . android . core . event . models . Connection Profile Ċ import Ġcom . inst ana . android . core . util . Constants And Util . get Carrier Name Ċ import Ġcom . inst ana . android . core . util . Constants And Util . getCell ular Connection Type Ċ import Ġcom . inst ana . android . core . util . Constants And Util . getConnection Type Ċ import Ġcom . inst ana . android . core . util . Logger Ċ import Ġjava . util .* Ċ Ċ @ Restrict To ( Restrict To . Scope . LIBRARY ) Ċ class ĠSession Service ( ĊĠĠĠ Ġval Ġcontext : ĠContext , ĊĠĠĠ Ġmanager : ĠInst ana Work Manager , ĊĠĠĠ Ġconfig : ĠInst ana Config Ċ ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSend Ġsession Ġto Ġbackend Ġupon Ġeach Ġfresh Ġstart Ġof Ġthe Ġapp ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠsessionId Ġ= ĠUUID . randomUUID () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toString () Ġ// ĠMay Ġproduce Ġfalse Ġpositive Ġfor ĠStrict Mode ĠDisk Reads Ġin Ġold ĠAndroid Ġversions : Ġhttps :// issue tracker . google . com / issues / 3 6 9 6 9 0 3 1 ĊĠĠĠĠĠĠĠ Ġval Ġtm Ġ= Ġ( context . getSystem Service ( Context . TELE PHONY _ SERVICE ) Ġas ? ĠTele phony Manager ) ĊĠĠĠĠĠĠĠ Ġval Ġcm Ġ= Ġ( context . getSystem Service ( Context . CONNECT IVITY _ SERVICE ) Ġas ? ĠConnect ivity Manager ) ĊĠĠĠĠĠĠĠ Ġval Ġconnection Profile Ġ= ĠConnection Profile ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcarrier Name Ġ= Ġif Ġ( cm Ġ!= Ġnull Ġ&& Ġtm Ġ!= Ġnull ) Ġget Carrier Name ( context , Ġcm , Ġtm ) Ġelse Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnection Type Ġ= Ġif Ġ( cm Ġ!= Ġnull ) Ġget Connection Type ( context , Ġcm ) Ġelse Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeffective Connection Type Ġ= Ġif Ġ( cm Ġ!= Ġnull Ġ&& Ġtm Ġ!= Ġnull ) Ġget Cell ular Connection Type ( context , Ġcm , Ġtm ) Ġelse Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġsession Ġ= ĠBe acon . new Session Start ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Key Ġ= Ġconfig . key , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Profile Ġ= ĠInst ana . app Profile , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdevice Profile Ġ= ĠInst ana . device Profile , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnection Profile Ġ= Ġconnection Profile , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Profile Ġ= ĠInst ana . user Profile , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsessionId Ġ= ĠsessionId , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Ġ= ĠInst ana . view , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmeta Ġ= ĠInst ana . meta . getAll () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠInst ana . sessionId Ġ= ĠsessionId ĊĊĠĠĠĠĠĠĠ ĠLogger . i (" Session Ġstarted Ġwith : Ġ` id ` Ġ$ sessionId ") ĊĠĠĠĠĠĠĠ Ġmanager . queue ( session ) ĊĠĠĠ Ġ} Ċ } Ċ