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

Commit a84786bc authored by Grant Menke's avatar Grant Menke Committed by Android (Google) Code Review
Browse files

Merge "Ensure RadioConfigProxy HAL Version is set variably." into main

parents b5baded8 64034ba8
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -150,6 +150,15 @@ public class RIL extends BaseCommands implements CommandsInterface {
    /** @hide */
    public static final HalVersion RADIO_HAL_VERSION_UNKNOWN = HalVersion.UNKNOWN;

    /** @hide */
    public static final HalVersion RADIO_HAL_VERSION_1_1 = new HalVersion(1, 1);

    /** @hide */
    public static final HalVersion RADIO_HAL_VERSION_1_2 = new HalVersion(1, 2);

    /** @hide */
    public static final HalVersion RADIO_HAL_VERSION_1_3 = new HalVersion(1, 3);

    /** @hide */
    public static final HalVersion RADIO_HAL_VERSION_1_4 = new HalVersion(1, 4);

+6 −11
Original line number Diff line number Diff line
@@ -61,10 +61,6 @@ public class RadioConfig extends Handler {

    static final int EVENT_HIDL_SERVICE_DEAD = 1;
    static final int EVENT_AIDL_SERVICE_DEAD = 2;
    static final HalVersion RADIO_CONFIG_HAL_VERSION_UNKNOWN = new HalVersion(-1, -1);
    static final HalVersion RADIO_CONFIG_HAL_VERSION_1_1 = new HalVersion(1, 1);
    static final HalVersion RADIO_CONFIG_HAL_VERSION_1_3 = new HalVersion(1, 3);
    static final HalVersion RADIO_CONFIG_HAL_VERSION_2_0 = new HalVersion(2, 0);

    private final boolean mIsMobileNetworkSupported;
    private final SparseArray<RILRequest> mRequestList = new SparseArray<>();
@@ -294,13 +290,12 @@ public class RadioConfig extends Handler {

        if (service != null) {
            mRadioConfigProxy.setAidl(
                    RADIO_CONFIG_HAL_VERSION_2_0,
                    android.hardware.radio.config.IRadioConfig.Stub.asInterface(service));
        }

        if (mRadioConfigProxy.isEmpty()) {
            try {
                mRadioConfigProxy.setHidl(RADIO_CONFIG_HAL_VERSION_1_3,
                mRadioConfigProxy.setHidl(RIL.RADIO_HAL_VERSION_1_3,
                        android.hardware.radio.config.V1_3.IRadioConfig.getService(true));
            } catch (RemoteException | NoSuchElementException e) {
                mRadioConfigProxy.clear();
@@ -310,7 +305,7 @@ public class RadioConfig extends Handler {

        if (mRadioConfigProxy.isEmpty()) {
            try {
                mRadioConfigProxy.setHidl(RADIO_CONFIG_HAL_VERSION_1_1,
                mRadioConfigProxy.setHidl(RIL.RADIO_HAL_VERSION_1_1,
                        android.hardware.radio.config.V1_1.IRadioConfig.getService(true));
            } catch (RemoteException | NoSuchElementException e) {
                mRadioConfigProxy.clear();
@@ -515,7 +510,7 @@ public class RadioConfig extends Handler {
        RadioConfigProxy proxy = getRadioConfigProxy(null);
        if (proxy.isEmpty()) return;

        if (proxy.getVersion().less(RADIO_CONFIG_HAL_VERSION_1_1)) {
        if (proxy.getVersion().less(RIL.RADIO_HAL_VERSION_1_1)) {
            if (result != null) {
                AsyncResult.forMessage(result, null,
                        CommandException.fromRilErrno(REQUEST_NOT_SUPPORTED));
@@ -543,7 +538,7 @@ public class RadioConfig extends Handler {
     */
    public boolean isSetPreferredDataCommandSupported() {
        RadioConfigProxy proxy = getRadioConfigProxy(null);
        return !proxy.isEmpty() && proxy.getVersion().greaterOrEqual(RADIO_CONFIG_HAL_VERSION_1_1);
        return !proxy.isEmpty() && proxy.getVersion().greaterOrEqual(RIL.RADIO_HAL_VERSION_1_1);
    }

    /**
@@ -574,7 +569,7 @@ public class RadioConfig extends Handler {
        RadioConfigProxy proxy = getRadioConfigProxy(result);
        if (proxy.isEmpty()) return;

        if (proxy.getVersion().less(RADIO_CONFIG_HAL_VERSION_1_1)) {
        if (proxy.getVersion().less(RIL.RADIO_HAL_VERSION_1_1)) {
            if (result != null) {
                AsyncResult.forMessage(
                        result, null, CommandException.fromRilErrno(REQUEST_NOT_SUPPORTED));
@@ -628,7 +623,7 @@ public class RadioConfig extends Handler {
        RadioConfigProxy proxy = getRadioConfigProxy(Message.obtain(result));
        if (proxy.isEmpty()) return;

        if (proxy.getVersion().less(RADIO_CONFIG_HAL_VERSION_1_3)) {
        if (proxy.getVersion().less(RIL.RADIO_HAL_VERSION_1_3)) {
            if (result != null) {
                if (DBG) {
                    logd("RIL_REQUEST_GET_HAL_DEVICE_CAPABILITIES > REQUEST_NOT_SUPPORTED");
+11 −8
Original line number Diff line number Diff line
@@ -31,14 +31,15 @@ import java.util.Set;
 * downstream users.
 */
public class RadioConfigProxy {
    private final HalVersion mRadioHalVersion;
    private static final String TAG = "RadioConfigProxy";
    private HalVersion mRadioHalVersion;
    private final RadioConfigHidlServiceDeathRecipient mRadioConfigHidlServiceDeathRecipient;
    private final RadioConfigAidlServiceDeathRecipient mRadioConfigAidlServiceDeathRecipient;

    private volatile android.hardware.radio.config.V1_1.IRadioConfig mHidlRadioConfigProxy = null;
    private volatile android.hardware.radio.config.IRadioConfig mAidlRadioConfigProxy = null;

    private HalVersion mRadioConfigHalVersion = RadioConfig.RADIO_CONFIG_HAL_VERSION_UNKNOWN;
    private HalVersion mRadioConfigHalVersion = RIL.RADIO_HAL_VERSION_UNKNOWN;
    private boolean mIsAidl;

    public RadioConfigProxy(RadioConfig radioConfig, HalVersion radioHalVersion) {
@@ -83,13 +84,15 @@ public class RadioConfigProxy {
    /**
     * Set IRadioConfig as the AIDL implementation for RadioConfigProxy
     *
     * @param radioConfigHalVersion RadioConfig HAL version
     * @param radioConfig IRadioConfig implementation
     */
    public void setAidl(
            HalVersion radioConfigHalVersion,
            android.hardware.radio.config.IRadioConfig radioConfig) {
        mRadioConfigHalVersion = radioConfigHalVersion;
    public void setAidl(android.hardware.radio.config.IRadioConfig radioConfig) {
        try {
            mRadioConfigHalVersion = RIL.getServiceHalVersion(radioConfig.getInterfaceVersion());
            Rlog.d(TAG, "setAidl: setting HAL version to version = " + mRadioConfigHalVersion);
        } catch (RemoteException e) {
            Rlog.e(TAG, "setAidl: " + e);
        }
        mAidlRadioConfigProxy = radioConfig;
        mIsAidl = true;
        mRadioConfigAidlServiceDeathRecipient.setService(radioConfig.asBinder());
@@ -106,7 +109,7 @@ public class RadioConfigProxy {

    /** Reset RadioConfigProxy */
    public void clear() {
        mRadioConfigHalVersion = RadioConfig.RADIO_CONFIG_HAL_VERSION_UNKNOWN;
        mRadioConfigHalVersion = RIL.RADIO_HAL_VERSION_UNKNOWN;
        mHidlRadioConfigProxy = null;
        mAidlRadioConfigProxy = null;
        mRadioConfigHidlServiceDeathRecipient.clear();