Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4ad92062 authored by Aishwarya Mallampati's avatar Aishwarya Mallampati Committed by Android (Google) Code Review
Browse files

Merge "Modify variables used in updateSendStatus()" into main

parents 5f505ad7 5265af4f
Loading
Loading
Loading
Loading
+39 −40
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@ import com.android.internal.telephony.flags.FeatureFlags;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Consumer;

/**
@@ -81,17 +82,15 @@ public class DatagramController {

    /** Variables used to update onSendDatagramStateChanged(). */
    private final Object mLock = new Object();
    @GuardedBy("mLock")
    private int mSendSubId;
    @GuardedBy("mLock")
    private @SatelliteManager.DatagramType int mDatagramType = DATAGRAM_TYPE_UNKNOWN;
    @GuardedBy("mLock")
    private @SatelliteManager.SatelliteDatagramTransferState int mSendDatagramTransferState =
            SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE;
    @GuardedBy("mLock")
    private int mSendPendingCount = 0;
    @GuardedBy("mLock")
    private int mSendErrorCode = SatelliteManager.SATELLITE_RESULT_SUCCESS;

    private AtomicInteger mSendSubId = new AtomicInteger(0);
    private @SatelliteManager.DatagramType AtomicInteger mDatagramType =
            new AtomicInteger(DATAGRAM_TYPE_UNKNOWN);
    private @SatelliteManager.SatelliteDatagramTransferState AtomicInteger
            mSendDatagramTransferState = new AtomicInteger(SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE);
    private AtomicInteger mSendPendingCount = new AtomicInteger(0);
    private AtomicInteger mSendErrorCode =
            new AtomicInteger(SatelliteManager.SATELLITE_RESULT_SUCCESS);
    /** Variables used to update onReceiveDatagramStateChanged(). */
    @GuardedBy("mLock")
    private int mReceiveSubId;
@@ -258,11 +257,13 @@ public class DatagramController {
     * @param datagramTransferState The new send datagram transfer state.
     * @param sendPendingCount number of datagrams that are currently being sent
     * @param errorCode If datagram transfer failed, the reason for failure.
     *
     * This method is only used by {@link DatagramDispatcher}.
     */
    public void updateSendStatus(int subId, @SatelliteManager.DatagramType int datagramType,
    @VisibleForTesting(visibility =  VisibleForTesting.Visibility.PACKAGE)
    protected void updateSendStatus(int subId, @SatelliteManager.DatagramType int datagramType,
            @SatelliteManager.SatelliteDatagramTransferState int datagramTransferState,
            int sendPendingCount, int errorCode) {
        synchronized (mLock) {
        plogd("updateSendStatus"
                + " subId: " + subId
                + " datagramType: " + datagramType
@@ -273,17 +274,16 @@ public class DatagramController {
            return;
        }

            mSendSubId = subId;
            mDatagramType = datagramType;
            mSendDatagramTransferState = datagramTransferState;
            mSendPendingCount = sendPendingCount;
            mSendErrorCode = errorCode;
            notifyDatagramTransferStateChangedToSessionController(mDatagramType);
            mPointingAppController.updateSendDatagramTransferState(mSendSubId, mDatagramType,
                    mSendDatagramTransferState, mSendPendingCount, mSendErrorCode);
        mSendSubId.set(subId);
        mDatagramType.set(datagramType);
        mSendDatagramTransferState.set(datagramTransferState);
        mSendPendingCount.set(sendPendingCount);
        mSendErrorCode.set(errorCode);
        notifyDatagramTransferStateChangedToSessionController(datagramType);
        mPointingAppController.updateSendDatagramTransferState(subId, datagramType,
                datagramTransferState, sendPendingCount, errorCode);
        retryPollPendingDatagramsInDemoMode();
    }
    }

    private boolean shouldSuppressDatagramTransferStateUpdate(
            @SatelliteManager.DatagramType int datagramType) {
@@ -318,12 +318,12 @@ public class DatagramController {
                    + " receivePendingCount: " + receivePendingCount + " errorCode: " + errorCode);

            mReceiveSubId = subId;
            mDatagramType = datagramType;
            mDatagramType.set(datagramType);
            mReceiveDatagramTransferState = datagramTransferState;
            mReceivePendingCount = receivePendingCount;
            mReceiveErrorCode = errorCode;

            notifyDatagramTransferStateChangedToSessionController(mDatagramType);
            notifyDatagramTransferStateChangedToSessionController(datagramType);
            mPointingAppController.updateReceiveDatagramTransferState(mReceiveSubId,
                    mReceiveDatagramTransferState, mReceivePendingCount, mReceiveErrorCode);
            retryPollPendingDatagramsInDemoMode();
@@ -432,11 +432,9 @@ public class DatagramController {
        }
    }

    public boolean isSendingInIdleState() {
        synchronized (mLock) {
            return (mSendDatagramTransferState
                    == SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE);
        }
    @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE)
    protected boolean isSendingInIdleState() {
        return mSendDatagramTransferState.get() == SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE;
    }

    public boolean isPollingInIdleState() {
@@ -598,7 +596,8 @@ public class DatagramController {
        } else {
            synchronized (mLock) {
                sessionController.onDatagramTransferStateChanged(
                        mSendDatagramTransferState, mReceiveDatagramTransferState, datagramType);
                        mSendDatagramTransferState.get(),
                        mReceiveDatagramTransferState, datagramType);
            }
        }
    }
+28 −4
Original line number Diff line number Diff line
@@ -29,6 +29,8 @@ import static android.telephony.satellite.SatelliteManager.SATELLITE_DATAGRAM_TR
import static android.telephony.satellite.SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_SENDING;
import static android.telephony.satellite.SatelliteManager.SATELLITE_RESULT_SUCCESS;

import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
@@ -37,9 +39,9 @@ import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

import android.annotation.NonNull;
import android.content.Context;
import android.os.Looper;
import android.telephony.satellite.SatelliteDatagram;
import android.telephony.satellite.SatelliteManager;
@@ -48,6 +50,7 @@ import android.testing.TestableLooper;

import com.android.internal.R;
import com.android.internal.telephony.TelephonyTest;
import com.android.internal.telephony.flags.FeatureFlags;

import org.junit.After;
import org.junit.Before;
@@ -63,7 +66,7 @@ import java.util.function.Consumer;
public class DatagramControllerTest extends TelephonyTest {
    private static final String TAG = "DatagramControllerTest";

    private DatagramController mDatagramControllerUT;
    private TestDatagramController mDatagramControllerUT;

    @Mock private DatagramReceiver mMockDatagramReceiver;
    @Mock private DatagramDispatcher mMockDatagramDispatcher;
@@ -88,7 +91,7 @@ public class DatagramControllerTest extends TelephonyTest {
        replaceInstance(SatelliteSessionController.class, "sInstance", null,
                mMockSatelliteSessionController);
        when(mMockSatelliteController.isSatelliteAttachRequired()).thenReturn(true);
        mDatagramControllerUT = new DatagramController(
        mDatagramControllerUT = new TestDatagramController(
                mContext, Looper.myLooper(), mFeatureFlags, mMockPointingAppController);

        // Move both send and receive to IDLE state
@@ -336,4 +339,25 @@ public class DatagramControllerTest extends TelephonyTest {
        mDatagramControllerUT.setDemoMode(true);
        mDatagramControllerUT.pushDemoModeDatagram(datagramType, datagram);
    }

    public static class TestDatagramController extends DatagramController {

        public TestDatagramController(@NonNull Context context, @NonNull Looper  looper,
                @NonNull FeatureFlags featureFlags,
                @NonNull PointingAppController pointingAppController) {
            super(context, looper, featureFlags, pointingAppController);
        }

        @Override
        protected void updateSendStatus(int subId, int datagramType, int datagramTransferState,
                int sendPendingCount, int errorCode) {
            super.updateSendStatus(subId, datagramType, datagramTransferState, sendPendingCount,
                    errorCode);
        }

        @Override
        protected boolean isSendingInIdleState() {
            return super.isSendingInIdleState();
        }
    }
}
+2 −1
Original line number Diff line number Diff line
@@ -114,7 +114,7 @@ public class DatagramDispatcherTest extends TelephonyTest {
    private TestDatagramDispatcher mDatagramDispatcherUT;

    @Mock private SatelliteController mMockSatelliteController;
    @Mock private DatagramController mMockDatagramController;
    @Mock private DatagramControllerTest.TestDatagramController mMockDatagramController;
    @Mock private DatagramReceiver mMockDatagramReceiver;
    @Mock private SatelliteModemInterface mMockSatelliteModemInterface;
    @Mock private ControllerMetricsStats mMockControllerMetricsStats;
@@ -166,6 +166,7 @@ public class DatagramDispatcherTest extends TelephonyTest {
                mMockSessionMetricsStats);

        when(mFeatureFlags.carrierRoamingNbIotNtn()).thenReturn(true);

        mDatagramDispatcherUT = new TestDatagramDispatcher(mContext, Looper.myLooper(),
                mFeatureFlags,
                mMockDatagramController);
+1 −1
Original line number Diff line number Diff line
@@ -91,7 +91,7 @@ public class DatagramReceiverTest extends TelephonyTest {
    private TestDatagramReceiver mTestDemoModeDatagramReceiver;

    @Mock private SatelliteController mMockSatelliteController;
    @Mock private DatagramController mMockDatagramController;
    @Mock private DatagramControllerTest.TestDatagramController mMockDatagramController;
    @Mock private SatelliteModemInterface mMockSatelliteModemInterface;
    @Mock private ControllerMetricsStats mMockControllerMetricsStats;
    @Mock private SatelliteSessionController mMockSatelliteSessionController;
+1 −1
Original line number Diff line number Diff line
@@ -263,7 +263,7 @@ public class SatelliteControllerTest extends TelephonyTest {
    private SubscriptionInfo testSubscriptionInfo2;

    @Mock private SatelliteController mMockSatelliteController;
    @Mock private DatagramController mMockDatagramController;
    @Mock private DatagramControllerTest.TestDatagramController mMockDatagramController;
    @Mock private SatelliteModemInterface mMockSatelliteModemInterface;
    @Mock private SatelliteSessionController mMockSatelliteSessionController;
    @Mock private PointingAppController mMockPointingAppController;
Loading