Loading src/java/com/android/internal/telephony/TelephonyComponentFactory.java +1 −1 Original line number Diff line number Diff line Loading @@ -384,7 +384,7 @@ public class TelephonyComponentFactory { public ImsExternalCallTracker makeImsExternalCallTracker(ImsPhone imsPhone) { return new ImsExternalCallTracker(imsPhone); return new ImsExternalCallTracker(imsPhone, imsPhone.getContext().getMainExecutor()); } /** Loading src/java/com/android/internal/telephony/imsphone/ImsExternalCallTracker.java +14 −6 Original line number Diff line number Diff line Loading @@ -33,10 +33,12 @@ import com.android.internal.telephony.Call; import com.android.internal.telephony.Connection; import com.android.internal.telephony.Phone; import com.android.internal.telephony.PhoneConstants; import com.android.internal.telephony.util.TelephonyUtils; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.concurrent.Executor; /** * Responsible for tracking external calls known to the system. Loading Loading @@ -70,9 +72,15 @@ public class ImsExternalCallTracker implements ImsPhoneCallTracker.PhoneStateLis * external call state updates from the IMS framework. */ public class ExternalCallStateListener extends ImsExternalCallStateListener { public ExternalCallStateListener(Executor executor) { super(executor); } @Override public void onImsExternalCallStateUpdate(List<ImsExternalCallState> externalCallState) { refreshExternalCallState(externalCallState); public void onImsExternalCallStateUpdate(List<ImsExternalCallState> externalCallState, Executor executor) { TelephonyUtils.runWithCleanCallingIdentity(()-> refreshExternalCallState(externalCallState), executor); } } Loading Loading @@ -149,15 +157,15 @@ public class ImsExternalCallTracker implements ImsPhoneCallTracker.PhoneStateLis @VisibleForTesting public ImsExternalCallTracker(ImsPhone phone, ImsPullCall callPuller, ImsCallNotify callNotifier) { ImsCallNotify callNotifier, Executor executor) { mPhone = phone; mCallStateNotifier = callNotifier; mExternalCallStateListener = new ExternalCallStateListener(); mExternalCallStateListener = new ExternalCallStateListener(executor); mCallPuller = callPuller; } public ImsExternalCallTracker(ImsPhone phone) { public ImsExternalCallTracker(ImsPhone phone, Executor executor) { mPhone = phone; mCallStateNotifier = new ImsCallNotify() { @Override Loading @@ -170,7 +178,7 @@ public class ImsExternalCallTracker implements ImsPhoneCallTracker.PhoneStateLis mPhone.notifyPreciseCallStateChanged(); } }; mExternalCallStateListener = new ExternalCallStateListener(); mExternalCallStateListener = new ExternalCallStateListener(executor); registerForNotifications(); } Loading src/java/com/android/internal/telephony/imsphone/ImsPhone.java +12 −5 Original line number Diff line number Diff line Loading @@ -119,6 +119,7 @@ import com.android.internal.telephony.metrics.VoiceCallSessionStats; import com.android.internal.telephony.nano.TelephonyProto.ImsConnectionState; import com.android.internal.telephony.uicc.IccRecords; import com.android.internal.telephony.util.NotificationChannelController; import com.android.internal.telephony.util.TelephonyUtils; import com.android.internal.util.IndentingPrintWriter; import com.android.telephony.Rlog; Loading @@ -127,6 +128,7 @@ import java.io.PrintWriter; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.concurrent.Executor; import java.util.function.Consumer; /** Loading Loading @@ -1969,17 +1971,22 @@ public class ImsPhone extends ImsPhoneBase { * Listen to the IMS ECBM state change */ private ImsEcbmStateListener mImsEcbmStateListener = new ImsEcbmStateListener() { new ImsEcbmStateListener(mContext.getMainExecutor()) { @Override public void onECBMEntered() { public void onECBMEntered(Executor executor) { if (DBG) logd("onECBMEntered"); handleEnterEmergencyCallbackMode(); TelephonyUtils.runWithCleanCallingIdentity(()-> handleEnterEmergencyCallbackMode(), executor); } @Override public void onECBMExited() { public void onECBMExited(Executor executor) { if (DBG) logd("onECBMExited"); handleExitEmergencyCallbackMode(); TelephonyUtils.runWithCleanCallingIdentity(()-> handleExitEmergencyCallbackMode(), executor); } }; Loading tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsExternalCallTrackerTest.java +2 −1 Original line number Diff line number Diff line Loading @@ -58,7 +58,8 @@ public class ImsExternalCallTrackerTest { public void setUp() throws Exception { MockitoAnnotations.initMocks(this); mTracker = new ImsExternalCallTracker(mImsPhone, mImsPullCall, mCallNotifier); mTracker = new ImsExternalCallTracker(mImsPhone, mImsPullCall, mCallNotifier, Runnable::run); } @FlakyTest Loading Loading
src/java/com/android/internal/telephony/TelephonyComponentFactory.java +1 −1 Original line number Diff line number Diff line Loading @@ -384,7 +384,7 @@ public class TelephonyComponentFactory { public ImsExternalCallTracker makeImsExternalCallTracker(ImsPhone imsPhone) { return new ImsExternalCallTracker(imsPhone); return new ImsExternalCallTracker(imsPhone, imsPhone.getContext().getMainExecutor()); } /** Loading
src/java/com/android/internal/telephony/imsphone/ImsExternalCallTracker.java +14 −6 Original line number Diff line number Diff line Loading @@ -33,10 +33,12 @@ import com.android.internal.telephony.Call; import com.android.internal.telephony.Connection; import com.android.internal.telephony.Phone; import com.android.internal.telephony.PhoneConstants; import com.android.internal.telephony.util.TelephonyUtils; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.concurrent.Executor; /** * Responsible for tracking external calls known to the system. Loading Loading @@ -70,9 +72,15 @@ public class ImsExternalCallTracker implements ImsPhoneCallTracker.PhoneStateLis * external call state updates from the IMS framework. */ public class ExternalCallStateListener extends ImsExternalCallStateListener { public ExternalCallStateListener(Executor executor) { super(executor); } @Override public void onImsExternalCallStateUpdate(List<ImsExternalCallState> externalCallState) { refreshExternalCallState(externalCallState); public void onImsExternalCallStateUpdate(List<ImsExternalCallState> externalCallState, Executor executor) { TelephonyUtils.runWithCleanCallingIdentity(()-> refreshExternalCallState(externalCallState), executor); } } Loading Loading @@ -149,15 +157,15 @@ public class ImsExternalCallTracker implements ImsPhoneCallTracker.PhoneStateLis @VisibleForTesting public ImsExternalCallTracker(ImsPhone phone, ImsPullCall callPuller, ImsCallNotify callNotifier) { ImsCallNotify callNotifier, Executor executor) { mPhone = phone; mCallStateNotifier = callNotifier; mExternalCallStateListener = new ExternalCallStateListener(); mExternalCallStateListener = new ExternalCallStateListener(executor); mCallPuller = callPuller; } public ImsExternalCallTracker(ImsPhone phone) { public ImsExternalCallTracker(ImsPhone phone, Executor executor) { mPhone = phone; mCallStateNotifier = new ImsCallNotify() { @Override Loading @@ -170,7 +178,7 @@ public class ImsExternalCallTracker implements ImsPhoneCallTracker.PhoneStateLis mPhone.notifyPreciseCallStateChanged(); } }; mExternalCallStateListener = new ExternalCallStateListener(); mExternalCallStateListener = new ExternalCallStateListener(executor); registerForNotifications(); } Loading
src/java/com/android/internal/telephony/imsphone/ImsPhone.java +12 −5 Original line number Diff line number Diff line Loading @@ -119,6 +119,7 @@ import com.android.internal.telephony.metrics.VoiceCallSessionStats; import com.android.internal.telephony.nano.TelephonyProto.ImsConnectionState; import com.android.internal.telephony.uicc.IccRecords; import com.android.internal.telephony.util.NotificationChannelController; import com.android.internal.telephony.util.TelephonyUtils; import com.android.internal.util.IndentingPrintWriter; import com.android.telephony.Rlog; Loading @@ -127,6 +128,7 @@ import java.io.PrintWriter; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.concurrent.Executor; import java.util.function.Consumer; /** Loading Loading @@ -1969,17 +1971,22 @@ public class ImsPhone extends ImsPhoneBase { * Listen to the IMS ECBM state change */ private ImsEcbmStateListener mImsEcbmStateListener = new ImsEcbmStateListener() { new ImsEcbmStateListener(mContext.getMainExecutor()) { @Override public void onECBMEntered() { public void onECBMEntered(Executor executor) { if (DBG) logd("onECBMEntered"); handleEnterEmergencyCallbackMode(); TelephonyUtils.runWithCleanCallingIdentity(()-> handleEnterEmergencyCallbackMode(), executor); } @Override public void onECBMExited() { public void onECBMExited(Executor executor) { if (DBG) logd("onECBMExited"); handleExitEmergencyCallbackMode(); TelephonyUtils.runWithCleanCallingIdentity(()-> handleExitEmergencyCallbackMode(), executor); } }; Loading
tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsExternalCallTrackerTest.java +2 −1 Original line number Diff line number Diff line Loading @@ -58,7 +58,8 @@ public class ImsExternalCallTrackerTest { public void setUp() throws Exception { MockitoAnnotations.initMocks(this); mTracker = new ImsExternalCallTracker(mImsPhone, mImsPullCall, mCallNotifier); mTracker = new ImsExternalCallTracker(mImsPhone, mImsPullCall, mCallNotifier, Runnable::run); } @FlakyTest Loading