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

Commit 54fe3537 authored by Neil Fuller's avatar Neil Fuller
Browse files

Switch code away from android.text.format.Time

android.text.format.Time is limited to 32-bit seconds from the
beginning of the Unix epoch and so classes that use it are limited
to 1901 - 2038. Switching to java.time avoids this issue.

Bug: 16550209
Test: build / boot / treehugger
Change-Id: Ibf56b32a78e8aad71fb1738ccd61b32a03fe0156
parent e618daed
Loading
Loading
Loading
Loading
+8 −7
Original line number Original line Diff line number Diff line
@@ -31,7 +31,6 @@ import android.provider.DocumentsContract;
import android.provider.Settings;
import android.provider.Settings;
import android.text.TextUtils;
import android.text.TextUtils;
import android.text.format.DateUtils;
import android.text.format.DateUtils;
import android.text.format.Time;
import android.util.Log;
import android.util.Log;
import android.view.View;
import android.view.View;
import android.view.WindowManager;
import android.view.WindowManager;
@@ -40,6 +39,9 @@ import com.android.documentsui.R;
import com.android.documentsui.ui.MessageBuilder;
import com.android.documentsui.ui.MessageBuilder;


import java.text.Collator;
import java.text.Collator;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.ArrayList;
import java.util.List;
import java.util.List;


@@ -149,17 +151,16 @@ public final class Shared {


    public static String formatTime(Context context, long when) {
    public static String formatTime(Context context, long when) {
        // TODO: DateUtils should make this easier
        // TODO: DateUtils should make this easier
        Time then = new Time();
        ZoneId zoneId = ZoneId.systemDefault();
        then.set(when);
        LocalDateTime then = LocalDateTime.ofInstant(Instant.ofEpochMilli(when), zoneId);
        Time now = new Time();
        LocalDateTime now = LocalDateTime.ofInstant(Instant.now(), zoneId);
        now.setToNow();


        int flags = DateUtils.FORMAT_NO_NOON | DateUtils.FORMAT_NO_MIDNIGHT
        int flags = DateUtils.FORMAT_NO_NOON | DateUtils.FORMAT_NO_MIDNIGHT
                | DateUtils.FORMAT_ABBREV_ALL;
                | DateUtils.FORMAT_ABBREV_ALL;


        if (then.year != now.year) {
        if (then.getYear() != now.getYear()) {
            flags |= DateUtils.FORMAT_SHOW_YEAR | DateUtils.FORMAT_SHOW_DATE;
            flags |= DateUtils.FORMAT_SHOW_YEAR | DateUtils.FORMAT_SHOW_DATE;
        } else if (then.yearDay != now.yearDay) {
        } else if (then.getDayOfYear() != now.getDayOfYear()) {
            flags |= DateUtils.FORMAT_SHOW_DATE;
            flags |= DateUtils.FORMAT_SHOW_DATE;
        } else {
        } else {
            flags |= DateUtils.FORMAT_SHOW_TIME;
            flags |= DateUtils.FORMAT_SHOW_TIME;