Perform a retry if creating the presence service fails
If the service handle's value is < 0, perform a retry instead
of blocking indefinitely.
Bug: 109782868
Test: Add contacts and make sure device publishes status and
retrieves capabilities.
Change-Id: I54f52b54a30f49c0834963df76a42d89a6e589bf
diff --git a/rcs/rcsservice/src/com/android/service/ims/RcsStackAdaptor.java b/rcs/rcsservice/src/com/android/service/ims/RcsStackAdaptor.java
index 6f1a076..bd0f89c 100644
--- a/rcs/rcsservice/src/com/android/service/ims/RcsStackAdaptor.java
+++ b/rcs/rcsservice/src/com/android/service/ims/RcsStackAdaptor.java
@@ -565,6 +565,14 @@
logger.debug("Create PresService");
mStackPresenceServiceHandle = mStackService.createPresenceService(
mListenerHandler.mPresenceListener, mListenerHandle);
+ // If the service handle is -1, then creating the service failed somehow.
+ // schedule a retry.
+ if (mStackPresenceServiceHandle < 0) {
+ logger.error("initAllService : service handle < 0, retrying...");
+ mIsIniting = false;
+ mLastInitSubService = -1;
+ return ret;
+ }
mStackPresService = mStackService.getPresenceService();
ret = 0;
} else {