summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLorenzo Colitti <lorenzo@google.com>2015-01-26 22:24:23 +0000
committerandroid-build-merger <android-build-merger@google.com>2015-01-26 22:24:23 +0000
commitcd4c8525fa18b5c2e96de781edf113e9972e2ba2 (patch)
treeec9de81dc9c826d98248ca533338e73d1d4af891
parent3d62078498e8e9f7552d49f5f5e53ec339f4c2ce (diff)
parent583dec84d95b69216b4f91dd31397dc5f32f4e95 (diff)
downloadframeworks_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.java20
-rw-r--r--services/core/java/com/android/server/NetworkTimeUpdateService.java18
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;
}