diff options
author | Brad Ebinger <breadley@google.com> | 2018-03-13 01:08:23 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2018-03-13 01:08:23 +0000 |
commit | 0aa3018d8ad0ea685cf4cffb6cd7154e99396515 (patch) | |
tree | c44a18cf9a2172167700fa9397eb42b11339423a | |
parent | 0be35bd89bcb25c69569caa4ca5a685ce9842ec7 (diff) | |
parent | 59164fbc3fd84a437f9e84c7e318fa578da5fa1c (diff) | |
download | ims-0aa3018d8ad0ea685cf4cffb6cd7154e99396515.tar.gz |
Merge "Dynamic Query for ImsService" am: 6e391e4b28
am: 59164fbc3f
Change-Id: I6d68b98126b2b682b4f2c54947acdd90e7bc51b0
-rw-r--r-- | src/java/com/android/ims/ImsManager.java | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/src/java/com/android/ims/ImsManager.java b/src/java/com/android/ims/ImsManager.java index ab59e928..262a19d7 100644 --- a/src/java/com/android/ims/ImsManager.java +++ b/src/java/com/android/ims/ImsManager.java @@ -340,10 +340,19 @@ public class ImsManager { private void notifyReady() throws ImsException { ImsManager manager; synchronized (mLock) { - mRetryCount = 0; manager = mImsManager; } - mListener.connectionReady(manager); + try { + mListener.connectionReady(manager); + } + catch (ImsException e) { + Log.w(TAG, "Connector: notifyReady exception: " + e.getMessage()); + throw e; + } + // Only reset retry count if connectionReady does not generate an ImsException/ + synchronized (mLock) { + mRetryCount = 0; + } } private void notifyNotReady() { @@ -1422,10 +1431,18 @@ public class ImsManager { } /* - * Returns a flag indicating whether the IMS service is available. If it is not available, - * it will try to connect before reporting failure. + * Returns a flag indicating whether the IMS service is available. If it is not available or + * busy, it will try to connect before reporting failure. */ public boolean isServiceAvailable() { + // If we are busy resolving dynamic IMS bindings, we are not available yet. + TelephonyManager tm = (TelephonyManager) + mContext.getSystemService(Context.TELEPHONY_SERVICE); + if (tm.isResolvingImsBinding()) { + Log.d(TAG, "isServiceAvailable: resolving IMS binding, returning false"); + return false; + } + connectIfServiceIsAvailable(); // mImsServiceProxy will always create an ImsServiceProxy. return mMmTelFeatureConnection.isBinderAlive(); |