Merge "Fix missing IpConnectivity metrics" into nyc-mr1-dev

This commit is contained in:
TreeHugger Robot
2016-07-29 09:38:26 +00:00
committed by Android (Google) Code Review
2 changed files with 17 additions and 4 deletions

View File

@ -46,11 +46,12 @@ public class ConnectivityMetricsLogger {
public static final String DATA_KEY_EVENTS_COUNT = "count";
/** {@hide} */ protected final IConnectivityMetricsLogger mService;
/** {@hide} */ protected IConnectivityMetricsLogger mService;
/** {@hide} */ protected volatile long mServiceUnblockedTimestampMillis;
private int mNumSkippedEvents;
public ConnectivityMetricsLogger() {
// TODO: consider not initializing mService in constructor
this(IConnectivityMetricsLogger.Stub.asInterface(
ServiceManager.getService(CONNECTIVITY_METRICS_LOGGER_SERVICE)));
}
@ -61,6 +62,18 @@ public class ConnectivityMetricsLogger {
mService = service;
}
/** {@hide} */
protected boolean checkLoggerService() {
if (mService != null) {
return true;
}
// Two threads racing here will write the same pointer because getService
// is idempotent once MetricsLoggerService is initialized.
mService = IConnectivityMetricsLogger.Stub.asInterface(
ServiceManager.getService(CONNECTIVITY_METRICS_LOGGER_SERVICE));
return mService != null;
}
/**
* Log a ConnectivityMetricsEvent.
*

View File

@ -31,7 +31,7 @@ import com.android.internal.annotations.VisibleForTesting;
*/
public class IpConnectivityLog extends ConnectivityMetricsLogger {
private static String TAG = "IpConnectivityMetricsLogger";
private static final boolean DBG = false;
private static final boolean DBG = true;
public IpConnectivityLog() {
// mService initialized in super constructor.
@ -52,9 +52,9 @@ public class IpConnectivityLog extends ConnectivityMetricsLogger {
* @return true if the event was successfully logged.
*/
public boolean log(long timestamp, Parcelable data) {
if (mService == null) {
if (!checkLoggerService()) {
if (DBG) {
Log.d(TAG, CONNECTIVITY_METRICS_LOGGER_SERVICE + " service not ready");
Log.d(TAG, CONNECTIVITY_METRICS_LOGGER_SERVICE + " service was not ready");
}
return false;
}