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

Commit dbef633a authored by Android Build Merger (Role)'s avatar Android Build Merger (Role) Committed by Android (Google) Code Review
Browse files

Merge "Merge "Fix Possible Deadlock with getFeatureState" am: 6bebb841 am:...

Merge "Merge "Fix Possible Deadlock with getFeatureState" am: 6bebb841 am: 057f582e am: 9296dcff"
parents 86a72a8e 5c096e64
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -341,15 +341,15 @@ public abstract class ImsFeature {
        }
    }

    /** @hide */
    protected Context mContext;
    /** @hide */
    protected final Object mLock = new Object();

    private final Set<IImsFeatureStatusCallback> mStatusCallbacks = Collections.newSetFromMap(
            new WeakHashMap<IImsFeatureStatusCallback, Boolean>());
    private @ImsState int mState = STATE_UNAVAILABLE;
    private int mSlotId = SubscriptionManager.INVALID_SIM_SLOT_INDEX;
    /**
     * @hide
     */
    protected Context mContext;
    private final Object mLock = new Object();
    private final RemoteCallbackList<IImsCapabilityCallback> mCapabilityCallbacks
            = new RemoteCallbackList<>();
    private Capabilities mCapabilityStatus = new Capabilities();
+20 −31
Original line number Diff line number Diff line
@@ -22,25 +22,25 @@ import android.os.Bundle;
import android.os.Message;
import android.os.RemoteException;
import android.telecom.TelecomManager;
import android.telephony.ims.stub.ImsRegistrationImplBase;
import android.telephony.ims.stub.ImsCallSessionImplBase;
import android.telephony.ims.stub.ImsSmsImplBase;
import android.telephony.ims.ImsCallProfile;
import android.telephony.ims.ImsCallSession;
import android.telephony.ims.ImsReasonInfo;
import android.telephony.ims.aidl.IImsCapabilityCallback;
import android.telephony.ims.aidl.IImsMmTelFeature;
import android.telephony.ims.aidl.IImsMmTelListener;
import android.telephony.ims.aidl.IImsSmsListener;
import android.telephony.ims.stub.ImsCallSessionImplBase;
import android.telephony.ims.stub.ImsEcbmImplBase;
import android.telephony.ims.stub.ImsMultiEndpointImplBase;
import android.telephony.ims.stub.ImsRegistrationImplBase;
import android.telephony.ims.stub.ImsSmsImplBase;
import android.telephony.ims.stub.ImsUtImplBase;
import android.util.Log;

import android.telephony.ims.ImsCallProfile;
import android.telephony.ims.ImsReasonInfo;
import com.android.ims.internal.IImsCallSession;
import com.android.ims.internal.IImsEcbm;
import com.android.ims.internal.IImsMultiEndpoint;
import com.android.ims.internal.IImsUt;
import android.telephony.ims.ImsCallSession;
import com.android.internal.annotations.VisibleForTesting;

import java.lang.annotation.Retention;
@@ -61,22 +61,18 @@ public class MmTelFeature extends ImsFeature {
    private final IImsMmTelFeature mImsMMTelBinder = new IImsMmTelFeature.Stub() {

        @Override
        public void setListener(IImsMmTelListener l) throws RemoteException {
            synchronized (mLock) {
        public void setListener(IImsMmTelListener l) {
            MmTelFeature.this.setListener(l);
        }
        }

        @Override
        public int getFeatureState() throws RemoteException {
            synchronized (mLock) {
            try {
                return MmTelFeature.this.getFeatureState();
            } catch (Exception e) {
                throw new RemoteException(e.getMessage());
            }
        }
        }


        @Override
@@ -138,11 +134,9 @@ public class MmTelFeature extends ImsFeature {
        }

        @Override
        public int queryCapabilityStatus() throws RemoteException {
            synchronized (mLock) {
        public int queryCapabilityStatus() {
            return MmTelFeature.this.queryCapabilityStatus().mCapabilities;
        }
        }

        @Override
        public void addCapabilityCallback(IImsCapabilityCallback c) {
@@ -158,7 +152,7 @@ public class MmTelFeature extends ImsFeature {

        @Override
        public void changeCapabilitiesConfiguration(CapabilityChangeRequest request,
                IImsCapabilityCallback c) throws RemoteException {
                IImsCapabilityCallback c) {
            synchronized (mLock) {
                MmTelFeature.this.requestChangeEnabledCapabilities(request, c);
            }
@@ -173,11 +167,9 @@ public class MmTelFeature extends ImsFeature {
        }

        @Override
        public void setSmsListener(IImsSmsListener l) throws RemoteException {
            synchronized (mLock) {
        public void setSmsListener(IImsSmsListener l) {
            MmTelFeature.this.setSmsListener(l);
        }
        }

        @Override
        public void sendSms(int token, int messageRef, String format, String smsc, boolean retry,
@@ -364,9 +356,6 @@ public class MmTelFeature extends ImsFeature {
    @Retention(RetentionPolicy.SOURCE)
    public @interface ProcessCallResult {}


    // Lock for feature synchronization
    private final Object mLock = new Object();
    private IImsMmTelListener mListener;

    /**
@@ -376,11 +365,11 @@ public class MmTelFeature extends ImsFeature {
    private void setListener(IImsMmTelListener listener) {
        synchronized (mLock) {
            mListener = listener;
        }
            if (mListener != null) {
                onFeatureReady();
            }
        }
    }

    private void queryCapabilityConfigurationInternal(int capability, int radioTech,
            IImsCapabilityCallback c) {