Loading core/api/system-current.txt +11 −2 Original line number Diff line number Diff line Loading @@ -11745,6 +11745,7 @@ package android.telephony.ims { method @Nullable public android.telephony.ims.RcsContactPresenceTuple getCapabilityTuple(@NonNull String); method @NonNull public java.util.List<android.telephony.ims.RcsContactPresenceTuple> getCapabilityTuples(); method @NonNull public android.net.Uri getContactUri(); method @NonNull public java.util.Set<java.lang.String> getFeatureTags(); method public int getRequestResult(); method public int getSourceType(); method public void writeToParcel(@NonNull android.os.Parcel, int); Loading @@ -11759,6 +11760,14 @@ package android.telephony.ims { field public static final int SOURCE_TYPE_NETWORK = 0; // 0x0 } public static final class RcsContactUceCapability.OptionsBuilder { ctor public RcsContactUceCapability.OptionsBuilder(@NonNull android.net.Uri); method @NonNull public android.telephony.ims.RcsContactUceCapability.OptionsBuilder addFeatureTag(@NonNull String); method @NonNull public android.telephony.ims.RcsContactUceCapability.OptionsBuilder addFeatureTags(@NonNull java.util.Set<java.lang.String>); method @NonNull public android.telephony.ims.RcsContactUceCapability build(); method @NonNull public android.telephony.ims.RcsContactUceCapability.OptionsBuilder setRequestResult(int); } public static final class RcsContactUceCapability.PresenceBuilder { ctor public RcsContactUceCapability.PresenceBuilder(@NonNull android.net.Uri, int, int); method @NonNull public android.telephony.ims.RcsContactUceCapability.PresenceBuilder addCapabilityTuple(@NonNull android.telephony.ims.RcsContactPresenceTuple); Loading Loading @@ -12052,7 +12061,7 @@ package android.telephony.ims.feature { package android.telephony.ims.stub { public interface CapabilityExchangeEventListener { method public void onRemoteCapabilityRequest(@NonNull android.net.Uri, @NonNull java.util.List<java.lang.String>, @NonNull android.telephony.ims.stub.CapabilityExchangeEventListener.OptionsRequestCallback) throws android.telephony.ims.ImsException; method public void onRemoteCapabilityRequest(@NonNull android.net.Uri, @NonNull java.util.Set<java.lang.String>, @NonNull android.telephony.ims.stub.CapabilityExchangeEventListener.OptionsRequestCallback) throws android.telephony.ims.ImsException; method public void onRequestPublishCapabilities(int) throws android.telephony.ims.ImsException; method public void onUnpublish() throws android.telephony.ims.ImsException; } Loading Loading @@ -12248,7 +12257,7 @@ package android.telephony.ims.stub { public class RcsCapabilityExchangeImplBase { ctor public RcsCapabilityExchangeImplBase(@NonNull java.util.concurrent.Executor); method public void publishCapabilities(@NonNull String, @NonNull android.telephony.ims.stub.RcsCapabilityExchangeImplBase.PublishResponseCallback); method public void sendOptionsCapabilityRequest(@NonNull android.net.Uri, @NonNull java.util.List<java.lang.String>, @NonNull android.telephony.ims.stub.RcsCapabilityExchangeImplBase.OptionsResponseCallback); method public void sendOptionsCapabilityRequest(@NonNull android.net.Uri, @NonNull java.util.Set<java.lang.String>, @NonNull android.telephony.ims.stub.RcsCapabilityExchangeImplBase.OptionsResponseCallback); method public void subscribeForCapabilities(@NonNull java.util.Collection<android.net.Uri>, @NonNull android.telephony.ims.stub.RcsCapabilityExchangeImplBase.SubscribeResponseCallback); field public static final int COMMAND_CODE_FETCH_ERROR = 3; // 0x3 field public static final int COMMAND_CODE_GENERIC_FAILURE = 1; // 0x1 telephony/java/android/telephony/ims/RcsContactUceCapability.java +22 −6 Original line number Diff line number Diff line Loading @@ -29,7 +29,9 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; /** * Contains the User Capability Exchange capabilities corresponding to a contact's URI. Loading Loading @@ -110,7 +112,6 @@ public final class RcsContactUceCapability implements Parcelable { /** * Builder to help construct {@link RcsContactUceCapability} instances when capabilities were * queried through SIP OPTIONS. * @hide */ public static final class OptionsBuilder { Loading Loading @@ -151,7 +152,7 @@ public final class RcsContactUceCapability implements Parcelable { * @param tags the list of the supported feature tags * @return this OptionBuilder */ public @NonNull OptionsBuilder addFeatureTags(@NonNull List<String> tags) { public @NonNull OptionsBuilder addFeatureTags(@NonNull Set<String> tags) { mCapabilities.mFeatureTags.addAll(tags); return this; } Loading Loading @@ -220,7 +221,7 @@ public final class RcsContactUceCapability implements Parcelable { private @CapabilityMechanism int mCapabilityMechanism; private @RequestResult int mRequestResult; private final List<String> mFeatureTags = new ArrayList<>(); private final Set<String> mFeatureTags = new HashSet<>(); private final List<RcsContactPresenceTuple> mPresenceTuples = new ArrayList<>(); private RcsContactUceCapability(@NonNull Uri contactUri, @CapabilityMechanism int mechanism, Loading @@ -235,7 +236,9 @@ public final class RcsContactUceCapability implements Parcelable { mCapabilityMechanism = in.readInt(); mSourceType = in.readInt(); mRequestResult = in.readInt(); in.readStringList(mFeatureTags); List<String> featureTagList = new ArrayList<>(); in.readStringList(featureTagList); mFeatureTags.addAll(featureTagList); in.readParcelableList(mPresenceTuples, RcsContactPresenceTuple.class.getClassLoader()); } Loading @@ -245,7 +248,7 @@ public final class RcsContactUceCapability implements Parcelable { out.writeInt(mCapabilityMechanism); out.writeInt(mSourceType); out.writeInt(mRequestResult); out.writeStringList(mFeatureTags); out.writeStringList(new ArrayList<>(mFeatureTags)); out.writeParcelableList(mPresenceTuples, flags); } Loading Loading @@ -285,7 +288,20 @@ public final class RcsContactUceCapability implements Parcelable { if (mCapabilityMechanism != CAPABILITY_MECHANISM_OPTIONS) { return Collections.emptyList(); } return Collections.unmodifiableList(mFeatureTags); return Collections.unmodifiableList(new ArrayList<>(mFeatureTags)); } /** * @return The feature tags present in the OPTIONS response from the network. * <p> * Note: this is only populated if {@link #getCapabilityMechanism} is * {@link RcsContactUceCapability#CAPABILITY_MECHANISM_OPTIONS} */ public @NonNull Set<String> getFeatureTags() { if (mCapabilityMechanism != CAPABILITY_MECHANISM_OPTIONS) { return Collections.emptySet(); } return Collections.unmodifiableSet(mFeatureTags); } /** Loading telephony/java/android/telephony/ims/aidl/CapabilityExchangeAidlWrapper.java +5 −3 Original line number Diff line number Diff line Loading @@ -26,7 +26,8 @@ import android.telephony.ims.RcsContactUceCapability; import android.telephony.ims.stub.CapabilityExchangeEventListener; import android.util.Log; import java.util.List; import java.util.ArrayList; import java.util.Set; /** * The ICapabilityExchangeEventListener wrapper class to store the listener which is registered by Loading Loading @@ -84,7 +85,7 @@ public class CapabilityExchangeAidlWrapper implements CapabilityExchangeEventLis * request to the framework. */ public void onRemoteCapabilityRequest(@NonNull Uri contactUri, @NonNull List<String> remoteCapabilities, @NonNull OptionsRequestCallback callback) @NonNull Set<String> remoteCapabilities, @NonNull OptionsRequestCallback callback) throws ImsException { ICapabilityExchangeEventListener listener = mListenerBinder; if (listener == null) { Loading Loading @@ -114,7 +115,8 @@ public class CapabilityExchangeAidlWrapper implements CapabilityExchangeEventLis }; try { listener.onRemoteCapabilityRequest(contactUri, remoteCapabilities, internalCallback); listener.onRemoteCapabilityRequest(contactUri, new ArrayList<>(remoteCapabilities), internalCallback); } catch (RemoteException e) { Log.w(LOG_TAG, "Remote capability request exception: " + e); throw new ImsException("Remote is not available", Loading telephony/java/android/telephony/ims/feature/RcsFeature.java +3 −2 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ import com.android.internal.telephony.util.TelephonyUtils; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.HashSet; import java.util.List; import java.util.concurrent.CancellationException; import java.util.concurrent.CompletableFuture; Loading Loading @@ -145,8 +146,8 @@ public class RcsFeature extends ImsFeature { throws RemoteException { OptionsResponseCallback callbackWrapper = new RcsOptionsResponseAidlWrapper(callback); executeMethodAsync(() -> mReference.getCapabilityExchangeImplBaseInternal() .sendOptionsCapabilityRequest(contactUri, myCapabilities, callbackWrapper), "sendOptionsCapabilityRequest"); .sendOptionsCapabilityRequest(contactUri, new HashSet<>(myCapabilities), callbackWrapper), "sendOptionsCapabilityRequest"); } // Call the methods with a clean calling identity on the executor and wait indefinitely for Loading telephony/java/android/telephony/ims/stub/CapabilityExchangeEventListener.java +4 −3 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ import android.telephony.ims.RcsUceAdapter; import android.telephony.ims.feature.ImsFeature; import android.telephony.ims.feature.RcsFeature; import java.util.List; import java.util.Set; /** * The interface that is used by the framework to listen to events from the vendor RCS stack Loading Loading @@ -98,7 +98,8 @@ public interface CapabilityExchangeEventListener { * {@link OptionsRequestCallback#onRespondToCapabilityRequestWithError}. * @param contactUri The URI associated with the remote contact that is * requesting capabilities. * @param remoteCapabilities The remote contact's capability information. * @param remoteCapabilities The remote contact's capability information. The capability * information is in the format defined in RCC.07 section 2.6.1.3. * @param callback The callback of this request which is sent from the remote user. * @throws ImsException If this {@link RcsCapabilityExchangeImplBase} instance is not * currently connected to the framework. This can happen if the {@link RcsFeature} is not Loading @@ -107,6 +108,6 @@ public interface CapabilityExchangeEventListener { * cases when the Telephony stack has crashed. */ void onRemoteCapabilityRequest(@NonNull Uri contactUri, @NonNull List<String> remoteCapabilities, @NonNull Set<String> remoteCapabilities, @NonNull OptionsRequestCallback callback) throws ImsException; } Loading
core/api/system-current.txt +11 −2 Original line number Diff line number Diff line Loading @@ -11745,6 +11745,7 @@ package android.telephony.ims { method @Nullable public android.telephony.ims.RcsContactPresenceTuple getCapabilityTuple(@NonNull String); method @NonNull public java.util.List<android.telephony.ims.RcsContactPresenceTuple> getCapabilityTuples(); method @NonNull public android.net.Uri getContactUri(); method @NonNull public java.util.Set<java.lang.String> getFeatureTags(); method public int getRequestResult(); method public int getSourceType(); method public void writeToParcel(@NonNull android.os.Parcel, int); Loading @@ -11759,6 +11760,14 @@ package android.telephony.ims { field public static final int SOURCE_TYPE_NETWORK = 0; // 0x0 } public static final class RcsContactUceCapability.OptionsBuilder { ctor public RcsContactUceCapability.OptionsBuilder(@NonNull android.net.Uri); method @NonNull public android.telephony.ims.RcsContactUceCapability.OptionsBuilder addFeatureTag(@NonNull String); method @NonNull public android.telephony.ims.RcsContactUceCapability.OptionsBuilder addFeatureTags(@NonNull java.util.Set<java.lang.String>); method @NonNull public android.telephony.ims.RcsContactUceCapability build(); method @NonNull public android.telephony.ims.RcsContactUceCapability.OptionsBuilder setRequestResult(int); } public static final class RcsContactUceCapability.PresenceBuilder { ctor public RcsContactUceCapability.PresenceBuilder(@NonNull android.net.Uri, int, int); method @NonNull public android.telephony.ims.RcsContactUceCapability.PresenceBuilder addCapabilityTuple(@NonNull android.telephony.ims.RcsContactPresenceTuple); Loading Loading @@ -12052,7 +12061,7 @@ package android.telephony.ims.feature { package android.telephony.ims.stub { public interface CapabilityExchangeEventListener { method public void onRemoteCapabilityRequest(@NonNull android.net.Uri, @NonNull java.util.List<java.lang.String>, @NonNull android.telephony.ims.stub.CapabilityExchangeEventListener.OptionsRequestCallback) throws android.telephony.ims.ImsException; method public void onRemoteCapabilityRequest(@NonNull android.net.Uri, @NonNull java.util.Set<java.lang.String>, @NonNull android.telephony.ims.stub.CapabilityExchangeEventListener.OptionsRequestCallback) throws android.telephony.ims.ImsException; method public void onRequestPublishCapabilities(int) throws android.telephony.ims.ImsException; method public void onUnpublish() throws android.telephony.ims.ImsException; } Loading Loading @@ -12248,7 +12257,7 @@ package android.telephony.ims.stub { public class RcsCapabilityExchangeImplBase { ctor public RcsCapabilityExchangeImplBase(@NonNull java.util.concurrent.Executor); method public void publishCapabilities(@NonNull String, @NonNull android.telephony.ims.stub.RcsCapabilityExchangeImplBase.PublishResponseCallback); method public void sendOptionsCapabilityRequest(@NonNull android.net.Uri, @NonNull java.util.List<java.lang.String>, @NonNull android.telephony.ims.stub.RcsCapabilityExchangeImplBase.OptionsResponseCallback); method public void sendOptionsCapabilityRequest(@NonNull android.net.Uri, @NonNull java.util.Set<java.lang.String>, @NonNull android.telephony.ims.stub.RcsCapabilityExchangeImplBase.OptionsResponseCallback); method public void subscribeForCapabilities(@NonNull java.util.Collection<android.net.Uri>, @NonNull android.telephony.ims.stub.RcsCapabilityExchangeImplBase.SubscribeResponseCallback); field public static final int COMMAND_CODE_FETCH_ERROR = 3; // 0x3 field public static final int COMMAND_CODE_GENERIC_FAILURE = 1; // 0x1
telephony/java/android/telephony/ims/RcsContactUceCapability.java +22 −6 Original line number Diff line number Diff line Loading @@ -29,7 +29,9 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; /** * Contains the User Capability Exchange capabilities corresponding to a contact's URI. Loading Loading @@ -110,7 +112,6 @@ public final class RcsContactUceCapability implements Parcelable { /** * Builder to help construct {@link RcsContactUceCapability} instances when capabilities were * queried through SIP OPTIONS. * @hide */ public static final class OptionsBuilder { Loading Loading @@ -151,7 +152,7 @@ public final class RcsContactUceCapability implements Parcelable { * @param tags the list of the supported feature tags * @return this OptionBuilder */ public @NonNull OptionsBuilder addFeatureTags(@NonNull List<String> tags) { public @NonNull OptionsBuilder addFeatureTags(@NonNull Set<String> tags) { mCapabilities.mFeatureTags.addAll(tags); return this; } Loading Loading @@ -220,7 +221,7 @@ public final class RcsContactUceCapability implements Parcelable { private @CapabilityMechanism int mCapabilityMechanism; private @RequestResult int mRequestResult; private final List<String> mFeatureTags = new ArrayList<>(); private final Set<String> mFeatureTags = new HashSet<>(); private final List<RcsContactPresenceTuple> mPresenceTuples = new ArrayList<>(); private RcsContactUceCapability(@NonNull Uri contactUri, @CapabilityMechanism int mechanism, Loading @@ -235,7 +236,9 @@ public final class RcsContactUceCapability implements Parcelable { mCapabilityMechanism = in.readInt(); mSourceType = in.readInt(); mRequestResult = in.readInt(); in.readStringList(mFeatureTags); List<String> featureTagList = new ArrayList<>(); in.readStringList(featureTagList); mFeatureTags.addAll(featureTagList); in.readParcelableList(mPresenceTuples, RcsContactPresenceTuple.class.getClassLoader()); } Loading @@ -245,7 +248,7 @@ public final class RcsContactUceCapability implements Parcelable { out.writeInt(mCapabilityMechanism); out.writeInt(mSourceType); out.writeInt(mRequestResult); out.writeStringList(mFeatureTags); out.writeStringList(new ArrayList<>(mFeatureTags)); out.writeParcelableList(mPresenceTuples, flags); } Loading Loading @@ -285,7 +288,20 @@ public final class RcsContactUceCapability implements Parcelable { if (mCapabilityMechanism != CAPABILITY_MECHANISM_OPTIONS) { return Collections.emptyList(); } return Collections.unmodifiableList(mFeatureTags); return Collections.unmodifiableList(new ArrayList<>(mFeatureTags)); } /** * @return The feature tags present in the OPTIONS response from the network. * <p> * Note: this is only populated if {@link #getCapabilityMechanism} is * {@link RcsContactUceCapability#CAPABILITY_MECHANISM_OPTIONS} */ public @NonNull Set<String> getFeatureTags() { if (mCapabilityMechanism != CAPABILITY_MECHANISM_OPTIONS) { return Collections.emptySet(); } return Collections.unmodifiableSet(mFeatureTags); } /** Loading
telephony/java/android/telephony/ims/aidl/CapabilityExchangeAidlWrapper.java +5 −3 Original line number Diff line number Diff line Loading @@ -26,7 +26,8 @@ import android.telephony.ims.RcsContactUceCapability; import android.telephony.ims.stub.CapabilityExchangeEventListener; import android.util.Log; import java.util.List; import java.util.ArrayList; import java.util.Set; /** * The ICapabilityExchangeEventListener wrapper class to store the listener which is registered by Loading Loading @@ -84,7 +85,7 @@ public class CapabilityExchangeAidlWrapper implements CapabilityExchangeEventLis * request to the framework. */ public void onRemoteCapabilityRequest(@NonNull Uri contactUri, @NonNull List<String> remoteCapabilities, @NonNull OptionsRequestCallback callback) @NonNull Set<String> remoteCapabilities, @NonNull OptionsRequestCallback callback) throws ImsException { ICapabilityExchangeEventListener listener = mListenerBinder; if (listener == null) { Loading Loading @@ -114,7 +115,8 @@ public class CapabilityExchangeAidlWrapper implements CapabilityExchangeEventLis }; try { listener.onRemoteCapabilityRequest(contactUri, remoteCapabilities, internalCallback); listener.onRemoteCapabilityRequest(contactUri, new ArrayList<>(remoteCapabilities), internalCallback); } catch (RemoteException e) { Log.w(LOG_TAG, "Remote capability request exception: " + e); throw new ImsException("Remote is not available", Loading
telephony/java/android/telephony/ims/feature/RcsFeature.java +3 −2 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ import com.android.internal.telephony.util.TelephonyUtils; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.HashSet; import java.util.List; import java.util.concurrent.CancellationException; import java.util.concurrent.CompletableFuture; Loading Loading @@ -145,8 +146,8 @@ public class RcsFeature extends ImsFeature { throws RemoteException { OptionsResponseCallback callbackWrapper = new RcsOptionsResponseAidlWrapper(callback); executeMethodAsync(() -> mReference.getCapabilityExchangeImplBaseInternal() .sendOptionsCapabilityRequest(contactUri, myCapabilities, callbackWrapper), "sendOptionsCapabilityRequest"); .sendOptionsCapabilityRequest(contactUri, new HashSet<>(myCapabilities), callbackWrapper), "sendOptionsCapabilityRequest"); } // Call the methods with a clean calling identity on the executor and wait indefinitely for Loading
telephony/java/android/telephony/ims/stub/CapabilityExchangeEventListener.java +4 −3 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ import android.telephony.ims.RcsUceAdapter; import android.telephony.ims.feature.ImsFeature; import android.telephony.ims.feature.RcsFeature; import java.util.List; import java.util.Set; /** * The interface that is used by the framework to listen to events from the vendor RCS stack Loading Loading @@ -98,7 +98,8 @@ public interface CapabilityExchangeEventListener { * {@link OptionsRequestCallback#onRespondToCapabilityRequestWithError}. * @param contactUri The URI associated with the remote contact that is * requesting capabilities. * @param remoteCapabilities The remote contact's capability information. * @param remoteCapabilities The remote contact's capability information. The capability * information is in the format defined in RCC.07 section 2.6.1.3. * @param callback The callback of this request which is sent from the remote user. * @throws ImsException If this {@link RcsCapabilityExchangeImplBase} instance is not * currently connected to the framework. This can happen if the {@link RcsFeature} is not Loading @@ -107,6 +108,6 @@ public interface CapabilityExchangeEventListener { * cases when the Telephony stack has crashed. */ void onRemoteCapabilityRequest(@NonNull Uri contactUri, @NonNull List<String> remoteCapabilities, @NonNull Set<String> remoteCapabilities, @NonNull OptionsRequestCallback callback) throws ImsException; }