Fix handling format based on API level accordingly.
Use SmsMessage#createFromPdu(pdu, format) at least on M and replace
SmsMessage#FORMAT_3GPP2 with "3gpp2".
- SmsMessage#createFromPdu(pdu, format) is added in API level 23.
- SmsMessage#FORMAT_3GPP2 is added in API level 28.
Test: Manual
Signed-off-by: Taesu Lee <taesu82.lee@samsung.com>
Change-Id: Icab2c6c3c86ee8b6597881bfac6066fed60db4d2
diff --git a/src/com/android/messaging/receiver/SendStatusReceiver.java b/src/com/android/messaging/receiver/SendStatusReceiver.java
index c1b2bca..8d2e10f 100644
--- a/src/com/android/messaging/receiver/SendStatusReceiver.java
+++ b/src/com/android/messaging/receiver/SendStatusReceiver.java
@@ -87,7 +87,7 @@
final String format = intent.getStringExtra("format");
status = smsMessage.getStatus();
// Simple matching up CDMA status with GSM status.
- if (SmsMessage.FORMAT_3GPP2.equals(format)) {
+ if ("3gpp2".equals(format)) {
final int errorClass = (status >> 24) & 0x03;
final int statusCode = (status >> 16) & 0x3f;
switch (errorClass) {
diff --git a/src/com/android/messaging/sms/MmsUtils.java b/src/com/android/messaging/sms/MmsUtils.java
index e8e8713..75a01dd 100644
--- a/src/com/android/messaging/sms/MmsUtils.java
+++ b/src/com/android/messaging/sms/MmsUtils.java
@@ -1156,7 +1156,9 @@
public static SmsMessage getSmsMessageFromDeliveryReport(final Intent intent) {
final byte[] pdu = intent.getByteArrayExtra("pdu");
final String format = intent.getStringExtra("format");
- return SmsMessage.createFromPdu(pdu, format);
+ return OsUtil.isAtLeastM()
+ ? SmsMessage.createFromPdu(pdu, format)
+ : SmsMessage.createFromPdu(pdu);
}
/**
diff --git a/src/com/android/messaging/util/DebugUtils.java b/src/com/android/messaging/util/DebugUtils.java
index 0d689fe..6e33f48 100644
--- a/src/com/android/messaging/util/DebugUtils.java
+++ b/src/com/android/messaging/util/DebugUtils.java
@@ -302,11 +302,10 @@
final int length = dis.readInt();
final byte[] pdu = new byte[length];
dis.read(pdu, 0, length);
- if (format == null) {
- messagesTemp[i] = SmsMessage.createFromPdu(pdu);
- } else {
- messagesTemp[i] = SmsMessage.createFromPdu(pdu, format);
- }
+ messagesTemp[i] =
+ OsUtil.isAtLeastM()
+ ? SmsMessage.createFromPdu(pdu, format)
+ : SmsMessage.createFromPdu(pdu);
}
messages = messagesTemp;
} catch (final FileNotFoundException e) {