Loading telephony/java/android/telephony/SmsCbEtwsInfo.java +19 −13 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import com.android.internal.telephony.uicc.IccUtils; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.time.DateTimeException; import java.time.LocalDateTime; import java.time.ZoneOffset; import java.util.Arrays; Loading Loading @@ -173,7 +174,7 @@ public final class SmsCbEtwsInfo implements Parcelable { /** * Returns the Warning-Security-Information timestamp (GSM primary notifications only). * As of Release 10, 3GPP TS 23.041 states that the UE shall ignore this value if received. * @return a UTC timestamp in System.currentTimeMillis() format, or 0 if not present * @return a UTC timestamp in System.currentTimeMillis() format, or 0 if not present or invalid. */ public long getPrimaryNotificationTimestamp() { if (mWarningSecurityInformation == null || mWarningSecurityInformation.length < 7) { Loading Loading @@ -201,6 +202,7 @@ public final class SmsCbEtwsInfo implements Parcelable { // timezoneOffset is in quarter hours. int timeZoneOffsetSeconds = timezoneOffset * 15 * 60; try { LocalDateTime localDateTime = LocalDateTime.of( // We only need to support years above 2000. year + 2000, Loading @@ -213,6 +215,10 @@ public final class SmsCbEtwsInfo implements Parcelable { long epochSeconds = localDateTime.toEpochSecond(ZoneOffset.UTC) - timeZoneOffsetSeconds; // Convert to milliseconds, ignore overflow. return epochSeconds * 1000; } catch (DateTimeException ex) { // No-op } return 0; } /** Loading telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java +11 −4 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import com.android.internal.util.BitwiseOutputStream; import com.android.telephony.Rlog; import java.io.ByteArrayOutputStream; import java.time.DateTimeException; import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneId; Loading Loading @@ -315,10 +316,16 @@ public final class BearerData { } public long toMillis() { try { LocalDateTime localDateTime = LocalDateTime.of(year, monthOrdinal, monthDay, hour, minute, second); Instant instant = localDateTime.toInstant(mZoneId.getRules().getOffset(localDateTime)); Instant instant = localDateTime.toInstant(mZoneId.getRules().getOffset(localDateTime)); return instant.toEpochMilli(); } catch (DateTimeException ex) { Rlog.e(LOG_TAG, "Invalid timestamp", ex); } return 0; } Loading telephony/java/com/android/internal/telephony/gsm/SmsMessage.java +21 −13 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import com.android.telephony.Rlog; import java.io.ByteArrayOutputStream; import java.io.UnsupportedEncodingException; import java.text.ParseException; import java.time.DateTimeException; import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneId; Loading Loading @@ -856,10 +857,9 @@ public class SmsMessage extends SmsMessageBase { } /** * Parses an SC timestamp and returns a currentTimeMillis()-style * timestamp * Parses an SC timestamp and returns a currentTimeMillis()-style timestamp, or 0 if * invalid. */ long getSCTimestampMillis() { // TP-Service-Centre-Time-Stamp int year = IccUtils.gsmBcdByteToInt(mPdu[mCur++]); Loading @@ -885,6 +885,7 @@ public class SmsMessage extends SmsMessageBase { // It's 2006. Should I really support years < 2000? int fullYear = year >= 90 ? year + 1900 : year + 2000; try { LocalDateTime localDateTime = LocalDateTime.of( fullYear, month /* 1-12 */, Loading @@ -892,9 +893,14 @@ public class SmsMessage extends SmsMessageBase { hour, minute, second); long epochSeconds = localDateTime.toEpochSecond(ZoneOffset.UTC) - timeZoneOffsetSeconds; long epochSeconds = localDateTime.toEpochSecond(ZoneOffset.UTC) - timeZoneOffsetSeconds; // Convert to milliseconds. return epochSeconds * 1000; } catch (DateTimeException ex) { Rlog.e(LOG_TAG, "Invalid timestamp", ex); } return 0; } /** Loading Loading @@ -1245,6 +1251,7 @@ public class SmsMessage extends SmsMessageBase { mRecipientAddress = p.getAddress(); // TP-Service-Centre-Time-Stamp mScTimeMillis = p.getSCTimestampMillis(); // TP-Discharge-Time p.getSCTimestampMillis(); // TP-Status mStatus = p.getByte(); Loading Loading @@ -1303,6 +1310,7 @@ public class SmsMessage extends SmsMessageBase { + " data coding scheme: " + mDataCodingScheme); } // TP-Service-Centre-Time-Stamp mScTimeMillis = p.getSCTimestampMillis(); if (VDBG) Rlog.d(LOG_TAG, "SMS SC timestamp: " + mScTimeMillis); Loading Loading
telephony/java/android/telephony/SmsCbEtwsInfo.java +19 −13 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import com.android.internal.telephony.uicc.IccUtils; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.time.DateTimeException; import java.time.LocalDateTime; import java.time.ZoneOffset; import java.util.Arrays; Loading Loading @@ -173,7 +174,7 @@ public final class SmsCbEtwsInfo implements Parcelable { /** * Returns the Warning-Security-Information timestamp (GSM primary notifications only). * As of Release 10, 3GPP TS 23.041 states that the UE shall ignore this value if received. * @return a UTC timestamp in System.currentTimeMillis() format, or 0 if not present * @return a UTC timestamp in System.currentTimeMillis() format, or 0 if not present or invalid. */ public long getPrimaryNotificationTimestamp() { if (mWarningSecurityInformation == null || mWarningSecurityInformation.length < 7) { Loading Loading @@ -201,6 +202,7 @@ public final class SmsCbEtwsInfo implements Parcelable { // timezoneOffset is in quarter hours. int timeZoneOffsetSeconds = timezoneOffset * 15 * 60; try { LocalDateTime localDateTime = LocalDateTime.of( // We only need to support years above 2000. year + 2000, Loading @@ -213,6 +215,10 @@ public final class SmsCbEtwsInfo implements Parcelable { long epochSeconds = localDateTime.toEpochSecond(ZoneOffset.UTC) - timeZoneOffsetSeconds; // Convert to milliseconds, ignore overflow. return epochSeconds * 1000; } catch (DateTimeException ex) { // No-op } return 0; } /** Loading
telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java +11 −4 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import com.android.internal.util.BitwiseOutputStream; import com.android.telephony.Rlog; import java.io.ByteArrayOutputStream; import java.time.DateTimeException; import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneId; Loading Loading @@ -315,10 +316,16 @@ public final class BearerData { } public long toMillis() { try { LocalDateTime localDateTime = LocalDateTime.of(year, monthOrdinal, monthDay, hour, minute, second); Instant instant = localDateTime.toInstant(mZoneId.getRules().getOffset(localDateTime)); Instant instant = localDateTime.toInstant(mZoneId.getRules().getOffset(localDateTime)); return instant.toEpochMilli(); } catch (DateTimeException ex) { Rlog.e(LOG_TAG, "Invalid timestamp", ex); } return 0; } Loading
telephony/java/com/android/internal/telephony/gsm/SmsMessage.java +21 −13 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import com.android.telephony.Rlog; import java.io.ByteArrayOutputStream; import java.io.UnsupportedEncodingException; import java.text.ParseException; import java.time.DateTimeException; import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneId; Loading Loading @@ -856,10 +857,9 @@ public class SmsMessage extends SmsMessageBase { } /** * Parses an SC timestamp and returns a currentTimeMillis()-style * timestamp * Parses an SC timestamp and returns a currentTimeMillis()-style timestamp, or 0 if * invalid. */ long getSCTimestampMillis() { // TP-Service-Centre-Time-Stamp int year = IccUtils.gsmBcdByteToInt(mPdu[mCur++]); Loading @@ -885,6 +885,7 @@ public class SmsMessage extends SmsMessageBase { // It's 2006. Should I really support years < 2000? int fullYear = year >= 90 ? year + 1900 : year + 2000; try { LocalDateTime localDateTime = LocalDateTime.of( fullYear, month /* 1-12 */, Loading @@ -892,9 +893,14 @@ public class SmsMessage extends SmsMessageBase { hour, minute, second); long epochSeconds = localDateTime.toEpochSecond(ZoneOffset.UTC) - timeZoneOffsetSeconds; long epochSeconds = localDateTime.toEpochSecond(ZoneOffset.UTC) - timeZoneOffsetSeconds; // Convert to milliseconds. return epochSeconds * 1000; } catch (DateTimeException ex) { Rlog.e(LOG_TAG, "Invalid timestamp", ex); } return 0; } /** Loading Loading @@ -1245,6 +1251,7 @@ public class SmsMessage extends SmsMessageBase { mRecipientAddress = p.getAddress(); // TP-Service-Centre-Time-Stamp mScTimeMillis = p.getSCTimestampMillis(); // TP-Discharge-Time p.getSCTimestampMillis(); // TP-Status mStatus = p.getByte(); Loading Loading @@ -1303,6 +1310,7 @@ public class SmsMessage extends SmsMessageBase { + " data coding scheme: " + mDataCodingScheme); } // TP-Service-Centre-Time-Stamp mScTimeMillis = p.getSCTimestampMillis(); if (VDBG) Rlog.d(LOG_TAG, "SMS SC timestamp: " + mScTimeMillis); Loading