/* Ċ Ġ* Ġ* Ċ Ġ* Ġ Ġ* ĠCreated Ġby ĠCh iran j ee vi ĠP ande y Ġon Ġ 2 6 / 3 / 2 2 , Ġ 1 : 0 7 Ġpm Ċ Ġ* Ġ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 2 Ġ. ĠAll Ġrights Ġreserved . Ċ Ġ* Ġ Ġ* ĠLast Ġmodified Ġ 2 6 / 3 / 2 2 , Ġ 1 : 0 7 Ġpm Ċ Ġ* Ċ Ġ*/ Ċ Ċ package Ġio . github . the gb gu y . us sd navigator . tele phony Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . tele phony . Subscription Info Ċ import Ġandroid . tele phony . Subscription Manager Ċ import Ġandroid . tele phony . Tele phony Manager Ċ import Ġandroid . text . TextUtils Ċ Ċ /* Ċ Ġ* ĠThis Ġis Ġa Ġutility Ġclass Ġthat Ġis Ġused Ġto Ġinvoke Ġdifferent Ċ Ġ* Ġtele phony Ġrelated Ġoperations . Ċ Ġ*/ Ċ class ĠSIM Utils Ġprivate Ġconstructor ( private Ġval Ġcontext : ĠContext ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġtele phony Managers : ĠMutable Map < Int , ĠTele phony Manager > ĊĠĠĠ Ġprivate Ġval Ġtele phony Manager : ĠTele phony Manager ĊĠĠĠ Ġprivate Ġval Ġsubscription Manager : ĠSubscription Manager ĊĊĠĠĠ Ġ@ get : Suppress Lint (" Missing Permission ") ĊĠĠĠ Ġprivate Ġvar Ġsubs InfoList : ĠList < Subscription Info > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġsubscription Manager . active Subscription InfoList ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( field Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfield ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġinitializes Ġtele phony Ġmanagers Ġinstances Ġfor Ġboth ĊĠĠĠ Ġ// Ġsingle Ġand Ġdual Ġsim Ġenabled Ġdevices ĊĠĠĠ Ġprivate Ġfun Ġinitialize Tele phony Managers () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! tele phony Managers . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtele phony Managers . clear () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( subs Info Ġin Ġsubs InfoList ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtele phony Managers [ subs Info . sim Slot Index ] Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtele phony Manager . create For Subscription Id ( subs Info . subscriptionId ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġreturns Ġthe Ġsim Ġslot Ġindex Ġof Ġthe Ġgiven Ġsim ĊĠĠĠ Ġfun Ġget Sim Slot Index ( sim Name : ĠString ?): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( subs Info Ġin Ġsubs InfoList ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . equals ( sim Name , Ġsubs Info . carrier Name )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsubs Info . sim Slot Index ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġreturns Ġthe Ġlist Ġof Ġsim Ġcard Ġinserted Ġin Ġthe Ġdevice ĊĠĠĠ Ġfun Ġget Sim List (): ĠList < Sim > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsubs InfoList . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSim ( it . carrier Name . toString (), Ġit . sim Slot Index ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( it . carrier Name ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Nam aste " Ġ-> Ġthis . data Pack U SSD Code Ġ= Ġ"* 1 4 1 5 #" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" N cell " Ġ-> Ġthis . data Pack U SSD Code Ġ= Ġ"* 1 7 1 2 3 #" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġsingleton Ġinstance Ġof Ġthis Ġclass ĊĠĠĠĠĠĠĠ Ġ@ Suppress Lint (" Static Field Leak ") ĊĠĠĠĠĠĠĠ Ġvar ĠINSTANCE : ĠSIM Utils ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance ( context : ĠContext ): ĠSIM Utils ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( INSTANCE Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsynchronized ( SIM Utils :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( INSTANCE Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠINSTANCE Ġ= ĠSIM Utils ( context . application Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠINSTANCE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġtele phony Managers Ġ= ĠHashMap () ĊĠĠĠĠĠĠĠ Ġtele phony Manager Ġ= Ġcontext . getSystem Service ( Context . TELE PHONY _ SERVICE ) Ġas ĠTele phony Manager ĊĠĠĠĠĠĠĠ Ġsubscription Manager Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getSystem Service ( Context . TELE PHONY _ SUB SCRIPTION _ SERVICE ) Ġas ĠSubscription Manager ĊĠĠĠĠĠĠĠ Ġinitialize Tele phony Managers () ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠSim ( ĊĠĠĠ Ġval Ġsim Name : ĠString , ĊĠĠĠ Ġval Ġsim Slot : ĠInt , ĊĠĠĠ Ġvar Ġdata Pack U SSD Code : ĠString Ġ= Ġ"" Ċ ) Ċ