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

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

Merge "port notificaiton logs to Tron v2"

parents 9a79692e 9eb5e102
Loading
Loading
Loading
Loading
+0 −54
Original line number Diff line number Diff line
/*
 * Copyright (C) 2017 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.internal.logging.legacy;

import android.util.Log;

/**
 * Parse the Android counter event logs.
 * @hide
 */
public class CounterParser extends TagParser {
    private static final String TAG = "CounterParser";
    private static final int EVENTLOG_TAG = 524290;

    @Override
    public int getTag() {
        return EVENTLOG_TAG;
    }

    @Override
    public void parseEvent(TronLogger logger, long eventTimeMs, Object[] operands) {
        final boolean debug = Util.debug();
        if (operands.length >= 2) {
            try {
                String name = ((String) operands[0]);
                int value = (Integer) operands[1];
                logCount(logger, name, value);
            } catch (ClassCastException e) {
                if (debug) {
                    Log.d(TAG, "unexpected operand type", e);
                }
            }
        } else if (debug) {
            Log.d(TAG, "wrong number of operands: " + operands.length);
        }
    }

    protected void logCount(TronLogger logger, String name, int value) {
        logger.incrementBy(TronCounters.TRON_AOSP_PREFIX + name, value);
    }
}
+0 −13
Original line number Diff line number Diff line
@@ -45,19 +45,6 @@ public class EventLogCollector {

    private EventLogCollector() {
        mTagParsers = new ArrayMap<>();
        addParser(new SysuiViewVisibilityParser());
        addParser(new SysuiActionParser());
        addParser(new SysuiQueryParser());
        addParser(new NotificationPanelRevealedParser());
        addParser(new NotificationPanelHiddenParser());
        addParser(new NotificationClickedParser());
        addParser(new NotificationActionClickedParser());
        addParser(new NotificationCanceledParser());
        addParser(new NotificationVisibilityParser());
        addParser(new NotificationAlertParser());
        addParser(new NotificationExpansionParser());
        addParser(new CounterParser());
        addParser(new HistogramParser());
        addParser(new LockscreenGestureParser());
        addParser(new StatusBarStateParser());
        addParser(new PowerScreenStateParser());
+0 −35
Original line number Diff line number Diff line
/*
 * Copyright (C) 2017 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.internal.logging.legacy;

/**
 * Parse the Android histogram event logs.
 * @hide
 */
public class HistogramParser extends CounterParser {
    private static final String TAG = "HistogramParser";
    private static final int EVENTLOG_TAG = 524291;

    @Override
    public int getTag() {
        return EVENTLOG_TAG;
    }

    @Override
    protected void logCount(TronLogger logger, String name, int value) {
        logger.incrementIntHistogram("tron_varz_" + name, value);
    }
}
+0 −72
Original line number Diff line number Diff line
/*
 * Copyright (C) 2017 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.internal.logging.legacy;

import android.util.Log;

import android.metrics.LogMaker;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;

/**
 * Parse the Android notification action button interaction event logs.
 * @hide
 */
public class NotificationActionClickedParser extends TagParser {
    private static final String TAG = "NotificationAction";
    private static final int EVENTLOG_TAG = 27521;

    private final NotificationKey mKey;

    public NotificationActionClickedParser() {
        mKey = new NotificationKey();
    }

    @Override
    public int getTag() {
        return EVENTLOG_TAG;
    }

    @Override
    public void parseEvent(TronLogger logger, long eventTimeMs, Object[] operands) {
        final boolean debug = Util.debug();
        if (operands.length > 1) {
            try {
                if (mKey.parse((String) operands[0])) {
                    int index = (Integer) operands[1];
                    parseTimes(operands, 2);
                    LogMaker proto = logger.obtain();
                    proto.setCategory(MetricsEvent.NOTIFICATION_ITEM_ACTION);
                    proto.setType(MetricsEvent.TYPE_ACTION);
                    proto.setSubtype(index);
                    proto.setTimestamp(eventTimeMs);
                    proto.setPackageName(mKey.mPackageName);
                    proto.addTaggedData(MetricsEvent.NOTIFICATION_ID, mKey.mId);
                    proto.addTaggedData(MetricsEvent.NOTIFICATION_TAG, mKey.mTag);
                    filltimes(proto);
                    logger.addEvent(proto);
                } else if (debug) {
                    Log.e(TAG, "unable to parse key.");
                }
            } catch (ClassCastException e) {
                if (debug) {
                    Log.e(TAG, "unexpected operand type: ", e);
                }
            }
        } else if (debug) {
            Log.w(TAG, "wrong number of operands: " + operands.length);
        }
    }
}
+0 −86
Original line number Diff line number Diff line
/*
 * Copyright (C) 2017 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.internal.logging.legacy;

import android.util.Log;

import android.metrics.LogMaker;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;

/**
 * Parse the new Android notification alert event logs.
 * @hide
 */
public class NotificationAlertParser extends TagParser {
    private static final String TAG = "NotificationAlertParser";
    private static final int EVENTLOG_TAG = 27532;

    @VisibleForTesting
    static final int BUZZ = 0x00000001;
    @VisibleForTesting
    static final int BEEP = 0x00000002;
    @VisibleForTesting
    static final int BLINK = 0x00000004;

    private final NotificationKey mKey;

    public NotificationAlertParser() {
        mKey = new NotificationKey();
    }

    @Override
    public int getTag() {
        return EVENTLOG_TAG;
    }

    @Override
    public void parseEvent(TronLogger logger, long eventTimeMs, Object[] operands) {
        final boolean debug = Util.debug();
        if (operands.length > 3) {
            try {
                final String keyString = (String) operands[0];
                final boolean buzz = ((Integer) operands[1]) == 1;
                final boolean beep = ((Integer) operands[2]) == 1;
                final boolean blink = ((Integer) operands[3]) == 1;

                if (mKey.parse(keyString)) {
                    LogMaker proto = logger.obtain();
                    proto.setCategory(MetricsEvent.NOTIFICATION_ALERT);
                    proto.setType(MetricsEvent.TYPE_OPEN);
                    proto.setSubtype((buzz ? BUZZ : 0) | (beep ? BEEP : 0) | (blink ? BLINK : 0));
                    proto.setTimestamp(eventTimeMs);
                    proto.setPackageName(mKey.mPackageName);
                    proto.addTaggedData(MetricsEvent.NOTIFICATION_ID, mKey.mId);
                    proto.addTaggedData(MetricsEvent.NOTIFICATION_TAG, mKey.mTag);
                    filltimes(proto);
                    logger.addEvent(proto);
                } else {
                    if (debug) {
                        Log.e(TAG, "unable to parse key: " + keyString);
                    }
                }
            } catch (ClassCastException e) {
                if (debug) {
                    Log.e(TAG, "unexpected operand type: ", e);
                }
                return;
            }
        } else if (debug) {
            Log.w(TAG, "wrong number of operands: " + operands.length);
        }
    }
}
Loading