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

Commit da16a6a4 authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Merge cherrypicks of ['googleplex-android-review.googlesource.com/32157258']...

Merge cherrypicks of ['googleplex-android-review.googlesource.com/32157258'] into sparse-13272751-L40800030010704228.
SPARSE_CHANGE: Ib02fd0b3dfd354e53ff7e6d6d352d3e91933b3ea

Change-Id: I609defbb1df83dc9510ee59dd857fd5e69ce43fb
parents a0db6867 7962ad3f
Loading
Loading
Loading
Loading
+42 −29
Original line number Diff line number Diff line
@@ -82,6 +82,8 @@ public class DatagramDispatcher extends Handler {
    private static final int CMD_SEND_SMS = 8;
    private static final int EVENT_SEND_SMS_DONE = 9;
    private static final int EVENT_MT_SMS_POLLING_THROTTLE_TIMED_OUT = 10;
    private static final int CMD_SEND_MT_SMS_POLLING_MESSAGE = 11;

    private static final Long TIMEOUT_DATAGRAM_DELAY_IN_DEMO_MODE = TimeUnit.SECONDS.toMillis(10);
    @NonNull private static DatagramDispatcher sInstance;
    @NonNull private final Context mContext;
@@ -426,10 +428,16 @@ public class DatagramDispatcher extends Handler {
            case EVENT_MT_SMS_POLLING_THROTTLE_TIMED_OUT: {
                synchronized (mLock) {
                    mIsMtSmsPollingThrottled = false;
                }
                if (allowMtSmsPolling()) {
                        sendMtSmsPollingMessage();
                    sendMessage(obtainMessage(CMD_SEND_MT_SMS_POLLING_MESSAGE));
                }
                break;
            }

            case CMD_SEND_MT_SMS_POLLING_MESSAGE: {
                plogd("CMD_SEND_MT_SMS_POLLING_MESSAGE");
                handleCmdSendMtSmsPollingMessage();
                break;
            }

@@ -521,9 +529,9 @@ public class DatagramDispatcher extends Handler {
            mIsAligned = isAligned;
            plogd("setDeviceAlignedWithSatellite: " + mIsAligned);
            if (isAligned && mIsDemoMode) handleEventSatelliteAligned();
            if (allowMtSmsPolling()) {
                sendMtSmsPollingMessage();
        }
        if (allowMtSmsPolling()) {
            sendMessage(obtainMessage(CMD_SEND_MT_SMS_POLLING_MESSAGE));
        }
    }

@@ -845,10 +853,9 @@ public class DatagramDispatcher extends Handler {
                    mShouldPollMtSms = shouldPollMtSms();
                }
            }

            if (allowMtSmsPolling()) {
                sendMtSmsPollingMessage();
        }
        if (allowMtSmsPolling()) {
            sendMessage(obtainMessage(CMD_SEND_MT_SMS_POLLING_MESSAGE));
        }
    }

@@ -1325,9 +1332,10 @@ public class DatagramDispatcher extends Handler {
                && satelliteController.shouldSendSmsToDatagramDispatcher(satellitePhone);
    }

    @GuardedBy("mLock")
    private void sendMtSmsPollingMessage() {
    private void handleCmdSendMtSmsPollingMessage() {
        synchronized (mLock) {
            if (!mShouldPollMtSms) {
                plogd("sendMtSmsPollingMessage: mShouldPollMtSms=" + mShouldPollMtSms);
                return;
            }

@@ -1339,10 +1347,12 @@ public class DatagramDispatcher extends Handler {
            for (Entry<Long, PendingRequest> entry : mPendingSmsMap.entrySet()) {
                PendingRequest pendingRequest = entry.getValue();
                if (pendingRequest.isMtSmsPolling) {
                plogd("sendMtSmsPollingMessage: mPendingSmsMap already has the polling message.");
                    plogd("sendMtSmsPollingMessage: mPendingSmsMap already "
                            + "has the polling message.");
                    return;
                }
            }
        }

        Phone satellitePhone = SatelliteController.getInstance().getSatellitePhone();
        if (satellitePhone == null) {
@@ -1374,17 +1384,20 @@ public class DatagramDispatcher extends Handler {
        removeMessages(EVENT_MT_SMS_POLLING_THROTTLE_TIMED_OUT);
    }

    @GuardedBy("mLock")
    private boolean allowMtSmsPolling() {
        if (!mFeatureFlags.carrierRoamingNbIotNtn()) return false;

        if (mIsMtSmsPollingThrottled) return false;

        boolean isModemStateConnectedOrTransferring;
        synchronized (mLock) {
            if (!mIsAligned) return false;

        boolean isModemStateConnectedOrTransferring =
            isModemStateConnectedOrTransferring =
                    mModemState == SATELLITE_MODEM_STATE_CONNECTED
                            || mModemState == SATELLITE_MODEM_STATE_DATAGRAM_TRANSFERRING;
        }

        if (!isModemStateConnectedOrTransferring && !allowCheckMessageInNotConnected()) {
            plogd("EVENT_MT_SMS_POLLING_THROTTLE_TIMED_OUT:"
                    + " allow_check_message_in_not_connected is disabled");
+9 −13
Original line number Diff line number Diff line
@@ -614,7 +614,6 @@ public class SatelliteController extends Handler {
    private List<SatelliteSubscriberProvisionStatus> mLastEvaluatedSubscriberProvisionStatus =
            new ArrayList<>();
    // The ID of the satellite subscription that has highest priority and is provisioned.
    @GuardedBy("mSatelliteTokenProvisionedLock")
    @VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE)
    protected int mSelectedSatelliteSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
    // The last ICC ID that framework configured to modem.
@@ -7332,6 +7331,7 @@ public class SatelliteController extends Handler {
     */
    public void requestSatelliteSubscriberProvisionStatus(@NonNull ResultReceiver result) {
        if (!mFeatureFlags.carrierRoamingNbIotNtn()) {
            logd("requestSatelliteSubscriberProvisionStatus: carrierRoamingNbIotNtn is disabled");
            result.send(SATELLITE_RESULT_REQUEST_NOT_SUPPORTED, null);
            return;
        }
@@ -7397,11 +7397,9 @@ public class SatelliteController extends Handler {
    }

    public int getSelectedSatelliteSubId() {
        synchronized (mSatelliteTokenProvisionedLock) {
        plogd("getSelectedSatelliteSubId: subId=" + mSelectedSatelliteSubId);
        return mSelectedSatelliteSubId;
    }
    }

    /**
     * Request to get the currently selected satellite subscription id.
@@ -7762,7 +7760,6 @@ public class SatelliteController extends Handler {

    /** Return the carrier ID of the binding satellite subscription. */
    public int getSatelliteCarrierId() {
        synchronized (mSatelliteTokenProvisionedLock) {
        SubscriptionInfo subInfo = mSubscriptionManagerService.getSubscriptionInfo(
            mSelectedSatelliteSubId);
        if (subInfo == null) {
@@ -7771,7 +7768,6 @@ public class SatelliteController extends Handler {
        }
        return subInfo.getCarrierId();
    }
    }

    /**
     * Get whether phone is eligible to connect to carrier roaming non-terrestrial network.
+6 −0
Original line number Diff line number Diff line
@@ -1157,6 +1157,7 @@ public class DatagramDispatcherTest extends TelephonyTest {
        mDatagramDispatcherUT.handleMessage(
                mDatagramDispatcherUT.obtainMessage(10 /*EVENT_MT_SMS_POLLING_THROTTLE_TIMED_OUT*/,
                        new AsyncResult(null, null, null)));
        processAllMessages();

        verify(mMockSmsDispatchersController, times(1)).sendMtSmsPollingMessage();
   }
@@ -1205,6 +1206,7 @@ public class DatagramDispatcherTest extends TelephonyTest {
                R.bool.config_satellite_allow_check_message_in_not_connected, true);

        mDatagramDispatcherUT.setDeviceAlignedWithSatellite(true);
        processAllMessages();

        verify(mMockSmsDispatchersController, times(1)).sendMtSmsPollingMessage();
    }
@@ -1231,6 +1233,7 @@ public class DatagramDispatcherTest extends TelephonyTest {

        mDatagramDispatcherUT.onSatelliteModemStateChanged(
                SatelliteManager.SATELLITE_MODEM_STATE_NOT_CONNECTED);
        processAllMessages();

        verify(mMockSmsDispatchersController, times(1)).sendMtSmsPollingMessage();
    }
@@ -1243,6 +1246,7 @@ public class DatagramDispatcherTest extends TelephonyTest {

        mDatagramDispatcherUT.onSatelliteModemStateChanged(
                SatelliteManager.SATELLITE_MODEM_STATE_CONNECTED);
        processAllMessages();

        verify(mMockSmsDispatchersController, times(1)).sendMtSmsPollingMessage();
    }
@@ -1255,6 +1259,7 @@ public class DatagramDispatcherTest extends TelephonyTest {

        mDatagramDispatcherUT.onSatelliteModemStateChanged(
                SatelliteManager.SATELLITE_MODEM_STATE_DATAGRAM_TRANSFERRING);
        processAllMessages();

        verify(mMockSmsDispatchersController, times(1)).sendMtSmsPollingMessage();
    }
@@ -1285,6 +1290,7 @@ public class DatagramDispatcherTest extends TelephonyTest {

        mDatagramDispatcherUT.onSatelliteModemStateChanged(
                SatelliteManager.SATELLITE_MODEM_STATE_CONNECTED);
        processAllMessages();

        verify(mMockSmsDispatchersController, times(1)).sendMtSmsPollingMessage();
    }