Loading src/java/com/android/internal/telephony/satellite/DatagramController.java +39 −46 Original line number Diff line number Diff line Loading @@ -92,15 +92,13 @@ public class DatagramController { private AtomicInteger mSendErrorCode = new AtomicInteger(SatelliteManager.SATELLITE_RESULT_SUCCESS); /** Variables used to update onReceiveDatagramStateChanged(). */ @GuardedBy("mLock") private int mReceiveSubId; @GuardedBy("mLock") private @SatelliteManager.SatelliteDatagramTransferState int mReceiveDatagramTransferState = SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE; @GuardedBy("mLock") private int mReceivePendingCount = 0; @GuardedBy("mLock") private int mReceiveErrorCode = SatelliteManager.SATELLITE_RESULT_SUCCESS; private AtomicInteger mReceiveSubId = new AtomicInteger(0); private @SatelliteManager.SatelliteDatagramTransferState AtomicInteger mReceiveDatagramTransferState = new AtomicInteger( SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE); private AtomicInteger mReceivePendingCount = new AtomicInteger(0); private AtomicInteger mReceiveErrorCode = new AtomicInteger(SatelliteManager.SATELLITE_RESULT_SUCCESS); @GuardedBy("mLock") private final List<SatelliteDatagram> mDemoModeDatagramList; private boolean mIsDemoMode = false; Loading Loading @@ -306,28 +304,29 @@ public class DatagramController { * @param datagramTransferState The new receive datagram transfer state. * @param receivePendingCount The number of datagrams that are currently pending to be received. * @param errorCode If datagram transfer failed, the reason for failure. * * This method is only used by {@link DatagramReceiver}. */ public void updateReceiveStatus(int subId, @SatelliteManager.DatagramType int datagramType, @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE) protected 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; mReceiveSubId.set(subId); mDatagramType.set(datagramType); mReceiveDatagramTransferState = datagramTransferState; mReceivePendingCount = receivePendingCount; mReceiveErrorCode = errorCode; mReceiveDatagramTransferState.set(datagramTransferState); mReceivePendingCount.set(receivePendingCount); mReceiveErrorCode.set(errorCode); notifyDatagramTransferStateChangedToSessionController(datagramType); mPointingAppController.updateReceiveDatagramTransferState(mReceiveSubId, mReceiveDatagramTransferState, mReceivePendingCount, mReceiveErrorCode); mPointingAppController.updateReceiveDatagramTransferState(subId, datagramTransferState, receivePendingCount, errorCode); retryPollPendingDatagramsInDemoMode(); } if (isPollingInIdleState()) { mDatagramDispatcher.retrySendingDatagrams(); Loading @@ -338,8 +337,9 @@ public class DatagramController { * Return receive pending datagram count * @return receive pending datagram count. */ public int getReceivePendingCount() { return mReceivePendingCount; @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE) protected int getReceivePendingCount() { return mReceivePendingCount.get(); } Loading Loading @@ -392,12 +392,10 @@ public class DatagramController { } } @VisibleForTesting public boolean isReceivingDatagrams() { synchronized (mLock) { return (mReceiveDatagramTransferState == SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVING); } @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE) protected boolean isReceivingDatagrams() { return mReceiveDatagramTransferState.get() == SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVING; } /** Loading Loading @@ -437,11 +435,9 @@ public class DatagramController { return mSendDatagramTransferState.get() == SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE; } public boolean isPollingInIdleState() { synchronized (mLock) { return (mReceiveDatagramTransferState == SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE); } @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE) protected boolean isPollingInIdleState() { return mReceiveDatagramTransferState.get() == SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE; } /** Loading Loading @@ -594,11 +590,8 @@ public class DatagramController { ploge("notifyDatagramTransferStateChangeToSessionController: SatelliteSessionController" + " is not initialized yet"); } else { synchronized (mLock) { sessionController.onDatagramTransferStateChanged( mSendDatagramTransferState.get(), mReceiveDatagramTransferState, datagramType); } sessionController.onDatagramTransferStateChanged(mSendDatagramTransferState.get(), mReceiveDatagramTransferState.get(), datagramType); } } Loading tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramControllerTest.java +24 −0 Original line number Diff line number Diff line Loading @@ -355,9 +355,33 @@ public class DatagramControllerTest extends TelephonyTest { errorCode); } @Override protected void updateReceiveStatus(int subId, @SatelliteManager.DatagramType int datagramType, @SatelliteManager.SatelliteDatagramTransferState int datagramTransferState, int receivePendingCount, int errorCode) { super.updateReceiveStatus(subId, datagramType, datagramTransferState, receivePendingCount, errorCode); } @Override protected boolean isSendingInIdleState() { return super.isSendingInIdleState(); } @Override protected int getReceivePendingCount() { return super.getReceivePendingCount(); } @Override protected boolean isReceivingDatagrams() { return super.isReceivingDatagrams(); } @Override protected boolean isPollingInIdleState() { return super.isPollingInIdleState(); } } } Loading
src/java/com/android/internal/telephony/satellite/DatagramController.java +39 −46 Original line number Diff line number Diff line Loading @@ -92,15 +92,13 @@ public class DatagramController { private AtomicInteger mSendErrorCode = new AtomicInteger(SatelliteManager.SATELLITE_RESULT_SUCCESS); /** Variables used to update onReceiveDatagramStateChanged(). */ @GuardedBy("mLock") private int mReceiveSubId; @GuardedBy("mLock") private @SatelliteManager.SatelliteDatagramTransferState int mReceiveDatagramTransferState = SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE; @GuardedBy("mLock") private int mReceivePendingCount = 0; @GuardedBy("mLock") private int mReceiveErrorCode = SatelliteManager.SATELLITE_RESULT_SUCCESS; private AtomicInteger mReceiveSubId = new AtomicInteger(0); private @SatelliteManager.SatelliteDatagramTransferState AtomicInteger mReceiveDatagramTransferState = new AtomicInteger( SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE); private AtomicInteger mReceivePendingCount = new AtomicInteger(0); private AtomicInteger mReceiveErrorCode = new AtomicInteger(SatelliteManager.SATELLITE_RESULT_SUCCESS); @GuardedBy("mLock") private final List<SatelliteDatagram> mDemoModeDatagramList; private boolean mIsDemoMode = false; Loading Loading @@ -306,28 +304,29 @@ public class DatagramController { * @param datagramTransferState The new receive datagram transfer state. * @param receivePendingCount The number of datagrams that are currently pending to be received. * @param errorCode If datagram transfer failed, the reason for failure. * * This method is only used by {@link DatagramReceiver}. */ public void updateReceiveStatus(int subId, @SatelliteManager.DatagramType int datagramType, @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE) protected 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; mReceiveSubId.set(subId); mDatagramType.set(datagramType); mReceiveDatagramTransferState = datagramTransferState; mReceivePendingCount = receivePendingCount; mReceiveErrorCode = errorCode; mReceiveDatagramTransferState.set(datagramTransferState); mReceivePendingCount.set(receivePendingCount); mReceiveErrorCode.set(errorCode); notifyDatagramTransferStateChangedToSessionController(datagramType); mPointingAppController.updateReceiveDatagramTransferState(mReceiveSubId, mReceiveDatagramTransferState, mReceivePendingCount, mReceiveErrorCode); mPointingAppController.updateReceiveDatagramTransferState(subId, datagramTransferState, receivePendingCount, errorCode); retryPollPendingDatagramsInDemoMode(); } if (isPollingInIdleState()) { mDatagramDispatcher.retrySendingDatagrams(); Loading @@ -338,8 +337,9 @@ public class DatagramController { * Return receive pending datagram count * @return receive pending datagram count. */ public int getReceivePendingCount() { return mReceivePendingCount; @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE) protected int getReceivePendingCount() { return mReceivePendingCount.get(); } Loading Loading @@ -392,12 +392,10 @@ public class DatagramController { } } @VisibleForTesting public boolean isReceivingDatagrams() { synchronized (mLock) { return (mReceiveDatagramTransferState == SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVING); } @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE) protected boolean isReceivingDatagrams() { return mReceiveDatagramTransferState.get() == SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVING; } /** Loading Loading @@ -437,11 +435,9 @@ public class DatagramController { return mSendDatagramTransferState.get() == SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE; } public boolean isPollingInIdleState() { synchronized (mLock) { return (mReceiveDatagramTransferState == SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE); } @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE) protected boolean isPollingInIdleState() { return mReceiveDatagramTransferState.get() == SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE; } /** Loading Loading @@ -594,11 +590,8 @@ public class DatagramController { ploge("notifyDatagramTransferStateChangeToSessionController: SatelliteSessionController" + " is not initialized yet"); } else { synchronized (mLock) { sessionController.onDatagramTransferStateChanged( mSendDatagramTransferState.get(), mReceiveDatagramTransferState, datagramType); } sessionController.onDatagramTransferStateChanged(mSendDatagramTransferState.get(), mReceiveDatagramTransferState.get(), datagramType); } } Loading
tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramControllerTest.java +24 −0 Original line number Diff line number Diff line Loading @@ -355,9 +355,33 @@ public class DatagramControllerTest extends TelephonyTest { errorCode); } @Override protected void updateReceiveStatus(int subId, @SatelliteManager.DatagramType int datagramType, @SatelliteManager.SatelliteDatagramTransferState int datagramTransferState, int receivePendingCount, int errorCode) { super.updateReceiveStatus(subId, datagramType, datagramTransferState, receivePendingCount, errorCode); } @Override protected boolean isSendingInIdleState() { return super.isSendingInIdleState(); } @Override protected int getReceivePendingCount() { return super.getReceivePendingCount(); } @Override protected boolean isReceivingDatagrams() { return super.isReceivingDatagrams(); } @Override protected boolean isPollingInIdleState() { return super.isPollingInIdleState(); } } }