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

Commit c6fba02c authored by Sarah Chin's avatar Sarah Chin
Browse files

Support satellite service indications

SatelliteServiceController will register a listener to the satellite
service. When the service sends callbacks to the listener, notify the
registrants with the results.
Also create a util file to handle conversions between types defined in
the service and the framework.

Test: atest SatelliteManagerTest
Bug: 261131816
Change-Id: I608057ff240e42e1a1e43487c571f550ec4b8297
parent 0eb34adc
Loading
Loading
Loading
Loading
+16 −13
Original line number Original line Diff line number Diff line
@@ -5319,8 +5319,9 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
     * @param what User-defined message code.
     * @param what User-defined message code.
     * @param obj User object.
     * @param obj User object.
     */
     */
    public void registerForSatellitePointingInfoChanged(@NonNull Handler h,
    public void registerForSatellitePositionInfoChanged(@NonNull Handler h,
            int what, @Nullable Object obj) {
            int what, @Nullable Object obj) {
        //TODO: Rename CommandsInterface and other modules when updating HAL APIs.
        mCi.registerForSatellitePointingInfoChanged(h, what, obj);
        mCi.registerForSatellitePointingInfoChanged(h, what, obj);
    }
    }


@@ -5329,7 +5330,8 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
     *
     *
     * @param h Handler to be removed from the registrant list.
     * @param h Handler to be removed from the registrant list.
     */
     */
    public void unregisterForSatellitePointingInfoChanged(@NonNull Handler h) {
    public void unregisterForSatellitePositionInfoChanged(@NonNull Handler h) {
        //TODO: Rename CommandsInterface and other modules when updating HAL APIs.
        mCi.unregisterForSatellitePointingInfoChanged(h);
        mCi.unregisterForSatellitePointingInfoChanged(h);
    }
    }


@@ -5342,7 +5344,7 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
     */
     */
    public void registerForSatelliteDatagramsDelivered(@NonNull Handler h,
    public void registerForSatelliteDatagramsDelivered(@NonNull Handler h,
            int what, @Nullable Object obj) {
            int what, @Nullable Object obj) {
        //TODO: Rename CommandsInterface and other modules when updating HAL APIs.
        //TODO: Remove.
        mCi.registerForSatelliteMessagesTransferComplete(h, what, obj);
        mCi.registerForSatelliteMessagesTransferComplete(h, what, obj);
    }
    }


@@ -5352,7 +5354,7 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
     * @param h Handler to be removed from the registrant list.
     * @param h Handler to be removed from the registrant list.
     */
     */
    public void unregisterForSatelliteDatagramsDelivered(@NonNull Handler h) {
    public void unregisterForSatelliteDatagramsDelivered(@NonNull Handler h) {
        //TODO: Rename CommandsInterface and other modules when updating HAL APIs.
        //TODO: Remove.
        mCi.unregisterForSatelliteMessagesTransferComplete(h);
        mCi.unregisterForSatelliteMessagesTransferComplete(h);
    }
    }


@@ -5413,23 +5415,23 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
    }
    }


    /**
    /**
     * Registers for satellite state change from satellite modem.
     * Registers for satellite state changed from satellite modem.
     *
     *
     * @param h Handler for notification message.
     * @param h Handler for notification message.
     * @param what User-defined message code.
     * @param what User-defined message code.
     * @param obj User object.
     * @param obj User object.
     */
     */
    public void registerForSatelliteModemStateChange(@NonNull Handler h, int what,
    public void registerForSatelliteModemStateChanged(@NonNull Handler h, int what,
            @Nullable Object obj) {
            @Nullable Object obj) {
        mCi.registerForSatelliteModeChanged(h, what, obj);
        mCi.registerForSatelliteModeChanged(h, what, obj);
    }
    }


    /**
    /**
     * Unregisters for satellite state changes from satellite modem.
     * Unregisters for satellite state changed from satellite modem.
     *
     *
     * @param h Handler to be removed from registrant list.
     * @param h Handler to be removed from registrant list.
     */
     */
    public void unregisterForSatelliteModemStateChange(@NonNull Handler h) {
    public void unregisterForSatelliteModemStateChanged(@NonNull Handler h) {
        mCi.unregisterForSatelliteModeChanged(h);
        mCi.unregisterForSatelliteModeChanged(h);
    }
    }


@@ -5461,19 +5463,20 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
     * @param what User-defined message code.
     * @param what User-defined message code.
     * @param obj User object.
     * @param obj User object.
     */
     */
    public void registerForNewSatelliteDatagram(@NonNull Handler h, int what,
    public void registerForSatelliteDatagramsReceived(@NonNull Handler h, int what,
            @Nullable Object obj) {
            @Nullable Object obj) {
        //mCi.registerForNewSatelliteDatagram(h, what, obj);
        // TODO: rename
        mCi.registerForNewSatelliteMessages(h, what, obj);
    }
    }



    /**
    /**
     * Unregister to stop receiving incoming datagrams over satellite.
     * Unregister to stop receiving incoming datagrams over satellite.
     *
     *
     * @param h Handler to be removed from registrant list.
     * @param h Handler to be removed from registrant list.
     */
     */
    public void unregisterForNewSatelliteDatagram(@NonNull Handler h) {
    public void unregisterForSatelliteDatagramsReceived(@NonNull Handler h) {
        //mCi.unregisterForNewSatelliteDatagram(h);
        // TODO: rename
        mCi.unregisterForNewSatelliteMessages(h);
    }
    }


    /**
    /**
+8 −1
Original line number Original line Diff line number Diff line
@@ -28,6 +28,8 @@ import static com.android.internal.telephony.RILConstants.RIL_UNSOL_SATELLITE_RA


import android.hardware.radio.satellite.IRadioSatelliteIndication;
import android.hardware.radio.satellite.IRadioSatelliteIndication;
import android.os.AsyncResult;
import android.os.AsyncResult;
import android.telephony.satellite.SatelliteDatagram;
import android.util.Pair;


/**
/**
 * Interface declaring unsolicited radio indications for Satellite APIs.
 * Interface declaring unsolicited radio indications for Satellite APIs.
@@ -78,8 +80,13 @@ public class SatelliteIndication extends IRadioSatelliteIndication.Stub {
        if (mRil.isLogOrTrace()) mRil.unsljLog(RIL_UNSOL_NEW_SATELLITE_MESSAGES);
        if (mRil.isLogOrTrace()) mRil.unsljLog(RIL_UNSOL_NEW_SATELLITE_MESSAGES);


        if (mRil.mNewSatelliteMessagesRegistrants != null) {
        if (mRil.mNewSatelliteMessagesRegistrants != null) {
            SatelliteDatagram[] datagrams = new SatelliteDatagram[messages.length];
            for (int i = 0; i < messages.length; i++) {
                datagrams[i] = new SatelliteDatagram(messages[i].getBytes());
            }
            // TODO: support pendingCount properly
            mRil.mNewSatelliteMessagesRegistrants.notifyRegistrants(
            mRil.mNewSatelliteMessagesRegistrants.notifyRegistrants(
                    new AsyncResult(null, messages, null));
                    new AsyncResult(null, new Pair<>(datagrams, messages.length), null));
        }
        }
    }
    }