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

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

Merge "Add notification atoms for statsd."

parents 46721269 079fdaae
Loading
Loading
Loading
Loading
+124 −0
Original line number Diff line number Diff line
@@ -53,6 +53,7 @@ import "frameworks/base/core/proto/android/stats/mediametrics/mediametrics.proto
import "frameworks/base/core/proto/android/stats/mediaprovider/mediaprovider_enums.proto";
import "frameworks/base/core/proto/android/stats/storage/storage_enums.proto";
import "frameworks/base/core/proto/android/stats/style/style_enums.proto";
import "frameworks/base/core/proto/android/stats/sysui/notification_enums.proto";
import "frameworks/base/core/proto/android/telecomm/enums.proto";
import "frameworks/base/core/proto/android/telephony/enums.proto";
import "frameworks/base/core/proto/android/view/enums.proto";
@@ -337,6 +338,9 @@ message Atom {
        BootTimeEventUtcTime boot_time_event_utc_time_reported = 241;
        BootTimeEventErrorCode boot_time_event_error_code_reported = 242;
        UserspaceRebootReported userspace_reboot_reported = 243;
        NotificationReported notification_reported = 244;
        NotificationPanelReported notification_panel_reported = 245;
        NotificationChannelModified notification_panel_modified = 246;
    }

    // Pulled events will start at field 10000.
@@ -3287,6 +3291,10 @@ message GenericAtom {
 * this button" or "this dialog was displayed".
 * Keep the UI event stream clean: don't use for system or background events.
 * Log using the UiEventLogger wrapper - don't write with the StatsLog API directly.
 *
 * Logged from:
 *   frameworks/base/services/core/java/com/android/server/
 *   frameworks/base/packages/SystemUI/src/com/android/systemui/
 */
message UiEventReported {
    // The event_id.
@@ -3297,6 +3305,122 @@ message UiEventReported {
    optional string package_name = 3;
}

/**
 * Reports a notification was created or updated.
 *
 * Logged from:
 *   frameworks/base/services/core/java/com/android/server/notification/
 */
message NotificationReported {
    // The event_id (as for UiEventReported).
    optional int32 event_id = 1;
    // The notifying app's uid and package.
    optional int32 uid = 2 [(is_uid) = true];
    optional string package_name = 3;
    // A small system-assigned identifier for the notification.
    // Locally probably-unique, but expect collisions across users and/or days.
    optional int32 instance_id = 4;
    // The app-assigned notification ID and tag
    optional int32 notification_id = 5;
    optional string notification_tag = 6;
    optional string channel_id = 7;  // App-assigned channel ID

    // Grouping information
    optional string group_id = 8;  // Group the notification currently belongs to
    optional int32 group_instance_id = 9;  // Instance_id of the group-summary notification
    optional bool is_group_summary = 10;  // Tags the group-summary notification

    // Attributes
    optional string category = 11;   // App-assigned notification category (API-defined strings)
    optional int32 style = 12;       // App-assigned notification style
    optional int32 num_people = 13;  // Number of Person records attached to the notification

    // Ordering, importance and interruptiveness

    optional int32 position = 14;    // Position in NotificationManager's list

    optional android.stats.sysui.NotificationImportance importance = 15;
    optional int32 alerting = 16;    // Bitfield, 1=buzz 2=beep 4=blink

    enum NotificationImportanceExplanation {
        IMPORTANCE_EXPLANATION_UNKNOWN = 0;
        IMPORTANCE_EXPLANATION_APP = 1;     // App-specified channel importance.
        IMPORTANCE_EXPLANATION_USER = 2;    // User-specified channel importance.
        IMPORTANCE_EXPLANATION_ASST = 3;    // Notification Assistant override.
        IMPORTANCE_EXPLANATION_SYSTEM = 4;  // System override.
        // Like _APP, but based on pre-channels priority signal.
        IMPORTANCE_EXPLANATION_APP_PRE_CHANNELS = 5;
    }

    optional NotificationImportanceExplanation importance_source = 17;
    optional android.stats.sysui.NotificationImportance importance_initial = 18;
    optional NotificationImportanceExplanation importance_initial_source = 19;
    optional android.stats.sysui.NotificationImportance importance_asst = 20;
    optional int32 assistant_hash = 21;
    optional float assistant_ranking_score = 22;
}

message Notification {
    // The notifying app's uid and package.
    optional int32 uid = 1 [(is_uid) = true];
    optional string package_name = 2;
    // A small system-assigned identifier for the notification.
    optional int32 instance_id = 3;

    // Grouping information.
    optional int32 group_instance_id = 4;
    optional bool is_group_summary = 5;

    // The section of the shade that the notification is in.
    // See NotificationSectionsManager.PriorityBucket.
    enum NotificationSection {
        SECTION_UNKNOWN = 0;
        SECTION_PEOPLE = 1;
        SECTION_ALERTING = 2;
        SECTION_SILENT = 3;
    }
    optional NotificationSection section = 6;
}

message NotificationList {
    repeated Notification notifications = 1;  // An ordered sequence of notifications.
}

/**
 * Reports a notification panel was displayed, e.g. from the lockscreen or status bar.
 *
 * Logged from:
 *   frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/notification/
 */
message NotificationPanelReported {
    // The event_id (as for UiEventReported).
    optional int32 event_id = 1;
    optional int32 num_notifications = 2;
    // The notifications in the panel, in the order that they appear there.
    optional NotificationList notifications = 3 [(log_mode) = MODE_BYTES];
}

/**
 * Reports a notification channel, or channel group, was created, updated, or deleted.
 *
 * Logged from:
 *   frameworks/base/services/core/java/com/android/server/notification/
 */
message NotificationChannelModified {
    // The event_id (as for UiEventReported).
    optional int32 event_id = 1;
    // The notifying app's uid and package.
    optional int32 uid = 2 [(is_uid) = true];
    optional string package_name = 3;
    // App-assigned notification channel ID or channel-group ID
    optional string channel_id = 4;
    // Previous importance setting, if applicable
    optional android.stats.sysui.NotificationImportance old_importance = 5;
    // New importance setting
    optional android.stats.sysui.NotificationImportance importance = 6;
}


/**
 * Logs when a biometric acquire event occurs.
 *
+29 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2020 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.
 */

syntax = "proto2";

package android.stats.sysui;

// Enum used in NotificationReported and NotificationChannelModified atoms
enum NotificationImportance {  // Constants from NotificationManager.java
  IMPORTANCE_UNSPECIFIED = -1000;  // Should not occur for real notifications.
  IMPORTANCE_NONE = 0;  // No importance: does not show in the shade.
  IMPORTANCE_MIN = 1;  // Minimum to show in the shade.
  IMPORTANCE_LOW = 2;  // Shows in shade, maybe status bar, no buzz/beep.
  IMPORTANCE_DEFAULT = 3;  // Shows everywhere, makes noise, no heads-up.
  IMPORTANCE_HIGH = 4;  // Shows everywhere, makes noise, heads-up, may full-screen.
}