Merge "Discard dead MmTelFeature Binder Instances" am: 9e1009dd55 am: 36199d0322

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1575999

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I376bc488d54805332da88bd138514a9eb8a1784d
This commit is contained in:
Brad Ebinger
2021-02-05 04:35:48 +00:00
committed by Automerger Merge Worker
3 changed files with 17 additions and 2 deletions

View File

@@ -44,8 +44,12 @@ public class ImsEcbmImplBase {
@Override
public void setListener(IImsEcbmListener listener) {
synchronized (mLock) {
if (mImsEcbm != null && listener != null && Objects.equals(
mImsEcbm.asBinder(), listener.asBinder())) {
if (mListener != null && !mListener.asBinder().isBinderAlive()) {
Log.w(TAG, "setListener: discarding dead Binder");
mListener = null;
}
if (mListener != null && listener != null && Objects.equals(
mListener.asBinder(), listener.asBinder())) {
return;
}
if (listener == null) {

View File

@@ -48,6 +48,10 @@ public class ImsMultiEndpointImplBase {
@Override
public void setListener(IImsExternalCallStateListener listener) throws RemoteException {
synchronized (mLock) {
if (mListener != null && !mListener.asBinder().isBinderAlive()) {
Log.w(TAG, "setListener: discarding dead Binder");
mListener = null;
}
if (mListener != null && listener != null && Objects.equals(
mListener.asBinder(), listener.asBinder())) {
return;

View File

@@ -23,6 +23,7 @@ import android.annotation.SystemApi;
import android.os.Bundle;
import android.os.RemoteException;
import android.telephony.ims.ImsUtListener;
import android.util.Log;
import com.android.ims.internal.IImsUt;
import com.android.ims.internal.IImsUtListener;
@@ -41,6 +42,7 @@ import java.util.Objects;
// will break other implementations of ImsUt maintained by other ImsServices.
@SystemApi
public class ImsUtImplBase {
private static final String TAG = "ImsUtImplBase";
/**
* Bar all incoming calls. (See 3GPP TS 24.611)
* @hide
@@ -207,6 +209,11 @@ public class ImsUtImplBase {
@Override
public void setListener(IImsUtListener listener) throws RemoteException {
synchronized (mLock) {
if (mUtListener != null
&& !mUtListener.getListenerInterface().asBinder().isBinderAlive()) {
Log.w(TAG, "setListener: discarding dead Binder");
mUtListener = null;
}
if (mUtListener != null && listener != null && Objects.equals(
mUtListener.getListenerInterface().asBinder(), listener.asBinder())) {
return;