Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0aa3018d authored by Brad Ebinger's avatar Brad Ebinger Committed by android-build-merger
Browse files

Merge "Dynamic Query for ImsService" am: 6e391e4b

am: 59164fbc

Change-Id: I6d68b98126b2b682b4f2c54947acdd90e7bc51b0
parents 0be35bd8 59164fbc
Loading
Loading
Loading
Loading
+21 −4
Original line number Diff line number Diff line
@@ -340,11 +340,20 @@ public class ImsManager {
        private void notifyReady() throws ImsException {
            ImsManager manager;
            synchronized (mLock) {
                mRetryCount = 0;
                manager = mImsManager;
            }
            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() {
            mListener.connectionUnavailable();
@@ -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();