Add additional logging around foreground/permitted
Additional logging only applies to debug builds. Bug: 184924939 Test: manual Change-Id: If7f4e7703974191993cff57c4103c84a4bb98960
This commit is contained in:
@@ -58,13 +58,17 @@ public class LocationEventLog extends LocalEventLog {
|
||||
private static final int EVENT_LOCATION_ENABLED = 2;
|
||||
private static final int EVENT_PROVIDER_ENABLED = 3;
|
||||
private static final int EVENT_PROVIDER_MOCKED = 4;
|
||||
private static final int EVENT_PROVIDER_REGISTER_CLIENT = 5;
|
||||
private static final int EVENT_PROVIDER_UNREGISTER_CLIENT = 6;
|
||||
private static final int EVENT_PROVIDER_UPDATE_REQUEST = 7;
|
||||
private static final int EVENT_PROVIDER_RECEIVE_LOCATION = 8;
|
||||
private static final int EVENT_PROVIDER_DELIVER_LOCATION = 9;
|
||||
private static final int EVENT_PROVIDER_STATIONARY_THROTTLED = 10;
|
||||
private static final int EVENT_LOCATION_POWER_SAVE_MODE_CHANGE = 11;
|
||||
private static final int EVENT_PROVIDER_CLIENT_REGISTER = 5;
|
||||
private static final int EVENT_PROVIDER_CLIENT_UNREGISTER = 6;
|
||||
private static final int EVENT_PROVIDER_CLIENT_FOREGROUND = 7;
|
||||
private static final int EVENT_PROVIDER_CLIENT_BACKGROUND = 8;
|
||||
private static final int EVENT_PROVIDER_CLIENT_PERMITTED = 9;
|
||||
private static final int EVENT_PROVIDER_CLIENT_UNPERMITTED = 10;
|
||||
private static final int EVENT_PROVIDER_UPDATE_REQUEST = 11;
|
||||
private static final int EVENT_PROVIDER_RECEIVE_LOCATION = 12;
|
||||
private static final int EVENT_PROVIDER_DELIVER_LOCATION = 13;
|
||||
private static final int EVENT_PROVIDER_STATIONARY_THROTTLED = 14;
|
||||
private static final int EVENT_LOCATION_POWER_SAVE_MODE_CHANGE = 15;
|
||||
|
||||
@GuardedBy("mAggregateStats")
|
||||
private final ArrayMap<String, ArrayMap<CallerIdentity, AggregateStats>> mAggregateStats;
|
||||
@@ -126,13 +130,13 @@ public class LocationEventLog extends LocalEventLog {
|
||||
/** Logs a new client registration for a location provider. */
|
||||
public void logProviderClientRegistered(String provider, CallerIdentity identity,
|
||||
LocationRequest request) {
|
||||
addLogEvent(EVENT_PROVIDER_REGISTER_CLIENT, provider, identity, request);
|
||||
addLogEvent(EVENT_PROVIDER_CLIENT_REGISTER, provider, identity, request);
|
||||
getAggregateStats(provider, identity).markRequestAdded(request.getIntervalMillis());
|
||||
}
|
||||
|
||||
/** Logs a client unregistration for a location provider. */
|
||||
public void logProviderClientUnregistered(String provider, CallerIdentity identity) {
|
||||
addLogEvent(EVENT_PROVIDER_UNREGISTER_CLIENT, provider, identity);
|
||||
addLogEvent(EVENT_PROVIDER_CLIENT_UNREGISTER, provider, identity);
|
||||
getAggregateStats(provider, identity).markRequestRemoved();
|
||||
}
|
||||
|
||||
@@ -148,14 +152,34 @@ public class LocationEventLog extends LocalEventLog {
|
||||
|
||||
/** Logs a client for a location provider entering the foreground state. */
|
||||
public void logProviderClientForeground(String provider, CallerIdentity identity) {
|
||||
if (Build.IS_DEBUGGABLE || D) {
|
||||
addLogEvent(EVENT_PROVIDER_CLIENT_FOREGROUND, provider, identity);
|
||||
}
|
||||
getAggregateStats(provider, identity).markRequestForeground();
|
||||
}
|
||||
|
||||
/** Logs a client for a location provider leaving the foreground state. */
|
||||
public void logProviderClientBackground(String provider, CallerIdentity identity) {
|
||||
if (Build.IS_DEBUGGABLE || D) {
|
||||
addLogEvent(EVENT_PROVIDER_CLIENT_BACKGROUND, provider, identity);
|
||||
}
|
||||
getAggregateStats(provider, identity).markRequestBackground();
|
||||
}
|
||||
|
||||
/** Logs a client for a location provider entering the permitted state. */
|
||||
public void logProviderClientPermitted(String provider, CallerIdentity identity) {
|
||||
if (Build.IS_DEBUGGABLE || D) {
|
||||
addLogEvent(EVENT_PROVIDER_CLIENT_PERMITTED, provider, identity);
|
||||
}
|
||||
}
|
||||
|
||||
/** Logs a client for a location provider leaving the permitted state. */
|
||||
public void logProviderClientUnpermitted(String provider, CallerIdentity identity) {
|
||||
if (Build.IS_DEBUGGABLE || D) {
|
||||
addLogEvent(EVENT_PROVIDER_CLIENT_UNPERMITTED, provider, identity);
|
||||
}
|
||||
}
|
||||
|
||||
/** Logs a change to the provider request for a location provider. */
|
||||
public void logProviderUpdateRequest(String provider, ProviderRequest request) {
|
||||
addLogEvent(EVENT_PROVIDER_UPDATE_REQUEST, provider, request);
|
||||
@@ -201,12 +225,24 @@ public class LocationEventLog extends LocalEventLog {
|
||||
(Boolean) args[2]);
|
||||
case EVENT_PROVIDER_MOCKED:
|
||||
return new ProviderMockedEvent(timeDelta, (String) args[0], (Boolean) args[1]);
|
||||
case EVENT_PROVIDER_REGISTER_CLIENT:
|
||||
return new ProviderRegisterEvent(timeDelta, (String) args[0], true,
|
||||
case EVENT_PROVIDER_CLIENT_REGISTER:
|
||||
return new ProviderClientRegisterEvent(timeDelta, (String) args[0], true,
|
||||
(CallerIdentity) args[1], (LocationRequest) args[2]);
|
||||
case EVENT_PROVIDER_UNREGISTER_CLIENT:
|
||||
return new ProviderRegisterEvent(timeDelta, (String) args[0], false,
|
||||
case EVENT_PROVIDER_CLIENT_UNREGISTER:
|
||||
return new ProviderClientRegisterEvent(timeDelta, (String) args[0], false,
|
||||
(CallerIdentity) args[1], null);
|
||||
case EVENT_PROVIDER_CLIENT_FOREGROUND:
|
||||
return new ProviderClientForegroundEvent(timeDelta, (String) args[0], true,
|
||||
(CallerIdentity) args[1]);
|
||||
case EVENT_PROVIDER_CLIENT_BACKGROUND:
|
||||
return new ProviderClientForegroundEvent(timeDelta, (String) args[0], false,
|
||||
(CallerIdentity) args[1]);
|
||||
case EVENT_PROVIDER_CLIENT_PERMITTED:
|
||||
return new ProviderClientPermittedEvent(timeDelta, (String) args[0], true,
|
||||
(CallerIdentity) args[1]);
|
||||
case EVENT_PROVIDER_CLIENT_UNPERMITTED:
|
||||
return new ProviderClientPermittedEvent(timeDelta, (String) args[0], false,
|
||||
(CallerIdentity) args[1]);
|
||||
case EVENT_PROVIDER_UPDATE_REQUEST:
|
||||
return new ProviderUpdateEvent(timeDelta, (String) args[0],
|
||||
(ProviderRequest) args[1]);
|
||||
@@ -279,13 +315,13 @@ public class LocationEventLog extends LocalEventLog {
|
||||
}
|
||||
}
|
||||
|
||||
private static final class ProviderRegisterEvent extends ProviderEvent {
|
||||
private static final class ProviderClientRegisterEvent extends ProviderEvent {
|
||||
|
||||
private final boolean mRegistered;
|
||||
private final CallerIdentity mIdentity;
|
||||
@Nullable private final LocationRequest mLocationRequest;
|
||||
|
||||
ProviderRegisterEvent(long timeDelta, String provider, boolean registered,
|
||||
ProviderClientRegisterEvent(long timeDelta, String provider, boolean registered,
|
||||
CallerIdentity identity, @Nullable LocationRequest locationRequest) {
|
||||
super(timeDelta, provider);
|
||||
mRegistered = registered;
|
||||
@@ -296,14 +332,52 @@ public class LocationEventLog extends LocalEventLog {
|
||||
@Override
|
||||
public String getLogString() {
|
||||
if (mRegistered) {
|
||||
return mProvider + " provider " + "+registration " + mIdentity + " -> "
|
||||
return mProvider + " provider +registration " + mIdentity + " -> "
|
||||
+ mLocationRequest;
|
||||
} else {
|
||||
return mProvider + " provider " + "-registration " + mIdentity;
|
||||
return mProvider + " provider -registration " + mIdentity;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static final class ProviderClientForegroundEvent extends ProviderEvent {
|
||||
|
||||
private final boolean mForeground;
|
||||
private final CallerIdentity mIdentity;
|
||||
|
||||
ProviderClientForegroundEvent(long timeDelta, String provider, boolean foreground,
|
||||
CallerIdentity identity) {
|
||||
super(timeDelta, provider);
|
||||
mForeground = foreground;
|
||||
mIdentity = identity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLogString() {
|
||||
return mProvider + " provider client " + mIdentity + " -> "
|
||||
+ (mForeground ? "foreground" : "background");
|
||||
}
|
||||
}
|
||||
|
||||
private static final class ProviderClientPermittedEvent extends ProviderEvent {
|
||||
|
||||
private final boolean mPermitted;
|
||||
private final CallerIdentity mIdentity;
|
||||
|
||||
ProviderClientPermittedEvent(long timeDelta, String provider, boolean permitted,
|
||||
CallerIdentity identity) {
|
||||
super(timeDelta, provider);
|
||||
mPermitted = permitted;
|
||||
mIdentity = identity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLogString() {
|
||||
return mProvider + " provider client " + mIdentity + " -> "
|
||||
+ (mPermitted ? "permitted" : "unpermitted");
|
||||
}
|
||||
}
|
||||
|
||||
private static final class ProviderUpdateEvent extends ProviderEvent {
|
||||
|
||||
private final ProviderRequest mRequest;
|
||||
|
||||
@@ -523,6 +523,13 @@ public class LocationProviderManager extends
|
||||
}
|
||||
|
||||
mPermitted = permitted;
|
||||
|
||||
if (mForeground) {
|
||||
EVENT_LOG.logProviderClientPermitted(mName, getIdentity());
|
||||
} else {
|
||||
EVENT_LOG.logProviderClientUnpermitted(mName, getIdentity());
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user