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

Commit f9970039 authored by Aishwarya Mallampati's avatar Aishwarya Mallampati
Browse files

sendSatelliteDatagram()

Send request immediately to handler

Bug: 409584433
Test: atest
Flag: com.android.internal.telephony.flags.satellite_improve_multi_thread_design
Change-Id: Ifb117322b80e6d2928d565e2e45341b3fbd6c243
parent 7325e6ed
Loading
Loading
Loading
Loading
+33 −0
Original line number Diff line number Diff line
@@ -334,6 +334,7 @@ public class SatelliteController extends Handler {
    private static final int REQUEST_STOP_SATELLITE_TRANSMISSION_UPDATES = 73;
    private static final int REQUEST_IS_SATELLITE_PROVISIONED = 74;
    private static final int REQUEST_POLL_PENDING_DATAGRAMS = 75;
    private static final int REQUEST_SEND_DATAGRAM = 76;

    @NonNull private static SatelliteController sInstance;
    @NonNull private final Context mContext;
@@ -2458,6 +2459,22 @@ public class SatelliteController extends Handler {
                break;
            }

            case REQUEST_SEND_DATAGRAM: {
                plogd("REQUEST_SEND_DATAGRAM");
                SomeArgs args = (SomeArgs) msg.obj;
                int datagramType = (int) args.arg1;
                SatelliteDatagram datagram = (SatelliteDatagram) args.arg2;
                boolean needFullScreenPointingUI = (boolean) args.arg3;
                IIntegerConsumer callback = (IIntegerConsumer) args.arg4;
                try {
                    handleRequestSendDatagram(
                            datagramType, datagram, needFullScreenPointingUI, callback);
                } finally {
                    args.recycle();
                }
                break;
            }

            default:
                Log.w(TAG, "SatelliteControllerHandler: unexpected message code: " +
                        msg.what);
@@ -3465,6 +3482,22 @@ public class SatelliteController extends Handler {
    public void sendDatagram(@SatelliteManager.DatagramType int datagramType,
            SatelliteDatagram datagram, boolean needFullScreenPointingUI,
            @NonNull IIntegerConsumer callback) {
        if (mFeatureFlags.satelliteImproveMultiThreadDesign()) {
            SomeArgs args = SomeArgs.obtain();
            args.arg1 = datagramType;
            args.arg2 = datagram;
            args.arg3 = needFullScreenPointingUI;
            args.arg4 = callback;
            sendMessage(obtainMessage(REQUEST_SEND_DATAGRAM, args));
            return;
        }

        handleRequestSendDatagram(datagramType, datagram, needFullScreenPointingUI, callback);
    }

    private void handleRequestSendDatagram(@SatelliteManager.DatagramType int datagramType,
            SatelliteDatagram datagram, boolean needFullScreenPointingUI,
            @NonNull IIntegerConsumer callback) {
        plogd("sendSatelliteDatagram: datagramType: " + datagramType
                + " needFullScreenPointingUI: " + needFullScreenPointingUI);