diff options
3 files changed, 16 insertions, 8 deletions
diff --git a/src/java/com/android/ims/MmTelFeatureConnection.java b/src/java/com/android/ims/MmTelFeatureConnection.java index cd8c3f15..3170d413 100644 --- a/src/java/com/android/ims/MmTelFeatureConnection.java +++ b/src/java/com/android/ims/MmTelFeatureConnection.java @@ -87,9 +87,10 @@ public class MmTelFeatureConnection extends FeatureConnection { if (imsRegistration != null) { try { imsRegistration.removeRegistrationCallback(localCallback); - } catch (RemoteException e) { + } catch (RemoteException | IllegalStateException e) { Log.w(TAG + " [" + mSlotId + "]", "ImsRegistrationCallbackAdapter -" - + " unregisterCallback: couldn't remove registration callback"); + + " unregisterCallback: couldn't remove registration callback" + + " Exception: " + e.getMessage()); } } else { Log.e(TAG + " [" + mSlotId + "]", "ImsRegistrationCallbackAdapter: ImsRegistration" @@ -145,9 +146,9 @@ public class MmTelFeatureConnection extends FeatureConnection { if (binder != null) { try { binder.removeCapabilityCallback(localCallback); - } catch (RemoteException e) { + } catch (RemoteException | IllegalStateException e) { Log.w(TAG + " [" + mSlotId + "]", "CapabilityCallbackManager, unregister:" - + " Binder is dead."); + + " Binder is dead. Exception: " + e.getMessage()); } } else { Log.w(TAG + " [" + mSlotId + "]", "CapabilityCallbackManager, unregister:" @@ -187,9 +188,9 @@ public class MmTelFeatureConnection extends FeatureConnection { } try { binder.removeImsConfigCallback(localCallback); - } catch (RemoteException e) { + } catch (RemoteException | IllegalStateException e) { Log.w(TAG + " [" + mSlotId + "]", "ProvisioningCallbackManager - couldn't" - + " unregister, binder is dead."); + + " unregister, binder is dead. Exception: " + e.getMessage()); } } } @@ -322,8 +323,9 @@ public class MmTelFeatureConnection extends FeatureConnection { mMultiEndpoint.getInterface().setExternalCallStateListener(null); mMultiEndpoint = new BinderAccessState<>(BinderAccessState.STATE_NOT_SET); } - } catch (RemoteException e) { - Log.w(TAG + " [" + mSlotId + "]", "closeConnection: couldn't remove listeners!"); + } catch (RemoteException | IllegalStateException e) { + Log.w(TAG + " [" + mSlotId + "]", "closeConnection: couldn't remove listeners!" + + " Exception: " + e.getMessage()); } } } diff --git a/src/java/com/android/ims/rcs/uce/UceDeviceState.java b/src/java/com/android/ims/rcs/uce/UceDeviceState.java index 8d4de9f2..93445dbf 100644 --- a/src/java/com/android/ims/rcs/uce/UceDeviceState.java +++ b/src/java/com/android/ims/rcs/uce/UceDeviceState.java @@ -297,7 +297,12 @@ public class UceDeviceState { break; case NetworkSipCode.SIP_CODE_REQUEST_ENTITY_TOO_LARGE: // sip 413 + case NetworkSipCode.SIP_CODE_TEMPORARILY_UNAVAILABLE: // sip 480 + case NetworkSipCode.SIP_CODE_BUSY: // sip 486 + case NetworkSipCode.SIP_CODE_SERVER_INTERNAL_ERROR: // sip 500 + case NetworkSipCode.SIP_CODE_SERVICE_UNAVAILABLE: // sip 503 case NetworkSipCode.SIP_CODE_BUSY_EVERYWHERE: // sip 600 + case NetworkSipCode.SIP_CODE_DECLINE: // sip 603 if (requestType == UceController.REQUEST_TYPE_PUBLISH) { setDeviceState(DEVICE_STATE_NO_RETRY); // There is no request retry time for SIP code 413 diff --git a/src/java/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener.java b/src/java/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener.java index d2177eaa..442cf7da 100644 --- a/src/java/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener.java +++ b/src/java/com/android/ims/rcs/uce/presence/publish/DeviceCapabilityListener.java @@ -554,6 +554,7 @@ public class DeviceCapabilityListener { case ProvisioningManager.KEY_VOLTE_PROVISIONING_STATUS: case ProvisioningManager.KEY_VT_PROVISIONING_STATUS: handleProvisioningChanged(); + break; case ProvisioningManager.KEY_RCS_PUBLISH_SOURCE_THROTTLE_MS: handlePublishThrottleChanged(value); break; |