| // Copyright 2023 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_BROWSER_NEARBY_SHARING_METRICS_METRIC_COMMON_H_ |
| #define CHROME_BROWSER_NEARBY_SHARING_METRICS_METRIC_COMMON_H_ |
| |
| #include "chrome/browser/nearby_sharing/share_target.h" |
| #include "chrome/browser/nearby_sharing/transfer_metadata.h" |
| |
| namespace nearby::share::metrics { |
| |
| // For now, we just forward the mojom interface until we can differentiate |
| // between Windows and ChromeOS. |
| using Platform = nearby_share::mojom::ShareTargetType; |
| |
| enum DeviceRelationship { |
| kSelf = 0, |
| kContact = 1, |
| kStranger = 2, |
| }; |
| |
| // This has significant overlap with `TransferMetadata::Status`, but it only |
| // captures terminal states. |
| enum TransferResult { |
| kUnknown = 0, |
| kComplete = 1, |
| kFailed = 2, |
| kCancelled = 3, |
| kRejected = 4, |
| kTimedOut = 5, |
| kNotEnoughSpace = 6, |
| kUnsupportedAttachmentType = 7, |
| kMissingPayloads = 8, |
| kIncompletePayloads = 9, |
| kUnexpectedDisconnection = 10, |
| kFailedToInitiateOutgoingConnection = 11, |
| kFailedToReadOutgoingConnectionResponse = 12, |
| kInvalidIntroductionFrame = 13, |
| kPairedKeyVerificationFailed = 14, |
| kMediaUnavailable = 15, |
| }; |
| |
| Platform GetPlatform(const ShareTarget& share_target); |
| DeviceRelationship GetDeviceRelationship(const ShareTarget& share_target); |
| TransferResult GetTransferResult(TransferMetadata::Status status); |
| |
| } // namespace nearby::share::metrics |
| |
| #endif // CHROME_BROWSER_NEARBY_SHARING_METRICS_METRIC_COMMON_H_ |