From 3d77b55ae1bc6f070aa7980f254be71b525d9c2e Mon Sep 17 00:00:00 2001 From: JNNJ <95310130+CodeName-Anti@users.noreply.github.com> Date: Sat, 8 Aug 2026 23:23:53 +0200 Subject: [PATCH] fix: use SubscriptionService to get active data SIM to determine the network operator name --- .../com/windscribe/vpn/state/DeviceStateManager.kt | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/base/src/main/java/com/windscribe/vpn/state/DeviceStateManager.kt b/base/src/main/java/com/windscribe/vpn/state/DeviceStateManager.kt index bf6b52d1..f274b8b0 100644 --- a/base/src/main/java/com/windscribe/vpn/state/DeviceStateManager.kt +++ b/base/src/main/java/com/windscribe/vpn/state/DeviceStateManager.kt @@ -17,6 +17,7 @@ import android.net.Network import android.net.NetworkCapabilities import android.net.wifi.WifiManager import android.os.Build +import android.telephony.SubscriptionManager import android.telephony.TelephonyManager import androidx.core.content.ContextCompat import com.windscribe.vpn.wsnet.WSNetWrapper @@ -362,7 +363,18 @@ class DeviceStateManager try { val telephonyManager = context.getSystemService(Context.TELEPHONY_SERVICE) as? TelephonyManager - val operatorName = telephonyManager?.networkOperatorName + + val dataSubId = + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + SubscriptionManager.getActiveDataSubscriptionId() + } else { + @Suppress("DEPRECATION") + SubscriptionManager.getDefaultDataSubscriptionId() + } + + val dataSimTelephonyManager = + telephonyManager?.createForSubscriptionId(dataSubId) + val operatorName = dataSimTelephonyManager?.networkOperatorName when { operatorName.isNullOrBlank() || operatorName == "Unknown" -> {