Loading flags/misc.aconfig +0 −11 Original line number Diff line number Diff line Loading @@ -79,17 +79,6 @@ flag { } } # OWNER=sasindran TARGET=24Q3 flag { name: "use_relaxed_id_match" namespace: "telephony" description: "This flag supports relaxed id match for radio state changes" bug:"336916327" metadata { purpose: PURPOSE_BUGFIX } } # OWNER=joonhunshin TARGET=24Q4 flag { name: "use_carrier_config_for_cfnry_time_via_mmi" Loading src/java/com/android/internal/telephony/satellite/SatelliteController.java +123 −0 Original line number Diff line number Diff line Loading @@ -341,6 +341,11 @@ public class SatelliteController extends Handler { private static final int REQUEST_SET_DEVICE_ALIGNED_WITH_SATELLITE = 80; private static final int REQUEST_ADD_ATTACH_RESTRICTION_FOR_CARRIER = 81; private static final int REQUEST_REMOVE_ATTACH_RESTRICTION_FOR_CARRIER = 82; private static final int REQUEST_NTN_SIGNAL_STRENGTH = 83; private static final int REQUEST_SATELLITE_SUBSCRIBER_PROVISION_STATUS = 84; private static final int REQUEST_SET_NTN_SMS_SUPPORTED_BY_MESSAGES_APP = 85; private static final int REQUEST_PROVISION_SATELLITE = 86; private static final int REQUEST_DEPROVISION_SATELLITE = 87; @NonNull private static SatelliteController sInstance; @NonNull private final Context mContext; Loading Loading @@ -2558,6 +2563,67 @@ public class SatelliteController extends Handler { break; } case REQUEST_NTN_SIGNAL_STRENGTH: { plogd("REQUEST_NTN_SIGNAL_STRENGTH"); SomeArgs args = (SomeArgs) msg.obj; ResultReceiver result = (ResultReceiver) args.arg1; try { handleRequestNtnSignalStrength(result); } finally { args.recycle(); } break; } case REQUEST_SATELLITE_SUBSCRIBER_PROVISION_STATUS: { plogd("REQUEST_SATELLITE_SUBSCRIBER_PROVISION_STATUS"); SomeArgs args = (SomeArgs) msg.obj; ResultReceiver result = (ResultReceiver) args.arg1; try { handleRequestSatelliteSubscriberProvisionStatus(result); } finally { args.recycle(); } break; } case REQUEST_SET_NTN_SMS_SUPPORTED_BY_MESSAGES_APP: { plogd("REQUEST_SET_NTN_SMS_SUPPORTED_BY_MESSAGES_APP"); SomeArgs args = (SomeArgs) msg.obj; boolean ntnSmsSupported = (boolean) args.arg1; try { handleRequestSetNtnSmsSupportedByMessagesApp(ntnSmsSupported); } finally { args.recycle(); } break; } case REQUEST_PROVISION_SATELLITE: { plogd("REQUEST_PROVISION_SATELLITE"); SomeArgs args = (SomeArgs) msg.obj; List<SatelliteSubscriberInfo> list = (List<SatelliteSubscriberInfo>) args.arg1; ResultReceiver result = (ResultReceiver) args.arg2; try { handleRequestProvisionSatellite(list, result); } finally { args.recycle(); } break; } case REQUEST_DEPROVISION_SATELLITE: { plogd("REQUEST_DEPROVISION_SATELLITE"); SomeArgs args = (SomeArgs) msg.obj; List<SatelliteSubscriberInfo> list = (List<SatelliteSubscriberInfo>) args.arg1; ResultReceiver result = (ResultReceiver) args.arg2; try { handleRequestDeprovisionSatellite(list, result); } finally { args.recycle(); } break; } default: Log.w(TAG, "SatelliteControllerHandler: unexpected message code: " + Loading Loading @@ -3788,6 +3854,18 @@ public class SatelliteController extends Handler { public void requestNtnSignalStrength(@NonNull ResultReceiver result) { if (DBG) plogd("requestNtnSignalStrength()"); if (mFeatureFlags.satelliteImproveMultiThreadDesign()) { SomeArgs args = SomeArgs.obtain(); args.arg1 = result; sendMessage(obtainMessage(REQUEST_NTN_SIGNAL_STRENGTH, args)); return; } handleRequestNtnSignalStrength(result); } private void handleRequestNtnSignalStrength(@NonNull ResultReceiver result) { plogd("handleRequestNtnSignalStrength"); int error = evaluateOemSatelliteRequestAllowed(true); if (error != SATELLITE_RESULT_SUCCESS) { result.send(error, null); Loading Loading @@ -8200,6 +8278,16 @@ public class SatelliteController extends Handler { * to be used for provision if the request is successful or an error code if the request failed. */ public void requestSatelliteSubscriberProvisionStatus(@NonNull ResultReceiver result) { if (mFeatureFlags.satelliteImproveMultiThreadDesign()) { SomeArgs args = SomeArgs.obtain(); args.arg1 = result; sendMessage(obtainMessage(REQUEST_SATELLITE_SUBSCRIBER_PROVISION_STATUS, args)); } handleRequestSatelliteSubscriberProvisionStatus(result); } private void handleRequestSatelliteSubscriberProvisionStatus(@NonNull ResultReceiver result) { if (!mFeatureFlags.carrierRoamingNbIotNtn()) { logd("requestSatelliteSubscriberProvisionStatus: carrierRoamingNbIotNtn is disabled"); result.send(SATELLITE_RESULT_REQUEST_NOT_SUPPORTED, null); Loading Loading @@ -8497,6 +8585,18 @@ public class SatelliteController extends Handler { */ public void provisionSatellite(@NonNull List<SatelliteSubscriberInfo> list, @NonNull ResultReceiver result) { if (mFeatureFlags.satelliteImproveMultiThreadDesign()) { SomeArgs args = SomeArgs.obtain(); args.arg1 = list; args.arg2 = result; sendMessage(obtainMessage(REQUEST_PROVISION_SATELLITE, args)); } handleRequestProvisionSatellite(list, result); } private void handleRequestProvisionSatellite(@NonNull List<SatelliteSubscriberInfo> list, @NonNull ResultReceiver result) { if (!mFeatureFlags.carrierRoamingNbIotNtn()) { result.send(SATELLITE_RESULT_REQUEST_NOT_SUPPORTED, null); logd("provisionSatellite: carrierRoamingNbIotNtn not support"); Loading Loading @@ -8581,6 +8681,18 @@ public class SatelliteController extends Handler { */ public void deprovisionSatellite(@NonNull List<SatelliteSubscriberInfo> list, @NonNull ResultReceiver result) { if (mFeatureFlags.satelliteImproveMultiThreadDesign()) { SomeArgs args = SomeArgs.obtain(); args.arg1 = list; args.arg2 = result; sendMessage(obtainMessage(REQUEST_DEPROVISION_SATELLITE, args)); } handleRequestDeprovisionSatellite(list, result); } private void handleRequestDeprovisionSatellite(@NonNull List<SatelliteSubscriberInfo> list, @NonNull ResultReceiver result) { if (!mFeatureFlags.carrierRoamingNbIotNtn()) { result.send(SATELLITE_RESULT_REQUEST_NOT_SUPPORTED, null); logd("deprovisionSatellite: carrierRoamingNbIotNtn not support"); Loading Loading @@ -8608,6 +8720,17 @@ public class SatelliteController extends Handler { * @param ntnSmsSupported {@code true} If application supports NTN SMS, else {@code false}. */ public void setNtnSmsSupportedByMessagesApp(boolean ntnSmsSupported) { if (mFeatureFlags.satelliteImproveMultiThreadDesign()) { SomeArgs args = SomeArgs.obtain(); args.arg1 = ntnSmsSupported; sendMessage(obtainMessage(REQUEST_SET_NTN_SMS_SUPPORTED_BY_MESSAGES_APP, args)); return; } handleRequestSetNtnSmsSupportedByMessagesApp(ntnSmsSupported); } private void handleRequestSetNtnSmsSupportedByMessagesApp(boolean ntnSmsSupported) { if (!mFeatureFlags.carrierRoamingNbIotNtn()) { return; } Loading tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java +4 −3 Original line number Diff line number Diff line Loading @@ -4470,7 +4470,7 @@ public class SatelliteControllerTest extends TelephonyTest { inputList.add(list.get(0)); verifyProvisionSatellite(inputList); verify(mMockSatelliteModemInterface, times(1)).updateSatelliteSubscription(anyString(), verify(mMockSatelliteModemInterface, times(2)).updateSatelliteSubscription(anyString(), any()); assertTrue(waitForForEvents( semaphore, 1, "testRegisterForSatelliteSubscriptionProvisionStateChanged")); Loading Loading @@ -4841,8 +4841,8 @@ public class SatelliteControllerTest extends TelephonyTest { List<SatelliteSubscriberInfo> inputList = getExpectedSatelliteSubscriberInfoList(); verifyProvisionSatellite(inputList); verify(mMockSubscriptionManagerService).setIsSatelliteProvisionedForNonIpDatagram( eq(SUB_ID), eq(true)); verify(mMockSubscriptionManagerService, times(2)) .setIsSatelliteProvisionedForNonIpDatagram(eq(SUB_ID), eq(true)); } @Test Loading Loading @@ -6230,6 +6230,7 @@ public class SatelliteControllerTest extends TelephonyTest { public void testSetNtnSmsSupportedByMessagesApp() { when(mFeatureFlags.carrierRoamingNbIotNtn()).thenReturn(true); mSatelliteControllerUT.setNtnSmsSupportedByMessagesApp(true); processAllMessages(); assertTrue(mSharedPreferences.getBoolean( SatelliteController.NTN_SMS_SUPPORTED_BY_MESSAGES_APP_KEY, false)); } Loading Loading
flags/misc.aconfig +0 −11 Original line number Diff line number Diff line Loading @@ -79,17 +79,6 @@ flag { } } # OWNER=sasindran TARGET=24Q3 flag { name: "use_relaxed_id_match" namespace: "telephony" description: "This flag supports relaxed id match for radio state changes" bug:"336916327" metadata { purpose: PURPOSE_BUGFIX } } # OWNER=joonhunshin TARGET=24Q4 flag { name: "use_carrier_config_for_cfnry_time_via_mmi" Loading
src/java/com/android/internal/telephony/satellite/SatelliteController.java +123 −0 Original line number Diff line number Diff line Loading @@ -341,6 +341,11 @@ public class SatelliteController extends Handler { private static final int REQUEST_SET_DEVICE_ALIGNED_WITH_SATELLITE = 80; private static final int REQUEST_ADD_ATTACH_RESTRICTION_FOR_CARRIER = 81; private static final int REQUEST_REMOVE_ATTACH_RESTRICTION_FOR_CARRIER = 82; private static final int REQUEST_NTN_SIGNAL_STRENGTH = 83; private static final int REQUEST_SATELLITE_SUBSCRIBER_PROVISION_STATUS = 84; private static final int REQUEST_SET_NTN_SMS_SUPPORTED_BY_MESSAGES_APP = 85; private static final int REQUEST_PROVISION_SATELLITE = 86; private static final int REQUEST_DEPROVISION_SATELLITE = 87; @NonNull private static SatelliteController sInstance; @NonNull private final Context mContext; Loading Loading @@ -2558,6 +2563,67 @@ public class SatelliteController extends Handler { break; } case REQUEST_NTN_SIGNAL_STRENGTH: { plogd("REQUEST_NTN_SIGNAL_STRENGTH"); SomeArgs args = (SomeArgs) msg.obj; ResultReceiver result = (ResultReceiver) args.arg1; try { handleRequestNtnSignalStrength(result); } finally { args.recycle(); } break; } case REQUEST_SATELLITE_SUBSCRIBER_PROVISION_STATUS: { plogd("REQUEST_SATELLITE_SUBSCRIBER_PROVISION_STATUS"); SomeArgs args = (SomeArgs) msg.obj; ResultReceiver result = (ResultReceiver) args.arg1; try { handleRequestSatelliteSubscriberProvisionStatus(result); } finally { args.recycle(); } break; } case REQUEST_SET_NTN_SMS_SUPPORTED_BY_MESSAGES_APP: { plogd("REQUEST_SET_NTN_SMS_SUPPORTED_BY_MESSAGES_APP"); SomeArgs args = (SomeArgs) msg.obj; boolean ntnSmsSupported = (boolean) args.arg1; try { handleRequestSetNtnSmsSupportedByMessagesApp(ntnSmsSupported); } finally { args.recycle(); } break; } case REQUEST_PROVISION_SATELLITE: { plogd("REQUEST_PROVISION_SATELLITE"); SomeArgs args = (SomeArgs) msg.obj; List<SatelliteSubscriberInfo> list = (List<SatelliteSubscriberInfo>) args.arg1; ResultReceiver result = (ResultReceiver) args.arg2; try { handleRequestProvisionSatellite(list, result); } finally { args.recycle(); } break; } case REQUEST_DEPROVISION_SATELLITE: { plogd("REQUEST_DEPROVISION_SATELLITE"); SomeArgs args = (SomeArgs) msg.obj; List<SatelliteSubscriberInfo> list = (List<SatelliteSubscriberInfo>) args.arg1; ResultReceiver result = (ResultReceiver) args.arg2; try { handleRequestDeprovisionSatellite(list, result); } finally { args.recycle(); } break; } default: Log.w(TAG, "SatelliteControllerHandler: unexpected message code: " + Loading Loading @@ -3788,6 +3854,18 @@ public class SatelliteController extends Handler { public void requestNtnSignalStrength(@NonNull ResultReceiver result) { if (DBG) plogd("requestNtnSignalStrength()"); if (mFeatureFlags.satelliteImproveMultiThreadDesign()) { SomeArgs args = SomeArgs.obtain(); args.arg1 = result; sendMessage(obtainMessage(REQUEST_NTN_SIGNAL_STRENGTH, args)); return; } handleRequestNtnSignalStrength(result); } private void handleRequestNtnSignalStrength(@NonNull ResultReceiver result) { plogd("handleRequestNtnSignalStrength"); int error = evaluateOemSatelliteRequestAllowed(true); if (error != SATELLITE_RESULT_SUCCESS) { result.send(error, null); Loading Loading @@ -8200,6 +8278,16 @@ public class SatelliteController extends Handler { * to be used for provision if the request is successful or an error code if the request failed. */ public void requestSatelliteSubscriberProvisionStatus(@NonNull ResultReceiver result) { if (mFeatureFlags.satelliteImproveMultiThreadDesign()) { SomeArgs args = SomeArgs.obtain(); args.arg1 = result; sendMessage(obtainMessage(REQUEST_SATELLITE_SUBSCRIBER_PROVISION_STATUS, args)); } handleRequestSatelliteSubscriberProvisionStatus(result); } private void handleRequestSatelliteSubscriberProvisionStatus(@NonNull ResultReceiver result) { if (!mFeatureFlags.carrierRoamingNbIotNtn()) { logd("requestSatelliteSubscriberProvisionStatus: carrierRoamingNbIotNtn is disabled"); result.send(SATELLITE_RESULT_REQUEST_NOT_SUPPORTED, null); Loading Loading @@ -8497,6 +8585,18 @@ public class SatelliteController extends Handler { */ public void provisionSatellite(@NonNull List<SatelliteSubscriberInfo> list, @NonNull ResultReceiver result) { if (mFeatureFlags.satelliteImproveMultiThreadDesign()) { SomeArgs args = SomeArgs.obtain(); args.arg1 = list; args.arg2 = result; sendMessage(obtainMessage(REQUEST_PROVISION_SATELLITE, args)); } handleRequestProvisionSatellite(list, result); } private void handleRequestProvisionSatellite(@NonNull List<SatelliteSubscriberInfo> list, @NonNull ResultReceiver result) { if (!mFeatureFlags.carrierRoamingNbIotNtn()) { result.send(SATELLITE_RESULT_REQUEST_NOT_SUPPORTED, null); logd("provisionSatellite: carrierRoamingNbIotNtn not support"); Loading Loading @@ -8581,6 +8681,18 @@ public class SatelliteController extends Handler { */ public void deprovisionSatellite(@NonNull List<SatelliteSubscriberInfo> list, @NonNull ResultReceiver result) { if (mFeatureFlags.satelliteImproveMultiThreadDesign()) { SomeArgs args = SomeArgs.obtain(); args.arg1 = list; args.arg2 = result; sendMessage(obtainMessage(REQUEST_DEPROVISION_SATELLITE, args)); } handleRequestDeprovisionSatellite(list, result); } private void handleRequestDeprovisionSatellite(@NonNull List<SatelliteSubscriberInfo> list, @NonNull ResultReceiver result) { if (!mFeatureFlags.carrierRoamingNbIotNtn()) { result.send(SATELLITE_RESULT_REQUEST_NOT_SUPPORTED, null); logd("deprovisionSatellite: carrierRoamingNbIotNtn not support"); Loading Loading @@ -8608,6 +8720,17 @@ public class SatelliteController extends Handler { * @param ntnSmsSupported {@code true} If application supports NTN SMS, else {@code false}. */ public void setNtnSmsSupportedByMessagesApp(boolean ntnSmsSupported) { if (mFeatureFlags.satelliteImproveMultiThreadDesign()) { SomeArgs args = SomeArgs.obtain(); args.arg1 = ntnSmsSupported; sendMessage(obtainMessage(REQUEST_SET_NTN_SMS_SUPPORTED_BY_MESSAGES_APP, args)); return; } handleRequestSetNtnSmsSupportedByMessagesApp(ntnSmsSupported); } private void handleRequestSetNtnSmsSupportedByMessagesApp(boolean ntnSmsSupported) { if (!mFeatureFlags.carrierRoamingNbIotNtn()) { return; } Loading
tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java +4 −3 Original line number Diff line number Diff line Loading @@ -4470,7 +4470,7 @@ public class SatelliteControllerTest extends TelephonyTest { inputList.add(list.get(0)); verifyProvisionSatellite(inputList); verify(mMockSatelliteModemInterface, times(1)).updateSatelliteSubscription(anyString(), verify(mMockSatelliteModemInterface, times(2)).updateSatelliteSubscription(anyString(), any()); assertTrue(waitForForEvents( semaphore, 1, "testRegisterForSatelliteSubscriptionProvisionStateChanged")); Loading Loading @@ -4841,8 +4841,8 @@ public class SatelliteControllerTest extends TelephonyTest { List<SatelliteSubscriberInfo> inputList = getExpectedSatelliteSubscriberInfoList(); verifyProvisionSatellite(inputList); verify(mMockSubscriptionManagerService).setIsSatelliteProvisionedForNonIpDatagram( eq(SUB_ID), eq(true)); verify(mMockSubscriptionManagerService, times(2)) .setIsSatelliteProvisionedForNonIpDatagram(eq(SUB_ID), eq(true)); } @Test Loading Loading @@ -6230,6 +6230,7 @@ public class SatelliteControllerTest extends TelephonyTest { public void testSetNtnSmsSupportedByMessagesApp() { when(mFeatureFlags.carrierRoamingNbIotNtn()).thenReturn(true); mSatelliteControllerUT.setNtnSmsSupportedByMessagesApp(true); processAllMessages(); assertTrue(mSharedPreferences.getBoolean( SatelliteController.NTN_SMS_SUPPORTED_BY_MESSAGES_APP_KEY, false)); } Loading