Loading telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java +4 −4 Original line number Diff line number Diff line Loading @@ -868,13 +868,13 @@ public final class BearerData { inStream.skip(offset); for (int i = 0; i < numFields; i++) { int charCode = inStream.read(7); if ((charCode >= UserData.ASCII_MAP_BASE_INDEX) || if ((charCode >= UserData.ASCII_MAP_BASE_INDEX) && (charCode <= UserData.ASCII_MAP_MAX_INDEX)) { strBuf.append(UserData.ASCII_MAP[charCode - UserData.ASCII_MAP_BASE_INDEX]); } else if (charCode == UserData.ASCII_LF_INDEX) { strBuf.append('\r'); } else if (charCode == UserData.ASCII_CR_INDEX) { } else if (charCode == UserData.ASCII_NL_INDEX) { strBuf.append('\n'); } else if (charCode == UserData.ASCII_CR_INDEX) { strBuf.append('\r'); } else { /* For other charCodes, they are unprintable, and so simply use SPACE. */ strBuf.append(' '); Loading telephony/java/com/android/internal/telephony/cdma/sms/UserData.java +3 −3 Original line number Diff line number Diff line Loading @@ -82,15 +82,15 @@ public class UserData { * Only elements between these indices in the ASCII table are printable. */ public static final int PRINTABLE_ASCII_MIN_INDEX = 0x20; public static final int ASCII_LF_INDEX = 0x0A; public static final int ASCII_NL_INDEX = 0x0A; public static final int ASCII_CR_INDEX = 0x0D; public static final SparseIntArray charToAscii = new SparseIntArray(); static { for (int i = 0; i < ASCII_MAP.length; i++) { charToAscii.put(ASCII_MAP[i], PRINTABLE_ASCII_MIN_INDEX + i); } charToAscii.put('\r', ASCII_LF_INDEX); charToAscii.put('\n', ASCII_CR_INDEX); charToAscii.put('\n', ASCII_NL_INDEX); charToAscii.put('\r', ASCII_CR_INDEX); } /* Loading tests/AndroidTests/src/com/android/unit_tests/CdmaSmsTest.java +6 −0 Original line number Diff line number Diff line Loading @@ -145,6 +145,12 @@ public class CdmaSmsTest extends AndroidTestCase { assertEquals(userData.msgEncoding, revBearerData.userData.msgEncoding); assertEquals(userData.payloadStr.length(), revBearerData.userData.numFields); assertEquals(userData.payloadStr, revBearerData.userData.payloadStr); userData.payloadStr = "Test \u007f standard \u0000 SMS"; revBearerData = BearerData.decode(BearerData.encode(bearerData)); assertEquals("Test standard SMS", revBearerData.userData.payloadStr); userData.payloadStr = "Test \n standard \r SMS"; revBearerData = BearerData.decode(BearerData.encode(bearerData)); assertEquals(userData.payloadStr, revBearerData.userData.payloadStr); } @SmallTest Loading Loading
telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java +4 −4 Original line number Diff line number Diff line Loading @@ -868,13 +868,13 @@ public final class BearerData { inStream.skip(offset); for (int i = 0; i < numFields; i++) { int charCode = inStream.read(7); if ((charCode >= UserData.ASCII_MAP_BASE_INDEX) || if ((charCode >= UserData.ASCII_MAP_BASE_INDEX) && (charCode <= UserData.ASCII_MAP_MAX_INDEX)) { strBuf.append(UserData.ASCII_MAP[charCode - UserData.ASCII_MAP_BASE_INDEX]); } else if (charCode == UserData.ASCII_LF_INDEX) { strBuf.append('\r'); } else if (charCode == UserData.ASCII_CR_INDEX) { } else if (charCode == UserData.ASCII_NL_INDEX) { strBuf.append('\n'); } else if (charCode == UserData.ASCII_CR_INDEX) { strBuf.append('\r'); } else { /* For other charCodes, they are unprintable, and so simply use SPACE. */ strBuf.append(' '); Loading
telephony/java/com/android/internal/telephony/cdma/sms/UserData.java +3 −3 Original line number Diff line number Diff line Loading @@ -82,15 +82,15 @@ public class UserData { * Only elements between these indices in the ASCII table are printable. */ public static final int PRINTABLE_ASCII_MIN_INDEX = 0x20; public static final int ASCII_LF_INDEX = 0x0A; public static final int ASCII_NL_INDEX = 0x0A; public static final int ASCII_CR_INDEX = 0x0D; public static final SparseIntArray charToAscii = new SparseIntArray(); static { for (int i = 0; i < ASCII_MAP.length; i++) { charToAscii.put(ASCII_MAP[i], PRINTABLE_ASCII_MIN_INDEX + i); } charToAscii.put('\r', ASCII_LF_INDEX); charToAscii.put('\n', ASCII_CR_INDEX); charToAscii.put('\n', ASCII_NL_INDEX); charToAscii.put('\r', ASCII_CR_INDEX); } /* Loading
tests/AndroidTests/src/com/android/unit_tests/CdmaSmsTest.java +6 −0 Original line number Diff line number Diff line Loading @@ -145,6 +145,12 @@ public class CdmaSmsTest extends AndroidTestCase { assertEquals(userData.msgEncoding, revBearerData.userData.msgEncoding); assertEquals(userData.payloadStr.length(), revBearerData.userData.numFields); assertEquals(userData.payloadStr, revBearerData.userData.payloadStr); userData.payloadStr = "Test \u007f standard \u0000 SMS"; revBearerData = BearerData.decode(BearerData.encode(bearerData)); assertEquals("Test standard SMS", revBearerData.userData.payloadStr); userData.payloadStr = "Test \n standard \r SMS"; revBearerData = BearerData.decode(BearerData.encode(bearerData)); assertEquals(userData.payloadStr, revBearerData.userData.payloadStr); } @SmallTest Loading