Select proper handler to process datagram transfer state
Flag: EXEMPT bugfix
Bug: 364902805
Test: Manually test with demo mode
SatelliteManagerTestOnMockService
PointingAppControllerTest DatagramReceiverTest
Change-Id: I2d0a69887ec625f10c7c26684dcea38d220e2f28
diff --git a/src/java/com/android/internal/telephony/satellite/DatagramReceiver.java b/src/java/com/android/internal/telephony/satellite/DatagramReceiver.java
index 9cff658..5a89c40 100644
--- a/src/java/com/android/internal/telephony/satellite/DatagramReceiver.java
+++ b/src/java/com/android/internal/telephony/satellite/DatagramReceiver.java
@@ -40,6 +40,7 @@
import android.telephony.DropBoxManagerLoggerBackend;
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;
@@ -454,8 +455,7 @@
if (mIsDemoMode && error == SatelliteManager.SATELLITE_RESULT_SUCCESS) {
SatelliteDatagram datagram = mDatagramController.popDemoModeDatagram();
- final int validSubId = SatelliteServiceUtils.getValidSatelliteSubId(
- request.subId, mContext);
+ final int validSubId = SubscriptionManager.DEFAULT_SUBSCRIPTION_ID;
SatelliteDatagramListenerHandler listenerHandler =
mSatelliteDatagramListenerHandlers.get(validSubId);
if (listenerHandler != null) {
@@ -517,7 +517,7 @@
return SatelliteManager.SATELLITE_RESULT_NOT_SUPPORTED;
}
- final int validSubId = SatelliteServiceUtils.getValidSatelliteSubId(subId, mContext);
+ final int validSubId = SubscriptionManager.DEFAULT_SUBSCRIPTION_ID;
SatelliteDatagramListenerHandler satelliteDatagramListenerHandler =
mSatelliteDatagramListenerHandlers.get(validSubId);
if (satelliteDatagramListenerHandler == null) {
@@ -543,7 +543,7 @@
*/
public void unregisterForSatelliteDatagram(int subId,
@NonNull ISatelliteDatagramCallback callback) {
- final int validSubId = SatelliteServiceUtils.getValidSatelliteSubId(subId, mContext);
+ final int validSubId = SubscriptionManager.DEFAULT_SUBSCRIPTION_ID;
SatelliteDatagramListenerHandler handler =
mSatelliteDatagramListenerHandlers.get(validSubId);
if (handler != null) {
@@ -575,7 +575,8 @@
callback.accept(SatelliteManager.SATELLITE_RESULT_MODEM_BUSY);
return;
}
- pollPendingSatelliteDatagramsInternal(subId, callback);
+ pollPendingSatelliteDatagramsInternal(
+ SubscriptionManager.DEFAULT_SUBSCRIPTION_ID, callback);
}
private void handleSatelliteConnectedEvent() {
diff --git a/src/java/com/android/internal/telephony/satellite/PointingAppController.java b/src/java/com/android/internal/telephony/satellite/PointingAppController.java
index d805962..ae2781d 100644
--- a/src/java/com/android/internal/telephony/satellite/PointingAppController.java
+++ b/src/java/com/android/internal/telephony/satellite/PointingAppController.java
@@ -37,6 +37,7 @@
import android.telephony.DropBoxManagerLoggerBackend;
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;
@@ -309,6 +310,7 @@
*/
public void registerForSatelliteTransmissionUpdates(int subId,
ISatelliteTransmissionUpdateCallback callback) {
+ subId = SubscriptionManager.DEFAULT_SUBSCRIPTION_ID;
SatelliteTransmissionUpdateHandler handler =
mSatelliteTransmissionUpdateHandlers.get(subId);
if (handler != null) {
@@ -337,6 +339,7 @@
*/
public void unregisterForSatelliteTransmissionUpdates(int subId, Consumer<Integer> result,
ISatelliteTransmissionUpdateCallback callback) {
+ subId = SubscriptionManager.DEFAULT_SUBSCRIPTION_ID;
SatelliteTransmissionUpdateHandler handler =
mSatelliteTransmissionUpdateHandlers.get(subId);
if (handler != null) {
@@ -445,6 +448,7 @@
int sendPendingCount, int errorCode) {
DatagramTransferStateHandlerRequest request = new DatagramTransferStateHandlerRequest(
datagramType, datagramTransferState, sendPendingCount, errorCode);
+ subId = SubscriptionManager.DEFAULT_SUBSCRIPTION_ID;
SatelliteTransmissionUpdateHandler handler =
mSatelliteTransmissionUpdateHandlers.get(subId);
@@ -464,6 +468,7 @@
*/
public void onSendDatagramRequested(
int subId, @SatelliteManager.DatagramType int datagramType) {
+ subId = SubscriptionManager.DEFAULT_SUBSCRIPTION_ID;
SatelliteTransmissionUpdateHandler handler =
mSatelliteTransmissionUpdateHandlers.get(subId);
if (handler != null) {
@@ -482,6 +487,7 @@
DatagramTransferStateHandlerRequest request = new DatagramTransferStateHandlerRequest(
SatelliteManager.DATAGRAM_TYPE_UNKNOWN, datagramTransferState, receivePendingCount,
errorCode);
+ subId = SubscriptionManager.DEFAULT_SUBSCRIPTION_ID;
SatelliteTransmissionUpdateHandler handler =
mSatelliteTransmissionUpdateHandlers.get(subId);
diff --git a/tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramReceiverTest.java b/tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramReceiverTest.java
index bf1a8bd..e964ced 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramReceiverTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramReceiverTest.java
@@ -50,6 +50,7 @@
import android.os.Message;
import android.os.RemoteException;
import android.provider.Telephony;
+import android.telephony.SubscriptionManager;
import android.telephony.satellite.ISatelliteDatagramCallback;
import android.telephony.satellite.SatelliteDatagram;
import android.telephony.satellite.SatelliteManager;
@@ -80,7 +81,7 @@
@TestableLooper.RunWithLooper
public class DatagramReceiverTest extends TelephonyTest {
private static final String TAG = "DatagramReceiverTest";
- private static final int SUB_ID = 0;
+ private static final int SUB_ID = SubscriptionManager.DEFAULT_SUBSCRIPTION_ID;
private static final String TEST_MESSAGE = "This is a test datagram message";
private static final long TEST_EXPIRE_TIMER_SATELLITE_ALIGN = TimeUnit.SECONDS.toMillis(1);
private static final long TEST_DATAGRAM_WAIT_FOR_CONNECTED_STATE_TIMEOUT_MILLIS =
diff --git a/tests/telephonytests/src/com/android/internal/telephony/satellite/PointingAppControllerTest.java b/tests/telephonytests/src/com/android/internal/telephony/satellite/PointingAppControllerTest.java
index b9e2c30..aa24fb9 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/satellite/PointingAppControllerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/satellite/PointingAppControllerTest.java
@@ -418,7 +418,6 @@
TestSatelliteTransmissionUpdateCallback callback2 = new
TestSatelliteTransmissionUpdateCallback();
int subId1 = 3;
- int subId2 = 4;
mPointingAppController.registerForSatelliteTransmissionUpdates(subId1, callback1);
mInOrder.verify(mMockSatelliteModemInterface).registerForSatellitePositionInfoChanged(any(),
eq(1), eq(null));
@@ -429,16 +428,6 @@
.registerForSatellitePositionInfoChanged(any(), eq(1), eq(null));
mInOrder.verify(mMockSatelliteModemInterface, never())
.registerForDatagramTransferStateChanged(any(), eq(4), eq(null));
- mPointingAppController.registerForSatelliteTransmissionUpdates(subId2, callback1);
- mInOrder.verify(mMockSatelliteModemInterface).registerForSatellitePositionInfoChanged(any(),
- eq(1), eq(null));
- mInOrder.verify(mMockSatelliteModemInterface).registerForDatagramTransferStateChanged(any(),
- eq(4), eq(null));
- mPointingAppController.registerForSatelliteTransmissionUpdates(subId2, callback2);
- mInOrder.verify(mMockSatelliteModemInterface, never())
- .registerForSatellitePositionInfoChanged(any(), eq(1), eq(null));
- mInOrder.verify(mMockSatelliteModemInterface, never())
- .registerForDatagramTransferStateChanged(any(), eq(4), eq(null));
mPointingAppController.unregisterForSatelliteTransmissionUpdates(subId1,
mResultListener::offer, callback1);
processAllMessages();
@@ -451,22 +440,6 @@
any(Handler.class));
mInOrder.verify(mMockSatelliteModemInterface).unregisterForDatagramTransferStateChanged(
any(Handler.class));
- mPointingAppController.unregisterForSatelliteTransmissionUpdates(subId2,
- mResultListener::offer, callback1);
- processAllMessages();
- assertThat(mResultListener.peek()).isEqualTo(SatelliteManager.SATELLITE_RESULT_SUCCESS);
- mResultListener.remove();
- mInOrder.verify(mMockSatelliteModemInterface, never())
- .unregisterForSatellitePositionInfoChanged(any(Handler.class));
- mInOrder.verify(mMockSatelliteModemInterface, never())
- .unregisterForDatagramTransferStateChanged(any(Handler.class));
- mPointingAppController.unregisterForSatelliteTransmissionUpdates(subId2,
- mResultListener::offer, callback2);
- processAllMessages();
- mInOrder.verify(mMockSatelliteModemInterface).unregisterForSatellitePositionInfoChanged(
- any(Handler.class));
- mInOrder.verify(mMockSatelliteModemInterface).unregisterForDatagramTransferStateChanged(
- any(Handler.class));
mInOrder = null;
}