From 708d5d444bd47db96a47cf5153bdfb8b0f3b975b Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Wed, 2 May 2012 11:50:31 -0700 Subject: [PATCH] On first boot and NTP lookup, set the time even if it's not off by 5+ secs. This enables SetupWizard to get an ACTION_TIME_CHANGED event. Bug: 6432127 Change-Id: I42b8d6672372dc1aa4aa43128b5d801875ccf057 --- .../com/android/server/NetworkTimeUpdateService.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/services/java/com/android/server/NetworkTimeUpdateService.java b/services/java/com/android/server/NetworkTimeUpdateService.java index 1ff914f2afd2e..76972bce8f84a 100644 --- a/services/java/com/android/server/NetworkTimeUpdateService.java +++ b/services/java/com/android/server/NetworkTimeUpdateService.java @@ -165,9 +165,15 @@ public class NetworkTimeUpdateService { if (mTime.getCacheAge() < POLLING_INTERVAL_MS) { final long ntp = mTime.currentTimeMillis(); mTryAgainCounter = 0; - mLastNtpFetchTime = SystemClock.elapsedRealtime(); - if (Math.abs(ntp - currentTime) > TIME_ERROR_THRESHOLD_MS) { + // If the clock is more than N seconds off or this is the first time it's been + // fetched since boot, set the current time. + if (Math.abs(ntp - currentTime) > TIME_ERROR_THRESHOLD_MS + || mLastNtpFetchTime == NOT_SET) { // Set the system time + if (DBG && mLastNtpFetchTime == NOT_SET + && Math.abs(ntp - currentTime) <= TIME_ERROR_THRESHOLD_MS) { + Log.d(TAG, "For initial setup, rtc = " + currentTime); + } if (DBG) Log.d(TAG, "Ntp time to be set = " + ntp); // Make sure we don't overflow, since it's going to be converted to an int if (ntp / 1000 < Integer.MAX_VALUE) { @@ -176,6 +182,7 @@ public class NetworkTimeUpdateService { } else { if (DBG) Log.d(TAG, "Ntp time is close enough = " + ntp); } + mLastNtpFetchTime = SystemClock.elapsedRealtime(); } else { // Try again shortly mTryAgainCounter++;