From f5f508c01d8c8d3ac874977228e15c7945c545ee Mon Sep 17 00:00:00 2001 From: Shuo Qian Date: Thu, 15 Jul 2021 10:31:11 -0700 Subject: [PATCH] Throw new IllegalStateException in CallRedirectionService when the call redirection is not initialized yet Test: Build Bug: 193482535 Change-Id: I3609362043684249b6d6981fc7d2ab42c676db76 --- .../java/android/telecom/CallRedirectionService.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/telecomm/java/android/telecom/CallRedirectionService.java b/telecomm/java/android/telecom/CallRedirectionService.java index c832f53ae073d..402b70b632048 100644 --- a/telecomm/java/android/telecom/CallRedirectionService.java +++ b/telecomm/java/android/telecom/CallRedirectionService.java @@ -100,6 +100,9 @@ public abstract class CallRedirectionService extends Service { */ public final void placeCallUnmodified() { try { + if (mCallRedirectionAdapter == null) { + throw new IllegalStateException("Can only be called from onPlaceCall."); + } mCallRedirectionAdapter.placeCallUnmodified(); } catch (RemoteException e) { e.rethrowAsRuntimeException(); @@ -128,6 +131,9 @@ public abstract class CallRedirectionService extends Service { @NonNull PhoneAccountHandle targetPhoneAccount, boolean confirmFirst) { try { + if (mCallRedirectionAdapter == null) { + throw new IllegalStateException("Can only be called from onPlaceCall."); + } mCallRedirectionAdapter.redirectCall(gatewayUri, targetPhoneAccount, confirmFirst); } catch (RemoteException e) { e.rethrowAsRuntimeException(); @@ -146,6 +152,9 @@ public abstract class CallRedirectionService extends Service { */ public final void cancelCall() { try { + if (mCallRedirectionAdapter == null) { + throw new IllegalStateException("Can only be called from onPlaceCall."); + } mCallRedirectionAdapter.cancelCall(); } catch (RemoteException e) { e.rethrowAsRuntimeException();