Merge "Fix missing IpConnectivity metrics" into nyc-mr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
66e7752ad1
@ -46,11 +46,12 @@ public class ConnectivityMetricsLogger {
|
|||||||
|
|
||||||
public static final String DATA_KEY_EVENTS_COUNT = "count";
|
public static final String DATA_KEY_EVENTS_COUNT = "count";
|
||||||
|
|
||||||
/** {@hide} */ protected final IConnectivityMetricsLogger mService;
|
/** {@hide} */ protected IConnectivityMetricsLogger mService;
|
||||||
/** {@hide} */ protected volatile long mServiceUnblockedTimestampMillis;
|
/** {@hide} */ protected volatile long mServiceUnblockedTimestampMillis;
|
||||||
private int mNumSkippedEvents;
|
private int mNumSkippedEvents;
|
||||||
|
|
||||||
public ConnectivityMetricsLogger() {
|
public ConnectivityMetricsLogger() {
|
||||||
|
// TODO: consider not initializing mService in constructor
|
||||||
this(IConnectivityMetricsLogger.Stub.asInterface(
|
this(IConnectivityMetricsLogger.Stub.asInterface(
|
||||||
ServiceManager.getService(CONNECTIVITY_METRICS_LOGGER_SERVICE)));
|
ServiceManager.getService(CONNECTIVITY_METRICS_LOGGER_SERVICE)));
|
||||||
}
|
}
|
||||||
@ -61,6 +62,18 @@ public class ConnectivityMetricsLogger {
|
|||||||
mService = service;
|
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.
|
* Log a ConnectivityMetricsEvent.
|
||||||
*
|
*
|
||||||
|
@ -31,7 +31,7 @@ import com.android.internal.annotations.VisibleForTesting;
|
|||||||
*/
|
*/
|
||||||
public class IpConnectivityLog extends ConnectivityMetricsLogger {
|
public class IpConnectivityLog extends ConnectivityMetricsLogger {
|
||||||
private static String TAG = "IpConnectivityMetricsLogger";
|
private static String TAG = "IpConnectivityMetricsLogger";
|
||||||
private static final boolean DBG = false;
|
private static final boolean DBG = true;
|
||||||
|
|
||||||
public IpConnectivityLog() {
|
public IpConnectivityLog() {
|
||||||
// mService initialized in super constructor.
|
// mService initialized in super constructor.
|
||||||
@ -52,9 +52,9 @@ public class IpConnectivityLog extends ConnectivityMetricsLogger {
|
|||||||
* @return true if the event was successfully logged.
|
* @return true if the event was successfully logged.
|
||||||
*/
|
*/
|
||||||
public boolean log(long timestamp, Parcelable data) {
|
public boolean log(long timestamp, Parcelable data) {
|
||||||
if (mService == null) {
|
if (!checkLoggerService()) {
|
||||||
if (DBG) {
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user