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";
|
||||
|
||||
/** {@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.
|
||||
*
|
||||
|
@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user