Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8ec5822a authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Add additional logging around foreground/permitted" into sc-dev am:...

Merge "Add additional logging around foreground/permitted" into sc-dev am: 74d99a1b am: 0dff6028

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14453222

Change-Id: I181f7b0f2673c5d58568941482f556715f10f62c
parents 7c9cca50 0dff6028
Loading
Loading
Loading
Loading
+91 −17
Original line number Diff line number Diff line
@@ -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,11 +332,49 @@ 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");
        }
    }

+7 −0
Original line number Diff line number Diff line
@@ -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;
            }