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();