diff options
12 files changed, 111 insertions, 61 deletions
diff --git a/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java b/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java index cc68ca185e..f4475b55bd 100644 --- a/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java +++ b/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java @@ -259,6 +259,8 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { private Optional<Integer> mCurrentlyConnectedSubId = Optional.empty(); private final MmTelFeatureListener mMmTelFeatureListener = new MmTelFeatureListener(); + private com.android.server.telecom.flags.FeatureFlags mTelecomFlags = + new com.android.server.telecom.flags.FeatureFlagsImpl(); private class MmTelFeatureListener extends MmTelFeature.Listener { private IImsCallSessionListener processIncomingCall(@NonNull IImsCallSession c, @@ -4083,6 +4085,13 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { + " in the single call unhold case"); } } + ImsPhoneConnection conn = findConnection(imsCall); + // Send connection event so that Telecom can unhold the call the bg call that was held + // for calls across phone accounts. + if (mTelecomFlags.enableCallSequencing() && conn != null + && conn.getState() != ImsPhoneCall.State.DISCONNECTED) { + conn.onConnectionEvent(android.telecom.Connection.EVENT_CALL_RESUME_FAILED, null); + } mPhone.notifySuppServiceFailed(Phone.SuppService.RESUME); mMetrics.writeOnImsCallResumeFailed(mPhone.getPhoneId(), imsCall.getCallSession(), reasonInfo); diff --git a/src/java/com/android/internal/telephony/satellite/DatagramController.java b/src/java/com/android/internal/telephony/satellite/DatagramController.java index 370f0a1461..05aef83188 100644 --- a/src/java/com/android/internal/telephony/satellite/DatagramController.java +++ b/src/java/com/android/internal/telephony/satellite/DatagramController.java @@ -35,10 +35,10 @@ import android.os.Build; import android.os.Looper; import android.os.SystemProperties; import android.telephony.PersistentLogger; -import android.telephony.Rlog; import android.telephony.satellite.ISatelliteDatagramCallback; import android.telephony.satellite.SatelliteDatagram; import android.telephony.satellite.SatelliteManager; +import android.util.Log; import com.android.internal.R; import com.android.internal.annotations.GuardedBy; @@ -682,22 +682,22 @@ public class DatagramController { } private static void logd(@NonNull String log) { - Rlog.d(TAG, log); + Log.d(TAG, log); } private static void loge(@NonNull String log) { - Rlog.e(TAG, log); + Log.e(TAG, log); } private void plogd(@NonNull String log) { - Rlog.d(TAG, log); + Log.d(TAG, log); if (mPersistentLogger != null) { mPersistentLogger.debug(TAG, log); } } private void ploge(@NonNull String log) { - Rlog.e(TAG, log); + Log.e(TAG, log); if (mPersistentLogger != null) { mPersistentLogger.error(TAG, log); } diff --git a/src/java/com/android/internal/telephony/satellite/DatagramDispatcher.java b/src/java/com/android/internal/telephony/satellite/DatagramDispatcher.java index bc7d5d142f..0d4a2daefe 100644 --- a/src/java/com/android/internal/telephony/satellite/DatagramDispatcher.java +++ b/src/java/com/android/internal/telephony/satellite/DatagramDispatcher.java @@ -40,7 +40,6 @@ import android.os.Handler; import android.os.Looper; import android.os.Message; import android.telephony.PersistentLogger; -import android.telephony.Rlog; import android.telephony.satellite.SatelliteDatagram; import android.telephony.satellite.SatelliteManager; import android.telephony.satellite.SatelliteSessionStats; @@ -1418,31 +1417,31 @@ public class DatagramDispatcher extends Handler { } private static void logd(@NonNull String log) { - Rlog.d(TAG, log); + Log.d(TAG, log); } private static void loge(@NonNull String log) { - Rlog.e(TAG, log); + Log.e(TAG, log); } - private static void logw(@NonNull String log) { Rlog.w(TAG, log); } + private static void logw(@NonNull String log) { Log.w(TAG, log); } private void plogd(@NonNull String log) { - Rlog.d(TAG, log); + Log.d(TAG, log); if (mPersistentLogger != null) { mPersistentLogger.debug(TAG, log); } } private void plogw(@NonNull String log) { - Rlog.w(TAG, log); + Log.w(TAG, log); if (mPersistentLogger != null) { mPersistentLogger.warn(TAG, log); } } private void ploge(@NonNull String log) { - Rlog.e(TAG, log); + Log.e(TAG, log); if (mPersistentLogger != null) { mPersistentLogger.error(TAG, log); } diff --git a/src/java/com/android/internal/telephony/satellite/DatagramReceiver.java b/src/java/com/android/internal/telephony/satellite/DatagramReceiver.java index 9995c4f4db..26d456bcd3 100644 --- a/src/java/com/android/internal/telephony/satellite/DatagramReceiver.java +++ b/src/java/com/android/internal/telephony/satellite/DatagramReceiver.java @@ -38,11 +38,11 @@ import android.os.Message; import android.os.RemoteException; import android.provider.Telephony; import android.telephony.PersistentLogger; -import android.telephony.Rlog; import android.telephony.SubscriptionManager; import android.telephony.satellite.ISatelliteDatagramCallback; import android.telephony.satellite.SatelliteDatagram; import android.telephony.satellite.SatelliteManager; +import android.util.Log; import android.util.Pair; import com.android.internal.R; @@ -892,33 +892,33 @@ public class DatagramReceiver extends Handler { } private static void logd(@NonNull String log) { - Rlog.d(TAG, log); + Log.d(TAG, log); } private static void loge(@NonNull String log) { - Rlog.e(TAG, log); + Log.e(TAG, log); } private static void logw(@NonNull String log) { - Rlog.w(TAG, log); + Log.w(TAG, log); } private void plogd(@NonNull String log) { - Rlog.d(TAG, log); + Log.d(TAG, log); if (mPersistentLogger != null) { mPersistentLogger.debug(TAG, log); } } private void plogw(@NonNull String log) { - Rlog.w(TAG, log); + Log.w(TAG, log); if (mPersistentLogger != null) { mPersistentLogger.warn(TAG, log); } } private void ploge(@NonNull String log) { - Rlog.e(TAG, log); + Log.e(TAG, log); if (mPersistentLogger != null) { mPersistentLogger.error(TAG, log); } diff --git a/src/java/com/android/internal/telephony/satellite/NtnCapabilityResolver.java b/src/java/com/android/internal/telephony/satellite/NtnCapabilityResolver.java index 4b5317896a..0e6233a34a 100644 --- a/src/java/com/android/internal/telephony/satellite/NtnCapabilityResolver.java +++ b/src/java/com/android/internal/telephony/satellite/NtnCapabilityResolver.java @@ -18,8 +18,8 @@ package com.android.internal.telephony.satellite; import android.annotation.NonNull; import android.telephony.NetworkRegistrationInfo; -import android.telephony.Rlog; import android.text.TextUtils; +import android.util.Log; import java.util.List; @@ -60,6 +60,6 @@ public class NtnCapabilityResolver { } private static void logd(@NonNull String log) { - Rlog.d(TAG, log); + Log.d(TAG, log); } } diff --git a/src/java/com/android/internal/telephony/satellite/PointingAppController.java b/src/java/com/android/internal/telephony/satellite/PointingAppController.java index 5b3550a3f0..484632356f 100644 --- a/src/java/com/android/internal/telephony/satellite/PointingAppController.java +++ b/src/java/com/android/internal/telephony/satellite/PointingAppController.java @@ -36,12 +36,12 @@ import android.os.RemoteException; import android.os.SystemProperties; import android.os.UserHandle; import android.telephony.PersistentLogger; -import android.telephony.Rlog; import android.telephony.SubscriptionManager; import android.telephony.satellite.ISatelliteTransmissionUpdateCallback; import android.telephony.satellite.PointingInfo; import android.telephony.satellite.SatelliteManager; import android.text.TextUtils; +import android.util.Log; import com.android.internal.R; import com.android.internal.annotations.GuardedBy; @@ -563,22 +563,22 @@ public class PointingAppController { } private static void logd(@NonNull String log) { - Rlog.d(TAG, log); + Log.d(TAG, log); } private static void loge(@NonNull String log) { - Rlog.e(TAG, log); + Log.e(TAG, log); } private void plogd(@NonNull String log) { - Rlog.d(TAG, log); + Log.d(TAG, log); if (mPersistentLogger != null) { mPersistentLogger.debug(TAG, log); } } private void ploge(@NonNull String log) { - Rlog.e(TAG, log); + Log.e(TAG, log); if (mPersistentLogger != null) { mPersistentLogger.error(TAG, log); } diff --git a/src/java/com/android/internal/telephony/satellite/SatelliteController.java b/src/java/com/android/internal/telephony/satellite/SatelliteController.java index 0d6a2250a7..e4cf041e23 100644 --- a/src/java/com/android/internal/telephony/satellite/SatelliteController.java +++ b/src/java/com/android/internal/telephony/satellite/SatelliteController.java @@ -7337,44 +7337,44 @@ public class SatelliteController extends Handler { } private static void logv(@NonNull String log) { - Rlog.v(TAG, log); + Log.v(TAG, log); } private static void logd(@NonNull String log) { - Rlog.d(TAG, log); + Log.d(TAG, log); } private static void logw(@NonNull String log) { - Rlog.w(TAG, log); + Log.w(TAG, log); } private static void loge(@NonNull String log) { - Rlog.e(TAG, log); + Log.e(TAG, log); } private void plogd(@NonNull String log) { - Rlog.d(TAG, log); + Log.d(TAG, log); if (mPersistentLogger != null) { mPersistentLogger.debug(TAG, log); } } private void plogw(@NonNull String log) { - Rlog.w(TAG, log); + Log.w(TAG, log); if (mPersistentLogger != null) { mPersistentLogger.warn(TAG, log); } } private void ploge(@NonNull String log) { - Rlog.e(TAG, log); + Log.e(TAG, log); if (mPersistentLogger != null) { mPersistentLogger.error(TAG, log); } } private void plogv(@NonNull String log) { - Rlog.v(TAG, log); + Log.v(TAG, log); if (mPersistentLogger != null) { mPersistentLogger.debug(TAG, log); } @@ -7865,6 +7865,8 @@ public class SatelliteController extends Handler { if (preSelectedSatelliteSubId != getSelectedSatelliteSubId()) { plogd("selectBindingSatelliteSubscription: SelectedSatelliteSubId changed"); mSatelliteSubIdChangedRegistrants.notifyRegistrants(); + handleEventSelectedNbIotSatelliteSubscriptionChanged(selectedSubId); + handleCarrierRoamingNtnAvailableServicesChanged(); evaluateCarrierRoamingNtnEligibilityChange(); } @@ -7879,8 +7881,6 @@ public class SatelliteController extends Handler { mControllerMetricsStats.setIsNtnOnlyCarrier(isNtnOnlyCarrier()); } plogd("selectBindingSatelliteSubscription: SelectedSatelliteSubId=" + selectedSubId); - handleEventSelectedNbIotSatelliteSubscriptionChanged(selectedSubId); - handleCarrierRoamingNtnAvailableServicesChanged(); } @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE) @@ -8563,6 +8563,7 @@ public class SatelliteController extends Handler { } mCtsSatelliteAccessAllowedSubIds.clear(); mCtsSatelliteAccessAllowedSubIds.addAll(subIdList); + selectBindingSatelliteSubscription(false); return true; } @@ -9195,23 +9196,42 @@ public class SatelliteController extends Handler { * @return Supported modes {@link CarrierConfigManager.SATELLITE_DATA_SUPPORT_MODE} */ public int getSatelliteDataServicePolicyForPlmn(int subId, String plmn) { - if (plmn != null && isValidSubscriptionId(subId)) { + plogd("getSatelliteDataServicePolicyForPlmn: subId=" + subId + " plmn=" + plmn); + if (isValidSubscriptionId(subId)) { + Map<String, Integer> dataServicePolicy; synchronized (mSupportedSatelliteServicesLock) { - Map<String, Integer> dataServicePolicy = - mEntitlementDataServicePolicyMapPerCarrier.get( - subId); - logd("data policy available for sub id:" + dataServicePolicy); - if (dataServicePolicy != null && dataServicePolicy.containsKey(plmn) - && !plmn.isEmpty()) { + dataServicePolicy = mEntitlementDataServicePolicyMapPerCarrier.get(subId); + } + plogd("getSatelliteDataServicePolicyForPlmn: dataServicePolicy=" + dataServicePolicy); + + if (dataServicePolicy != null) { + if (!TextUtils.isEmpty(plmn) && dataServicePolicy.containsKey(plmn)) { + plogd("getSatelliteDataServicePolicyForPlmn: " + + "return policy using dataServicePolicy map"); return dataServicePolicy.get(plmn); + } else if (TextUtils.isEmpty(plmn)) { + int preferredPolicy = + CarrierConfigManager.SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED; + for (String plmnKey : dataServicePolicy.keySet()) { + int policy = dataServicePolicy.get(plmnKey); + // higher value has higher preference + if (policy > preferredPolicy) { + preferredPolicy = policy; + } + } + plogd("getSatelliteDataServicePolicyForPlmn: " + + "return preferredPolicy=" + preferredPolicy); + return preferredPolicy; } } if (isSatelliteDataServicesAllowed(subId, plmn)) { + plogd("getSatelliteDataServicePolicyForPlmn: return data support mode from config"); return getCarrierSatelliteDataSupportedModeFromConfig(subId); } } + plogd("getSatelliteDataServicePolicyForPlmn: return data support only restricted"); return CarrierConfigManager.SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED; } diff --git a/src/java/com/android/internal/telephony/satellite/SatelliteModemInterface.java b/src/java/com/android/internal/telephony/satellite/SatelliteModemInterface.java index 9ceca72817..2ebd258a1b 100644 --- a/src/java/com/android/internal/telephony/satellite/SatelliteModemInterface.java +++ b/src/java/com/android/internal/telephony/satellite/SatelliteModemInterface.java @@ -33,7 +33,6 @@ import android.os.RemoteException; import android.telephony.IBooleanConsumer; import android.telephony.IIntegerConsumer; import android.telephony.PersistentLogger; -import android.telephony.Rlog; import android.telephony.satellite.NtnSignalStrength; import android.telephony.satellite.SatelliteCapabilities; import android.telephony.satellite.SatelliteDatagram; @@ -48,6 +47,7 @@ import android.telephony.satellite.stub.ISatelliteListener; import android.telephony.satellite.stub.SatelliteModemState; import android.telephony.satellite.stub.SatelliteService; import android.text.TextUtils; +import android.util.Log; import android.util.Pair; import com.android.internal.R; @@ -1426,22 +1426,22 @@ public class SatelliteModemInterface { } private static void logd(@NonNull String log) { - Rlog.d(TAG, log); + Log.d(TAG, log); } private static void loge(@NonNull String log) { - Rlog.e(TAG, log); + Log.e(TAG, log); } private void plogd(@NonNull String log) { - Rlog.d(TAG, log); + Log.d(TAG, log); if (mPersistentLogger != null) { mPersistentLogger.debug(TAG, log); } } private void ploge(@NonNull String log) { - Rlog.e(TAG, log); + Log.e(TAG, log); if (mPersistentLogger != null) { mPersistentLogger.error(TAG, log); } diff --git a/src/java/com/android/internal/telephony/satellite/SatelliteOptimizedApplicationsTracker.java b/src/java/com/android/internal/telephony/satellite/SatelliteOptimizedApplicationsTracker.java index 636c04e3e5..df656df0e1 100644 --- a/src/java/com/android/internal/telephony/satellite/SatelliteOptimizedApplicationsTracker.java +++ b/src/java/com/android/internal/telephony/satellite/SatelliteOptimizedApplicationsTracker.java @@ -31,9 +31,9 @@ import android.os.Looper; import android.os.Message; import android.os.UserHandle; import android.os.UserManager; +import android.util.Log; import com.android.internal.telephony.PackageChangeReceiver; -import com.android.telephony.Rlog; import java.util.ArrayList; import java.util.HashMap; @@ -247,10 +247,10 @@ public class SatelliteOptimizedApplicationsTracker { } private void log(String str) { - Rlog.i(TAG, str); + Log.i(TAG, str); } private void loge(String str) { - Rlog.e(TAG, str); + Log.e(TAG, str); } } diff --git a/src/java/com/android/internal/telephony/satellite/SatelliteSOSMessageRecommender.java b/src/java/com/android/internal/telephony/satellite/SatelliteSOSMessageRecommender.java index d33f8280da..a7e35c9841 100644 --- a/src/java/com/android/internal/telephony/satellite/SatelliteSOSMessageRecommender.java +++ b/src/java/com/android/internal/telephony/satellite/SatelliteSOSMessageRecommender.java @@ -48,7 +48,6 @@ import android.os.SystemProperties; import android.provider.DeviceConfig; import android.telecom.Connection; import android.telephony.PersistentLogger; -import android.telephony.Rlog; import android.telephony.ServiceState; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; @@ -59,6 +58,7 @@ import android.telephony.satellite.ISatelliteProvisionStateCallback; import android.telephony.satellite.SatelliteManager; import android.telephony.satellite.SatelliteSubscriberProvisionStatus; import android.text.TextUtils; +import android.util.Log; import android.util.Pair; import android.util.SparseArray; @@ -859,26 +859,26 @@ public class SatelliteSOSMessageRecommender extends Handler { } private static void logv(@NonNull String log) { - Rlog.v(TAG, log); + Log.v(TAG, log); } private static void logd(@NonNull String log) { - Rlog.d(TAG, log); + Log.d(TAG, log); } private static void loge(@NonNull String log) { - Rlog.e(TAG, log); + Log.e(TAG, log); } private void plogd(@NonNull String log) { - Rlog.d(TAG, log); + Log.d(TAG, log); if (mPersistentLogger != null) { mPersistentLogger.debug(TAG, log); } } private void ploge(@NonNull String log) { - Rlog.e(TAG, log); + Log.e(TAG, log); if (mPersistentLogger != null) { mPersistentLogger.error(TAG, log); } diff --git a/src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java b/src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java index 3afaf9f654..a6581398e0 100644 --- a/src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java +++ b/src/java/com/android/internal/telephony/satellite/SatelliteServiceUtils.java @@ -33,7 +33,6 @@ import android.telephony.CellIdentity; import android.telephony.DropBoxManagerLoggerBackend; import android.telephony.NetworkRegistrationInfo; import android.telephony.PersistentLogger; -import android.telephony.Rlog; import android.telephony.ServiceState; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; @@ -52,6 +51,7 @@ import android.telephony.satellite.stub.NTRadioTechnology; import android.telephony.satellite.stub.SatelliteModemState; import android.telephony.satellite.stub.SatelliteResult; import android.text.TextUtils; +import android.util.Log; import com.android.internal.R; import com.android.internal.telephony.CommandException; @@ -738,14 +738,14 @@ public class SatelliteServiceUtils { } private static void logd(@NonNull String log) { - Rlog.d(TAG, log); + Log.d(TAG, log); } private static void loge(@NonNull String log) { - Rlog.e(TAG, log); + Log.e(TAG, log); } private static void logv(@NonNull String log) { - Rlog.v(TAG, log); + Log.v(TAG, log); } } diff --git a/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java b/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java index bc50894257..a519067e78 100644 --- a/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java +++ b/tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java @@ -6593,6 +6593,13 @@ public class SatelliteControllerTest extends TelephonyTest { .getSatelliteDataServicePolicyForPlmn(SUB_ID, "00102"); assertEquals(SATELLITE_DATA_SUPPORT_ALL, dataSupportModeForPlmn); + dataSupportModeForPlmn = mSatelliteControllerUT + .getSatelliteDataServicePolicyForPlmn(SUB_ID, ""); + assertEquals(SATELLITE_DATA_SUPPORT_ALL, dataSupportModeForPlmn); + + dataSupportModeForPlmn = mSatelliteControllerUT + .getSatelliteDataServicePolicyForPlmn(SUB_ID, null); + assertEquals(SATELLITE_DATA_SUPPORT_ALL, dataSupportModeForPlmn); } @Test @@ -6626,6 +6633,14 @@ public class SatelliteControllerTest extends TelephonyTest { .getSatelliteDataServicePolicyForPlmn(SUB_ID, "00101"); assertEquals(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED, dataSupportModeForPlmn); + dataSupportModeForPlmn = mSatelliteControllerUT + .getSatelliteDataServicePolicyForPlmn(SUB_ID, ""); + assertEquals(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED, dataSupportModeForPlmn); + + dataSupportModeForPlmn = mSatelliteControllerUT + .getSatelliteDataServicePolicyForPlmn(SUB_ID, null); + assertEquals(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED, dataSupportModeForPlmn); + setConfigData(new ArrayList<>()); PersistableBundle carrierSupportedSatelliteServicesPerProvider = new PersistableBundle(); @@ -6642,6 +6657,13 @@ public class SatelliteControllerTest extends TelephonyTest { .getSatelliteDataServicePolicyForPlmn(SUB_ID, "00101"); assertEquals(SATELLITE_DATA_SUPPORT_BANDWIDTH_CONSTRAINED, dataSupportModeForPlmn); + dataSupportModeForPlmn = mSatelliteControllerUT + .getSatelliteDataServicePolicyForPlmn(SUB_ID, ""); + assertEquals(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED, dataSupportModeForPlmn); + + dataSupportModeForPlmn = mSatelliteControllerUT + .getSatelliteDataServicePolicyForPlmn(SUB_ID, null); + assertEquals(SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED, dataSupportModeForPlmn); } @Test |