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 {
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 @NonNull public String getClientVendor();
method @NonNull public String getClientVersion();
method @NonNull public String getRcsProfile();
method @NonNull public String getRcsVersion();
method public boolean isRcsEnabledByUser();
method public void writeToParcel(@NonNull android.os.Parcel, int);
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";

View File

@@ -50,6 +50,7 @@ public final class RcsClientConfiguration implements Parcelable {
private String mRcsProfile;
private String mClientVendor;
private String mClientVersion;
private boolean mRcsEnabledByUser;
/**
* Create a RcsClientConfiguration object.
@@ -63,14 +64,41 @@ public final class RcsClientConfiguration implements Parcelable {
* @param clientVersion Identifies the RCS client version. Refer to GSMA
* RCC.07 "client_version" parameter.
* 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,
@NonNull @StringRcsProfile String rcsProfile,
@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;
mRcsProfile = rcsProfile;
mClientVendor = clientVendor;
mClientVersion = clientVersion;
mRcsEnabledByUser = isRcsEnabledByUser;
}
/**
@@ -101,6 +129,18 @@ public final class RcsClientConfiguration implements Parcelable {
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}
*/
@@ -110,6 +150,7 @@ public final class RcsClientConfiguration implements Parcelable {
out.writeString(mRcsProfile);
out.writeString(mClientVendor);
out.writeString(mClientVersion);
out.writeBoolean(mRcsEnabledByUser);
}
/**
@@ -124,8 +165,9 @@ public final class RcsClientConfiguration implements Parcelable {
String rcsProfile = in.readString();
String clientVendor = in.readString();
String clientVersion = in.readString();
Boolean rcsEnabledByUser = in.readBoolean();
return new RcsClientConfiguration(rcsVersion, rcsProfile,
clientVendor, clientVersion);
clientVendor, clientVersion, rcsEnabledByUser);
}
@Override
@@ -152,11 +194,13 @@ public final class RcsClientConfiguration implements Parcelable {
return mRcsVersion.equals(other.mRcsVersion) && mRcsProfile.equals(other.mRcsProfile)
&& mClientVendor.equals(other.mClientVendor)
&& mClientVersion.equals(other.mClientVersion);
&& mClientVersion.equals(other.mClientVersion)
&& (mRcsEnabledByUser == other.mRcsEnabledByUser);
}
@Override
public int hashCode() {
return Objects.hash(mRcsVersion, mRcsProfile, mClientVendor, mClientVersion);
return Objects.hash(mRcsVersion, mRcsProfile, mClientVendor, mClientVersion,
mRcsEnabledByUser);
}
}