Loading telephony/java/android/telephony/ims/RcsContactPresenceTuple.java +0 −25 Original line number Diff line number Diff line Loading @@ -25,7 +25,6 @@ import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; import android.util.Log; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; Loading Loading @@ -385,22 +384,6 @@ public final class RcsContactPresenceTuple implements Parcelable { return this; } /** * The optional timestamp indicating the data and time of the status change of this tuple. * Per RFC3863 section 4.1.7, the timestamp is formatted as an IMPP datetime format * string per RFC3339. * @hide */ public @NonNull Builder setTimestamp(@NonNull String timestamp) { try { mPresenceTuple.mTimestamp = DateTimeFormatter.ISO_OFFSET_DATE_TIME.parse(timestamp, Instant::from); } catch (DateTimeParseException e) { Log.d(LOG_TAG, "Parse timestamp failed " + e); } return this; } /** * The optional timestamp indicating the data and time of the status change of this tuple. * Per RFC3863 section 4.1.7, the timestamp is formatted as an IMPP datetime format Loading Loading @@ -534,14 +517,6 @@ public final class RcsContactPresenceTuple implements Parcelable { return mContactUri; } /** * @return the timestamp element contained in the tuple if it exists * @hide */ public @Nullable String getTimestamp() { return (mTimestamp == null) ? null : mTimestamp.toString(); } /** @return the timestamp element contained in the tuple if it exists */ public @Nullable Instant getTime() { return mTimestamp; Loading telephony/java/android/telephony/ims/RcsUceAdapter.java +1 −89 Original line number Diff line number Diff line Loading @@ -439,8 +439,7 @@ public class RcsUceAdapter { /** * The pending request has resulted in an error and may need to be retried, depending on the * error code. The callback {@link #onCapabilitiesReceived(List)} * for each contacts is required to be called before {@link #onError} is called. * error code. * @param errorCode The reason for the framework being unable to process the request. * @param retryIntervalMillis The time in milliseconds the requesting application should * wait before retrying, if non-zero. Loading @@ -464,93 +463,6 @@ public class RcsUceAdapter { mPublishStateCallbacks = new HashMap<>(); } /** * Request the User Capability Exchange capabilities for one or more contacts. * <p> * This will return the cached capabilities of the contact and will not perform a capability * poll on the network unless there are contacts being queried with stale information. * <p> * Be sure to check the availability of this feature using * {@link ImsRcsManager#isAvailable(int, int)} and ensuring * {@link RcsFeature.RcsImsCapabilities#CAPABILITY_TYPE_OPTIONS_UCE} or * {@link RcsFeature.RcsImsCapabilities#CAPABILITY_TYPE_PRESENCE_UCE} is enabled or else * this operation will fail with {@link #ERROR_NOT_AVAILABLE} or {@link #ERROR_NOT_ENABLED}. * * @param contactNumbers A list of numbers that the capabilities are being requested for. * @param executor The executor that will be used when the request is completed and the * {@link CapabilitiesCallback} is called. * @param c A one-time callback for when the request for capabilities completes or there is an * error processing the request. * @throws ImsException if the subscription associated with this instance of * {@link RcsUceAdapter} is valid, but the ImsService associated with the subscription is not * available. This can happen if the ImsService has crashed, for example, or if the subscription * becomes inactive. See {@link ImsException#getCode()} for more information on the error codes. * @hide */ @RequiresPermission(allOf = {Manifest.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE, Manifest.permission.READ_CONTACTS}) public void requestCapabilities(@NonNull List<Uri> contactNumbers, @NonNull @CallbackExecutor Executor executor, @NonNull CapabilitiesCallback c) throws ImsException { if (c == null) { throw new IllegalArgumentException("Must include a non-null CapabilitiesCallback."); } if (executor == null) { throw new IllegalArgumentException("Must include a non-null Executor."); } if (contactNumbers == null) { throw new IllegalArgumentException("Must include non-null contact number list."); } IImsRcsController imsRcsController = getIImsRcsController(); if (imsRcsController == null) { Log.e(TAG, "requestCapabilities: IImsRcsController is null"); throw new ImsException("Can not find remote IMS service", ImsException.CODE_ERROR_SERVICE_UNAVAILABLE); } IRcsUceControllerCallback internalCallback = new IRcsUceControllerCallback.Stub() { @Override public void onCapabilitiesReceived(List<RcsContactUceCapability> contactCapabilities) { final long callingIdentity = Binder.clearCallingIdentity(); try { executor.execute(() -> c.onCapabilitiesReceived(contactCapabilities)); } finally { restoreCallingIdentity(callingIdentity); } } @Override public void onComplete() { final long callingIdentity = Binder.clearCallingIdentity(); try { executor.execute(() -> c.onComplete()); } finally { restoreCallingIdentity(callingIdentity); } } @Override public void onError(int errorCode, long retryAfterMilliseconds) { final long callingIdentity = Binder.clearCallingIdentity(); try { executor.execute(() -> c.onError(errorCode, retryAfterMilliseconds)); } finally { restoreCallingIdentity(callingIdentity); } } }; try { imsRcsController.requestCapabilities(mSubId, mContext.getOpPackageName(), mContext.getAttributionTag(), contactNumbers, internalCallback); } catch (ServiceSpecificException e) { throw new ImsException(e.toString(), e.errorCode); } catch (RemoteException e) { Log.e(TAG, "Error calling IImsRcsController#requestCapabilities", e); throw new ImsException("Remote IMS Service is not available", ImsException.CODE_ERROR_SERVICE_UNAVAILABLE); } } /** * Request the User Capability Exchange capabilities for one or more contacts. * <p> Loading telephony/java/android/telephony/ims/stub/RcsCapabilityExchangeImplBase.java +0 −35 Original line number Diff line number Diff line Loading @@ -369,41 +369,6 @@ public class RcsCapabilityExchangeImplBase { mBinderExecutor = executor; } /** * The user capabilities of one or multiple contacts have been requested by the framework. * <p> * The implementer must follow up this call with an * {@link SubscribeResponseCallback#onCommandError} call to indicate this operation has failed. * The response from the network to the SUBSCRIBE request must be sent back to the framework * using {@link SubscribeResponseCallback#onNetworkResponse(int, String)}. * As NOTIFY requests come in from the network, the requested contact’s capabilities should be * sent back to the framework using * {@link SubscribeResponseCallback#onNotifyCapabilitiesUpdate(List<String>}) and * {@link SubscribeResponseCallback#onResourceTerminated(List<Pair<Uri, String>>)} * should be called with the presence information for the contacts specified. * <p> * Once the subscription is terminated, * {@link SubscribeResponseCallback#onTerminated(String, long)} must be called for the * framework to finish listening for NOTIFY responses. * * @param uris A {@link List} of the {@link Uri}s that the framework is requesting the UCE * capabilities for. * @param cb The callback of the subscribe request. * @hide */ // executor used is defined in the constructor. @SuppressLint("ExecutorRegistration") public void subscribeForCapabilities(@NonNull List<Uri> uris, @NonNull SubscribeResponseCallback cb) { // Stub - to be implemented by service Log.w(LOG_TAG, "subscribeForCapabilities called with no implementation."); try { cb.onCommandError(COMMAND_CODE_NOT_SUPPORTED); } catch (ImsException e) { // Do not do anything, this is a stub implementation. } } /** * The user capabilities of one or multiple contacts have been requested by the framework. * <p> Loading Loading
telephony/java/android/telephony/ims/RcsContactPresenceTuple.java +0 −25 Original line number Diff line number Diff line Loading @@ -25,7 +25,6 @@ import android.os.Build; import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; import android.util.Log; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; Loading Loading @@ -385,22 +384,6 @@ public final class RcsContactPresenceTuple implements Parcelable { return this; } /** * The optional timestamp indicating the data and time of the status change of this tuple. * Per RFC3863 section 4.1.7, the timestamp is formatted as an IMPP datetime format * string per RFC3339. * @hide */ public @NonNull Builder setTimestamp(@NonNull String timestamp) { try { mPresenceTuple.mTimestamp = DateTimeFormatter.ISO_OFFSET_DATE_TIME.parse(timestamp, Instant::from); } catch (DateTimeParseException e) { Log.d(LOG_TAG, "Parse timestamp failed " + e); } return this; } /** * The optional timestamp indicating the data and time of the status change of this tuple. * Per RFC3863 section 4.1.7, the timestamp is formatted as an IMPP datetime format Loading Loading @@ -534,14 +517,6 @@ public final class RcsContactPresenceTuple implements Parcelable { return mContactUri; } /** * @return the timestamp element contained in the tuple if it exists * @hide */ public @Nullable String getTimestamp() { return (mTimestamp == null) ? null : mTimestamp.toString(); } /** @return the timestamp element contained in the tuple if it exists */ public @Nullable Instant getTime() { return mTimestamp; Loading
telephony/java/android/telephony/ims/RcsUceAdapter.java +1 −89 Original line number Diff line number Diff line Loading @@ -439,8 +439,7 @@ public class RcsUceAdapter { /** * The pending request has resulted in an error and may need to be retried, depending on the * error code. The callback {@link #onCapabilitiesReceived(List)} * for each contacts is required to be called before {@link #onError} is called. * error code. * @param errorCode The reason for the framework being unable to process the request. * @param retryIntervalMillis The time in milliseconds the requesting application should * wait before retrying, if non-zero. Loading @@ -464,93 +463,6 @@ public class RcsUceAdapter { mPublishStateCallbacks = new HashMap<>(); } /** * Request the User Capability Exchange capabilities for one or more contacts. * <p> * This will return the cached capabilities of the contact and will not perform a capability * poll on the network unless there are contacts being queried with stale information. * <p> * Be sure to check the availability of this feature using * {@link ImsRcsManager#isAvailable(int, int)} and ensuring * {@link RcsFeature.RcsImsCapabilities#CAPABILITY_TYPE_OPTIONS_UCE} or * {@link RcsFeature.RcsImsCapabilities#CAPABILITY_TYPE_PRESENCE_UCE} is enabled or else * this operation will fail with {@link #ERROR_NOT_AVAILABLE} or {@link #ERROR_NOT_ENABLED}. * * @param contactNumbers A list of numbers that the capabilities are being requested for. * @param executor The executor that will be used when the request is completed and the * {@link CapabilitiesCallback} is called. * @param c A one-time callback for when the request for capabilities completes or there is an * error processing the request. * @throws ImsException if the subscription associated with this instance of * {@link RcsUceAdapter} is valid, but the ImsService associated with the subscription is not * available. This can happen if the ImsService has crashed, for example, or if the subscription * becomes inactive. See {@link ImsException#getCode()} for more information on the error codes. * @hide */ @RequiresPermission(allOf = {Manifest.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE, Manifest.permission.READ_CONTACTS}) public void requestCapabilities(@NonNull List<Uri> contactNumbers, @NonNull @CallbackExecutor Executor executor, @NonNull CapabilitiesCallback c) throws ImsException { if (c == null) { throw new IllegalArgumentException("Must include a non-null CapabilitiesCallback."); } if (executor == null) { throw new IllegalArgumentException("Must include a non-null Executor."); } if (contactNumbers == null) { throw new IllegalArgumentException("Must include non-null contact number list."); } IImsRcsController imsRcsController = getIImsRcsController(); if (imsRcsController == null) { Log.e(TAG, "requestCapabilities: IImsRcsController is null"); throw new ImsException("Can not find remote IMS service", ImsException.CODE_ERROR_SERVICE_UNAVAILABLE); } IRcsUceControllerCallback internalCallback = new IRcsUceControllerCallback.Stub() { @Override public void onCapabilitiesReceived(List<RcsContactUceCapability> contactCapabilities) { final long callingIdentity = Binder.clearCallingIdentity(); try { executor.execute(() -> c.onCapabilitiesReceived(contactCapabilities)); } finally { restoreCallingIdentity(callingIdentity); } } @Override public void onComplete() { final long callingIdentity = Binder.clearCallingIdentity(); try { executor.execute(() -> c.onComplete()); } finally { restoreCallingIdentity(callingIdentity); } } @Override public void onError(int errorCode, long retryAfterMilliseconds) { final long callingIdentity = Binder.clearCallingIdentity(); try { executor.execute(() -> c.onError(errorCode, retryAfterMilliseconds)); } finally { restoreCallingIdentity(callingIdentity); } } }; try { imsRcsController.requestCapabilities(mSubId, mContext.getOpPackageName(), mContext.getAttributionTag(), contactNumbers, internalCallback); } catch (ServiceSpecificException e) { throw new ImsException(e.toString(), e.errorCode); } catch (RemoteException e) { Log.e(TAG, "Error calling IImsRcsController#requestCapabilities", e); throw new ImsException("Remote IMS Service is not available", ImsException.CODE_ERROR_SERVICE_UNAVAILABLE); } } /** * Request the User Capability Exchange capabilities for one or more contacts. * <p> Loading
telephony/java/android/telephony/ims/stub/RcsCapabilityExchangeImplBase.java +0 −35 Original line number Diff line number Diff line Loading @@ -369,41 +369,6 @@ public class RcsCapabilityExchangeImplBase { mBinderExecutor = executor; } /** * The user capabilities of one or multiple contacts have been requested by the framework. * <p> * The implementer must follow up this call with an * {@link SubscribeResponseCallback#onCommandError} call to indicate this operation has failed. * The response from the network to the SUBSCRIBE request must be sent back to the framework * using {@link SubscribeResponseCallback#onNetworkResponse(int, String)}. * As NOTIFY requests come in from the network, the requested contact’s capabilities should be * sent back to the framework using * {@link SubscribeResponseCallback#onNotifyCapabilitiesUpdate(List<String>}) and * {@link SubscribeResponseCallback#onResourceTerminated(List<Pair<Uri, String>>)} * should be called with the presence information for the contacts specified. * <p> * Once the subscription is terminated, * {@link SubscribeResponseCallback#onTerminated(String, long)} must be called for the * framework to finish listening for NOTIFY responses. * * @param uris A {@link List} of the {@link Uri}s that the framework is requesting the UCE * capabilities for. * @param cb The callback of the subscribe request. * @hide */ // executor used is defined in the constructor. @SuppressLint("ExecutorRegistration") public void subscribeForCapabilities(@NonNull List<Uri> uris, @NonNull SubscribeResponseCallback cb) { // Stub - to be implemented by service Log.w(LOG_TAG, "subscribeForCapabilities called with no implementation."); try { cb.onCommandError(COMMAND_CODE_NOT_SUPPORTED); } catch (ImsException e) { // Do not do anything, this is a stub implementation. } } /** * The user capabilities of one or multiple contacts have been requested by the framework. * <p> Loading