From 67411ed9fc6aa97d68ce66f67c82c71838ee1173 Mon Sep 17 00:00:00 2001 From: Aishwarya Mallampati Date: Mon, 17 Mar 2025 18:57:44 +0000 Subject: Check data registration state in isCellularAvailable Bug: 403826786 Test: atest SatelliteServiceUtilsTest Test: b/404360253 Flag: EXEMPT bugfix Change-Id: I3416255e8a5b0363ebefba62dfe53f7561eff008 --- .../internal/telephony/satellite/SatelliteServiceUtils.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java b/src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java index 3e77bd9d38..318e8cf65e 100644 --- a/src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java +++ b/src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java @@ -533,8 +533,17 @@ public class SatelliteServiceUtils { ServiceState serviceState = phone.getServiceState(); if (serviceState != null) { int state = serviceState.getState(); + NetworkRegistrationInfo dataNri = serviceState.getNetworkRegistrationInfo( + NetworkRegistrationInfo.DOMAIN_PS, + AccessNetworkConstants.TRANSPORT_TYPE_WWAN); + boolean isCellularDataInService = dataNri != null && dataNri.isInService(); + logd("isCellularAvailable: phoneId=" + phone.getPhoneId() + " state=" + state + + " isEmergencyOnly=" + serviceState.isEmergencyOnly() + + " isCellularDataInService=" + isCellularDataInService); + if ((state == STATE_IN_SERVICE || state == STATE_EMERGENCY_ONLY - || serviceState.isEmergencyOnly()) + || serviceState.isEmergencyOnly() + || isCellularDataInService) && !isSatellitePlmn(phone.getSubId(), serviceState)) { logd("isCellularAvailable true"); return true; -- cgit v1.2.3-59-g8ed1b