Support RCS master switch

Add flag which indicate RCS enable or disable by user in
RcsClientConfiguration class.

BUG: b/202892135
Test: cts CtsTelephonyTestCases:RcsClientConfigurationTest
Change-Id: Ic4397cb167f38602883ba939b75e109edccfb028
This commit is contained in:
joonhunshin
2021-12-07 03:59:05 +00:00
parent aa6380d616
commit 917f617a6f
2 changed files with 50 additions and 4 deletions

View File

@@ -13786,12 +13786,14 @@ package android.telephony.ims {
} }
public final class RcsClientConfiguration implements android.os.Parcelable { public final class RcsClientConfiguration implements android.os.Parcelable {
ctor public RcsClientConfiguration(@NonNull String, @NonNull String, @NonNull String, @NonNull String); ctor @Deprecated public RcsClientConfiguration(@NonNull String, @NonNull String, @NonNull String, @NonNull String);
ctor public RcsClientConfiguration(@NonNull String, @NonNull String, @NonNull String, @NonNull String, boolean);
method public int describeContents(); method public int describeContents();
method @NonNull public String getClientVendor(); method @NonNull public String getClientVendor();
method @NonNull public String getClientVersion(); method @NonNull public String getClientVersion();
method @NonNull public String getRcsProfile(); method @NonNull public String getRcsProfile();
method @NonNull public String getRcsVersion(); method @NonNull public String getRcsVersion();
method public boolean isRcsEnabledByUser();
method public void writeToParcel(@NonNull android.os.Parcel, int); method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.telephony.ims.RcsClientConfiguration> CREATOR; field @NonNull public static final android.os.Parcelable.Creator<android.telephony.ims.RcsClientConfiguration> CREATOR;
field public static final String RCS_PROFILE_1_0 = "UP_1.0"; field public static final String RCS_PROFILE_1_0 = "UP_1.0";

View File

@@ -50,6 +50,7 @@ public final class RcsClientConfiguration implements Parcelable {
private String mRcsProfile; private String mRcsProfile;
private String mClientVendor; private String mClientVendor;
private String mClientVersion; private String mClientVersion;
private boolean mRcsEnabledByUser;
/** /**
* Create a RcsClientConfiguration object. * Create a RcsClientConfiguration object.
@@ -63,14 +64,41 @@ public final class RcsClientConfiguration implements Parcelable {
* @param clientVersion Identifies the RCS client version. Refer to GSMA * @param clientVersion Identifies the RCS client version. Refer to GSMA
* RCC.07 "client_version" parameter. * RCC.07 "client_version" parameter.
* Example:client_version=RCSAndrd-1.0 * Example:client_version=RCSAndrd-1.0
* @deprecated Use {@link #RcsClientConfiguration(String, String, String, String, boolean)}
* instead. Deprecated prototype assumes that the user setting controlling RCS is enabled.
*/ */
@Deprecated
public RcsClientConfiguration(@NonNull String rcsVersion, public RcsClientConfiguration(@NonNull String rcsVersion,
@NonNull @StringRcsProfile String rcsProfile, @NonNull @StringRcsProfile String rcsProfile,
@NonNull String clientVendor, @NonNull String clientVersion) { @NonNull String clientVendor, @NonNull String clientVersion) {
this(rcsVersion, rcsProfile, clientVendor, clientVersion, true);
}
/**
* Create a RcsClientConfiguration object.
* Default messaging application must pass a valid configuration object
* @param rcsVersion The parameter identifies the RCS version supported
* by the client. Refer to GSMA RCC.07 "rcs_version" parameter.
* @param rcsProfile Identifies a fixed set of RCS services that are
* supported by the client. See {@link #RCS_PROFILE_1_0 } or
* {@link #RCS_PROFILE_2_3 }
* @param clientVendor Identifies the vendor providing the RCS client.
* @param clientVersion Identifies the RCS client version. Refer to GSMA
* RCC.07 "client_version" parameter.
* Example:client_version=RCSAndrd-1.0
* @param isRcsEnabledByUser The current user setting for whether or not the user has
* enabled or disabled RCS. Please refer to GSMA RCC.07 "rcs_state" parameter for how this
* can affect provisioning.
*/
public RcsClientConfiguration(@NonNull String rcsVersion,
@NonNull @StringRcsProfile String rcsProfile,
@NonNull String clientVendor, @NonNull String clientVersion,
boolean isRcsEnabledByUser) {
mRcsVersion = rcsVersion; mRcsVersion = rcsVersion;
mRcsProfile = rcsProfile; mRcsProfile = rcsProfile;
mClientVendor = clientVendor; mClientVendor = clientVendor;
mClientVersion = clientVersion; mClientVersion = clientVersion;
mRcsEnabledByUser = isRcsEnabledByUser;
} }
/** /**
@@ -101,6 +129,18 @@ public final class RcsClientConfiguration implements Parcelable {
return mClientVersion; return mClientVersion;
} }
/**
* The current user setting provided by the RCS messaging application that determines
* whether or not the user has enabled RCS.
* <p>
* See GSMA RCC.07 "rcs_state" parameter for more information about how this setting
* affects provisioning.
* @return true if RCS is enabled by the user, false if RCS is disabled by the user.
*/
public boolean isRcsEnabledByUser() {
return mRcsEnabledByUser;
}
/** /**
* {@link Parcelable#writeToParcel} * {@link Parcelable#writeToParcel}
*/ */
@@ -110,6 +150,7 @@ public final class RcsClientConfiguration implements Parcelable {
out.writeString(mRcsProfile); out.writeString(mRcsProfile);
out.writeString(mClientVendor); out.writeString(mClientVendor);
out.writeString(mClientVersion); out.writeString(mClientVersion);
out.writeBoolean(mRcsEnabledByUser);
} }
/** /**
@@ -124,8 +165,9 @@ public final class RcsClientConfiguration implements Parcelable {
String rcsProfile = in.readString(); String rcsProfile = in.readString();
String clientVendor = in.readString(); String clientVendor = in.readString();
String clientVersion = in.readString(); String clientVersion = in.readString();
Boolean rcsEnabledByUser = in.readBoolean();
return new RcsClientConfiguration(rcsVersion, rcsProfile, return new RcsClientConfiguration(rcsVersion, rcsProfile,
clientVendor, clientVersion); clientVendor, clientVersion, rcsEnabledByUser);
} }
@Override @Override
@@ -152,11 +194,13 @@ public final class RcsClientConfiguration implements Parcelable {
return mRcsVersion.equals(other.mRcsVersion) && mRcsProfile.equals(other.mRcsProfile) return mRcsVersion.equals(other.mRcsVersion) && mRcsProfile.equals(other.mRcsProfile)
&& mClientVendor.equals(other.mClientVendor) && mClientVendor.equals(other.mClientVendor)
&& mClientVersion.equals(other.mClientVersion); && mClientVersion.equals(other.mClientVersion)
&& (mRcsEnabledByUser == other.mRcsEnabledByUser);
} }
@Override @Override
public int hashCode() { public int hashCode() {
return Objects.hash(mRcsVersion, mRcsProfile, mClientVendor, mClientVersion); return Objects.hash(mRcsVersion, mRcsProfile, mClientVendor, mClientVersion,
mRcsEnabledByUser);
} }
} }