• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2023 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.android.adservices.service.stats;
17 
18 import static com.android.adservices.service.stats.AdServicesStatsLog.AD_SERVICES_CONSENT_MIGRATED__MIGRATION_STATUS__FAILURE;
19 import static com.android.adservices.service.stats.AdServicesStatsLog.AD_SERVICES_CONSENT_MIGRATED__MIGRATION_STATUS__SUCCESS_WITH_SHARED_PREF_NOT_UPDATED;
20 import static com.android.adservices.service.stats.AdServicesStatsLog.AD_SERVICES_CONSENT_MIGRATED__MIGRATION_STATUS__SUCCESS_WITH_SHARED_PREF_UPDATED;
21 import static com.android.adservices.service.stats.AdServicesStatsLog.AD_SERVICES_CONSENT_MIGRATED__MIGRATION_STATUS__UNSPECIFIED_MIGRATION_STATUS;
22 import static com.android.adservices.service.stats.AdServicesStatsLog.AD_SERVICES_CONSENT_MIGRATED__MIGRATION_TYPE__ADEXT_SERVICE_TO_APPSEARCH;
23 import static com.android.adservices.service.stats.AdServicesStatsLog.AD_SERVICES_CONSENT_MIGRATED__MIGRATION_TYPE__ADEXT_SERVICE_TO_SYSTEM_SERVICE;
24 import static com.android.adservices.service.stats.AdServicesStatsLog.AD_SERVICES_CONSENT_MIGRATED__MIGRATION_TYPE__APPSEARCH_TO_SYSTEM_SERVICE;
25 import static com.android.adservices.service.stats.AdServicesStatsLog.AD_SERVICES_CONSENT_MIGRATED__MIGRATION_TYPE__PPAPI_TO_SYSTEM_SERVICE;
26 import static com.android.adservices.service.stats.AdServicesStatsLog.AD_SERVICES_CONSENT_MIGRATED__MIGRATION_TYPE__UNSPECIFIED_MIGRATION_TYPE;
27 
28 import com.google.auto.value.AutoValue;
29 /***
30  * Class for AdServicesConsentMigrationEvent atom
31  *
32  *  Please see go/rb-consent-migration-metrics for more details.
33  */
34 @AutoValue
35 public abstract class ConsentMigrationStats {
36     /**
37      * @return type of consent migration
38      */
getMigrationType()39     public abstract MigrationType getMigrationType();
40     /**
41      * @return status of consent migration
42      */
getMigrationStatus()43     public abstract MigrationStatus getMigrationStatus();
44     /**
45      * @return opt in/out value of measuremnt app
46      */
getMsmtConsent()47     public abstract boolean getMsmtConsent();
48     /**
49      * @return opt in/out value of topics app
50      */
getTopicsConsent()51     public abstract boolean getTopicsConsent();
52     /**
53      * @return opt in/out value of fledge app
54      */
getFledgeConsent()55     public abstract boolean getFledgeConsent();
56     /***
57      *
58      * @return region of OTA
59      */
getRegion()60     public abstract int getRegion();
61     /**
62      * @return generic builder.
63      */
builder()64     public static ConsentMigrationStats.Builder builder() {
65         return new AutoValue_ConsentMigrationStats.Builder();
66     }
67 
68     public enum MigrationType {
69         UNSPECIFIED_MIGRATION_TYPE(
70                 AD_SERVICES_CONSENT_MIGRATED__MIGRATION_TYPE__UNSPECIFIED_MIGRATION_TYPE),
71         // Migrating consent from PPAPI to system service
72         PPAPI_TO_SYSTEM_SERVICE(
73                 AD_SERVICES_CONSENT_MIGRATED__MIGRATION_TYPE__PPAPI_TO_SYSTEM_SERVICE),
74         // Migrating consent from App Search to system service
75         APPSEARCH_TO_SYSTEM_SERVICE(
76                 AD_SERVICES_CONSENT_MIGRATED__MIGRATION_TYPE__APPSEARCH_TO_SYSTEM_SERVICE),
77         // Migrating consent from AdServicesExtDataStorageService to System Server
78         ADEXT_SERVICE_TO_SYSTEM_SERVICE(
79                 AD_SERVICES_CONSENT_MIGRATED__MIGRATION_TYPE__ADEXT_SERVICE_TO_SYSTEM_SERVICE),
80         // Migrating consent from AdServicesExtDataStorageService to App Search
81         ADEXT_SERVICE_TO_APPSEARCH(
82                 AD_SERVICES_CONSENT_MIGRATED__MIGRATION_TYPE__ADEXT_SERVICE_TO_APPSEARCH);
83 
84         private final int mMigrationType;
85 
MigrationType(int migrationType)86         MigrationType(int migrationType) {
87             this.mMigrationType = migrationType;
88         }
89         /**
90          * @return Autogen enum logging value for migrationType in AdServicesConsentMigrated atom
91          */
getMigrationTypeValue()92         public int getMigrationTypeValue() {
93             return mMigrationType;
94         }
95     }
96     // Logs the Migration status
97     public enum MigrationStatus {
98         UNSPECIFIED_MIGRATION_STATUS(
99                 AD_SERVICES_CONSENT_MIGRATED__MIGRATION_STATUS__UNSPECIFIED_MIGRATION_STATUS),
100         // Consent migration unsuccessful
101         FAILURE(AD_SERVICES_CONSENT_MIGRATED__MIGRATION_STATUS__FAILURE),
102         // Consent migration successful with shared prefs updated
103         SUCCESS_WITH_SHARED_PREF_UPDATED(
104                 AD_SERVICES_CONSENT_MIGRATED__MIGRATION_STATUS__SUCCESS_WITH_SHARED_PREF_UPDATED),
105         // Consent migration successful with shared prefs not updated
106         SUCCESS_WITH_SHARED_PREF_NOT_UPDATED(
107                 AD_SERVICES_CONSENT_MIGRATED__MIGRATION_STATUS__SUCCESS_WITH_SHARED_PREF_NOT_UPDATED);
108         private final int mMigrationStatus;
109 
MigrationStatus(int migrationStatus)110         MigrationStatus(int migrationStatus) {
111             this.mMigrationStatus = migrationStatus;
112         }
113         /**
114          * @return Autogen enum logging value for migrationStatus in AdServicesConsentMigrated atom
115          */
getMigrationStatusValue()116         public int getMigrationStatusValue() {
117             return mMigrationStatus;
118         }
119     }
120     /** Builder class for {@link ConsentMigrationStats}. */
121     @AutoValue.Builder
122     public abstract static class Builder {
123         /** Set type of consent migration */
setMigrationType(MigrationType value)124         public abstract Builder setMigrationType(MigrationType value);
125         /** Set status of consent migration */
setMigrationStatus(MigrationStatus value)126         public abstract Builder setMigrationStatus(MigrationStatus value);
127         /** Set opt in/out value of measurement app */
setMsmtConsent(boolean value)128         public abstract Builder setMsmtConsent(boolean value);
129         /** Set opt in/out value of topics app */
setTopicsConsent(boolean value)130         public abstract Builder setTopicsConsent(boolean value);
131         /** Set opt in/out value of fledge app */
setFledgeConsent(boolean value)132         public abstract Builder setFledgeConsent(boolean value);
133         /** Set region of OTA */
setRegion(int value)134         public abstract Builder setRegion(int value);
135         /** build for {@link ConsentMigrationStats}. */
build()136         public abstract ConsentMigrationStats build();
137     }
138 }
139