Loading src/java/com/android/internal/telephony/InboundSmsHandler.java +12 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,7 @@ import com.android.internal.telephony.analytics.TelephonyAnalytics.SmsMmsAnalyti import com.android.internal.telephony.flags.FeatureFlags; import com.android.internal.telephony.flags.Flags; import com.android.internal.telephony.metrics.TelephonyMetrics; import com.android.internal.telephony.satellite.SatelliteController; import com.android.internal.telephony.satellite.metrics.CarrierRoamingSatelliteSessionStats; import com.android.internal.telephony.util.NotificationChannelController; import com.android.internal.telephony.util.TelephonyUtils; Loading Loading @@ -687,6 +688,17 @@ public abstract class InboundSmsHandler extends StateMachine { result = RESULT_SMS_DISPATCH_FAILURE; } if (mFeatureFlags.carrierRoamingNbIotNtn()) { if (result == Intents.RESULT_SMS_HANDLED) { SatelliteController satelliteController = SatelliteController.getInstance(); if (satelliteController == null) { log("SatelliteController is not initialized"); return; } satelliteController.onSmsReceived(mPhone.getSubId()); } } // RESULT_OK means that the SMS will be acknowledged by special handling, // e.g. for SMS-PP data download. Any other result, we should ack here. if (result != Activity.RESULT_OK) { Loading src/java/com/android/internal/telephony/satellite/DatagramController.java +28 −16 Original line number Diff line number Diff line Loading @@ -282,7 +282,7 @@ public class DatagramController { mSendDatagramTransferState = datagramTransferState; mSendPendingCount = sendPendingCount; mSendErrorCode = errorCode; notifyDatagramTransferStateChangedToSessionController(); notifyDatagramTransferStateChangedToSessionController(mDatagramType); mPointingAppController.updateSendDatagramTransferState(mSendSubId, mDatagramType, mSendDatagramTransferState, mSendPendingCount, mSendErrorCode); retryPollPendingDatagramsInDemoMode(); Loading Loading @@ -311,21 +311,23 @@ public class DatagramController { * @param receivePendingCount The number of datagrams that are currently pending to be received. * @param errorCode If datagram transfer failed, the reason for failure. */ public void updateReceiveStatus(int subId, public void updateReceiveStatus(int subId, @SatelliteManager.DatagramType int datagramType, @SatelliteManager.SatelliteDatagramTransferState int datagramTransferState, int receivePendingCount, int errorCode) { synchronized (mLock) { plogd("updateReceiveStatus" + " subId: " + subId + " datagramType: " + datagramType + " datagramTransferState: " + datagramTransferState + " receivePendingCount: " + receivePendingCount + " errorCode: " + errorCode); mReceiveSubId = subId; mDatagramType = datagramType; mReceiveDatagramTransferState = datagramTransferState; mReceivePendingCount = receivePendingCount; mReceiveErrorCode = errorCode; notifyDatagramTransferStateChangedToSessionController(); notifyDatagramTransferStateChangedToSessionController(mDatagramType); mPointingAppController.updateReceiveDatagramTransferState(mReceiveSubId, mReceiveDatagramTransferState, mReceivePendingCount, mReceiveErrorCode); retryPollPendingDatagramsInDemoMode(); Loading Loading @@ -364,6 +366,24 @@ public class DatagramController { mDatagramReceiver.onSatelliteModemStateChanged(state); } /** * Notify SMS received. * * @param subId The subId of the subscription used to receive SMS */ public void onSmsReceived(int subId) { // To keep exist notification flow, need to call with each state. updateReceiveStatus(subId, SatelliteManager.DATAGRAM_TYPE_SMS, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVING, getReceivePendingCount(), SatelliteManager.SATELLITE_RESULT_SUCCESS); updateReceiveStatus(subId, SatelliteManager.DATAGRAM_TYPE_SMS, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_SUCCESS, getReceivePendingCount(), SatelliteManager.SATELLITE_RESULT_SUCCESS); updateReceiveStatus(subId, SatelliteManager.DATAGRAM_TYPE_SMS, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE, getReceivePendingCount(), SatelliteManager.SATELLITE_RESULT_SUCCESS); } /** * Set whether the device is aligned with the satellite. */ Loading Loading @@ -490,16 +510,6 @@ public class DatagramController { } } /** Return the datagram type indicating that the message to be sent or received. * {@link SatelliteManager.DatagramType} */ @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE) public int getDatagramType() { synchronized (mLock) { return mDatagramType; } } /** * This API can be used by only CTS to timeout durations used by DatagramController module. * Loading Loading @@ -575,14 +585,16 @@ public class DatagramController { return (DEBUG || SystemProperties.getBoolean(ALLOW_MOCK_MODEM_PROPERTY, false)); } private void notifyDatagramTransferStateChangedToSessionController() { private void notifyDatagramTransferStateChangedToSessionController(int datagramType) { SatelliteSessionController sessionController = SatelliteSessionController.getInstance(); if (sessionController == null) { ploge("notifyDatagramTransferStateChangeToSessionController: SatelliteSessionController" + " is not initialized yet"); } else { synchronized (mLock) { sessionController.onDatagramTransferStateChanged( mSendDatagramTransferState, mReceiveDatagramTransferState); mSendDatagramTransferState, mReceiveDatagramTransferState, datagramType); } } } Loading src/java/com/android/internal/telephony/satellite/DatagramReceiver.java +11 −0 Original line number Diff line number Diff line Loading @@ -352,10 +352,12 @@ public class DatagramReceiver extends Handler { if (pendingCount <= 0 && satelliteDatagram == null) { sInstance.mDatagramController.updateReceiveStatus(mSubId, SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_NONE, pendingCount, SatelliteManager.SATELLITE_RESULT_SUCCESS); } else if (satelliteDatagram != null) { sInstance.mDatagramController.updateReceiveStatus(mSubId, SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_SUCCESS, pendingCount, SatelliteManager.SATELLITE_RESULT_SUCCESS); Loading @@ -376,6 +378,7 @@ public class DatagramReceiver extends Handler { if (pendingCount <= 0) { sInstance.mDatagramController.updateReceiveStatus(mSubId, SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE, pendingCount, SatelliteManager.SATELLITE_RESULT_SUCCESS); } else { Loading Loading @@ -473,10 +476,12 @@ public class DatagramReceiver extends Handler { plogd("EVENT_POLL_PENDING_SATELLITE_DATAGRAMS_DONE error: " + error); if (error != SatelliteManager.SATELLITE_RESULT_SUCCESS) { mDatagramController.updateReceiveStatus(request.subId, SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_FAILED, mDatagramController.getReceivePendingCount(), error); mDatagramController.updateReceiveStatus(request.subId, SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE, mDatagramController.getReceivePendingCount(), SatelliteManager.SATELLITE_RESULT_SUCCESS); Loading Loading @@ -615,6 +620,7 @@ public class DatagramReceiver extends Handler { mPendingPollSatelliteDatagramsRequest = new DatagramReceiverHandlerRequest( callback, SatelliteServiceUtils.getPhone(), subId); mDatagramController.updateReceiveStatus(subId, SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_WAITING_TO_CONNECT, mDatagramController.getReceivePendingCount(), SatelliteManager.SATELLITE_RESULT_SUCCESS); Loading @@ -624,6 +630,7 @@ public class DatagramReceiver extends Handler { } mDatagramController.updateReceiveStatus(subId, SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVING, mDatagramController.getReceivePendingCount(), SatelliteManager.SATELLITE_RESULT_SUCCESS); Loading Loading @@ -699,11 +706,13 @@ public class DatagramReceiver extends Handler { int subId = SatelliteController.getInstance().getHighestPrioritySubscrption(); if (mDatagramController.isReceivingDatagrams()) { mDatagramController.updateReceiveStatus(subId, SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_FAILED, mDatagramController.getReceivePendingCount(), SatelliteManager.SATELLITE_RESULT_REQUEST_ABORTED); } mDatagramController.updateReceiveStatus(subId, SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE, 0, SatelliteManager.SATELLITE_RESULT_SUCCESS); cleanupDemoModeResources(); Loading Loading @@ -857,11 +866,13 @@ public class DatagramReceiver extends Handler { plogw("Timed out to wait for satellite connected before polling datagrams"); mDatagramController.updateReceiveStatus(mPendingPollSatelliteDatagramsRequest.subId, SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_FAILED, mDatagramController.getReceivePendingCount(), SatelliteManager.SATELLITE_RESULT_NOT_REACHABLE); mDatagramController.updateReceiveStatus(mPendingPollSatelliteDatagramsRequest.subId, SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE, mDatagramController.getReceivePendingCount(), SatelliteManager.SATELLITE_RESULT_SUCCESS); Loading src/java/com/android/internal/telephony/satellite/SatelliteController.java +30 −0 Original line number Diff line number Diff line Loading @@ -3256,6 +3256,36 @@ public class SatelliteController extends Handler { } } /** * Notify SMS received. * * @param subId The subId of the subscription used to receive SMS */ public void onSmsReceived(int subId) { if (!mFeatureFlags.carrierRoamingNbIotNtn()) { logd("onSmsReceived: carrierRoamingNbIotNtn is disabled"); return; } if (!isSatelliteEnabled()) { logd("onSmsReceived: satellite is not enabled"); return; } int satelliteSubId = getHighestPrioritySubscrption(); if (subId != satelliteSubId) { logd("onSmsReceived: SMS received " + subId + ", but not satellite subscription " + satelliteSubId); return; } if (mDatagramController != null) { mDatagramController.onSmsReceived(subId); } else { logd("onSmsReceived: DatagramController is not initialized"); } } /** * @return {@code true} if satellite is supported via OEM on the device, * {@code false} otherwise. Loading src/java/com/android/internal/telephony/satellite/SatelliteSessionController.java +8 −5 Original line number Diff line number Diff line Loading @@ -334,9 +334,10 @@ public class SatelliteSessionController extends StateMachine { @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE) public void onDatagramTransferStateChanged( @SatelliteManager.SatelliteDatagramTransferState int sendState, @SatelliteManager.SatelliteDatagramTransferState int receiveState) { @SatelliteManager.SatelliteDatagramTransferState int receiveState, @SatelliteManager.DatagramType int datagramType) { sendMessage(EVENT_DATAGRAM_TRANSFER_STATE_CHANGED, new DatagramTransferState(sendState, receiveState)); new DatagramTransferState(sendState, receiveState, datagramType)); if (sendState == SATELLITE_DATAGRAM_TRANSFER_STATE_SENDING) { mIsSendingTriggeredDuringTransferringState.set(true); } Loading Loading @@ -627,11 +628,14 @@ public class SatelliteSessionController extends StateMachine { private static class DatagramTransferState { @SatelliteManager.SatelliteDatagramTransferState public int sendState; @SatelliteManager.SatelliteDatagramTransferState public int receiveState; @SatelliteManager.DatagramType public int datagramType; DatagramTransferState(@SatelliteManager.SatelliteDatagramTransferState int sendState, @SatelliteManager.SatelliteDatagramTransferState int receiveState) { @SatelliteManager.SatelliteDatagramTransferState int receiveState, @SatelliteManager.DatagramType int datagramType) { this.sendState = sendState; this.receiveState = receiveState; this.datagramType = datagramType; } } Loading Loading @@ -1292,8 +1296,7 @@ public class SatelliteSessionController extends StateMachine { || isReceiving(datagramTransferState.receiveState)) { stopNbIotInactivityTimer(); DatagramController datagramController = DatagramController.getInstance(); int datagramType = datagramController.getDatagramType(); int datagramType = datagramTransferState.datagramType; if (datagramType == DATAGRAM_TYPE_SOS_MESSAGE) { stopEsosInactivityTimer(); } else if (datagramType == DATAGRAM_TYPE_SMS) { Loading Loading
src/java/com/android/internal/telephony/InboundSmsHandler.java +12 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,7 @@ import com.android.internal.telephony.analytics.TelephonyAnalytics.SmsMmsAnalyti import com.android.internal.telephony.flags.FeatureFlags; import com.android.internal.telephony.flags.Flags; import com.android.internal.telephony.metrics.TelephonyMetrics; import com.android.internal.telephony.satellite.SatelliteController; import com.android.internal.telephony.satellite.metrics.CarrierRoamingSatelliteSessionStats; import com.android.internal.telephony.util.NotificationChannelController; import com.android.internal.telephony.util.TelephonyUtils; Loading Loading @@ -687,6 +688,17 @@ public abstract class InboundSmsHandler extends StateMachine { result = RESULT_SMS_DISPATCH_FAILURE; } if (mFeatureFlags.carrierRoamingNbIotNtn()) { if (result == Intents.RESULT_SMS_HANDLED) { SatelliteController satelliteController = SatelliteController.getInstance(); if (satelliteController == null) { log("SatelliteController is not initialized"); return; } satelliteController.onSmsReceived(mPhone.getSubId()); } } // RESULT_OK means that the SMS will be acknowledged by special handling, // e.g. for SMS-PP data download. Any other result, we should ack here. if (result != Activity.RESULT_OK) { Loading
src/java/com/android/internal/telephony/satellite/DatagramController.java +28 −16 Original line number Diff line number Diff line Loading @@ -282,7 +282,7 @@ public class DatagramController { mSendDatagramTransferState = datagramTransferState; mSendPendingCount = sendPendingCount; mSendErrorCode = errorCode; notifyDatagramTransferStateChangedToSessionController(); notifyDatagramTransferStateChangedToSessionController(mDatagramType); mPointingAppController.updateSendDatagramTransferState(mSendSubId, mDatagramType, mSendDatagramTransferState, mSendPendingCount, mSendErrorCode); retryPollPendingDatagramsInDemoMode(); Loading Loading @@ -311,21 +311,23 @@ public class DatagramController { * @param receivePendingCount The number of datagrams that are currently pending to be received. * @param errorCode If datagram transfer failed, the reason for failure. */ public void updateReceiveStatus(int subId, public void updateReceiveStatus(int subId, @SatelliteManager.DatagramType int datagramType, @SatelliteManager.SatelliteDatagramTransferState int datagramTransferState, int receivePendingCount, int errorCode) { synchronized (mLock) { plogd("updateReceiveStatus" + " subId: " + subId + " datagramType: " + datagramType + " datagramTransferState: " + datagramTransferState + " receivePendingCount: " + receivePendingCount + " errorCode: " + errorCode); mReceiveSubId = subId; mDatagramType = datagramType; mReceiveDatagramTransferState = datagramTransferState; mReceivePendingCount = receivePendingCount; mReceiveErrorCode = errorCode; notifyDatagramTransferStateChangedToSessionController(); notifyDatagramTransferStateChangedToSessionController(mDatagramType); mPointingAppController.updateReceiveDatagramTransferState(mReceiveSubId, mReceiveDatagramTransferState, mReceivePendingCount, mReceiveErrorCode); retryPollPendingDatagramsInDemoMode(); Loading Loading @@ -364,6 +366,24 @@ public class DatagramController { mDatagramReceiver.onSatelliteModemStateChanged(state); } /** * Notify SMS received. * * @param subId The subId of the subscription used to receive SMS */ public void onSmsReceived(int subId) { // To keep exist notification flow, need to call with each state. updateReceiveStatus(subId, SatelliteManager.DATAGRAM_TYPE_SMS, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVING, getReceivePendingCount(), SatelliteManager.SATELLITE_RESULT_SUCCESS); updateReceiveStatus(subId, SatelliteManager.DATAGRAM_TYPE_SMS, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_SUCCESS, getReceivePendingCount(), SatelliteManager.SATELLITE_RESULT_SUCCESS); updateReceiveStatus(subId, SatelliteManager.DATAGRAM_TYPE_SMS, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE, getReceivePendingCount(), SatelliteManager.SATELLITE_RESULT_SUCCESS); } /** * Set whether the device is aligned with the satellite. */ Loading Loading @@ -490,16 +510,6 @@ public class DatagramController { } } /** Return the datagram type indicating that the message to be sent or received. * {@link SatelliteManager.DatagramType} */ @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE) public int getDatagramType() { synchronized (mLock) { return mDatagramType; } } /** * This API can be used by only CTS to timeout durations used by DatagramController module. * Loading Loading @@ -575,14 +585,16 @@ public class DatagramController { return (DEBUG || SystemProperties.getBoolean(ALLOW_MOCK_MODEM_PROPERTY, false)); } private void notifyDatagramTransferStateChangedToSessionController() { private void notifyDatagramTransferStateChangedToSessionController(int datagramType) { SatelliteSessionController sessionController = SatelliteSessionController.getInstance(); if (sessionController == null) { ploge("notifyDatagramTransferStateChangeToSessionController: SatelliteSessionController" + " is not initialized yet"); } else { synchronized (mLock) { sessionController.onDatagramTransferStateChanged( mSendDatagramTransferState, mReceiveDatagramTransferState); mSendDatagramTransferState, mReceiveDatagramTransferState, datagramType); } } } Loading
src/java/com/android/internal/telephony/satellite/DatagramReceiver.java +11 −0 Original line number Diff line number Diff line Loading @@ -352,10 +352,12 @@ public class DatagramReceiver extends Handler { if (pendingCount <= 0 && satelliteDatagram == null) { sInstance.mDatagramController.updateReceiveStatus(mSubId, SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_NONE, pendingCount, SatelliteManager.SATELLITE_RESULT_SUCCESS); } else if (satelliteDatagram != null) { sInstance.mDatagramController.updateReceiveStatus(mSubId, SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_SUCCESS, pendingCount, SatelliteManager.SATELLITE_RESULT_SUCCESS); Loading @@ -376,6 +378,7 @@ public class DatagramReceiver extends Handler { if (pendingCount <= 0) { sInstance.mDatagramController.updateReceiveStatus(mSubId, SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE, pendingCount, SatelliteManager.SATELLITE_RESULT_SUCCESS); } else { Loading Loading @@ -473,10 +476,12 @@ public class DatagramReceiver extends Handler { plogd("EVENT_POLL_PENDING_SATELLITE_DATAGRAMS_DONE error: " + error); if (error != SatelliteManager.SATELLITE_RESULT_SUCCESS) { mDatagramController.updateReceiveStatus(request.subId, SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_FAILED, mDatagramController.getReceivePendingCount(), error); mDatagramController.updateReceiveStatus(request.subId, SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE, mDatagramController.getReceivePendingCount(), SatelliteManager.SATELLITE_RESULT_SUCCESS); Loading Loading @@ -615,6 +620,7 @@ public class DatagramReceiver extends Handler { mPendingPollSatelliteDatagramsRequest = new DatagramReceiverHandlerRequest( callback, SatelliteServiceUtils.getPhone(), subId); mDatagramController.updateReceiveStatus(subId, SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_WAITING_TO_CONNECT, mDatagramController.getReceivePendingCount(), SatelliteManager.SATELLITE_RESULT_SUCCESS); Loading @@ -624,6 +630,7 @@ public class DatagramReceiver extends Handler { } mDatagramController.updateReceiveStatus(subId, SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVING, mDatagramController.getReceivePendingCount(), SatelliteManager.SATELLITE_RESULT_SUCCESS); Loading Loading @@ -699,11 +706,13 @@ public class DatagramReceiver extends Handler { int subId = SatelliteController.getInstance().getHighestPrioritySubscrption(); if (mDatagramController.isReceivingDatagrams()) { mDatagramController.updateReceiveStatus(subId, SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_FAILED, mDatagramController.getReceivePendingCount(), SatelliteManager.SATELLITE_RESULT_REQUEST_ABORTED); } mDatagramController.updateReceiveStatus(subId, SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE, 0, SatelliteManager.SATELLITE_RESULT_SUCCESS); cleanupDemoModeResources(); Loading Loading @@ -857,11 +866,13 @@ public class DatagramReceiver extends Handler { plogw("Timed out to wait for satellite connected before polling datagrams"); mDatagramController.updateReceiveStatus(mPendingPollSatelliteDatagramsRequest.subId, SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_FAILED, mDatagramController.getReceivePendingCount(), SatelliteManager.SATELLITE_RESULT_NOT_REACHABLE); mDatagramController.updateReceiveStatus(mPendingPollSatelliteDatagramsRequest.subId, SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE, SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE, mDatagramController.getReceivePendingCount(), SatelliteManager.SATELLITE_RESULT_SUCCESS); Loading
src/java/com/android/internal/telephony/satellite/SatelliteController.java +30 −0 Original line number Diff line number Diff line Loading @@ -3256,6 +3256,36 @@ public class SatelliteController extends Handler { } } /** * Notify SMS received. * * @param subId The subId of the subscription used to receive SMS */ public void onSmsReceived(int subId) { if (!mFeatureFlags.carrierRoamingNbIotNtn()) { logd("onSmsReceived: carrierRoamingNbIotNtn is disabled"); return; } if (!isSatelliteEnabled()) { logd("onSmsReceived: satellite is not enabled"); return; } int satelliteSubId = getHighestPrioritySubscrption(); if (subId != satelliteSubId) { logd("onSmsReceived: SMS received " + subId + ", but not satellite subscription " + satelliteSubId); return; } if (mDatagramController != null) { mDatagramController.onSmsReceived(subId); } else { logd("onSmsReceived: DatagramController is not initialized"); } } /** * @return {@code true} if satellite is supported via OEM on the device, * {@code false} otherwise. Loading
src/java/com/android/internal/telephony/satellite/SatelliteSessionController.java +8 −5 Original line number Diff line number Diff line Loading @@ -334,9 +334,10 @@ public class SatelliteSessionController extends StateMachine { @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE) public void onDatagramTransferStateChanged( @SatelliteManager.SatelliteDatagramTransferState int sendState, @SatelliteManager.SatelliteDatagramTransferState int receiveState) { @SatelliteManager.SatelliteDatagramTransferState int receiveState, @SatelliteManager.DatagramType int datagramType) { sendMessage(EVENT_DATAGRAM_TRANSFER_STATE_CHANGED, new DatagramTransferState(sendState, receiveState)); new DatagramTransferState(sendState, receiveState, datagramType)); if (sendState == SATELLITE_DATAGRAM_TRANSFER_STATE_SENDING) { mIsSendingTriggeredDuringTransferringState.set(true); } Loading Loading @@ -627,11 +628,14 @@ public class SatelliteSessionController extends StateMachine { private static class DatagramTransferState { @SatelliteManager.SatelliteDatagramTransferState public int sendState; @SatelliteManager.SatelliteDatagramTransferState public int receiveState; @SatelliteManager.DatagramType public int datagramType; DatagramTransferState(@SatelliteManager.SatelliteDatagramTransferState int sendState, @SatelliteManager.SatelliteDatagramTransferState int receiveState) { @SatelliteManager.SatelliteDatagramTransferState int receiveState, @SatelliteManager.DatagramType int datagramType) { this.sendState = sendState; this.receiveState = receiveState; this.datagramType = datagramType; } } Loading Loading @@ -1292,8 +1296,7 @@ public class SatelliteSessionController extends StateMachine { || isReceiving(datagramTransferState.receiveState)) { stopNbIotInactivityTimer(); DatagramController datagramController = DatagramController.getInstance(); int datagramType = datagramController.getDatagramType(); int datagramType = datagramTransferState.datagramType; if (datagramType == DATAGRAM_TYPE_SOS_MESSAGE) { stopEsosInactivityTimer(); } else if (datagramType == DATAGRAM_TYPE_SMS) { Loading