diff options
author | Lorenzo Colitti <lorenzo@google.com> | 2015-01-26 22:24:23 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2015-01-26 22:24:23 +0000 |
commit | cd4c8525fa18b5c2e96de781edf113e9972e2ba2 (patch) | |
tree | ec9de81dc9c826d98248ca533338e73d1d4af891 | |
parent | 3d62078498e8e9f7552d49f5f5e53ec339f4c2ce (diff) | |
parent | 583dec84d95b69216b4f91dd31397dc5f32f4e95 (diff) | |
download | frameworks_base-cd4c8525fa18b5c2e96de781edf113e9972e2ba2.zip frameworks_base-cd4c8525fa18b5c2e96de781edf113e9972e2ba2.tar.gz frameworks_base-cd4c8525fa18b5c2e96de781edf113e9972e2ba2.tar.bz2 |
am 3d992507: am 09dff843: Merge "Only try to fetch time from NTP if there is a network connection." into lmp-mr1-dev
automerge: 583dec8
* commit '583dec84d95b69216b4f91dd31397dc5f32f4e95':
Only try to fetch time from NTP if there is a network connection.
-rw-r--r-- | core/java/android/util/NtpTrustedTime.java | 20 | ||||
-rw-r--r-- | services/core/java/com/android/server/NetworkTimeUpdateService.java | 18 |
2 files changed, 24 insertions, 14 deletions
diff --git a/core/java/android/util/NtpTrustedTime.java b/core/java/android/util/NtpTrustedTime.java index b18cc3b..ed2d3c6 100644 --- a/core/java/android/util/NtpTrustedTime.java +++ b/core/java/android/util/NtpTrustedTime.java @@ -19,6 +19,8 @@ package android.util; import android.content.ContentResolver; import android.content.Context; import android.content.res.Resources; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; import android.net.SntpClient; import android.os.SystemClock; import android.provider.Settings; @@ -35,10 +37,13 @@ public class NtpTrustedTime implements TrustedTime { private static final boolean LOGD = false; private static NtpTrustedTime sSingleton; + private static Context sContext; private final String mServer; private final long mTimeout; + private ConnectivityManager mCM; + private boolean mHasCache; private long mCachedNtpTime; private long mCachedNtpElapsedRealtime; @@ -67,6 +72,7 @@ public class NtpTrustedTime implements TrustedTime { final String server = secureServer != null ? secureServer : defaultServer; sSingleton = new NtpTrustedTime(server, timeout); + sContext = context; } return sSingleton; @@ -79,6 +85,20 @@ public class NtpTrustedTime implements TrustedTime { return false; } + // We can't do this at initialization time: ConnectivityService might not be running yet. + synchronized (this) { + if (mCM == null) { + mCM = (ConnectivityManager) sContext.getSystemService(Context.CONNECTIVITY_SERVICE); + } + } + + final NetworkInfo ni = mCM == null ? null : mCM.getActiveNetworkInfo(); + if (ni == null || !ni.isConnected()) { + if (LOGD) Log.d(TAG, "forceRefresh: no connectivity"); + return false; + } + + if (LOGD) Log.d(TAG, "forceRefresh() from cache miss"); final SntpClient client = new SntpClient(); if (client.requestTime(mServer, (int) mTimeout)) { diff --git a/services/core/java/com/android/server/NetworkTimeUpdateService.java b/services/core/java/com/android/server/NetworkTimeUpdateService.java index fddb54e..d6abce9 100644 --- a/services/core/java/com/android/server/NetworkTimeUpdateService.java +++ b/services/core/java/com/android/server/NetworkTimeUpdateService.java @@ -55,7 +55,7 @@ public class NetworkTimeUpdateService { private static final int EVENT_AUTO_TIME_CHANGED = 1; private static final int EVENT_POLL_NETWORK_TIME = 2; - private static final int EVENT_NETWORK_CONNECTED = 3; + private static final int EVENT_NETWORK_CHANGED = 3; private static final String ACTION_POLL = "com.android.server.NetworkTimeUpdateService.action.POLL"; @@ -248,18 +248,8 @@ public class NetworkTimeUpdateService { public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (ConnectivityManager.CONNECTIVITY_ACTION.equals(action)) { - // There is connectivity - final ConnectivityManager connManager = (ConnectivityManager) context - .getSystemService(Context.CONNECTIVITY_SERVICE); - final NetworkInfo netInfo = connManager.getActiveNetworkInfo(); - if (netInfo != null) { - // Verify that it's a WIFI connection - if (netInfo.getState() == NetworkInfo.State.CONNECTED && - (netInfo.getType() == ConnectivityManager.TYPE_WIFI || - netInfo.getType() == ConnectivityManager.TYPE_ETHERNET) ) { - mHandler.obtainMessage(EVENT_NETWORK_CONNECTED).sendToTarget(); - } - } + // Don't bother checking if we have connectivity, NtpTrustedTime does that for us. + mHandler.obtainMessage(EVENT_NETWORK_CHANGED).sendToTarget(); } } }; @@ -276,7 +266,7 @@ public class NetworkTimeUpdateService { switch (msg.what) { case EVENT_AUTO_TIME_CHANGED: case EVENT_POLL_NETWORK_TIME: - case EVENT_NETWORK_CONNECTED: + case EVENT_NETWORK_CHANGED: onPollNetworkTime(msg.what); break; } |