Handle CallStateException in PhoneInterfaceManager.
Since handleUssdRequest can now throw, ensuring exception is caught.
Test: Manual
Bug: 37484804
Change-Id: I91b443c9cdcfe1e538865f0a943ea9619c92f8b9
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index b33931c..9cd1f9d 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -71,6 +71,7 @@
import com.android.ims.internal.IImsServiceController;
import com.android.ims.internal.IImsServiceFeatureListener;
import com.android.internal.telephony.CallManager;
+import com.android.internal.telephony.CallStateException;
import com.android.internal.telephony.CellNetworkScanResult;
import com.android.internal.telephony.CommandException;
import com.android.internal.telephony.DefaultPhoneNotifier;
@@ -282,9 +283,13 @@
Pair<String, ResultReceiver> ussdObject = (Pair) request.argument;
String ussdRequest = ussdObject.first;
ResultReceiver wrappedCallback = ussdObject.second;
- request.result = phone != null ?
- phone.handleUssdRequest(ussdRequest, wrappedCallback)
- :false;
+ try {
+ request.result = phone != null ?
+ phone.handleUssdRequest(ussdRequest, wrappedCallback)
+ : false;
+ } catch (CallStateException cse) {
+ request.result = false;
+ }
// Wake up the requesting thread
synchronized (request) {
request.notifyAll();