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

Commit 90c35412 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add logging when "Advanced" button is clicked"

parents d72b6cc1 fe9f0fda
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -17,8 +17,10 @@
package com.android.settings.core.instrumentation;

import android.content.Context;
import android.metrics.LogMaker;

import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto;

/**
 * {@link LogWriter} that writes data to eventlog.
@@ -37,6 +39,15 @@ public class EventLogWriter implements LogWriter {
        MetricsLogger.action(context, category, "");
    }

    public void actionWithSource(Context context, int source, int category) {
        final LogMaker logMaker = new LogMaker(category)
                .setType(MetricsProto.MetricsEvent.TYPE_ACTION);
        if (source != MetricsProto.MetricsEvent.VIEW_UNKNOWN) {
            logMaker.addTaggedData(MetricsProto.MetricsEvent.FIELD_CONTEXT, source);
        }
        MetricsLogger.action(logMaker);
    }

    public void action(Context context, int category, int value) {
        MetricsLogger.action(context, category, Integer.toString(value));
    }
+5 −0
Original line number Diff line number Diff line
@@ -37,6 +37,11 @@ public interface LogWriter {
     */
    void action(Context context, int category);

    /**
     * Logs an user action.
     */
    void actionWithSource(Context context, int source, int category);

    /**
     * Logs an user action.
     */
+72 −1
Original line number Diff line number Diff line
@@ -15,8 +15,79 @@
 */
package com.android.settings.core.instrumentation;

import android.content.Context;
import android.metrics.LogMaker;

import java.util.ArrayList;
import java.util.List;

/**
 * FeatureProvider for metrics.
 */
public interface MetricsFeatureProvider extends LogWriter {
public class MetricsFeatureProvider {
    private List<LogWriter> mLoggerWriters;

    public MetricsFeatureProvider() {
        mLoggerWriters = new ArrayList<>();
        installLogWriters();
    }

    protected void installLogWriters() {
        mLoggerWriters.add(new EventLogWriter());
        mLoggerWriters.add(new SettingSuggestionsLogWriter());
    }

    public void visible(Context context, int category) {
        for (LogWriter writer : mLoggerWriters) {
            writer.visible(context, category);
        }
    }

    public void hidden(Context context, int category) {
        for (LogWriter writer : mLoggerWriters) {
            writer.hidden(context, category);
        }
    }

    public void actionWithSource(Context context, int source, int category) {
        for (LogWriter writer : mLoggerWriters) {
            writer.actionWithSource(context, source, category);
        }
    }

    public void action(Context context, int category) {
        for (LogWriter writer : mLoggerWriters) {
            writer.action(context, category);
        }
    }

    public void action(Context context, int category, int value) {
        for (LogWriter writer : mLoggerWriters) {
            writer.action(context, category, value);
        }
    }

    public void action(Context context, int category, boolean value) {
        for (LogWriter writer : mLoggerWriters) {
            writer.action(context, category, value);
        }
    }

    public void action(Context context, int category, String pkg) {
        for (LogWriter writer : mLoggerWriters) {
            writer.action(context, category, pkg);
        }
    }

    public void count(Context context, String name, int value) {
        for (LogWriter writer : mLoggerWriters) {
            writer.count(context, name, value);
        }
    }

    public void histogram(Context context, String name, int bucket) {
        for (LogWriter writer : mLoggerWriters) {
            writer.histogram(context, name, bucket);
        }
    }
}
+0 −95
Original line number Diff line number Diff line
/*
 * Copyright (C) 2016 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.settings.core.instrumentation;

import android.content.Context;

import java.util.ArrayList;
import java.util.List;

/**
 * Implementation for {@link MetricsFeatureProvider}
 */
public class MetricsFeatureProviderImpl implements MetricsFeatureProvider {

    private List<LogWriter> mLoggerWriters;

    public MetricsFeatureProviderImpl() {
        mLoggerWriters = new ArrayList<>();
        installLogWriters();
    }

    protected void installLogWriters() {
        mLoggerWriters.add(new EventLogWriter());
        mLoggerWriters.add(new SettingSuggestionsLogWriter());
    }

    @Override
    public void visible(Context context, int category) {
        for (LogWriter writer : mLoggerWriters) {
            writer.visible(context, category);
        }
    }

    @Override
    public void hidden(Context context, int category) {
        for (LogWriter writer : mLoggerWriters) {
            writer.hidden(context, category);
        }
    }

    @Override
    public void action(Context context, int category) {
        for (LogWriter writer : mLoggerWriters) {
            writer.action(context, category);
        }
    }

    @Override
    public void action(Context context, int category, int value) {
        for (LogWriter writer : mLoggerWriters) {
            writer.action(context, category, value);
        }
    }

    @Override
    public void action(Context context, int category, boolean value) {
        for (LogWriter writer : mLoggerWriters) {
            writer.action(context, category, value);
        }
    }

    @Override
    public void action(Context context, int category, String pkg) {
        for (LogWriter writer : mLoggerWriters) {
            writer.action(context, category, pkg);
        }
    }

    @Override
    public void count(Context context, String name, int value) {
        for (LogWriter writer : mLoggerWriters) {
            writer.count(context, name, value);
        }
    }

    @Override
    public void histogram(Context context, String name, int bucket) {
        for (LogWriter writer : mLoggerWriters) {
            writer.histogram(context, name, bucket);
        }
    }
}
+6 −0
Original line number Diff line number Diff line
@@ -17,6 +17,8 @@
package com.android.settings.core.instrumentation;

import android.content.Context;
import android.metrics.LogMaker;

import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.logging.MetricsLogger;
import com.android.settings.suggestions.EventStore;
@@ -40,6 +42,10 @@ public class SettingSuggestionsLogWriter implements LogWriter {
    public void action(Context context, int category) {
    }

    @Override
    public void actionWithSource(Context context, int source, int category) {
    }

    @Override
    public void action(Context context, int category, int value) {
    }
Loading