diff --git a/connections/c/BUILD b/connections/c/BUILD index 930b191c..c745e9c9 100644 --- a/connections/c/BUILD +++ b/connections/c/BUILD @@ -62,7 +62,7 @@ cc_library( "//internal/platform:types", "//location/nearby/analytics/cpp/logging:event_logger", "//location/nearby/analytics/cpp/proto:connections_log_cc_proto", - "//sharing/proto/analytics:sharing_log_cc_proto", + "//location/nearby/analytics/cpp/proto:sharing_log_cc_proto", "@com_google_absl//absl/base:no_destructor", "@com_google_absl//absl/container:flat_hash_map", "@com_google_absl//absl/strings", diff --git a/connections/c/nc.cc b/connections/c/nc.cc index f31d1c8f..2c975cb9 100644 --- a/connections/c/nc.cc +++ b/connections/c/nc.cc @@ -28,6 +28,7 @@ #if !defined(NC_OSS_BUILD) #include "location/nearby/analytics/cpp/logging/event_logger.h" #include "location/nearby/analytics/cpp/proto/connections_log.pb.h" +#include "location/nearby/analytics/cpp/proto/nearby_sharing_log.pb.h" #endif // !defined(NC_OSS_BUILD) #include "absl/base/no_destructor.h" #include "absl/container/flat_hash_map.h" @@ -56,7 +57,6 @@ #include "internal/platform/file.h" #include "internal/platform/logging.h" #include "internal/platform/mac_address.h" -#include "sharing/proto/analytics/nearby_sharing_log.pb.h" #if TARGET_OS_IOS #include "internal/platform/implementation/apple/nearby_logger.h" #endif // TARGET_OS_IOS diff --git a/sharing/BUILD b/sharing/BUILD index 8ab13f26..e66e1ce5 100644 --- a/sharing/BUILD +++ b/sharing/BUILD @@ -930,12 +930,12 @@ cc_test( "//internal/platform/implementation:platform_impl", "//internal/test", "//location/nearby/analytics/cpp/logging:mock_event_logger", + "//location/nearby/analytics/cpp/proto:sharing_log_cc_proto", "//location/nearby/sharing/lib/analytics", "//net/proto2/contrib/parse_proto:parse_text_proto", "//sharing/certificates:test_support", "//sharing/common:enum", "//sharing/proto:wire_format_cc_proto", - "//sharing/proto/analytics:sharing_log_cc_proto", "@com_github_protobuf_matchers//protobuf-matchers", "@com_google_absl//absl/strings:string_view", "@com_google_absl//absl/time", @@ -961,11 +961,11 @@ cc_test( "//internal/platform/implementation:platform_impl", "//internal/test", "//location/nearby/analytics/cpp/logging:mock_event_logger", + "//location/nearby/analytics/cpp/proto:sharing_log_cc_proto", "//location/nearby/sharing/lib/analytics", "//proto:sharing_enums_cc_proto", "//sharing/internal/public:logging", "//sharing/proto:wire_format_cc_proto", - "//sharing/proto/analytics:sharing_log_cc_proto", "@com_github_protobuf_matchers//protobuf-matchers", "@com_google_absl//absl/strings:string_view", "@com_google_absl//absl/time", diff --git a/sharing/incoming_share_session_test.cc b/sharing/incoming_share_session_test.cc index fe19813e..1c77ae79 100644 --- a/sharing/incoming_share_session_test.cc +++ b/sharing/incoming_share_session_test.cc @@ -26,6 +26,7 @@ #include "location/nearby/analytics/cpp/logging/mock_event_logger.h" #include "location/nearby/analytics/cpp/logging/sharing_log_matchers.h" +#include "location/nearby/analytics/cpp/proto/nearby_sharing_log.pb.h" #include "location/nearby/sharing/lib/analytics/analytics_recorder_impl.h" #include "gmock/gmock.h" #include "protobuf-matchers/protocol-buffer-matchers.h" @@ -43,7 +44,6 @@ #include "sharing/internal/public/logging.h" #include "sharing/nearby_connection_impl.h" #include "sharing/nearby_connections_types.h" -#include "sharing/proto/analytics/nearby_sharing_log.pb.h" #include "sharing/proto/wire_format.pb.h" #include "sharing/share_session_usage.h" #include "sharing/share_target.h" diff --git a/sharing/outgoing_share_session_test.cc b/sharing/outgoing_share_session_test.cc index f314a90e..21b01d6c 100644 --- a/sharing/outgoing_share_session_test.cc +++ b/sharing/outgoing_share_session_test.cc @@ -24,6 +24,8 @@ #include "location/nearby/analytics/cpp/logging/mock_event_logger.h" #include "location/nearby/analytics/cpp/logging/sharing_log_matchers.h" +#include "location/nearby/analytics/cpp/proto/nearby_sharing_log.pb.h" +#include "location/nearby/analytics/cpp/proto/nearby_sharing_log.proto.static_reflection.h" #include "location/nearby/sharing/lib/analytics/analytics_recorder_impl.h" #include "net/proto2/contrib/parse_proto/parse_text_proto.h" #include "gmock/gmock.h" @@ -46,8 +48,6 @@ #include "sharing/nearby_connection_impl.h" #include "sharing/nearby_connections_manager.h" #include "sharing/nearby_connections_types.h" -#include "sharing/proto/analytics/nearby_sharing_log.pb.h" -#include "sharing/proto/analytics/nearby_sharing_log.proto.static_reflection.h" #include "sharing/proto/wire_format.pb.h" #include "sharing/share_session_usage.h" #include "sharing/share_target.h" diff --git a/sharing/proto/analytics/BUILD b/sharing/proto/analytics/BUILD deleted file mode 100644 index 3a8e26d8..00000000 --- a/sharing/proto/analytics/BUILD +++ /dev/null @@ -1,36 +0,0 @@ -# Copyright 2022 Google LLC -# -# 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 -# -# https://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. - -load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library") -load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library") - -licenses(["notice"]) - -package(default_visibility = ["//visibility:public"]) - -proto_library( - name = "sharing_log_proto", - srcs = [ - "nearby_sharing_log.proto", - ], - deps = [ - "//proto:sharing_enums_proto", - "@com_google_protobuf//:duration_proto", - ], -) - -cc_proto_library( - name = "sharing_log_cc_proto", - deps = [":sharing_log_proto"], -) diff --git a/sharing/proto/analytics/nearby_sharing_log.proto b/sharing/proto/analytics/nearby_sharing_log.proto deleted file mode 100644 index 0f7b30f6..00000000 --- a/sharing/proto/analytics/nearby_sharing_log.proto +++ /dev/null @@ -1,1128 +0,0 @@ -// Copyright 2022 Google LLC -// -// 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 -// -// https://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 nearby.sharing.analytics.proto; - -import "google/protobuf/duration.proto"; - -// "privacy/pattributes/annotations/proto_field.proto"; -// import "storage/datapol/annotations/proto/semantic_annotations.proto"; -// import "storage/googlesql/public/proto/type_annotation.proto"; -import "proto/sharing_enums.proto"; - -option optimize_for = LITE_RUNTIME; -option java_package = "nearby.sharing.analytics.proto"; -option java_outer_classname = "SharingLogProto"; -option objc_class_prefix = "GNCP"; - -// Top-level log proto for all NearbySharing logging. -// Each log contains a key (event_type), value (a verb-noun event) pair. -// Next Tag: 90 -// LINT.IfChange -message SharingLog { - /* justification = { - collection_basis: CB_CHECKBOX - purposes: [ INFRASTRUCTURE_METRICS, BUSINESS_ANALYSIS ] - } */ - - reserved 71; // Deprecated TransferUIEvent. - - optional location.nearby.proto.sharing.EventType event_type = 1; - - optional UnknownEvent unknown_event = 2; - - optional AcceptAgreements accept_agreements = 3; - - optional EnableNearbySharing enable_nearby_sharing = 4; - - optional SetVisibility set_visibility = 5; - - optional DescribeAttachments describe_attachments = 6; - - optional ScanForShareTargetsStart scan_for_share_targets_start = 7; - - optional ScanForShareTargetsEnd scan_for_share_targets_end = 8; - - optional AdvertiseDevicePresenceStart advertise_device_presence_start = 9; - - optional AdvertiseDevicePresenceEnd advertise_device_presence_end = 10; - - optional SendFastInitialization send_initialization = 11; - - optional ReceiveFastInitialization receive_initialization = 12; - - optional DiscoverShareTarget discover_share_target = 13; - - optional SendIntroduction send_introduction = 14; - - optional ReceiveIntroduction receive_introduction = 15; - - optional RespondToIntroduction respond_introduction = 16; - - optional SendAttachmentsStart send_attachments_start = 17; - - optional SendAttachmentsEnd send_attachments_end = 18; - - optional ReceiveAttachmentsStart receive_attachments_start = 19; - - optional ReceiveAttachmentsEnd receive_attachments_end = 20; - - optional CancelSendingAttachments cancel_sending_attachments = 21; - - optional CancelReceivingAttachments cancel_receiving_attachments = 22; - - optional OpenReceivedAttachments open_received_attachments = 23; - - optional LaunchActivity launch_activity = 24; - - optional AddContact add_contact = 25; - - optional RemoveContact remove_contact = 26; - - optional location.nearby.proto.sharing.LogSource log_source = 27; - - optional FastShareServerResponse fast_share_server_response = 28; - - optional SendStart send_start = 29; - - optional AcceptFastInitialization accept_fast_initialization = 30; - - optional SetDataUsage set_data_usage = 31; - - // The version of Nearby Sharing. E.g. "v1.0.2". - optional string version = 32 /* type = ST_SOFTWARE_ID */; - - optional location.nearby.proto.sharing.EventCategory event_category = 33; - - optional DismissFastInitialization dismiss_fast_initialization = 34; - - optional CancelConnection cancel_connection = 35; - - optional DismissPrivacyNotification dismiss_privacy_notification = 36; - - // Tap privacy notification to update visibility setting. - // http://shortn/_LMJHzPFZM0 - optional TapPrivacyNotification tap_privacy_notification = 37; - - optional TapHelp tap_help = 38; - - optional TapFeedback tap_feedback = 39; - - optional AddQuickSettingsTile add_quick_settings_tile = 40; - - optional RemoveQuickSettingsTile remove_quick_settings_tile = 41; - - optional LaunchPhoneConsent launch_phone_consent = 42; - - optional TapQuickSettingsTile tap_quick_settings_tile = 43; - - optional InstallAPKStatus install_apk_status = 44; - - optional VerifyAPKStatus verify_apk_status = 45; - - optional LaunchConsent launch_consent = 46; - - optional ProcessReceivedAttachmentsEnd process_received_attachments_end = 47; - - optional ToggleShowNotification toggle_show_notification = 48; - - optional SetDeviceName set_device_name = 49; - - // This is a temporary logging field for FilesGo migration phase based on - // device geolocation. Example values are "Phase 1", "Phase 2", etc. - // Reference: http://shortn/_BkSTmDjzWc - optional string files_migration_phase = 50; - - optional DeclineAgreements decline_agreements = 51; - - optional RequestSettingPermissions request_setting_permissions = 52; - - optional DeviceSettings device_settings = 53; - - optional EstablishConnection establish_connection = 54; - - optional AutoDismissFastInitialization auto_dismiss_fast_initialization = 55; - - optional EventMetadata event_metadata = 56; - - // Used only for Nearby Share Windows app now, e.g. "1.0.408". Deprecated and - // move it to the AppInfo below. - optional string app_version = 57 - /* type = ST_SOFTWARE_ID */[deprecated = true]; - - // Used only for Nearby Share Windows app now - optional AppCrash app_crash = 58; - - // Used only for Nearby Share android app now - optional TapQuickSettingsFileShare tap_quick_settings_file_share = 59; - - // Used only for Nearby Share Windows app now. - // TODO(b/260732897): To deprecate, and will be replaced by - // NearbyClientLog.AppInfo. - optional AppInfo app_info = 60; - - // Used only for Nearby Share android app now - optional DisplayPrivacyNotification display_privacy_notification = 61; - - // Used only for Nearby Share android app now - optional DisplayPhoneConsent display_phone_consent = 62; - - // Used only for Nearby Share Windows app now. - optional PreferencesUsage preferences_usage = 63; - - // Used only for Nearby Share android app now. - optional DefaultOptIn default_opt_in = 64; - - optional SetupWizard setup_wizard = 65; - - // Used only for Nearby Share android app now. - optional TapQrCode tap_qr_code = 66; - - optional QrCodeLinkShown qr_code_link_shown = 67; - - optional ParsingFailedEndpointId parsing_failed_endpoint_id = 68; - - optional FastInitDiscoverDevice fast_init_discover_device = 69; - - optional SendDesktopNotification send_desktop_notification = 70; - - optional SendDesktopTransferEvent send_desktop_transfer_event = 72; - - optional SetAccount set_account = 73; - - optional DecryptCertificateFailure decrypt_certificate_failure = 74; - - // Used only for Nearby Share android app now. - optional ShowAllowPermissionAutoAccess show_allow_permission_auto_access = 75; - - optional ShowWaitingForAccept show_waiting_for_accept = 76; - - optional HighQualityMediumSetup high_quality_medium_setup = 77; - - optional RpcCallStatus rpc_call_status = 78; - - optional StartQrCodeSession start_qr_code_session = 79; - - optional QrCodeOpenedInWebClient qr_code_opened_in_web_client = 80; - - optional HatsJointEvent hats_joint_event = 81; - - optional ReceivePreviews receive_previews = 82; - - // Two types of QR code sharing: P2P and Cloud-based - // P2P QR code flow re-uses a lot of the existing events from scan to send. - // Cloud-based QR code flow has the following new events. - // QR code events for sender side. - optional CloudCreateSharingRequest cloud_create_sharing_request = 83; - - // QR code CLOUD_REGISTER_RECEIVER event for receiver side. - optional CloudRegisterReceiver cloud_register_receiver = 84; - - optional CloudUploadStart cloud_upload_start = 85; - - optional CloudUploadEnd cloud_upload_end = 86; - - optional CloudDownloadStart cloud_download_start = 87; - - optional CloudDownloadEnd cloud_download_end = 88; - - // Cloud sharing RPC call event. - optional CloudSharingRpcResult cloud_sharing_rpc_result = 89; - - // Used only for Nearby Share Windows app now. - message AppInfo { - // e.g. "1.0.408" - optional string app_version = 1 /* type = ST_SOFTWARE_ID */; - // e.g. en. In Windows app, it's from the registry value. - optional string app_language = 2 - /* type = ST_DEMOGRAPHIC_INFO */; - optional string update_track = - 3; // e.g. "developer". In Windows app, it's from the registry value. - } - - message DeviceSettings { - // Device visibility setting at Nearby Share settings page, e.g. Contacts. - optional location.nearby.proto.sharing.Visibility visibility = 1; - // Device data usage preference at Nearby Share settings page, e.g.Wi-Fi - // only, Data, etc. - optional location.nearby.proto.sharing.DataUsage data_usage = 2; - // Device name length - optional int32 device_name_size = 3; - // Whether device allows show notification when devices are sharing nearby. - optional bool is_show_notification_enabled = 4; - // True if the BlueTooth setting is enabled - optional bool is_bt_enabled = 5; - // True if the location setting is enabled - optional bool is_location_enabled = 6; - // True if the wifi setting is enabled - optional bool is_wifi_enabled = 7; - // Date(YYYYMMDD) in decimal format for the first successful transfer in - // America/Los_Angeles timezone. If no successful transfer exists, the value - // is 0. - optional int32 first_successful_transfer_date = 8 - /* format = googlesql.format */; - // Date(YYYYMMDD) in decimal format for the previous successful transfer in - // America/Los_Angeles timezone. If no successful transfer exists, the value - // is 0. - optional int32 previous_successful_transfer_date = 9 - /* format = googlesql.format */; - // The cumulative number of transfers the device has completed. - // Exact transfer count stored on device, but when logging put the transfer - // count in buckets, initially we use buckets: 1, 2, 3, …, 10, 11+ - optional int32 lifetime_transfer_count = 10; - // Upload Contact data according to Device consent or Quick Share consent. - optional location.nearby.proto.sharing.ContactAccess contact_access = 11; - // Phone number verification. - optional location.nearby.proto.sharing.IdentityVerification - identity_verification = 12; - } - - // Used only for Nearby Share Windows app now. Here is the screenshot about - // where preferences are set: - // https://screenshot.googleplex.com/6HFrEfKCPxuSiYz. - message PreferencesUsage { - optional location.nearby.proto.sharing.PreferencesAction action = 1; - optional location.nearby.proto.sharing.PreferencesActionStatus - action_status = 2; - optional location.nearby.proto.sharing.PreferencesAction prev_sub_action = - 3; - optional location.nearby.proto.sharing.PreferencesAction next_sub_action = - 4; - } - - // EventType: UNKNOWN_EVENT_TYPE - message UnknownEvent {} - - // EventType: ESTABLISH_CONNECTION - message EstablishConnection { - // The result status of the attempt to establish a connection. - optional location.nearby.proto.sharing.EstablishConnectionStatus status = 1; - - optional int64 session_id = 2 /* type = ST_SESSION_ID */; - // For group share, 1-based number for transfer position. - optional int32 transfer_position = 3; - // For group share. - optional int32 concurrent_connections = 4; - // For calculating latency. - optional int64 duration_millis = 5; - optional ShareTargetInfo share_target_info = 6; - optional string referrer_name = 7; - // Deprecated. Use share_target_info.has_matching_qr_code instead. - optional bool qr_code_flow = 8 [deprecated = true]; - // True if the connection established from receiver - optional bool is_incoming_connection = 9; - // Duration from when the receiver attempts to receive from a QR code to - // when the QR code sender successfully connects to this receiver. Only set - // for QR-code based receive flows. - optional google.protobuf.Duration qr_code_receiver_connect_latency = 10; - } - - // EventType: ACCEPT_AGREEMENTS - message AcceptAgreements {} - - // EventType: DECLINE_AGREEMENTS - message DeclineAgreements {} - - // EventType: ENABLE_NEARBY_SHARING - message EnableNearbySharing { - optional location.nearby.proto.sharing.NearbySharingStatus status = 1; - optional bool has_opted_in = 2; - } - - // EventType: SET_ACCOUNT - // Activity Name: SETUP_ACTIVITY or SETTINGS_ACTIVITY - message SetAccount { - optional location.nearby.proto.sharing.ActivityName activity_name = 1; - } - - // EventType: SET_VISIBILITY - message SetVisibility { - // The new visibility that the device is set to. - optional location.nearby.proto.sharing.Visibility visibility = 1; - - // The current visibility of the device. - optional location.nearby.proto.sharing.Visibility source_visibility = 2; - - // The duration in millis of this visibility setting. - optional int64 duration_millis = 3; - - optional location.nearby.proto.sharing.ActivityName source_activity_name = 4 - /* type = ST_NOT_REQUIRED */; - } - - // EventType: SET_DATA_USAGE - message SetDataUsage { - // The current data usage preference of the device. - optional location.nearby.proto.sharing.DataUsage original_preference = 1; - - // The new data usage preference that the device is set to. - optional location.nearby.proto.sharing.DataUsage preference = 2; - } - - // EventType: SCAN_FOR_SHARE_TARGETS_START - message ScanForShareTargetsStart { - // A randomly generated number to be used to join the start and end of a - // session (mostly used to compute the duration of the session, e.g. how - // long does it take for attachments to be shared/sent via the Nearby - // Connections api). A same number is used twice for the start and - // end of a session. It is not designed to be associated to user or device, - // and can only be used to join the start and end of a particular session. - // Each session itself does not contain user or device information, and is - // not designed to be joined with other sessions/events of the same user to - // reconstruct particular user's activity pattern. - optional int64 session_id = 1 /* type = ST_SESSION_ID */; - optional location.nearby.proto.sharing.SessionStatus status = 2; - optional location.nearby.proto.sharing.ScanType scan_type = 3; - optional int64 flow_id = 4 /* type = ST_SESSION_ID */; - optional string referrer_name = 5; - // Represents whether this scan was started with an active QR code session - // that can be used to help discover targets that have scanned the same QR - // code - optional bool use_qr_code = 6; - } - - // EventType: SCAN_FOR_SHARE_TARGETS_END - message ScanForShareTargetsEnd { - optional int64 session_id = 1 /* type = ST_SESSION_ID */; - } - - // EventType: ADVERTISE_DEVICE_PRESENCE_START - message AdvertiseDevicePresenceStart { - // No longer needed for advertisement. - optional int64 session_id = 1 - /* type = ST_SESSION_ID */[deprecated = true]; - optional location.nearby.proto.sharing.Visibility visibility = 2; - optional location.nearby.proto.sharing.SessionStatus status = 3; - optional location.nearby.proto.sharing.DataUsage data_usage = 4; - // No longer needed for advertisement, replace this with - // SET_NAME_DEVICE. - optional int32 device_name_size = 5 [deprecated = true]; - optional string referrer_name = 6; - optional location.nearby.proto.sharing.AdvertisingMode advertising_mode = 7; - optional bool qr_code_flow = 8; - } - - // EventType: ADVERTISE_DEVICE_PRESENCE_END - message AdvertiseDevicePresenceEnd { - // No longer needed for advertisement. - optional int64 session_id = 1 - /* type = ST_SESSION_ID */[deprecated = true]; - } - - // EventType: SEND_FAST_INITIALIZATION - message SendFastInitialization {} - - // EventType: RECEIVE_FAST_INITIALIZATION - message ReceiveFastInitialization { - // The time elapse from the beginning of screen unlock to the time - // when the FastInitialization is received. - optional int64 time_elapse_since_screen_unlock_millis = 1; - // True if the notification is enabled - optional bool notifications_enabled = 2; - // True if the notification is being filtered when being shown - optional bool notifications_filtered = 3; - } - - // EventType: DISMISS_FAST_INITIALIZATION - message DismissFastInitialization {} - - // EventType: AUTO_DISMISS_FAST_INITIALIZATION - message AutoDismissFastInitialization {} - - // TODO(b/302987763): We need to deprecate flow_id and session_id in each - // event once these two fields in metadata are released to prod and - // pipelines are updated to read them. - message EventMetadata { - optional location.nearby.proto.sharing.SharingUseCase use_case = 1; - // The opt-in status before the user enters the first opt-in screen in each - // time file share or it is always “true” if the user has opted in before. - // Deprecated. - optional bool initial_opt_in = 2 [deprecated = true]; - // The opt-in status after the user leaves the first opt-in screen in each - // time file share or it is always “true” if the user has opted in before. - // Deprecated. - optional bool opt_in = 3 [deprecated = true]; - // The Nearby Share enable status before the user enters the first - // opt-in screen in each time file share. - // Deprecated. - optional bool initial_enable_status = 4 [deprecated = true]; - // The same id means it is in the same sharing file flow of sender side. - // Ex: when sender share file to 2 receivers, the flow_id in sender side is - // the same for all the discovery/connection/transfer events. - optional int64 flow_id = 5 /* type = ST_SESSION_ID */; - // A randomly generated number to be used to join the start and end of a - // session (mostly used to compute the duration of the session, e.g. how - // long does it take for attachments to be shared/sent via the Nearby - // Connections api). A same number is used twice for the start and - // end of a session. It is not designed to be associated to user or device, - // and can only be used to join the start and end of a particular session. - // Each session itself does not contain user or device information, and is - // not designed to be joined with other sessions/events of the same user to - // reconstruct particular user's activity pattern. - optional int64 session_id = 6 /* type = ST_SESSION_ID */; - optional int32 vendor_id = 7 /* type = ST_PARTNER_ID */; - - // The cloud_sharing_id: used by both sender and receiver during QR code - // cloud sharing flow to join sender and receiver events. - optional string cloud_sharing_id = 8 - /* type = ST_SESSION_ID */; - // receiver session id: used by QR code cloud receiver. - optional string cloud_receiver_session_id = 9 - /* type = ST_SESSION_ID */; - - // The name of the external provider, it will not be set if the provider is - // not external. - optional string external_provider_name = 10; - // The service id of the external provider, it will not be set if the - // provider is not external. - optional string external_provider_id = 11 - /* type = ST_SESSION_ID */; - // Is this file transfer from a direct share target. This is only available - // for the sender log. - optional bool is_direct_share = 12; - } - - // TODO(fdi): may consider adding a field about decipherability later. - // EventType: DISCOVER_SHARE_TARGET - message DiscoverShareTarget { - optional ShareTargetInfo share_target_info = 1; - // The time elapse from the beginning of an scanning session to the time - // when the share target is discovered. - optional google.protobuf.Duration duration_since_scanning = 2; - optional int64 session_id = 3 /* type = ST_SESSION_ID */; - optional int64 flow_id = 4 /* type = ST_SESSION_ID */; - optional string referrer_name = 5; - // The time elapse from the share sheet activity starts (foreground - // send surface) to the time when the share target is discovered. - // Only uses foreground send surfaces, since this is when users - // directly engage with NS to send. - optional int64 latency_since_activity_start_millis = 6 [default = -1]; - optional location.nearby.proto.sharing.ScanType scan_type = 7; - - // receiver session id: used by QR code cloud receiver. - optional string cloud_receiver_session_id = 8 - /* type = ST_SESSION_ID */; - } - - // EventType: PARSING_FAILED_ENDPOINT_ID - message ParsingFailedEndpointId { - optional string endpoint_id = 1 /* type = ST_SESSION_ID */; - // The time elapse from the beginning of an scanning session to the time - // when the share target is discovered. - optional google.protobuf.Duration duration_since_scanning = 2; - optional int64 session_id = 3 /* type = ST_SESSION_ID */; - optional int64 flow_id = 4 /* type = ST_SESSION_ID */; - optional string referrer_name = 5 - /* type = ST_REFERER_URL */; - // The time elapse from the share sheet activity starts to the time - // when the share target is discovered. - optional int64 latency_since_activity_start_millis = 6 [default = -1]; - optional location.nearby.proto.sharing.ScanType scan_type = 7; - // The time elapse from the beginning of sync to download the certificates - // to the time when the scanning fails in parsing. - optional google.protobuf.Duration duration_since_last_sync = 8; - optional location.nearby.proto.sharing.ParsingFailedType - parsing_failed_type = 9; - optional location.nearby.proto.sharing.DiscoveryMode discovery_mode = 10; - } - - // EventType: DESCRIBE_ATTACHMENTS - message DescribeAttachments { - optional AttachmentsInfo attachments_info = 1; - - // Time taken to download the attachments before sending - optional google.protobuf.Duration download_duration = 2; - } - - // TODO(fdi): may want to add duration_from_scanning_millis later. - // EventType: SEND_INTRODUCTION - message SendIntroduction { - optional ShareTargetInfo share_target_info = 1; - optional int64 session_id = 2 /* type = ST_SESSION_ID */; - // 1-based number for transfer position. - optional int32 transfer_position = 3; - optional int32 concurrent_connections = 4; - } - - // EventType: RECEIVE_INTRODUCTION - message ReceiveIntroduction { - optional int64 session_id = 1 /* type = ST_SESSION_ID */; - optional ShareTargetInfo share_target_info = 2; - optional string referrer_name = 3; - } - - // TODO(fdi): may add AttachmentInfo, or ShareTargetInfo later. - // EventType: RESPOND_TO_INTRODUCTION - message RespondToIntroduction { - optional location.nearby.proto.sharing.ResponseToIntroduction action = 1; - optional int64 session_id = 2 /* type = ST_SESSION_ID */; - optional bool qr_code_flow = 3; - } - - // EventType: SEND_ATTACHMENTS_START - message SendAttachmentsStart { - optional int64 session_id = 1 /* type = ST_SESSION_ID */; - optional AttachmentsInfo attachments_info = 2; - // 1-based number for transfer position. - optional int32 transfer_position = 3; - optional int32 concurrent_connections = 4; - // Deprecated. Use share_target_info.has_matching_qr_code instead. - optional bool qr_code_flow = 5 [deprecated = true]; - optional ShareTargetInfo share_target_info = 6; - // True if the advanced protection is enabled and the sender needed to - // confirm the transfer. - optional bool advanced_protection_enabled = 7; - // True if the advanced protection flag from NearbyService BE is different - // from the mendel flag. - optional bool advanced_protection_mismatch = 8; - } - - // EventType: SEND_ATTACHMENTS_END - message SendAttachmentsEnd { - optional int64 session_id = 1 /* type = ST_SESSION_ID */; - optional int64 sent_bytes = 2; - optional location.nearby.proto.sharing.AttachmentTransmissionStatus status = - 3; - // 1-based number for transfer position. - optional int32 transfer_position = 4; - optional int32 concurrent_connections = 5; - optional AttachmentsInfo attachments_info = 6; - // the duration from transfer start to transfer is finished. - optional int64 duration_millis = 7; - optional ShareTargetInfo share_target_info = 8; - optional string referrer_name = 9; - // connection status from nearby connections layer - optional location.nearby.proto.sharing.ConnectionLayerStatus - connection_layer_status = 10; - // Date(YYYYMMDD) in decimal format for the first successful transfer in - // America/Los_Angeles timezone. If no successful transfer exists, the value - // is 0. - optional int32 first_successful_transfer_date = 11 - /* format = googlesql.format */; - // Date(YYYYMMDD) in decimal format for the previous successful transfer in - // America/Los_Angeles timezone. If no successful transfer exists, the value - // is 0. - optional int32 previous_successful_transfer_date = 12 - /* format = googlesql.format */; - // The cumulative number of transfers the device has completed. - // Exact transfer count stored on device, but when logging put the transfer - // count in buckets, initially we use buckets: 1, 2, 3, …, 10, 11+ - optional int32 lifetime_transfer_count = 13; - // The medium used for the connection. - optional int32 connection_medium = 14; - // The data usage of the user settings. - optional location.nearby.proto.sharing.DataUsage data_usage = 15; - - // True if the sender and receiver are mutual contacts. - optional bool is_mutual_contact = 16; - } - - // EventType: RECEIVE_ATTACHMENTS_START - message ReceiveAttachmentsStart { - optional int64 session_id = 1 /* type = ST_SESSION_ID */; - optional AttachmentsInfo attachments_info = 2; - optional ShareTargetInfo share_target_info = 3; - } - - // EventType: RECEIVE_ATTACHMENTS_END - message ReceiveAttachmentsEnd { - optional int64 session_id = 1 /* type = ST_SESSION_ID */; - optional int64 received_bytes = 2; - optional location.nearby.proto.sharing.AttachmentTransmissionStatus status = - 3; - optional string referrer_name = 4; - optional ShareTargetInfo share_target_info = 5; - // Date(YYYYMMDD) in decimal format for the first successful transfer in - // America/Los_Angeles timezone. If no successful transfer exists, the value - // is 0. - optional int32 first_successful_transfer_date = 6 - /* format = googlesql.format */; - // Date(YYYYMMDD) in decimal format for the previous successful transfer in - // America/Los_Angeles timezone. If no successful transfer exists, the value - // is 0. - optional int32 previous_successful_transfer_date = 7 - /* format = googlesql.format */; - // The cumulative number of transfers the device has completed. - // Exact transfer count stored on device, but when logging put the transfer - // count in buckets, initially we use buckets: 1, 2, 3, …, 10, 11+ - optional int32 lifetime_transfer_count = 8; - // The medium used for the connection. - optional int32 connection_medium = 14; - // The data usage of the user settings. - optional location.nearby.proto.sharing.DataUsage data_usage = 15; - } - - // EventType: CANCEL_CONNECTION - message CancelConnection { - optional int64 session_id = 1 /* type = ST_SESSION_ID */; - // 1-based number for transfer position. 1 if log is from receiver side. - optional int32 transfer_position = 2; - optional int32 concurrent_connections = 3; - } - - // EventType: CANCEL_SENDING_ATTACHMENTS - message CancelSendingAttachments {} - - // EventType: CANCEL_RECEIVING_ATTACHMENTS - message CancelReceivingAttachments {} - - // EventType: PROCESS_RECEIVED_ATTACHMENTS_END - message ProcessReceivedAttachmentsEnd { - optional int64 session_id = 1 /* type = ST_SESSION_ID */; - optional location.nearby.proto.sharing.ProcessReceivedAttachmentsStatus - status = 2; - } - - // EventType: OPEN_RECEIVED_ATTACHMENTS - message OpenReceivedAttachments { - optional AttachmentsInfo attachments_info = 3; - optional int64 session_id = 4 /* type = ST_SESSION_ID */; - } - - // EventType: LAUNCH_SETUP_ACTIVITY - message LaunchSetupActivity {} - - // EventType: ADD_CONTACT - message AddContact { - optional bool was_phone_added = 1; - optional bool was_email_added = 2; - } - - // EventType: REMOVE_CONTACT - message RemoveContact { - optional bool was_phone_removed = 1; - optional bool was_email_removed = 2; - } - - // EventType: FAST_SHARE_SERVER_RESPONSE - message FastShareServerResponse { - optional location.nearby.proto.sharing.ServerResponseState status = 1; - optional location.nearby.proto.sharing.ServerActionName name = 2; - optional int64 latency_millis = 3; - optional location.nearby.proto.sharing.SyncPurpose purpose = 4; - optional location.nearby.proto.sharing.ClientRole requester = 5; - optional location.nearby.proto.sharing.DeviceType device_type = 6; - } - - // EventType: SEND_START - message SendStart { - optional int64 session_id = 1 /* type = ST_SESSION_ID */; - // 1-based number for transfer position. - optional int32 transfer_position = 2; - optional int32 concurrent_connections = 3; - optional ShareTargetInfo share_target_info = 4; - } - - // EventType: ACCEPT_FAST_INITIALIZATION - message AcceptFastInitialization {} - - // EventType: LAUNCH_ACTIVITY - message LaunchActivity { - optional location.nearby.proto.sharing.ActivityName activity_name = 1; - // Elapsed time in milliseconds between startActivity and stopActivity. - optional int64 duration_millis = 2; - // The name of the package that launched the activity - optional string referrer_name = 3; - // Is previous transfer in progress. - optional bool previous_transfer_in_progress = 4; - // Whether user has opted in before. For SETUP_ACTIVITY (Opt-In half sheet) - // and SETTINGS_ACTIVITY (Settings page). b/202415050, b/203248230 - optional bool has_opted_in = 5; - // Indicate which UI interaction triggers the opt-in half sheet. Currently - // this only applies to SETUP_ACTIVITY - optional location.nearby.proto.sharing.ActivityName source_activity_name = - 6; - // Is the activity simply pausing or completely finishing. - optional bool is_finishing = 7; - } - - // EventType: DISMISS_PRIVACY_NOTIFICATION - message DismissPrivacyNotification {} - - // EventType: TAP_PRIVACY_NOTIFICATION - message TapPrivacyNotification {} - - // EventType: TAP_HELP - message TapHelp {} - - // EventType: TAP_FEEDBACK - message TapFeedback {} - - // EventType: ADD_QUICK_SETTINGS_TILE - message AddQuickSettingsTile {} - - // EventType: REMOVE_QUICK_SETTINGS_TILE - message RemoveQuickSettingsTile {} - - // EventType: LAUNCH_PHONE_CONSENT - message LaunchPhoneConsent {} - - // EventType: DISPLAY_PHONE_CONSENT - message DisplayPhoneConsent {} - - // EventType: TAP_QUICK_SETTINGS_TILE - message TapQuickSettingsTile {} - - // EventType: TAP_QUICK_SETTINGS_FILE_SHARE - message TapQuickSettingsFileShare {} - - // EventType: DISPLAY_PRIVACY_NOTIFICATION - message DisplayPrivacyNotification {} - - // EventType: DEFAULT_OPT_IN - message DefaultOptIn {} - - // EventType: SET_DEVICE_NAME - message SetDeviceName { - optional int32 device_name_size = 1; - } - - // EventType: REQUEST_SETTING_PERMISSIONS - message RequestSettingPermissions { - optional location.nearby.proto.sharing.PermissionRequestType - permission_type = 1; - optional location.nearby.proto.sharing.PermissionRequestResult - permission_request_result = 2; - } - - // EventType: LAUNCH_CONSENT - message LaunchConsent { - optional location.nearby.proto.sharing.ConsentType consent_type = 1; - optional location.nearby.proto.sharing.ConsentAcceptanceStatus status = 2; - } - - // EventType: INSTALL_APK_STATUS - message InstallAPKStatus { - repeated location.nearby.proto.sharing.InstallAPKStatus status = 1 - [packed = true]; - repeated location.nearby.proto.sharing.ApkSource source = 2 [packed = true]; - } - - // EventType: VERIFY_APK_STATUS - message VerifyAPKStatus { - repeated location.nearby.proto.sharing.VerifyAPKStatus status = 1 - [packed = true]; - repeated location.nearby.proto.sharing.ApkSource source = 2 [packed = true]; - } - - // EventType: TOGGLE_SHOW_NOTIFICATION - message ToggleShowNotification { - optional location.nearby.proto.sharing.ShowNotificationStatus - previous_status = 1; - optional location.nearby.proto.sharing.ShowNotificationStatus - current_status = 2; - } - - // EventType: DECRYPT_CERTIFICATE_FAILURE - message DecryptCertificateFailure { - optional location.nearby.proto.sharing.DecryptCertificateFailureStatus - status = 1; - } - - // EventType: SHOW_ALLOW_PERMISSION_AUTO_ACCESS - message ShowAllowPermissionAutoAccess { - // Auto permission UI activity name - // Shows the auto permission UI if the device lacks Wifi or Bluetooth - // permission and the user has not allowed Nearby Share to automatically - // enable these permissions. Once the user allows access, the UI will - // not be shown again. - // Currently, only the SHARE_SHEET_ACTIVITY and RECEIVE_SURFACE_ACTIVITY - // show the UI. - optional location.nearby.proto.sharing.ActivityName activity_name = 1; - // True if user allowed NS to auto enable Wifi/BT permissions during file - // transfer and NS will recover the permissions after transffer is complete. - optional bool allowed_auto_access = 2; - // True if the device lacks Wifi permission. - optional bool is_wifi_missing = 3; - // True if the device lacks Bluetooth permission. - optional bool is_bt_missing = 4; - } - - // EventType: TAP_QR_CODE - message TapQrCode {} - - // QR_CODE_LINK_SHOWN - message QrCodeLinkShown {} - - // EventType: FAST_INIT_DISCOVER_DEVICE - message FastInitDiscoverDevice { - reserved 1; - // The advertisement type is NOTIFY or SILENT. - optional location.nearby.proto.sharing.FastInitType fast_init_type = 2; - // The distance of the found nearby fast init advertisement. - optional location.nearby.proto.sharing.FastInitState fast_init_state = 3; - } - - // The metadata of a share target. - message ShareTargetInfo { - optional location.nearby.proto.sharing.DeviceType device_type = 1; - optional location.nearby.proto.sharing.OSType os_type = 2; - optional location.nearby.proto.sharing.DeviceRelationship - device_relationship = 3; - // Represents whether the share target has the same QR code as the local - // device. - // In sender side events, this returns whether the receiver represented by - // this ShareTargetInfo has scanned the QR code generated by this sender. - // In receiver side events, this returns whether the sender represented by - // this ShareTargetInfo is the one that generated the QR code scanned by - // this receiver. - optional bool has_matching_qr_code = 4; - - // Represents whether the share target is from external provider. - optional bool is_external = 5; - } - - // The metadata of attachments to be shared. - message AttachmentsInfo { - repeated TextAttachment text_attachment = 1; - repeated FileAttachment file_attachment = 2; - // The App required by sender to open the attachments. - optional string required_app = 3; - repeated WifiCredentialsAttachment wifi_credentials_attachment = 4; - repeated AppAttachment app_attachment = 5; - repeated StreamAttachment stream_attachment = 6; - repeated FolderAttachment folder_attachment = 7; - } - - message TextAttachment { - optional Type type = 1; - optional int64 size_bytes = 2; - // attachments are batched together by some source - optional int64 batch_id = 3 /* type = ST_SESSION_ID */; - optional location.nearby.proto.sharing.AttachmentSourceType source_type = 4; - - enum Type { - UNKNOWN_TEXT_TYPE = 0; - URL = 1; - ADDRESS = 2; - PHONE_NUMBER = 3; - } - } - - message FileAttachment { - optional Type type = 1; - optional int64 size_bytes = 2; - reserved 3; // optional string mime_type = 3 - optional int64 offset_bytes = 4; - // attachments are batched together by some source - optional int64 batch_id = 5 /* type = ST_SESSION_ID */; - optional location.nearby.proto.sharing.AttachmentSourceType source_type = 6; - - enum Type { - UNKNOWN_FILE_TYPE = 0; - IMAGE = 1; - VIDEO = 2; - ANDROID_APP = 3; - AUDIO = 4; - DOCUMENT = 5; - CONTACT_CARD = 6; - } - } - - message WifiCredentialsAttachment { - optional int32 security_type = 1; - // attachments are batched together by some source - optional int64 batch_id = 2 /* type = ST_SESSION_ID */; - optional location.nearby.proto.sharing.AttachmentSourceType source_type = 3; - } - - message AppAttachment { - optional string package_name = 1 /* type = ST_SOFTWARE_ID */; - // App size in bytes. - optional int64 size = 2; - // attachments are batched together by some source - optional int64 batch_id = 3 /* type = ST_SESSION_ID */; - optional location.nearby.proto.sharing.AttachmentSourceType source_type = 4; - } - - message StreamAttachment { - optional string package_name = 1 /* type = ST_SOFTWARE_ID */; - // attachments are batched together by some source - optional int64 batch_id = 2 /* type = ST_SESSION_ID */; - optional location.nearby.proto.sharing.AttachmentSourceType source_type = 3; - } - - message CloudAttachmentInfo { - optional location.nearby.proto.sharing.AttachmentTransmissionStatus status = - 1; - oneof CloudAttachment { - TextAttachment text_attachment = 2; - FileAttachment file_attachment = 3; - WifiCredentialsAttachment wifi_credentials_attachment = 4; - AppAttachment app_attachment = 5; - StreamAttachment stream_attachment = 6; - } - // The total bytes of all attachments transferred. - optional int64 transferred_bytes = 7; - // The duration from transfer start to transfer end. - optional int64 duration_millis = 8; - } - - message FolderAttachment {} - - // EventType: APP_CRASH - // Used only for Nearby Share Windows App now - message AppCrash { - optional location.nearby.proto.sharing.AppCrashReason crash_reason = 1; - } - - // EventType: SETUP_WIZARD - // The results of a setup wizard flow - message SetupWizard { - // The new visibility of the device. - optional location.nearby.proto.sharing.Visibility visibility = 1; - // The previous visibility of the device. - optional location.nearby.proto.sharing.Visibility previous_visibility = 2; - } - - message SendDesktopNotification { - reserved 2; - optional location.nearby.proto.sharing.DesktopNotification event = 1; - } - - message SendDesktopTransferEvent { - optional location.nearby.proto.sharing.DesktopTransferEventType event = 1; - } - - message ShowWaitingForAccept { - optional location.nearby.proto.sharing.ButtonStatus button_status = 1; - } - - message HighQualityMediumSetup { - optional ShareTargetInfo share_target_info = 1; - optional int64 session_id = 2 /* type = ST_SESSION_ID */; - optional int64 duration_millis = 3; - optional bool is_timeout = 4; - optional int32 original_quality = 5; - optional int32 connection_medium = 6; - optional int32 connection_mode = 7; - optional int32 instant_connection_result = 8; - } - - message RpcCallStatus { - enum RpcDirection { - UNKNOWN_RPC_DIRECTION = 0; - INCOMING = 1; - OUTGOING = 2; - } - - optional RpcDirection direction = 1; - // Name of RPC in . format. - optional string rpc_name = 2; - // Canonical error code of RPC. - optional int32 error_code = 3; - // Latency of RPC call in milliseconds. - optional int64 latency_millis = 4; - } - - // EventType: START_QR_CODE_SESSION - message StartQrCodeSession {} - - // EventType: QR_CODE_OPENED_IN_WEB_CLIENT - message QrCodeOpenedInWebClient { - enum ClientPlatform { - UNKNOWN_CLIENT_PLATFORM = 0; - // Used when the client platform is not one of the types below - GENERIC = 1; - ANDROID = 2; - IOS = 3; - CHROME_OS = 4; - WINDOWS = 5; - } - optional ClientPlatform client_platform = 1; - - // Whether the /qrcode page was opened in the browser again after the user - // clicked on the "Try again" button - optional bool is_retry = 2; - } - // EventType: HATS_JOINT_EVENT - message HatsJointEvent { - optional int64 flow_id = 1 /* type = ST_SESSION_ID */; - optional string hats_session_id = 2 - /* type = ST_SESSION_ID */; - } - - // EventType: RECEIVE_PREVIEWS - message ReceivePreviews { - optional int32 num_previews = 1; - } - - // EventType: CLOUD_CREATE_SHARING_REQUEST - message CloudCreateSharingRequest { - optional AttachmentsInfo attachments_info = 1; - optional location.nearby.proto.sharing.CloudCreateSharingResult result = 2; - // Time taken to download attachments from the Intent in milliseconds. - optional int64 attachment_download_latency_millis = 3; - // Time taken to generate and encrypt the preview thumbnail in milliseconds. - optional int64 preview_thumbnail_latency_millis = 4; - // Time taken to make the CreateSharing RPC call in milliseconds. - optional int64 rpc_latency_millis = 5; - } - - // EventType: CLOUD_REGISTER_RECEIVER used by QR code cloud web receiver - message CloudRegisterReceiver { - optional location.nearby.proto.sharing.CloudRegisterReceiverResult result = - 1; - } - - // EventType: CLOUD_UPLOAD_START used by QR code cloud web sender - // The cloud_sharing_id and flow_id are logged in the event metadata. - message CloudUploadStart { - optional AttachmentsInfo attachments_info = 1; - optional location.nearby.proto.sharing.CloudActionType action_type = 2; - } - - // EventType: CLOUD_UPLOAD_END used by QR code cloud web sender - // The cloud_sharing_id and flow_id are logged in the event metadata. - message CloudUploadEnd { - repeated CloudAttachmentInfo upload_infos = 1; - optional location.nearby.proto.sharing.CloudActionType action_type = 2; - } - - // EventType: CLOUD_DOWNLOAD_START used by QR code cloud web receiver - // The cloud_sharing_id and cloud_receiver_session_id are logged in the - // event_metadata into the anonymous logs. - message CloudDownloadStart { - optional AttachmentsInfo attachments_info = 1; - optional location.nearby.proto.sharing.CloudActionType action_type = 2; - } - - // EventType: CLOUD_DOWNLOAD_END used by QR code cloud web receiver - // The cloud_sharing_id and cloud_receiver_session_id are logged in the - // event_metadata into the anonymous logs. - message CloudDownloadEnd { - repeated CloudAttachmentInfo download_infos = 1; - optional location.nearby.proto.sharing.CloudActionType action_type = 2; - } - - // EventType: CLOUD_SHARING_RPC_RESULT - // Event logging the result of a Cloud Sharing RPC call. This event captures - // the type of RPC, its outcome, and performance metrics. - message CloudSharingRpcResult { - // The specific RPC method that was called. - optional string rpc_name = 1; - // The canonical gRPC status code (io.grpc.Status.Code) resulting from the - // call. - optional int32 status_code = 2; - // The total time taken for the RPC call to complete, in milliseconds. - optional int64 latency_millis = 3; - // The unique identifier for the cloud sharing session, if available at the - // time of the call. This helps correlate RPC events to a specific sharing - // session. - optional string cloud_sharing_id = 4; - } -} -// LINT.ThenChange(//depot/google3/logs/proto/location/nearby/nearby_client_log.proto)