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

Commit f50c1b44 authored by Chen Xu's avatar Chen Xu
Browse files

use createStringArray API

public API readStringArray(int[]) will trigger Parcel.readInt() twice. Instead
we should use the public API createStringArray

Bug: 157879439
Test: atest AdnRecordTest
Change-Id: Idd33e2983b0b367100bd487ee30e95682e2d6434
parent 3b2e21f7
Loading
Loading
Loading
Loading
+3 −8
Original line number Diff line number Diff line
@@ -92,14 +92,9 @@ public class AdnRecord implements Parcelable {
            recordNumber = source.readInt();
            alphaTag = source.readString();
            number = source.readString();
            final int len = source.readInt();
            if (len > 0) {
                emails = new String[len];
                source.readStringArray(emails);
            emails = source.createStringArray();

            return new AdnRecord(efid, recordNumber, alphaTag, number, emails);
            } else {
                return new AdnRecord(efid, recordNumber, alphaTag, number, null);
            }
        }

        @Override
+15 −0
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.internal.telephony;

import android.os.Parcel;
import java.util.Arrays;
import junit.framework.TestCase;
import android.test.suitebuilder.annotation.SmallTest;

@@ -174,6 +176,19 @@ public class AdnRecordTest extends TestCase {
        assertEquals("+18885551212,12345678", adn.getNumber());
        assertFalse(adn.isEmpty());
    }

    @SmallTest
    public void testParcelUnParcel() throws Exception {
        AdnRecord adn = new AdnRecord(0,0,"Voice Mail",
                "+18056377243", new String[]{"adc@email.com"});
        Parcel p = Parcel.obtain();
        adn.writeToParcel(p, 0);
        p.setDataPosition(0);
        AdnRecord copy = AdnRecord.CREATOR.createFromParcel(p);
        assertEquals(adn.getAlphaTag(), copy.getAlphaTag());
        assertEquals(adn.getNumber(), copy.getNumber());
        assertTrue(Arrays.equals(adn.getEmails(), copy.getEmails()));
    }
}