Loading src/java/com/android/internal/telephony/satellite/DatagramDispatcher.java +24 −24 Original line number Diff line number Diff line Loading @@ -90,8 +90,8 @@ public class DatagramDispatcher extends Handler { @NonNull private final SessionMetricsStats mSessionMetricsStats; @NonNull private final FeatureFlags mFeatureFlags; private boolean mIsDemoMode = false; private boolean mIsAligned = false; private AtomicBoolean mIsDemoMode = new AtomicBoolean(false); private AtomicBoolean mIsAligned = new AtomicBoolean(false); private DatagramDispatcherHandlerRequest mSendSatelliteDatagramRequest = null; private static AtomicLong mNextDatagramId = new AtomicLong(0); Loading Loading @@ -266,7 +266,7 @@ public class DatagramDispatcher extends Handler { switch(msg.what) { case CMD_SEND_SATELLITE_DATAGRAM: { plogd("CMD_SEND_SATELLITE_DATAGRAM mIsDemoMode=" + mIsDemoMode plogd("CMD_SEND_SATELLITE_DATAGRAM mIsDemoMode=" + mIsDemoMode.get() + ", shouldSendDatagramToModemInDemoMode=" + shouldSendDatagramToModemInDemoMode()); request = (DatagramDispatcherHandlerRequest) msg.obj; Loading @@ -276,7 +276,7 @@ public class DatagramDispatcher extends Handler { onCompleted = obtainMessage(EVENT_SEND_SATELLITE_DATAGRAM_DONE, request); synchronized (mLock) { if (mIsDemoMode && !shouldSendDatagramToModemInDemoMode()) { if (mIsDemoMode.get() && !shouldSendDatagramToModemInDemoMode()) { AsyncResult.forMessage(onCompleted, SATELLITE_RESULT_SUCCESS, null); sendMessageDelayed(onCompleted, getDemoTimeoutDuration()); } else { Loading @@ -297,18 +297,19 @@ public class DatagramDispatcher extends Handler { (SendSatelliteDatagramArgument) request.argument; synchronized (mLock) { if (mIsDemoMode && (error == SatelliteManager.SATELLITE_RESULT_SUCCESS)) { if (mIsDemoMode.get() && (error == SatelliteManager.SATELLITE_RESULT_SUCCESS)) { if (argument.skipCheckingSatelliteAligned) { plogd("Satellite was already aligned. " + "No need to check alignment again"); } else if (mDatagramController.waitForAligningToSatellite(mIsAligned)) { } else if (mDatagramController.waitForAligningToSatellite( mIsAligned.get())) { plogd("Satellite is not aligned in demo mode, wait for the alignment."); startSatelliteAlignedTimer(request); break; } } plogd("EVENT_SEND_SATELLITE_DATAGRAM_DONE error: " + error + ", mIsDemoMode=" + mIsDemoMode); + ", mIsDemoMode=" + mIsDemoMode.get()); /* * The response should be ignored if either of the following hold Loading Loading @@ -511,8 +512,8 @@ public class DatagramDispatcher extends Handler { */ @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE) protected void setDemoMode(boolean isDemoMode) { mIsDemoMode = isDemoMode; plogd("setDemoMode: mIsDemoMode=" + mIsDemoMode); mIsDemoMode.set(isDemoMode); plogd("setDemoMode: mIsDemoMode=" + isDemoMode); } /** Loading @@ -520,11 +521,10 @@ public class DatagramDispatcher extends Handler { */ @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE) public void setDeviceAlignedWithSatellite(boolean isAligned) { synchronized (mLock) { mIsAligned = isAligned; plogd("setDeviceAlignedWithSatellite: " + mIsAligned); if (isAligned && mIsDemoMode) handleEventSatelliteAligned(); } mIsAligned.set(isAligned); plogd("setDeviceAlignedWithSatellite: " + isAligned); if (isAligned && mIsDemoMode.get()) handleEventSatelliteAligned(); if (allowMtSmsPolling()) { sendMessage(obtainMessage(CMD_SEND_MT_SMS_POLLING_MESSAGE)); } Loading Loading @@ -780,6 +780,7 @@ public class DatagramDispatcher extends Handler { @NonNull @SatelliteManager.SatelliteResult int resultCode) { long datagramTransmissionTime = argument.datagramStartTime > 0 ? (System.currentTimeMillis() - argument.datagramStartTime) : 0; boolean isDemoMode = mIsDemoMode.get(); SatelliteStats.getInstance().onSatelliteOutgoingDatagramMetrics( new SatelliteStats.SatelliteOutgoingDatagramParams.Builder() .setDatagramType(argument.datagramType) Loading @@ -788,18 +789,18 @@ public class DatagramDispatcher extends Handler { /* In case pending datagram has not been attempted to send to modem interface. transfer time will be 0. */ .setDatagramTransferTimeMillis(datagramTransmissionTime) .setIsDemoMode(mIsDemoMode) .setIsDemoMode(isDemoMode) .setCarrierId(SatelliteController.getInstance().getSatelliteCarrierId()) .setIsNtnOnlyCarrier(SatelliteController.getInstance().isNtnOnlyCarrier()) .build()); if (resultCode == SatelliteManager.SATELLITE_RESULT_SUCCESS) { mControllerMetricsStats.reportOutgoingDatagramSuccessCount(argument.datagramType, mIsDemoMode); isDemoMode); mSessionMetricsStats.addCountOfSuccessfulOutgoingDatagram(argument.datagramType, datagramTransmissionTime); } else { mControllerMetricsStats.reportOutgoingDatagramFailCount(argument.datagramType, mIsDemoMode); isDemoMode); mSessionMetricsStats.addCountOfFailedOutgoingDatagram(argument.datagramType, resultCode); } Loading Loading @@ -885,9 +886,9 @@ public class DatagramDispatcher extends Handler { stopDatagramWaitForConnectedStateTimer(); stopWaitForDatagramSendingResponseTimer(); stopWaitForSimulatedPollDatagramsDelayTimer(); mIsDemoMode = false; mIsDemoMode.set(false); mSendSatelliteDatagramRequest = null; mIsAligned = false; mIsAligned.set(false); mLastSendRequestDatagramType = DATAGRAM_TYPE_UNKNOWN; mModemState = SATELLITE_MODEM_STATE_UNKNOWN; mHasEnteredConnectedState = false; Loading Loading @@ -1078,7 +1079,7 @@ public class DatagramDispatcher extends Handler { private void startWaitForSimulatedPollDatagramsDelayTimer( @NonNull DatagramDispatcherHandlerRequest request) { if (mIsDemoMode) { if (mIsDemoMode.get()) { plogd("startWaitForSimulatedPollDatagramsDelayTimer"); sendMessageDelayed( obtainMessage(EVENT_WAIT_FOR_SIMULATED_POLL_DATAGRAMS_DELAY_TIMED_OUT, request), Loading @@ -1094,7 +1095,7 @@ public class DatagramDispatcher extends Handler { private void handleEventWaitForSimulatedPollDatagramsDelayTimedOut( @NonNull SendSatelliteDatagramArgument argument) { if (mIsDemoMode) { if (mIsDemoMode.get()) { plogd("handleEventWaitForSimulatedPollDatagramsDelayTimedOut"); mDatagramController.pushDemoModeDatagram(argument.datagramType, argument.datagram); Consumer<Integer> internalCallback = new Consumer<Integer>() { Loading @@ -1118,7 +1119,7 @@ public class DatagramDispatcher extends Handler { * This API is used by CTS tests to override the mDemoTimeoutDuration. */ void setTimeoutDatagramDelayInDemoMode(boolean reset, long timeoutMillis) { if (!mIsDemoMode) { if (!mIsDemoMode.get()) { return; } if (reset) { Loading Loading @@ -1392,11 +1393,10 @@ public class DatagramDispatcher extends Handler { } boolean isModemStateConnectedOrTransferring; boolean isAligned; boolean isAligned = mIsAligned.get(); boolean isMtSmsPollingThrottled; synchronized (mLock) { isMtSmsPollingThrottled = mIsMtSmsPollingThrottled; isAligned = mIsAligned; isModemStateConnectedOrTransferring = mModemState == SATELLITE_MODEM_STATE_CONNECTED || mModemState == SATELLITE_MODEM_STATE_DATAGRAM_TRANSFERRING; Loading tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramDispatcherTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -166,7 +166,7 @@ public class DatagramDispatcherTest extends TelephonyTest { mMockSessionMetricsStats); when(mFeatureFlags.carrierRoamingNbIotNtn()).thenReturn(true); doReturn(true).when(mFeatureFlags).satelliteImproveMultiThreadDesign(); mDatagramDispatcherUT = new TestDatagramDispatcher(mContext, Looper.myLooper(), mFeatureFlags, mMockDatagramController); Loading Loading
src/java/com/android/internal/telephony/satellite/DatagramDispatcher.java +24 −24 Original line number Diff line number Diff line Loading @@ -90,8 +90,8 @@ public class DatagramDispatcher extends Handler { @NonNull private final SessionMetricsStats mSessionMetricsStats; @NonNull private final FeatureFlags mFeatureFlags; private boolean mIsDemoMode = false; private boolean mIsAligned = false; private AtomicBoolean mIsDemoMode = new AtomicBoolean(false); private AtomicBoolean mIsAligned = new AtomicBoolean(false); private DatagramDispatcherHandlerRequest mSendSatelliteDatagramRequest = null; private static AtomicLong mNextDatagramId = new AtomicLong(0); Loading Loading @@ -266,7 +266,7 @@ public class DatagramDispatcher extends Handler { switch(msg.what) { case CMD_SEND_SATELLITE_DATAGRAM: { plogd("CMD_SEND_SATELLITE_DATAGRAM mIsDemoMode=" + mIsDemoMode plogd("CMD_SEND_SATELLITE_DATAGRAM mIsDemoMode=" + mIsDemoMode.get() + ", shouldSendDatagramToModemInDemoMode=" + shouldSendDatagramToModemInDemoMode()); request = (DatagramDispatcherHandlerRequest) msg.obj; Loading @@ -276,7 +276,7 @@ public class DatagramDispatcher extends Handler { onCompleted = obtainMessage(EVENT_SEND_SATELLITE_DATAGRAM_DONE, request); synchronized (mLock) { if (mIsDemoMode && !shouldSendDatagramToModemInDemoMode()) { if (mIsDemoMode.get() && !shouldSendDatagramToModemInDemoMode()) { AsyncResult.forMessage(onCompleted, SATELLITE_RESULT_SUCCESS, null); sendMessageDelayed(onCompleted, getDemoTimeoutDuration()); } else { Loading @@ -297,18 +297,19 @@ public class DatagramDispatcher extends Handler { (SendSatelliteDatagramArgument) request.argument; synchronized (mLock) { if (mIsDemoMode && (error == SatelliteManager.SATELLITE_RESULT_SUCCESS)) { if (mIsDemoMode.get() && (error == SatelliteManager.SATELLITE_RESULT_SUCCESS)) { if (argument.skipCheckingSatelliteAligned) { plogd("Satellite was already aligned. " + "No need to check alignment again"); } else if (mDatagramController.waitForAligningToSatellite(mIsAligned)) { } else if (mDatagramController.waitForAligningToSatellite( mIsAligned.get())) { plogd("Satellite is not aligned in demo mode, wait for the alignment."); startSatelliteAlignedTimer(request); break; } } plogd("EVENT_SEND_SATELLITE_DATAGRAM_DONE error: " + error + ", mIsDemoMode=" + mIsDemoMode); + ", mIsDemoMode=" + mIsDemoMode.get()); /* * The response should be ignored if either of the following hold Loading Loading @@ -511,8 +512,8 @@ public class DatagramDispatcher extends Handler { */ @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE) protected void setDemoMode(boolean isDemoMode) { mIsDemoMode = isDemoMode; plogd("setDemoMode: mIsDemoMode=" + mIsDemoMode); mIsDemoMode.set(isDemoMode); plogd("setDemoMode: mIsDemoMode=" + isDemoMode); } /** Loading @@ -520,11 +521,10 @@ public class DatagramDispatcher extends Handler { */ @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE) public void setDeviceAlignedWithSatellite(boolean isAligned) { synchronized (mLock) { mIsAligned = isAligned; plogd("setDeviceAlignedWithSatellite: " + mIsAligned); if (isAligned && mIsDemoMode) handleEventSatelliteAligned(); } mIsAligned.set(isAligned); plogd("setDeviceAlignedWithSatellite: " + isAligned); if (isAligned && mIsDemoMode.get()) handleEventSatelliteAligned(); if (allowMtSmsPolling()) { sendMessage(obtainMessage(CMD_SEND_MT_SMS_POLLING_MESSAGE)); } Loading Loading @@ -780,6 +780,7 @@ public class DatagramDispatcher extends Handler { @NonNull @SatelliteManager.SatelliteResult int resultCode) { long datagramTransmissionTime = argument.datagramStartTime > 0 ? (System.currentTimeMillis() - argument.datagramStartTime) : 0; boolean isDemoMode = mIsDemoMode.get(); SatelliteStats.getInstance().onSatelliteOutgoingDatagramMetrics( new SatelliteStats.SatelliteOutgoingDatagramParams.Builder() .setDatagramType(argument.datagramType) Loading @@ -788,18 +789,18 @@ public class DatagramDispatcher extends Handler { /* In case pending datagram has not been attempted to send to modem interface. transfer time will be 0. */ .setDatagramTransferTimeMillis(datagramTransmissionTime) .setIsDemoMode(mIsDemoMode) .setIsDemoMode(isDemoMode) .setCarrierId(SatelliteController.getInstance().getSatelliteCarrierId()) .setIsNtnOnlyCarrier(SatelliteController.getInstance().isNtnOnlyCarrier()) .build()); if (resultCode == SatelliteManager.SATELLITE_RESULT_SUCCESS) { mControllerMetricsStats.reportOutgoingDatagramSuccessCount(argument.datagramType, mIsDemoMode); isDemoMode); mSessionMetricsStats.addCountOfSuccessfulOutgoingDatagram(argument.datagramType, datagramTransmissionTime); } else { mControllerMetricsStats.reportOutgoingDatagramFailCount(argument.datagramType, mIsDemoMode); isDemoMode); mSessionMetricsStats.addCountOfFailedOutgoingDatagram(argument.datagramType, resultCode); } Loading Loading @@ -885,9 +886,9 @@ public class DatagramDispatcher extends Handler { stopDatagramWaitForConnectedStateTimer(); stopWaitForDatagramSendingResponseTimer(); stopWaitForSimulatedPollDatagramsDelayTimer(); mIsDemoMode = false; mIsDemoMode.set(false); mSendSatelliteDatagramRequest = null; mIsAligned = false; mIsAligned.set(false); mLastSendRequestDatagramType = DATAGRAM_TYPE_UNKNOWN; mModemState = SATELLITE_MODEM_STATE_UNKNOWN; mHasEnteredConnectedState = false; Loading Loading @@ -1078,7 +1079,7 @@ public class DatagramDispatcher extends Handler { private void startWaitForSimulatedPollDatagramsDelayTimer( @NonNull DatagramDispatcherHandlerRequest request) { if (mIsDemoMode) { if (mIsDemoMode.get()) { plogd("startWaitForSimulatedPollDatagramsDelayTimer"); sendMessageDelayed( obtainMessage(EVENT_WAIT_FOR_SIMULATED_POLL_DATAGRAMS_DELAY_TIMED_OUT, request), Loading @@ -1094,7 +1095,7 @@ public class DatagramDispatcher extends Handler { private void handleEventWaitForSimulatedPollDatagramsDelayTimedOut( @NonNull SendSatelliteDatagramArgument argument) { if (mIsDemoMode) { if (mIsDemoMode.get()) { plogd("handleEventWaitForSimulatedPollDatagramsDelayTimedOut"); mDatagramController.pushDemoModeDatagram(argument.datagramType, argument.datagram); Consumer<Integer> internalCallback = new Consumer<Integer>() { Loading @@ -1118,7 +1119,7 @@ public class DatagramDispatcher extends Handler { * This API is used by CTS tests to override the mDemoTimeoutDuration. */ void setTimeoutDatagramDelayInDemoMode(boolean reset, long timeoutMillis) { if (!mIsDemoMode) { if (!mIsDemoMode.get()) { return; } if (reset) { Loading Loading @@ -1392,11 +1393,10 @@ public class DatagramDispatcher extends Handler { } boolean isModemStateConnectedOrTransferring; boolean isAligned; boolean isAligned = mIsAligned.get(); boolean isMtSmsPollingThrottled; synchronized (mLock) { isMtSmsPollingThrottled = mIsMtSmsPollingThrottled; isAligned = mIsAligned; isModemStateConnectedOrTransferring = mModemState == SATELLITE_MODEM_STATE_CONNECTED || mModemState == SATELLITE_MODEM_STATE_DATAGRAM_TRANSFERRING; Loading
tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramDispatcherTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -166,7 +166,7 @@ public class DatagramDispatcherTest extends TelephonyTest { mMockSessionMetricsStats); when(mFeatureFlags.carrierRoamingNbIotNtn()).thenReturn(true); doReturn(true).when(mFeatureFlags).satelliteImproveMultiThreadDesign(); mDatagramDispatcherUT = new TestDatagramDispatcher(mContext, Looper.myLooper(), mFeatureFlags, mMockDatagramController); Loading