enforce stricter rules when registering phoneAccounts

- include disable accounts when looking up accounts for a package to
  check if the limit is reached (10)
- put a new limit of 10 supported schemes
- put a new limit of 256 characters per scheme
- put a new limit of 256 characters per address
- ensure the Icon can write to memory w/o throwing an exception

bug: 259064622
bug: 256819769
Test: cts + unit
Change-Id: Ia7d8d00d9de0fb6694ded6a80c40bd55d7fdf7a7
Merged-In: Ia7d8d00d9de0fb6694ded6a80c40bd55d7fdf7a7
This commit is contained in:
Thomas Stuart
2022-11-21 17:38:21 -08:00
parent 636cdf22b9
commit 6a02885f90

View File

@@ -517,6 +517,11 @@ public final class PhoneAccount implements Parcelable {
/** /**
* Sets the address. See {@link PhoneAccount#getAddress}. * Sets the address. See {@link PhoneAccount#getAddress}.
* <p>
* Note: The entire URI value is limited to 256 characters. This check is
* enforced when registering the PhoneAccount via
* {@link TelecomManager#registerPhoneAccount(PhoneAccount)} and will cause an
* {@link IllegalArgumentException} to be thrown if URI is over 256.
* *
* @param value The address of the phone account. * @param value The address of the phone account.
* @return The builder. * @return The builder.
@@ -550,6 +555,10 @@ public final class PhoneAccount implements Parcelable {
/** /**
* Sets the icon. See {@link PhoneAccount#getIcon}. * Sets the icon. See {@link PhoneAccount#getIcon}.
* <p>
* Note: An {@link IllegalArgumentException} if the Icon cannot be written to memory.
* This check is enforced when registering the PhoneAccount via
* {@link TelecomManager#registerPhoneAccount(PhoneAccount)}
* *
* @param icon The icon to set. * @param icon The icon to set.
*/ */
@@ -583,6 +592,10 @@ public final class PhoneAccount implements Parcelable {
/** /**
* Specifies an additional URI scheme supported by the {@link PhoneAccount}. * Specifies an additional URI scheme supported by the {@link PhoneAccount}.
* *
* <p>
* Each URI scheme is limited to 256 characters. Adding a scheme over 256 characters will
* cause an {@link IllegalArgumentException} to be thrown when the account is registered.
*
* @param uriScheme The URI scheme. * @param uriScheme The URI scheme.
* @return The builder. * @return The builder.
*/ */
@@ -596,6 +609,12 @@ public final class PhoneAccount implements Parcelable {
/** /**
* Specifies the URI schemes supported by the {@link PhoneAccount}. * Specifies the URI schemes supported by the {@link PhoneAccount}.
* *
* <p>
* A max of 10 URI schemes can be added per account. Additionally, each URI scheme is
* limited to 256 characters. Adding more than 10 URI schemes or 256 characters on any
* scheme will cause an {@link IllegalArgumentException} to be thrown when the account
* is registered.
*
* @param uriSchemes The URI schemes. * @param uriSchemes The URI schemes.
* @return The builder. * @return The builder.
*/ */