Loading core/java/android/util/LocalLog.java +22 −1 Original line number Diff line number Diff line Loading @@ -17,9 +17,11 @@ package android.util; import android.annotation.UnsupportedAppUsage; import android.os.SystemClock; import java.io.FileDescriptor; import java.io.PrintWriter; import java.time.Instant; import java.time.LocalDateTime; import java.util.ArrayDeque; import java.util.Deque; Loading @@ -33,10 +35,22 @@ public final class LocalLog { private final Deque<String> mLog; private final int mMaxLines; /** * {@code true} to use log timestamps expressed in local date/time, {@code false} to use log * timestamped expressed with the elapsed realtime clock and UTC system clock. {@code false} is * useful when logging behavior that modifies device time zone or system clock. */ private final boolean mUseLocalTimestamps; @UnsupportedAppUsage public LocalLog(int maxLines) { this(maxLines, true /* useLocalTimestamps */); } public LocalLog(int maxLines, boolean useLocalTimestamps) { mMaxLines = Math.max(0, maxLines); mLog = new ArrayDeque<>(mMaxLines); mUseLocalTimestamps = useLocalTimestamps; } @UnsupportedAppUsage Loading @@ -44,7 +58,14 @@ public final class LocalLog { if (mMaxLines <= 0) { return; } append(String.format("%s - %s", LocalDateTime.now(), msg)); final String logLine; if (mUseLocalTimestamps) { logLine = String.format("%s - %s", LocalDateTime.now(), msg); } else { logLine = String.format( "%s / %s - %s", SystemClock.elapsedRealtime(), Instant.now(), msg); } append(logLine); } private synchronized void append(String logLine) { Loading core/tests/coretests/src/android/util/LocalLogTest.java +15 −5 Original line number Diff line number Diff line Loading @@ -29,14 +29,24 @@ import java.util.List; @LargeTest public class LocalLogTest extends TestCase { public void testA() { public void testA_localTimestamps() { boolean localTimestamps = true; doTestA(localTimestamps); } public void testA_nonLocalTimestamps() { boolean localTimestamps = false; doTestA(localTimestamps); } private void doTestA(boolean localTimestamps) { String[] lines = { "foo", "bar", "baz" }; String[] want = lines; testcase(new LocalLog(10), lines, want); testcase(new LocalLog(10, localTimestamps), lines, want); } public void testB() { Loading services/core/java/com/android/server/timedetector/SimpleTimeDetectorStrategy.java +2 −1 Original line number Diff line number Diff line Loading @@ -66,7 +66,8 @@ public final class SimpleTimeDetectorStrategy implements TimeDetectorStrategy { private static final long SYSTEM_CLOCK_PARANOIA_THRESHOLD_MILLIS = 2 * 1000; // A log for changes made to the system clock and why. @NonNull private final LocalLog mTimeChangesLog = new LocalLog(30); @NonNull private final LocalLog mTimeChangesLog = new LocalLog(30, false /* useLocalTimestamps */); // @NonNull after initialize() private Callback mCallback; Loading services/core/java/com/android/server/timezonedetector/TimeZoneDetectorStrategy.java +1 −1 Original line number Diff line number Diff line Loading @@ -172,7 +172,7 @@ public class TimeZoneDetectorStrategy { * (for use during debugging). */ @NonNull private final LocalLog mTimeZoneChangesLog = new LocalLog(30); private final LocalLog mTimeZoneChangesLog = new LocalLog(30, false /* useLocalTimestamps */); /** * A mapping from phoneId to a linked list of phone time zone suggestions (the head being the Loading Loading
core/java/android/util/LocalLog.java +22 −1 Original line number Diff line number Diff line Loading @@ -17,9 +17,11 @@ package android.util; import android.annotation.UnsupportedAppUsage; import android.os.SystemClock; import java.io.FileDescriptor; import java.io.PrintWriter; import java.time.Instant; import java.time.LocalDateTime; import java.util.ArrayDeque; import java.util.Deque; Loading @@ -33,10 +35,22 @@ public final class LocalLog { private final Deque<String> mLog; private final int mMaxLines; /** * {@code true} to use log timestamps expressed in local date/time, {@code false} to use log * timestamped expressed with the elapsed realtime clock and UTC system clock. {@code false} is * useful when logging behavior that modifies device time zone or system clock. */ private final boolean mUseLocalTimestamps; @UnsupportedAppUsage public LocalLog(int maxLines) { this(maxLines, true /* useLocalTimestamps */); } public LocalLog(int maxLines, boolean useLocalTimestamps) { mMaxLines = Math.max(0, maxLines); mLog = new ArrayDeque<>(mMaxLines); mUseLocalTimestamps = useLocalTimestamps; } @UnsupportedAppUsage Loading @@ -44,7 +58,14 @@ public final class LocalLog { if (mMaxLines <= 0) { return; } append(String.format("%s - %s", LocalDateTime.now(), msg)); final String logLine; if (mUseLocalTimestamps) { logLine = String.format("%s - %s", LocalDateTime.now(), msg); } else { logLine = String.format( "%s / %s - %s", SystemClock.elapsedRealtime(), Instant.now(), msg); } append(logLine); } private synchronized void append(String logLine) { Loading
core/tests/coretests/src/android/util/LocalLogTest.java +15 −5 Original line number Diff line number Diff line Loading @@ -29,14 +29,24 @@ import java.util.List; @LargeTest public class LocalLogTest extends TestCase { public void testA() { public void testA_localTimestamps() { boolean localTimestamps = true; doTestA(localTimestamps); } public void testA_nonLocalTimestamps() { boolean localTimestamps = false; doTestA(localTimestamps); } private void doTestA(boolean localTimestamps) { String[] lines = { "foo", "bar", "baz" }; String[] want = lines; testcase(new LocalLog(10), lines, want); testcase(new LocalLog(10, localTimestamps), lines, want); } public void testB() { Loading
services/core/java/com/android/server/timedetector/SimpleTimeDetectorStrategy.java +2 −1 Original line number Diff line number Diff line Loading @@ -66,7 +66,8 @@ public final class SimpleTimeDetectorStrategy implements TimeDetectorStrategy { private static final long SYSTEM_CLOCK_PARANOIA_THRESHOLD_MILLIS = 2 * 1000; // A log for changes made to the system clock and why. @NonNull private final LocalLog mTimeChangesLog = new LocalLog(30); @NonNull private final LocalLog mTimeChangesLog = new LocalLog(30, false /* useLocalTimestamps */); // @NonNull after initialize() private Callback mCallback; Loading
services/core/java/com/android/server/timezonedetector/TimeZoneDetectorStrategy.java +1 −1 Original line number Diff line number Diff line Loading @@ -172,7 +172,7 @@ public class TimeZoneDetectorStrategy { * (for use during debugging). */ @NonNull private final LocalLog mTimeZoneChangesLog = new LocalLog(30); private final LocalLog mTimeZoneChangesLog = new LocalLog(30, false /* useLocalTimestamps */); /** * A mapping from phoneId to a linked list of phone time zone suggestions (the head being the Loading