From d273e98d9d114d3ad7b95c6d72aee575e6600ed0 Mon Sep 17 00:00:00 2001 From: Almaz Mingaleev Date: Tue, 26 Jul 2022 13:33:00 +0100 Subject: Remove Time use. Time is deprecated and should not be used. I couldn't find tests in packages/apps/Dialer, so build only. I've checked that ChronoUnit.DAYS.between(LocalDate, LocalDate) returns 1 when first argument is second before midnight and second is second after. Bug: 16550209 Test: m Change-Id: I7bdf6a91cdc9f1615b35f1707cbdaf46015b70bf --- java/com/android/contacts/common/util/DateUtils.java | 18 +++++++++--------- .../dialer/app/calllog/CallLogGroupBuilder.java | 7 ++++--- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/java/com/android/contacts/common/util/DateUtils.java b/java/com/android/contacts/common/util/DateUtils.java index 09d52bce8..d5147eb9b 100644 --- a/java/com/android/contacts/common/util/DateUtils.java +++ b/java/com/android/contacts/common/util/DateUtils.java @@ -16,7 +16,11 @@ package com.android.contacts.common.util; -import android.text.format.Time; +import java.time.Instant; +import java.time.LocalDate; +import java.time.ZoneId; +import java.time.temporal.ChronoUnit; + /** Utility methods for processing dates. */ public class DateUtils { @@ -30,13 +34,9 @@ public class DateUtils { * @param date2 Second date to check. * @return The absolute difference in days between the two dates. */ - public static int getDayDifference(Time time, long date1, long date2) { - time.set(date1); - int startDay = Time.getJulianDay(date1, time.gmtoff); - - time.set(date2); - int currentDay = Time.getJulianDay(date2, time.gmtoff); - - return Math.abs(currentDay - startDay); + public static int getDayDifference(ZoneId timeZone, long date1, long date2) { + LocalDate localDate1 = Instant.ofEpochMilli(date1).atZone(timeZone).toLocalDate(); + LocalDate localDate2 = Instant.ofEpochMilli(date2).atZone(timeZone).toLocalDate(); + return Math.abs((int) ChronoUnit.DAYS.between(localDate2, localDate1)); } } diff --git a/java/com/android/dialer/app/calllog/CallLogGroupBuilder.java b/java/com/android/dialer/app/calllog/CallLogGroupBuilder.java index e52591174..805ee64c5 100644 --- a/java/com/android/dialer/app/calllog/CallLogGroupBuilder.java +++ b/java/com/android/dialer/app/calllog/CallLogGroupBuilder.java @@ -23,7 +23,6 @@ import android.support.annotation.Nullable; import android.support.annotation.VisibleForTesting; import android.telephony.PhoneNumberUtils; import android.text.TextUtils; -import android.text.format.Time; import com.android.contacts.common.util.DateUtils; import com.android.dialer.calllogutils.CallbackActionHelper; import com.android.dialer.calllogutils.CallbackActionHelper.CallbackAction; @@ -31,6 +30,8 @@ import com.android.dialer.compat.telephony.TelephonyManagerCompat; import com.android.dialer.inject.ApplicationContext; import com.android.dialer.phonenumbercache.CallLogQuery; import com.android.dialer.phonenumberutil.PhoneNumberHelper; + +import java.time.ZoneId; import java.util.Objects; /** @@ -56,7 +57,7 @@ public class CallLogGroupBuilder { /** Day grouping for calls which occurred before last week. */ public static final int DAY_GROUP_OTHER = 2; /** Instance of the time object used for time calculations. */ - private static final Time TIME = new Time(); + private static final ZoneId TIME_ZONE = ZoneId.systemDefault(); private final Context appContext; /** The object on which the groups are created. */ @@ -255,7 +256,7 @@ public class CallLogGroupBuilder { * @return The date group the call belongs in. */ private int getDayGroup(long date, long now) { - int days = DateUtils.getDayDifference(TIME, date, now); + int days = DateUtils.getDayDifference(TIME_ZONE, date, now); if (days == 0) { return DAY_GROUP_TODAY; -- cgit v1.2.3