Snap for 8857176 from 3b4fc16f61339360aaad8a82ff7c58344da6777d to mainline-go-media-release

Change-Id: Ia9795a866464c3a8579fe6218b533a1e4cdf4c2e
diff --git a/stats/atoms.proto b/stats/atoms.proto
index 859d1a6..a14ace6 100644
--- a/stats/atoms.proto
+++ b/stats/atoms.proto
@@ -68,6 +68,7 @@
 import "frameworks/proto_logging/stats/enums/stats/location/location_enums.proto";
 import "frameworks/proto_logging/stats/enums/stats/mediametrics/mediametrics.proto";
 import "frameworks/proto_logging/stats/enums/stats/mediaprovider/mediaprovider_enums.proto";
+import "frameworks/proto_logging/stats/enums/stats/mobiledatadownload/enums.proto";
 import "frameworks/proto_logging/stats/enums/stats/privacysignals/enums.proto";
 import "frameworks/proto_logging/stats/enums/stats/safetycenter/enums.proto";
 import "frameworks/proto_logging/stats/enums/stats/storage/storage_enums.proto";
@@ -723,6 +724,7 @@
         PrivacySignalIssueCardInteraction privacy_signal_issue_card_interaction = 485 [(module) = "permissioncontroller"];
         PrivacySignalsJobFailure privacy_signals_job_failure = 486 [(module) = "permissioncontroller"];
         SandboxApiCalled sandbox_api_called = 488 [(module) = "sdksandbox"];
+        MobileDataDownloadFileGroupDownloadStatusReported mobile_data_download_file_group_status_reported = 490 [(module) = "adservices"];
         // StatsdStats tracks platform atoms with ids upto 750.
         // Update StatsdStats::kMaxPushedAtomId when atom ids here approach that value.
     }
@@ -21444,3 +21446,41 @@
     // Storage
     optional int32 storage_kb = 2;
 }
+
+/**
+ * Logs stats on the download status of file groups. Provides information on
+ * download latency and download penetration.
+ */
+message MobileDataDownloadFileGroupDownloadStatusReported {
+  // The status of the file group on device: PENDING, DOWNLOADED, FAILED
+  optional android.stats.mobiledatadownload.DownloadStatus
+      file_group_download_status = 1;
+  // Timestamp of when this file group was added to the device.
+  optional int64 group_added_timestamp = 2;
+  // Timestamp of when MDD completed downloading the file group.
+  optional int64 group_downloaded_timestamp = 3;
+  // Stats specific to the file group
+  optional MobileDataDownloadFileGroupStats file_group_stats = 4 [(android.os.statsd.log_mode) = MODE_BYTES];
+  // Number of days since the last time the device attempted to log file group download status for any file group.
+  optional int32 days_since_last_log = 5;
+}
+
+/** Shared data among MobileDataDownload statistics. Not meant to be a top level atom proto.*/
+message MobileDataDownloadFileGroupStats {
+  // The name of the file group. This a string set server side used to retrieve
+  // the files. Does not contain PII.
+  optional string file_group_name = 1;
+  // Allows the clients to identify a file group based on a given set of
+  // properties. This string is set server side and does not contain PII.
+  optional string variant_id = 2;
+  // Identifier for the data file group created to identify the version of the
+  // file group.
+  optional int64 build_id = 3;
+  // The number of files in the file group.
+  optional int32 file_count = 4;
+  // Whether the file group has an account associated with it.
+  optional bool has_account = 5;
+  // Inverse of the sampling rate used to sample this event.
+  optional int32 sampling_interval = 6;
+  // Note: we do not have owner_package since that's already transmitted.
+}
\ No newline at end of file
diff --git a/stats/enums/stats/mobiledatadownload/enums.proto b/stats/enums/stats/mobiledatadownload/enums.proto
new file mode 100644
index 0000000..4bc198e
--- /dev/null
+++ b/stats/enums/stats/mobiledatadownload/enums.proto
@@ -0,0 +1,12 @@
+syntax = "proto2";
+
+package android.stats.mobiledatadownload;
+
+option java_multiple_files = true;
+
+enum DownloadStatus {
+  UNKNOWN = 0;
+  PENDING = 1;
+  FAILED = 2;
+  DOWNLOADED = 3;
+}
\ No newline at end of file