package com.vanta.smsgateway import android.content.Context import android.telephony.SubscriptionInfo import android.telephony.SubscriptionManager object SubscriptionHelper { // Returns eSIM subId if found, else first active sim, else system default fun getESimSubId(context: Context): Int { val sm = context.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE) as SubscriptionManager return try { val list: List = sm.activeSubscriptionInfoList ?: emptyList() val esim = list.firstOrNull { it.isEmbedded } esim?.subscriptionId ?: list.firstOrNull()?.subscriptionId ?: SubscriptionManager.getDefaultSmsSubscriptionId() } catch (_: SecurityException) { SubscriptionManager.getDefaultSmsSubscriptionId() } } fun describe(context: Context): String { val sm = context.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE) as SubscriptionManager return try { val list = sm.activeSubscriptionInfoList ?: emptyList() if (list.isEmpty()) return "No active SIMs" list.joinToString(" | ") { "${if (it.isEmbedded) "eSIM" else "SIM${it.simSlotIndex + 1}"}: ${it.displayName}" } } catch (_: SecurityException) { "Permission denied" } } }