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

Commit dd886588 authored by Thomas Nguyen's avatar Thomas Nguyen Committed by Android (Google) Code Review
Browse files

Merge "Support satellite provision APIs"

parents 18572586 d7c5a447
Loading
Loading
Loading
Loading
+33 −1
Original line number Original line Diff line number Diff line
@@ -131,6 +131,17 @@ public class CommandException extends RuntimeException {
        BLOCKED_DUE_TO_CALL,
        BLOCKED_DUE_TO_CALL,
        RF_HARDWARE_ISSUE,
        RF_HARDWARE_ISSUE,
        NO_RF_CALIBRATION_INFO,
        NO_RF_CALIBRATION_INFO,
        ENCODING_NOT_SUPPORTED,
        FEATURE_NOT_SUPPORTED,
        INVALID_CONTACT,
        MODEM_INCOMPATIBLE,
        NETWORK_TIMEOUT,
        NO_SATELLITE_SIGNAL,
        NOT_SUFFICIENT_ACCOUNT_BALANCE,
        RADIO_TECHNOLOGY_NOT_SUPPORTED,
        SUBSCRIBER_NOT_AUTHORIZED,
        SWITCHED_FROM_SATELLITE_TO_TERRESTRIAL,
        UNIDENTIFIED_SUBSCRIBER
    }
    }


    @UnsupportedAppUsage
    @UnsupportedAppUsage
@@ -341,7 +352,28 @@ public class CommandException extends RuntimeException {
                return new CommandException(Error.RF_HARDWARE_ISSUE);
                return new CommandException(Error.RF_HARDWARE_ISSUE);
            case RILConstants.NO_RF_CALIBRATION_INFO:
            case RILConstants.NO_RF_CALIBRATION_INFO:
                return new CommandException(Error.NO_RF_CALIBRATION_INFO);
                return new CommandException(Error.NO_RF_CALIBRATION_INFO);

            case RILConstants.ENCODING_NOT_SUPPORTED:
                return new CommandException(Error.ENCODING_NOT_SUPPORTED);
            case RILConstants.FEATURE_NOT_SUPPORTED:
                return new CommandException(Error.FEATURE_NOT_SUPPORTED);
            case RILConstants.INVALID_CONTACT:
                return new CommandException(Error.INVALID_CONTACT);
            case RILConstants.MODEM_INCOMPATIBLE:
                return new CommandException(Error.MODEM_INCOMPATIBLE);
            case RILConstants.NETWORK_TIMEOUT:
                return new CommandException(Error.NETWORK_TIMEOUT);
            case RILConstants.NO_SATELLITE_SIGNAL:
                return new CommandException(Error.NO_SATELLITE_SIGNAL);
            case RILConstants.NOT_SUFFICIENT_ACCOUNT_BALANCE:
                return new CommandException(Error.NOT_SUFFICIENT_ACCOUNT_BALANCE);
            case RILConstants.RADIO_TECHNOLOGY_NOT_SUPPORTED:
                return new CommandException(Error.RADIO_TECHNOLOGY_NOT_SUPPORTED);
            case RILConstants.SUBSCRIBER_NOT_AUTHORIZED:
                return new CommandException(Error.SUBSCRIBER_NOT_AUTHORIZED);
            case RILConstants.SWITCHED_FROM_SATELLITE_TO_TERRESTRIAL:
                return new CommandException(Error.SWITCHED_FROM_SATELLITE_TO_TERRESTRIAL);
            case RILConstants.UNIDENTIFIED_SUBSCRIBER:
                return new CommandException(Error.UNIDENTIFIED_SUBSCRIBER);
            default:
            default:
                Rlog.e("GSM", "Unrecognized RIL errno " + ril_errno);
                Rlog.e("GSM", "Unrecognized RIL errno " + ril_errno);
                return new CommandException(Error.INVALID_RESPONSE);
                return new CommandException(Error.INVALID_RESPONSE);
+54 −0
Original line number Original line Diff line number Diff line
@@ -5321,6 +5321,60 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
        mCi.unregisterForSatelliteMessagesTransferComplete(h);
        mCi.unregisterForSatelliteMessagesTransferComplete(h);
    }
    }


    /**
     * Provision the subscription with a satellite provider. This is needed to register the
     * subscription if the provider allows dynamic registration.
     *
     * @param result Callback message to receive the result.
     * @param imei IMEI of the SIM associated with the satellite modem.
     * @param msisdn MSISDN of the SIM associated with the satellite modem.
     * @param imsi IMSI of the SIM associated with the satellite modem.
     * @param features List of features to be provisioned.
     */
    public void provisionSatelliteService(Message result, String imei, String msisdn, String imsi,
            int[] features) {
        mCi.provisionSatelliteService(result, imei, msisdn, imsi, features);
    }

    /**
     * Cancel the ongoing provision satellite request of a subscription.
     *
     * @param result Callback message to receive the result.
     * @param imsi IMSI of the subscription whose provision request will be cancelled.
     */
    public void cancelProvisionSatelliteService(Message result, String imsi) {
        //TODO (b/266126070): add implementation.
    }

    /**
     * Register for a satellite provision state changed event.
     *
     * @param h Handler for notification message.
     * @param what User-defined message code.
     * @param obj User object.
     */
    public void registerForSatelliteProvisionStateChanged(Handler h, int what, Object obj) {
        mCi.registerForSatelliteProvisionStateChanged(h, what, obj);
    }

    /**
     * Unregister for a satellite provision state changed event.
     *
     * @param h Handler to be removed from the registrant list.
     */
    public void unregisterForSatelliteProvisionStateChanged(Handler h) {
        mCi.unregisterForSatelliteProvisionStateChanged(h);
    }

    /**
     * Get the list of provisioned satellite features.
     *
     * @param result Callback message to receive the result.
     */
    public void getProvisionedSatelliteFeatures(Message result) {
        //TODO (b/266126070): add implementation.
    }

    public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
    public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
        pw.println("Phone: subId=" + getSubId());
        pw.println("Phone: subId=" + getSubId());
        pw.println(" mPhoneId=" + mPhoneId);
        pw.println(" mPhoneId=" + mPhoneId);
+54 −7
Original line number Original line Diff line number Diff line
@@ -6026,10 +6026,11 @@ public class RILUtils {
            CommandException.Error error) {
            CommandException.Error error) {
        switch (error) {
        switch (error) {
            case INTERNAL_ERR:
            case INTERNAL_ERR:
            case MODEM_ERR:
                return SatelliteManager.SATELLITE_SERVICE_MODEM_ERROR;
                return SatelliteManager.SATELLITE_SERVICE_MODEM_ERROR;
            case MODEM_ERR:
                return SatelliteManager.SATELLITE_SERVICE_UNEXPECTED_MODEM_RESPONSE;
            case SYSTEM_ERR:
            case SYSTEM_ERR:
                return SatelliteManager.SATELLITE_SERVICE_SYSTEM_ERROR;
                return SatelliteManager.SATELLITE_SERVICE_RIL_ERROR;
            case INVALID_ARGUMENTS:
            case INVALID_ARGUMENTS:
                return SatelliteManager.SATELLITE_SERVICE_INVALID_ARGUMENTS;
                return SatelliteManager.SATELLITE_SERVICE_INVALID_ARGUMENTS;
            case INVALID_MODEM_STATE:
            case INVALID_MODEM_STATE:
@@ -6037,17 +6038,63 @@ public class RILUtils {
            case INVALID_SIM_STATE:
            case INVALID_SIM_STATE:
                return SatelliteManager.SATELLITE_SERVICE_INVALID_SIM_STATE;
                return SatelliteManager.SATELLITE_SERVICE_INVALID_SIM_STATE;
            case INVALID_STATE:
            case INVALID_STATE:
                return SatelliteManager.SATELLITE_SERVICE_INVALID_STATE;
                return SatelliteManager.SATELLITE_SERVICE_INVALID_RIL_STATE;
            case RADIO_NOT_AVAILABLE:
            case RADIO_NOT_AVAILABLE:
                return SatelliteManager.SATELLITE_SERVICE_NOT_AVAILABLE;
                return SatelliteManager.SATELLITE_SERVICE_RADIO_NOT_AVAILABLE;
            case REQUEST_NOT_SUPPORTED:
            case REQUEST_NOT_SUPPORTED:
                return SatelliteManager.SATELLITE_SERVICE_NOT_SUPPORTED;
                return SatelliteManager.SATELLITE_SERVICE_REQUEST_NOT_SUPPORTED;
            case REQUEST_RATE_LIMITED:
            case REQUEST_RATE_LIMITED:
                return SatelliteManager.SATELLITE_SERVICE_RATE_LIMITED;
                return SatelliteManager.SATELLITE_SERVICE_REQUEST_RATE_LIMITED;
            case NO_MEMORY:
            case NO_MEMORY:
                return SatelliteManager.SATELLITE_SERVICE_NO_MEMORY;
                //fallthrough to NO_RESOURCES
            case NO_RESOURCES:
            case NO_RESOURCES:
                return SatelliteManager.SATELLITE_SERVICE_NO_RESOURCES;
                return SatelliteManager.SATELLITE_SERVICE_NO_RESOURCES;
            case NETWORK_ERR:
                return SatelliteManager.SATELLITE_SERVICE_NETWORK_ERROR;
            case NETWORK_NOT_READY:
                return SatelliteManager.SATELLITE_SERVICE_NETWORK_NOT_READY;
            case NETWORK_REJECT:
                return SatelliteManager.SATELLITE_SERVICE_SERVER_REJECT;
            case NETWORK_TIMEOUT:
                return SatelliteManager.SATELLITE_SERVICE_NETWORK_TIMEOUT;
            case NO_NETWORK_FOUND:
                //fallthrough to NO_SATELLITE_SIGNAL
            case NO_SATELLITE_SIGNAL:
                return SatelliteManager.SATELLITE_SERVICE_NO_SATELLITE_SIGNAL;
            case ABORTED:
                return SatelliteManager.SATELLITE_SERVICE_REQUEST_ABORTED;
            case ACCESS_BARRED:
                return SatelliteManager.SATELLITE_SERVICE_ACCESS_BARRED;
            case FEATURE_NOT_SUPPORTED:
                return SatelliteManager.SATELLITE_SERVICE_FEATURE_NOT_SUPPORTED;
            case MODEM_INCOMPATIBLE:
                return SatelliteManager.SATELLITE_SERVICE_MODEM_INCOMPATIBLE;
            case NO_SUBSCRIPTION:
                return SatelliteManager.SATELLITE_SERVICE_NO_SUBSCRIPTION;
            case OPERATION_NOT_ALLOWED:
                return SatelliteManager.SATELLITE_SERVICE_OPERATION_NOT_ALLOWED;
            case RADIO_TECHNOLOGY_NOT_SUPPORTED:
                return SatelliteManager.SATELLITE_SERVICE_RADIO_TECHNOLOGY_NOT_SUPPORTED;
            case SIM_ABSENT:
                return SatelliteManager.SATELLITE_SERVICE_SIM_ABSENT;
            case SIM_BUSY:
                return SatelliteManager.SATELLITE_SERVICE_SIM_BUSY;
            case SIM_ERR:
                return SatelliteManager.SATELLITE_SERVICE_SIM_ERR;
            case SIM_FULL:
                return SatelliteManager.SATELLITE_SERVICE_SIM_FULL;
            case SUBSCRIBER_NOT_AUTHORIZED:
                return SatelliteManager.SATELLITE_SERVICE_SUBSCRIBER_NOT_AUTHORIZED;
            case ENCODING_NOT_SUPPORTED:
                return SatelliteManager.SATELLITE_SERVICE_ENCODING_NOT_SUPPORTED;
            case INVALID_CONTACT:
                return SatelliteManager.SATELLITE_SERVICE_INVALID_CONTACT;
            case NOT_SUFFICIENT_ACCOUNT_BALANCE:
                return SatelliteManager.SATELLITE_SERVICE_NOT_SUFFICIENT_ACCOUNT_BALANCE;
            case SWITCHED_FROM_SATELLITE_TO_TERRESTRIAL:
                return SatelliteManager.SATELLITE_SERVICE_SWITCHED_FROM_SATELLITE_TO_TERRESTRIAL;
            case UNIDENTIFIED_SUBSCRIBER:
                return SatelliteManager.SATELLITE_SERVICE_UNIDENTIFIED_SUBSCRIBER;
            default:
            default:
                return SatelliteManager.SATELLITE_SERVICE_ERROR;
                return SatelliteManager.SATELLITE_SERVICE_ERROR;
        }
        }
+2 −2
Original line number Original line Diff line number Diff line
@@ -172,8 +172,8 @@ public class SatelliteIndication extends IRadioSatelliteIndication.Stub {
        if (mRil.isLogOrTrace()) mRil.unsljLog(RIL_UNSOL_SATELLITE_PROVISION_STATE_CHANGED);
        if (mRil.isLogOrTrace()) mRil.unsljLog(RIL_UNSOL_SATELLITE_PROVISION_STATE_CHANGED);


        if (mRil.mSatelliteProvisionStateChangedRegistrants != null) {
        if (mRil.mSatelliteProvisionStateChangedRegistrants != null) {
            mRil.mSatelliteProvisionStateChangedRegistrants.notifyRegistrants(
            mRil.mSatelliteProvisionStateChangedRegistrants.notifyRegistrants(new AsyncResult(
                    new AsyncResult(null, RILUtils.convertHalSatelliteFeatures(features), null));
                    provisioned, RILUtils.convertHalSatelliteFeatures(features), null));
        }
        }
    }
    }
}
}