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

Commit b5af72d9 authored by Neil Fuller's avatar Neil Fuller Committed by Android (Google) Code Review
Browse files

Merge "Add atom to record controller state changes"

parents bac5d5c6 f09c6b11
Loading
Loading
Loading
Loading
+1 −9
Original line number Diff line number Diff line
@@ -281,15 +281,7 @@ public class LocationTimeZoneManagerService extends Binder {
                LocationTimeZoneProvider primary = mPrimaryProviderConfig.createProvider();
                LocationTimeZoneProvider secondary = mSecondaryProviderConfig.createProvider();
                LocationTimeZoneProviderController.MetricsLogger metricsLogger =
                        new LocationTimeZoneProviderController.MetricsLogger() {
                            @Override
                            public void onStateChange(
                                    @LocationTimeZoneProviderController.State String state) {
                                // TODO b/200279201 - wire this up to metrics code
                                // No-op.
                            }
                        };

                        new RealControllerMetricsLogger();
                boolean recordStateChanges = mServiceConfigAccessor.getRecordStateChangesForTests();
                LocationTimeZoneProviderController controller =
                        new LocationTimeZoneProviderController(mThreadingDomain, metricsLogger,
+80 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2021 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.server.timezonedetector.location;

import static com.android.internal.util.FrameworkStatsLog.LOCATION_TIME_ZONE_PROVIDER_CONTROLLER_STATE_CHANGED__STATE__CERTAIN;
import static com.android.internal.util.FrameworkStatsLog.LOCATION_TIME_ZONE_PROVIDER_CONTROLLER_STATE_CHANGED__STATE__DESTROYED;
import static com.android.internal.util.FrameworkStatsLog.LOCATION_TIME_ZONE_PROVIDER_CONTROLLER_STATE_CHANGED__STATE__FAILED;
import static com.android.internal.util.FrameworkStatsLog.LOCATION_TIME_ZONE_PROVIDER_CONTROLLER_STATE_CHANGED__STATE__INITIALIZING;
import static com.android.internal.util.FrameworkStatsLog.LOCATION_TIME_ZONE_PROVIDER_CONTROLLER_STATE_CHANGED__STATE__PROVIDERS_INITIALIZING;
import static com.android.internal.util.FrameworkStatsLog.LOCATION_TIME_ZONE_PROVIDER_CONTROLLER_STATE_CHANGED__STATE__STOPPED;
import static com.android.internal.util.FrameworkStatsLog.LOCATION_TIME_ZONE_PROVIDER_CONTROLLER_STATE_CHANGED__STATE__UNCERTAIN;
import static com.android.internal.util.FrameworkStatsLog.LOCATION_TIME_ZONE_PROVIDER_CONTROLLER_STATE_CHANGED__STATE__UNKNOWN;
import static com.android.server.timezonedetector.location.LocationTimeZoneProviderController.STATE_CERTAIN;
import static com.android.server.timezonedetector.location.LocationTimeZoneProviderController.STATE_DESTROYED;
import static com.android.server.timezonedetector.location.LocationTimeZoneProviderController.STATE_FAILED;
import static com.android.server.timezonedetector.location.LocationTimeZoneProviderController.STATE_INITIALIZING;
import static com.android.server.timezonedetector.location.LocationTimeZoneProviderController.STATE_PROVIDERS_INITIALIZING;
import static com.android.server.timezonedetector.location.LocationTimeZoneProviderController.STATE_STOPPED;
import static com.android.server.timezonedetector.location.LocationTimeZoneProviderController.STATE_UNCERTAIN;
import static com.android.server.timezonedetector.location.LocationTimeZoneProviderController.STATE_UNKNOWN;

import com.android.internal.util.FrameworkStatsLog;
import com.android.server.timezonedetector.location.LocationTimeZoneProviderController.State;

/**
 * The real implementation of {@link LocationTimeZoneProviderController.MetricsLogger} which logs
 * using {@link FrameworkStatsLog}.
 */
final class RealControllerMetricsLogger
        implements LocationTimeZoneProviderController.MetricsLogger {

    RealControllerMetricsLogger() {
    }

    @Override
    public void onStateChange(@State String state) {
        FrameworkStatsLog.write(
                FrameworkStatsLog.LOCATION_TIME_ZONE_PROVIDER_CONTROLLER_STATE_CHANGED,
                metricsState(state));
    }

    private static int metricsState(@State String state) {
        switch (state) {
            case STATE_PROVIDERS_INITIALIZING:
                // Disable lint check (line length) for generated long constant name.
                // CHECKSTYLE:OFF Generated code
                return LOCATION_TIME_ZONE_PROVIDER_CONTROLLER_STATE_CHANGED__STATE__PROVIDERS_INITIALIZING;
                // CHECKSTYLE:ON Generated code
            case STATE_STOPPED:
                return LOCATION_TIME_ZONE_PROVIDER_CONTROLLER_STATE_CHANGED__STATE__STOPPED;
            case STATE_INITIALIZING:
                return LOCATION_TIME_ZONE_PROVIDER_CONTROLLER_STATE_CHANGED__STATE__INITIALIZING;
            case STATE_CERTAIN:
                return LOCATION_TIME_ZONE_PROVIDER_CONTROLLER_STATE_CHANGED__STATE__CERTAIN;
            case STATE_UNCERTAIN:
                return LOCATION_TIME_ZONE_PROVIDER_CONTROLLER_STATE_CHANGED__STATE__UNCERTAIN;
            case STATE_DESTROYED:
                return LOCATION_TIME_ZONE_PROVIDER_CONTROLLER_STATE_CHANGED__STATE__DESTROYED;
            case STATE_FAILED:
                return LOCATION_TIME_ZONE_PROVIDER_CONTROLLER_STATE_CHANGED__STATE__FAILED;
            case STATE_UNKNOWN:
            default:
                return LOCATION_TIME_ZONE_PROVIDER_CONTROLLER_STATE_CHANGED__STATE__UNKNOWN;
        }
    }
}
+2 −2
Original line number Diff line number Diff line
@@ -41,12 +41,12 @@ import com.android.server.timezonedetector.location.LocationTimeZoneProvider.Pro
 * The real implementation of {@link ProviderMetricsLogger} which logs using
 * {@link FrameworkStatsLog}.
 */
public class RealProviderMetricsLogger implements ProviderMetricsLogger {
final class RealProviderMetricsLogger implements ProviderMetricsLogger {

    @IntRange(from = 0, to = 1)
    private final int mProviderIndex;

    public RealProviderMetricsLogger(@IntRange(from = 0, to = 1) int providerIndex) {
    RealProviderMetricsLogger(@IntRange(from = 0, to = 1) int providerIndex) {
        mProviderIndex = providerIndex;
    }