Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e2b0dc5a authored by Thomas Stuart's avatar Thomas Stuart
Browse files

update PhoneAccount and PhoneAccountHandle docs on char limit

prevent large character strings in PhoneAccount and PhoneAccountHandle
fields that may cause issues when writing to device. Such fields will
now throw an IllegalArgumentException when the character count is over
the set value.

Test: unit tests
bug: 256819769
Change-Id: Ib15a43c760f861570b7413d104565cd3a0ef96d8
parent 188c7870
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
@@ -540,6 +540,11 @@ public final class PhoneAccount implements Parcelable {

        /**
         * Creates a builder with the specified {@link PhoneAccountHandle} and label.
         * <p>
         * Note: each CharSequence or String field 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 the character field limit is over 256.
         */
        public Builder(PhoneAccountHandle accountHandle, CharSequence label) {
            this.mAccountHandle = accountHandle;
@@ -570,6 +575,11 @@ public final class PhoneAccount implements Parcelable {

        /**
         * Sets the label. See {@link PhoneAccount#getLabel()}.
         * <p>
         * Note: Each CharSequence or String field 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 the character field limit is over 256.
         *
         * @param label The label of the phone account.
         * @return The builder.
@@ -636,6 +646,11 @@ public final class PhoneAccount implements Parcelable {

        /**
         * Sets the short description. See {@link PhoneAccount#getShortDescription}.
         * <p>
         * Note: Each CharSequence or String field 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 the character field limit is over 256.
         *
         * @param value The short description.
         * @return The builder.
@@ -680,6 +695,13 @@ public final class PhoneAccount implements Parcelable {
         * <p>
         * {@code PhoneAccount}s only support extra values of type: {@link String}, {@link Integer},
         * and {@link Boolean}.  Extras which are not of these types are ignored.
         * <p>
         * Note: Each Bundle (Key, Value) String field is limited to 256 characters. Additionally,
         * the bundle is limited to 100 (Key, Value) pairs total.  This check is
         * enforced when registering the PhoneAccount via
         * {@link TelecomManager#registerPhoneAccount(PhoneAccount)} and will cause an
         * {@link IllegalArgumentException} to be thrown if the character field limit is over 256
         * or more than 100 (Key, Value) pairs are in the Bundle.
         *
         * @param extras
         * @return
@@ -711,6 +733,11 @@ public final class PhoneAccount implements Parcelable {
         * <p>
         * Note: This is an API specific to the Telephony stack; the group Id will be ignored for
         * callers not holding the correct permission.
         * <p>
         * Additionally, each CharSequence or String field 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 the character field limit is over 256.
         *
         * @param groupId The group Id of the {@link PhoneAccount} that will replace any other
         * registered {@link PhoneAccount} in Telecom with the same Group Id.
+13 −0
Original line number Diff line number Diff line
@@ -70,6 +70,12 @@ public final class PhoneAccountHandle implements Parcelable {
     *           ID provided does not expose personally identifying information.  A
     *           {@link ConnectionService} should use an opaque token as the
     *           {@link PhoneAccountHandle} identifier.
     * <p>
     * Note: Each String field 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 the character field limit is
     *           over 256.
     */
    public PhoneAccountHandle(
            @NonNull ComponentName componentName,
@@ -88,6 +94,13 @@ public final class PhoneAccountHandle implements Parcelable {
     *           {@link ConnectionService} should use an opaque token as the
     *           {@link PhoneAccountHandle} identifier.
     * @param userHandle The {@link UserHandle} associated with this {@link PhoneAccountHandle}.
     *
     * <p>
     * Note: Each String field 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 the character field limit is
     *           over 256.
     */
    public PhoneAccountHandle(
            @NonNull ComponentName componentName,