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 
17 package com.android.adservices.data.measurement.migration;
18 
19 import android.content.ContentValues;
20 import android.net.Uri;
21 
22 import com.android.adservices.common.WebUtil;
23 import com.android.adservices.data.measurement.MeasurementTables;
24 import com.android.adservices.service.measurement.EventReport;
25 import com.android.adservices.service.measurement.EventSurfaceType;
26 import com.android.adservices.service.measurement.KeyValueData;
27 import com.android.adservices.service.measurement.Source;
28 import com.android.adservices.service.measurement.Trigger;
29 import com.android.adservices.service.measurement.aggregation.AggregateReport;
30 import com.android.adservices.service.measurement.registration.AsyncRegistration;
31 import com.android.adservices.service.measurement.util.UnsignedLong;
32 
33 import java.util.ArrayList;
34 import java.util.List;
35 
36 public class ContentValueFixtures {
37 
38     public static final Uri REGISTRATION_ORIGIN =
39             WebUtil.validUri("https://subdomain.example.test");
40 
41     public static final Uri AGGREGATION_COORDINATOR_ORIGIN =
42             WebUtil.validUri("https://coordinator.example.test");
43 
44     public static class AsyncRegistrationValues {
45         public static final String ID = "async_registration_id";
46         public static final String REGISTRATION_URI = "android-app://com.registration";
47         public static final String WEB_DESTINATION = "https://com.web.destination";
48         public static final String OS_DESTINATION = "android-app://com.os.destination";
49         public static final String VERIFIED_DESTINATION = "android-app://com.verified.destination";
50         public static final String TOP_ORIGIN = "android-app://com.top.origin";
51         public static final long REDIRECT = 2;
52         public static final long INPUT_EVENT = 1;
53         public static final String REGISTRANT = "android-app://com.registrant";
54         public static final long SCHEDULED_TIME = 8640000000L;
55         public static final long RETRY_COUNT = 4;
56         public static final long LAST_PROCESSING_TIME = 8650000000L;
57         public static final long TYPE = AsyncRegistration.RegistrationType.WEB_TRIGGER.ordinal();
58 
59         // Added in V3.
60         public static final String ENROLLMENT_ID = "enrollment-id";
61         public static final long REDIRECT_TYPE = 2;
62         public static final long REDIRECT_COUNT = 10;
63         public static final long SOURCE_TYPE = Source.SourceType.NAVIGATION.ordinal();
64         public static final long REQUEST_TIME = 8660000000L;
65         public static final long DEBUG_KEY_ALLOWED = 1;
66         public static final long AD_ID_PERMISSION = 0;
67 
68         // Added in V6.
69         public static final String REGISTRATION_ID = "registration_id";
70 
71         // Added in V13.
72         public static final String PLATFORM_AD_ID = "sample_platform_ad_id";
73 
74         // Added in V24
75         public static final String POST_BODY = "{\"ad_location\":\"bottom_right\"}";
76     }
77 
78     public static class SourceValues {
79         public static final String ID = "source_id";
80         public static final long EVENT_ID = 123L;
81         public static final String PUBLISHER = "android-app://com.publisher";
82         public static final long PUBLISHER_TYPE = 5;
83         public static final String APP_DESTINATION = "android-app://com.destination";
84         public static final String ENROLLMENT_ID = "enrollment_id";
85         public static final long EVENT_TIME = 8640000000L;
86         public static final long EXPIRY_TIME = 8640000010L;
87         public static final long PRIORITY = 100L;
88         public static final long STATUS = Source.Status.MARKED_TO_DELETE;
89         public static final String DEDUP_KEYS = "1001";
90         public static final String SOURCE_TYPE = Source.SourceType.EVENT.toString();
91         public static final String REGISTRANT = "android-app://com.registrant";
92         public static final long ATTRIBUTION_MODE = Source.AttributionMode.FALSELY;
93         public static final long INSTALL_ATTRIBUTION_WINDOW = 841839879274L;
94         public static final long INSTALL_COOLDOWN_WINDOW = 8418398274L;
95         public static final long IS_INSTALL_ATTRIBUTED = 1;
96         public static final String FILTER_DATA = "test filter data";
97         public static final String AGGREGATE_SOURCE_V2_AND_BELOW =
98                 "[{\"id\": \"campaignCounts\",\"key_piece\": \"0x159\"},"
99                         + "{\"id\": \"geoValue\",\"key_piece\": \"0x5\"}]";
100         public static final long AGGREGATE_CONTRIBUTIONS = 6;
101         public static final String WEB_DESTINATION = "https://destination.com";
102         public static final long DEBUG_KEY = 12345L;
103 
104         // Added in V3.
105         public static final String AGGREGATE_SOURCE_V3 =
106                 "{\"geoValue\":\"0x5\",\"campaignCounts\":\"0x159\"}";
107         public static final long DEBUG_REPORTING = 10;
108         public static final long AD_ID_PERMISSION = 11;
109         public static final long AR_DEBUG_PERMISSION = 12;
110 
111         // Added in V6.
112         public static final String EVENT_REPORT_DEDUP_KEY = "1001";
113         public static final String AGGREGATE_REPORT_DEDUP_KEY = "2002";
114         public static final long EVENT_REPORT_WINDOW = 400000L;
115         public static final long AGGREGATE_REPORT_WINDOW = 500000L;
116         public static final String REGISTRATION_ID = "registration_id";
117         public static final String SHARED_AGGREGATION_KEY = "shared_aggregation_key";
118         public static final long INSTALL_TIME = 8660000000L;
119         public static final String DEBUG_JOIN_KEY = "sample_debug_join_key";
120 
121         // Added in V12.
122         public static final String TRIGGER_SPECS = "sample_trigger_specs";
123         public static final int COARSE_EVENT_REPORT_DESTINATIONS = 1;
124 
125         // Added in V13.
126         public static final String PLATFORM_AD_ID = "sample_platform_ad_id";
127         public static final String DEBUG_AD_ID = "sample_debug_ad_id";
128 
129         // Added in V14
130         public static final Uri REGISTRATION_ORIGIN = ContentValueFixtures.REGISTRATION_ORIGIN;
131 
132         // Added in V15
133         public static final int MAX_BUCKET_INCREMENTS = 3;
134         public static final String EVENT_ATTRIBUTION_STATUS =
135                 "{\"trigger_id\": 123,\"priority\": 10, \"value\": 2}";
136 
137         public static final String PRIVACY_PARAMETERS = "{\"flip_probability\":0.0023}";
138         // Added in V19
139         public static final int MAX_EVENT_LEVEL_REPORTS = 3;
140         public static final String EVENT_REPORT_WINDOWS = "{'end_times': [12, 123]}";
141         public static final long SHARED_DEBUG_KEY = 2345L;
142 
143         // Added in V22
144         public static final String SHARED_FILTER_DATA_KEYS = "shared_filter_data_keys";
145 
146         // Added in V30
147         public static final String TRIGGER_DATA_MATCHING = Source.TriggerDataMatching.EXACT.name();
148 
149         // Added in V34
150         public static final long ATTRIBUTION_SCOPE_LIMIT = 10L;
151         public static final long MAX_EVENT_STATES = 1000L;
152 
153         // Added in V36
154         public static final long REINSTALL_REATTRIBUTION_WINDOW = 841839879274L;
155 
156         // Added in V38
157         public static final long DESTINATION_LIMIT_PRIORITY = 10L;
158 
159         // Added in V39
160         public static final String TRIGGER_DATA = "24,1";
161 
162         // Added in V40
163         public static final Double EVENT_LEVEL_EPSILON = 14D;
164 
165         // Added in V43
166         public static final String AGGREGATE_DEBUG_REPORT =
167                 "{\"budget\":1024,\"key_piece\":\"0x1\",\"debug_data\":[{\"types\":"
168                     + " [\"source-destination-limit\"],\"key_piece\": \"0x123\",\"value\": 123}],"
169                     + "\"aggregation_coordinator_origin\":\"https://coordinator.example.test\"}";
170         public static final long AGGREGATE_DEBUG_REPORT_CONTRIBUTIONS = 100L;
171     }
172 
173     public static class SourceDestinationValues {
174         // SOURCE_ID can be referenced from SourceValues.ID
175         public static final String DESTINATION = "https://destination.test";
176         public static final int DESTINATION_TYPE = 1;
177     }
178 
179     public static class TriggerValues {
180         public static final String ID = "trigger_id";
181         public static final String ATTRIBUTION_DESTINATION = "android-app://com.destination";
182         public static final long DESTINATION_TYPE = EventSurfaceType.WEB;
183         public static final String ENROLLMENT_ID = "enrollment_id";
184         public static final long TRIGGER_TIME = 8630000000L;
185         public static final String FILTERS_V2_AND_BELOW = "{\"id1\":[\"val11\",\"val12\"]}";
186         public static final String EVENT_TRIGGERS_V2_AND_BELOW =
187                 "[{\"trigger_data\":2,\"filters\":"
188                         + FILTERS_V2_AND_BELOW
189                         + ",\"not_filters\":"
190                         + FILTERS_V2_AND_BELOW
191                         + "},"
192                         + "{\"priority\":100}]";
193         public static final long STATUS = Trigger.Status.MARKED_TO_DELETE;
194         public static final String REGISTRANT = "android-app://com.registrant";
195         public static final String AGGREGATE_TRIGGER_DATA_V2_AND_BELOW =
196                 "[{\"key_piece\":\"0x400\",\"source_keys\":[\"key11\"],"
197                         + "\"filters\":"
198                         + FILTERS_V2_AND_BELOW
199                         + ",\"not_filters\":"
200                         + FILTERS_V2_AND_BELOW
201                         + "}]";
202         public static final String AGGREGATE_VALUES =
203                 "{" + "\"campaignCounts\":32768," + "\"geoValue\":1664" + "}";
204         public static final long DEBUG_KEY = 27836L;
205 
206         // Added in V3
207         public static final String NOT_FILTERS = "{\"id2\":[\"val21\",\"val22\"]}";
208         public static final String FILTERS_V3 = "[" + FILTERS_V2_AND_BELOW + "]";
209         public static final String EVENT_TRIGGERS_V3 =
210                 "[{\"trigger_data\":2,\"filters\":"
211                         + FILTERS_V3
212                         + ",\"not_filters\":"
213                         + FILTERS_V3
214                         + "},"
215                         + "{\"priority\":100,\"trigger_data\":\"0\"}]";
216         public static final String AGGREGATE_TRIGGER_DATA_V3 =
217                 "[{\"key_piece\":\"0x400\",\"source_keys\":[\"key11\"],"
218                         + "\"filters\":"
219                         + FILTERS_V3
220                         + ",\"not_filters\":"
221                         + FILTERS_V3
222                         + "}]";
223         public static final long DEBUG_REPORTING = 10;
224         public static final long AD_ID_PERMISSION = 11;
225         public static final long AR_DEBUG_PERMISSION = 12;
226 
227         // Added in V6.
228         public static final String ATTRIBUTION_CONFIG = "attribution_config";
229         public static final String X_NETWORK_KEY_MAPPING = "x_network_key_mapping";
230         public static final String AGGREGATABLE_DEDUPLICATION_KEYS =
231                 "aggregatable_deduplication_keys";
232         public static final String DEBUG_JOIN_KEY = "sample_debug_join_key";
233 
234         // Added in V13.
235         public static final String PLATFORM_AD_ID = "sample_platform_ad_id";
236         public static final String DEBUG_AD_ID = "sample_debug_ad_id";
237 
238         // Added in V14
239         public static final Uri REGISTRATION_ORIGIN = ContentValueFixtures.REGISTRATION_ORIGIN;
240 
241         // Added in V20.
242         public static final Uri AGGREGATION_COORDINATOR_ORIGIN =
243                 ContentValueFixtures.AGGREGATION_COORDINATOR_ORIGIN;
244 
245         // Added in V32
246         public static final String AGGREGATABLE_SOURCE_REGISTRATION_TIME =
247                 Trigger.SourceRegistrationTimeConfig.INCLUDE.name();
248 
249         // Added in V33
250         public static final String TRIGGER_CONTEXT_ID = "sample_trigger_context_id";
251 
252         // Added in V33
253         public static final String ATTRIBUTION_SCOPE = "sample_attribution_scope";
254 
255         // Added in V42
256         public static final int AGGREGATABLE_FILTERING_ID_MAX_BYTES = 1;
257 
258         // Added in V43
259         public static final String AGGREGATE_DEBUG_REPORT =
260                 "{\"budget\":1024,\"key_piece\":\"0x1\",\"debug_data\":[{\"types\":"
261                     + " [\"source-destination-limit\"],\"key_piece\": \"0x123\",\"value\": 123}],"
262                     + "\"aggregation_coordinator_origin\":\"https://coordinator.example.test\"}";
263 
264         // Added in V45
265         public static final String NAMED_BUDGETS =
266                 "{\"name\": \"biddable\", \"filters\": { \"2\": [\"1234\", "
267                         + "\"234\"]}, \"not_filters\": { \"1\": [\"78\", \"891\"]}}";
268     }
269 
270     public static class AttributionValues {
271         public static final String ID = "attribution_id";
272         public static final String SOURCE_SITE = "android-app://com.source-site";
273         public static final String SOURCE_ORIGIN = "android-app://com.source-origin";
274         public static final String DESTINATION_SITE = "android-app://com.destination-site";
275         public static final String DESTINATION_ORIGIN = "android-app://com.destination-origin";
276         public static final String ENROLLMENT_ID = "enrollment_id";
277         public static final long TRIGGER_TIME = 8630000000L;
278         public static final String REGISTRANT = "android-app://com.registrant";
279 
280         // Added in V3.
281         public static final String SOURCE_ID = "source_id";
282         public static final String TRIGGER_ID = "trigger_id";
283 
284         // Added in V25
285         public static final Uri REGISTRATION_ORIGIN = ContentValueFixtures.REGISTRATION_ORIGIN;
286 
287         // Added in V29
288         public static final int SCOPE = 0;
289 
290         // Added in V34
291         public static final String REPORT_ID = "report_id";
292     }
293 
294     public static class EventReportValues {
295         public static final String ID = "event_report_id";
296         public static final long SOURCE_ID_V2_AND_BELOW = 123L;
297         public static final String ENROLLMENT_ID = "enrollment_id";
298         public static final String ATTRIBUTION_DESTINATION = "android-app://com.destination";
299         public static final long REPORT_TIME = 8640000000L;
300         public static final long TRIGGER_DATA = 1;
301         public static final long TRIGGER_PRIORITY = 100L;
302         public static final long TRIGGER_DEDUP_KEY = 56;
303         public static final long TRIGGER_TIME = 8630000000L;
304         public static final long STATUS = EventReport.Status.MARKED_TO_DELETE;
305         public static final String SOURCE_TYPE = Source.SourceType.EVENT.toString();
306         public static final double RANDOMIZED_TRIGGER_RATE = 0.0000025F;
307 
308         // Added in V2
309         public static final long SOURCE_DEBUG_KEY = 12345L;
310         public static final long TRIGGER_DEBUG_KEY = 34567L;
311 
312         // Added in V3
313         public static final long SOURCE_EVENT_ID = SOURCE_ID_V2_AND_BELOW;
314         public static final String SOURCE_ID_V3 = "source_id";
315         public static final String TRIGGER_ID = "trigger_id";
316         public static final long DEBUG_REPORT_STATUS = 4;
317         // Added in V14
318         public static final Uri REGISTRATION_ORIGIN = ContentValueFixtures.REGISTRATION_ORIGIN;
319 
320         // Added in V23
321         public static final String TRIGGER_SUMMARY_BUCKET = "1,3";
322 
323         // Added in V28
324         public static final String TRIGGER_DEBUG_KEYS = "9223372036854775809,15";
325     }
326 
327     public static class AggregateReportValues {
328         public static final String ID = "aggregate_report_id";
329         public static final String PUBLISHER = "android-app://com.publisher";
330         public static final String ATTRIBUTION_DESTINATION = "android-app://com.destination";
331         public static final long SOURCE_REGISTRATION_TIME = 8640000000L;
332         public static final long SCHEDULED_REPORT_TIME = 8640000200L;
333         public static final String ENROLLMENT_ID = "enrollment_id";
334         public static final String DEBUG_CLEARTEXT_PAYLOAD = "payload";
335         public static final long STATUS = AggregateReport.Status.MARKED_TO_DELETE;
336         public static final String API_VERSION = "api_version";
337 
338         // Added in V2
339         public static final long SOURCE_DEBUG_KEY = 12345L;
340         public static final long TRIGGER_DEBUG_KEY = 34567L;
341 
342         // Added in V3.
343         public static final String SOURCE_ID = "source_id";
344         public static final String TRIGGER_ID = "trigger_id";
345         public static final long DEBUG_REPORT_STATUS = 4;
346 
347         // Added in V9
348         public static final UnsignedLong DEDUP_KEY = new UnsignedLong(12L);
349         // Added in V14
350         public static final Uri REGISTRATION_ORIGIN = ContentValueFixtures.REGISTRATION_ORIGIN;
351 
352         // Added in V20
353         public static final Uri AGGREGATION_COORDINATOR_ORIGIN =
354                 ContentValueFixtures.AGGREGATION_COORDINATOR_ORIGIN;
355 
356         // Added in V27
357         public static final int IS_FAKE_REPORT = 0;
358 
359         // Added in V33
360         public static final String TRIGGER_CONTEXT_ID = "trigger_context_id";
361 
362         // Added in V41
363         public static final long TRIGGER_TIME = 8630000000L;
364 
365         // Added in V43
366         public static final String API = "attribution-reporting";
367 
368         // Added in V44
369         public static final Integer AGGREGATABLE_FILTERING_ID_MAX_BYTES = 1;
370     }
371 
372     public static class AggregateEncryptionKeyValues {
373         public static final String ID = "aggregate_encryption_key_id";
374         public static final String KEY_ID = "key_id";
375         public static final String PUBLIC_KEY = "public_key";
376         public static final long EXPIRY = 8640000000L;
377         // Added in V20
378         public static final Uri AGGREGATION_COORDINATOR_ORIGIN =
379                 ContentValueFixtures.AGGREGATION_COORDINATOR_ORIGIN;
380     }
381 
382     public static class DebugReportValues {
383         // Added in V3.
384         public static final String ID = "debug_report_id";
385         public static final String TYPE = "source-noised";
386         public static final String BODY = "{\"source_event_id\":\"123\"}";
387         public static final String ENROLLMENT_ID = "enrollment_id";
388         public static final Uri REGISTRATION_ORIGIN = ContentValueFixtures.REGISTRATION_ORIGIN;
389         public static final String REFERENCE_ID = "reference_id";
390     }
391 
392     public static class XnaIgnoredSourcesValues {
393         // Added in V6.
394         public static final String SOURCE_ID = "source_id";
395         public static final String ENROLLMENT_ID = "enrollment_id";
396     }
397 
398     public static class KeyValueDataValues {
399         // REGISTRATION_REDIRECT_COUNT - RR
400         public static final String RR_KEY = "reg_key";
401         public static final KeyValueData.DataType RR_DATATYPE =
402                 KeyValueData.DataType.REGISTRATION_REDIRECT_COUNT;
403         public static final String RR_VALUE = "value";
404 
405         // AGGREGATE_REPORT_RETRY_COUNT - AR
406         public static final String AR_KEY = "agg_key";
407         public static final KeyValueData.DataType AR_DATATYPE =
408                 KeyValueData.DataType.AGGREGATE_REPORT_RETRY_COUNT;
409         public static final String AR_VALUE = "1";
410 
411         // EVENT_REPORT_RETRY_COUNT - ER
412         public static final String ER_KEY = "event_key";
413         public static final KeyValueData.DataType ER_DATATYPE =
414                 KeyValueData.DataType.EVENT_REPORT_RETRY_COUNT;
415         public static final String ER_VALUE = "1";
416 
417         // DEBUG_REPORT_RETRY_COUNT - DR
418         public static final String DEBUG_KEY = "debug_key";
419         public static final KeyValueData.DataType DR_DATATYPE =
420                 KeyValueData.DataType.DEBUG_REPORT_RETRY_COUNT;
421         public static final String DR_VALUE = "1";
422     }
423 
generateAsyncRegistrationContentValuesV1()424     public static ContentValues generateAsyncRegistrationContentValuesV1() {
425         ContentValues asyncRegistration = new ContentValues();
426 
427         asyncRegistration.put(
428                 MeasurementTables.AsyncRegistrationContract.ID, AsyncRegistrationValues.ID);
429         asyncRegistration.put(
430                 MeasurementTables.AsyncRegistrationContract.REGISTRATION_URI,
431                 AsyncRegistrationValues.REGISTRATION_URI);
432         asyncRegistration.put(
433                 MeasurementTables.AsyncRegistrationContract.WEB_DESTINATION,
434                 AsyncRegistrationValues.WEB_DESTINATION);
435         asyncRegistration.put(
436                 MeasurementTables.AsyncRegistrationContract.OS_DESTINATION,
437                 AsyncRegistrationValues.OS_DESTINATION);
438         asyncRegistration.put(
439                 MeasurementTables.AsyncRegistrationContract.VERIFIED_DESTINATION,
440                 AsyncRegistrationValues.VERIFIED_DESTINATION);
441         asyncRegistration.put(
442                 MeasurementTables.AsyncRegistrationContract.TOP_ORIGIN,
443                 AsyncRegistrationValues.TOP_ORIGIN);
444         asyncRegistration.put(
445                 MeasurementTablesDeprecated.AsyncRegistration.REDIRECT,
446                 AsyncRegistrationValues.REDIRECT);
447         asyncRegistration.put(
448                 MeasurementTablesDeprecated.AsyncRegistration.INPUT_EVENT,
449                 AsyncRegistrationValues.INPUT_EVENT);
450         asyncRegistration.put(
451                 MeasurementTables.AsyncRegistrationContract.REGISTRANT,
452                 AsyncRegistrationValues.REGISTRANT);
453         asyncRegistration.put(
454                 MeasurementTablesDeprecated.AsyncRegistration.SCHEDULED_TIME,
455                 AsyncRegistrationValues.SCHEDULED_TIME);
456         asyncRegistration.put(
457                 MeasurementTables.AsyncRegistrationContract.RETRY_COUNT,
458                 AsyncRegistrationValues.RETRY_COUNT);
459         asyncRegistration.put(
460                 MeasurementTablesDeprecated.AsyncRegistration.LAST_PROCESSING_TIME,
461                 AsyncRegistrationValues.LAST_PROCESSING_TIME);
462         asyncRegistration.put(
463                 MeasurementTables.AsyncRegistrationContract.TYPE, AsyncRegistrationValues.TYPE);
464 
465         return asyncRegistration;
466     }
467 
generateAsyncRegistrationContentValuesV2()468     public static ContentValues generateAsyncRegistrationContentValuesV2() {
469         // No differences in async registration fields between V1 and V2.
470         return generateAsyncRegistrationContentValuesV1();
471     }
472 
generateAsyncRegistrationContentValuesV3()473     public static ContentValues generateAsyncRegistrationContentValuesV3() {
474         ContentValues asyncRegistration = generateAsyncRegistrationContentValuesV2();
475 
476         // Remove columns.
477         asyncRegistration.remove(MeasurementTablesDeprecated.AsyncRegistration.REDIRECT);
478         asyncRegistration.remove(MeasurementTablesDeprecated.AsyncRegistration.INPUT_EVENT);
479         asyncRegistration.remove(MeasurementTablesDeprecated.AsyncRegistration.SCHEDULED_TIME);
480 
481         // Add columns.
482         asyncRegistration.put(
483                 MeasurementTablesDeprecated.AsyncRegistration.ENROLLMENT_ID,
484                 AsyncRegistrationValues.ENROLLMENT_ID);
485         asyncRegistration.put(
486                 MeasurementTablesDeprecated.AsyncRegistration.REDIRECT_TYPE,
487                 AsyncRegistrationValues.REDIRECT_TYPE);
488         asyncRegistration.put(
489                 MeasurementTablesDeprecated.AsyncRegistration.REDIRECT_COUNT,
490                 AsyncRegistrationValues.REDIRECT_COUNT);
491         asyncRegistration.put(
492                 MeasurementTables.AsyncRegistrationContract.SOURCE_TYPE,
493                 AsyncRegistrationValues.SOURCE_TYPE);
494         asyncRegistration.put(
495                 MeasurementTables.AsyncRegistrationContract.REQUEST_TIME,
496                 AsyncRegistrationValues.REQUEST_TIME);
497         asyncRegistration.put(
498                 MeasurementTables.AsyncRegistrationContract.DEBUG_KEY_ALLOWED,
499                 AsyncRegistrationValues.DEBUG_KEY_ALLOWED);
500         asyncRegistration.put(
501                 MeasurementTables.AsyncRegistrationContract.AD_ID_PERMISSION,
502                 AsyncRegistrationValues.AD_ID_PERMISSION);
503 
504         return asyncRegistration;
505     }
506 
generateAsyncRegistrationContentValuesV6()507     public static ContentValues generateAsyncRegistrationContentValuesV6() {
508         ContentValues values = generateAsyncRegistrationContentValuesV3();
509         values.put(
510                 MeasurementTables.AsyncRegistrationContract.REGISTRATION_ID,
511                 AsyncRegistrationValues.REGISTRATION_ID);
512         return values;
513     }
514 
generateAsyncRegistrationContentValuesV7()515     public static ContentValues generateAsyncRegistrationContentValuesV7() {
516         return generateAsyncRegistrationContentValuesV6();
517     }
518 
generateAsyncRegistrationContentValuesV8()519     public static ContentValues generateAsyncRegistrationContentValuesV8() {
520         return generateAsyncRegistrationContentValuesV7();
521     }
522 
generateAsyncRegistrationContentValuesV9()523     public static ContentValues generateAsyncRegistrationContentValuesV9() {
524         return generateAsyncRegistrationContentValuesV8();
525     }
526 
generateAsyncRegistrationContentValuesV10()527     public static ContentValues generateAsyncRegistrationContentValuesV10() {
528         return generateAsyncRegistrationContentValuesV9();
529     }
530 
generateAsyncRegistrationContentValuesV11()531     public static ContentValues generateAsyncRegistrationContentValuesV11() {
532         ContentValues asyncRegistration = generateAsyncRegistrationContentValuesV10();
533         asyncRegistration.remove(MeasurementTablesDeprecated.AsyncRegistration.ENROLLMENT_ID);
534         asyncRegistration.remove(MeasurementTablesDeprecated.AsyncRegistration.REDIRECT_TYPE);
535         asyncRegistration.remove(MeasurementTablesDeprecated.AsyncRegistration.REDIRECT_COUNT);
536         asyncRegistration.remove(
537                 MeasurementTablesDeprecated.AsyncRegistration.LAST_PROCESSING_TIME);
538         return asyncRegistration;
539     }
540 
generateAsyncRegistrationContentValuesV12()541     public static ContentValues generateAsyncRegistrationContentValuesV12() {
542         return generateAsyncRegistrationContentValuesV11();
543     }
544 
generateAsyncRegistrationContentValuesV13()545     public static ContentValues generateAsyncRegistrationContentValuesV13() {
546         ContentValues asyncRegistration = generateAsyncRegistrationContentValuesV12();
547         asyncRegistration.put(
548                 MeasurementTables.AsyncRegistrationContract.PLATFORM_AD_ID,
549                 AsyncRegistrationValues.PLATFORM_AD_ID);
550         return asyncRegistration;
551     }
552 
generateAsyncRegistrationContentValuesV14()553     public static ContentValues generateAsyncRegistrationContentValuesV14() {
554         return generateAsyncRegistrationContentValuesV13();
555     }
556 
generateAsyncRegistrationContentValuesV15()557     public static ContentValues generateAsyncRegistrationContentValuesV15() {
558         return generateAsyncRegistrationContentValuesV14();
559     }
560 
generateAsyncRegistrationContentValuesV16()561     public static ContentValues generateAsyncRegistrationContentValuesV16() {
562         return generateAsyncRegistrationContentValuesV15();
563     }
564 
generateAsyncRegistrationContentValuesV17()565     public static ContentValues generateAsyncRegistrationContentValuesV17() {
566         return generateAsyncRegistrationContentValuesV16();
567     }
568 
generateAsyncRegistrationContentValuesV18()569     public static ContentValues generateAsyncRegistrationContentValuesV18() {
570         return generateAsyncRegistrationContentValuesV17();
571     }
572 
generateAsyncRegistrationContentValuesV19()573     public static ContentValues generateAsyncRegistrationContentValuesV19() {
574         return generateAsyncRegistrationContentValuesV18();
575     }
576 
generateAsyncRegistrationContentValuesV20()577     public static ContentValues generateAsyncRegistrationContentValuesV20() {
578         return generateAsyncRegistrationContentValuesV19();
579     }
580 
generateAsyncRegistrationContentValuesV21()581     public static ContentValues generateAsyncRegistrationContentValuesV21() {
582         return generateAsyncRegistrationContentValuesV20();
583     }
584 
generateAsyncRegistrationContentValuesV22()585     public static ContentValues generateAsyncRegistrationContentValuesV22() {
586         return generateAsyncRegistrationContentValuesV21();
587     }
588 
generateAsyncRegistrationContentValuesV23()589     public static ContentValues generateAsyncRegistrationContentValuesV23() {
590         return generateAsyncRegistrationContentValuesV22();
591     }
592 
generateAsyncRegistrationContentValuesV24()593     public static ContentValues generateAsyncRegistrationContentValuesV24() {
594         ContentValues asyncRegistration = generateAsyncRegistrationContentValuesV23();
595         asyncRegistration.put(
596                 MeasurementTables.AsyncRegistrationContract.REQUEST_POST_BODY,
597                 AsyncRegistrationValues.POST_BODY);
598         return asyncRegistration;
599     }
600 
601     /**
602      * Get content values for V31 migration
603      *
604      * @return ContentValues for AsyncRegistration table
605      */
generateAsyncRegistrationContentValuesV31()606     public static ContentValues generateAsyncRegistrationContentValuesV31() {
607         return generateAsyncRegistrationContentValuesV24();
608     }
609 
generateSourceContentValuesV1()610     public static ContentValues generateSourceContentValuesV1() {
611         ContentValues source = new ContentValues();
612 
613         source.put(MeasurementTables.SourceContract.ID, SourceValues.ID);
614         source.put(MeasurementTables.SourceContract.EVENT_ID, SourceValues.EVENT_ID);
615         source.put(MeasurementTables.SourceContract.PUBLISHER, SourceValues.PUBLISHER);
616         source.put(MeasurementTables.SourceContract.PUBLISHER_TYPE, SourceValues.PUBLISHER_TYPE);
617         source.put(
618                 MeasurementTablesDeprecated.SourceContract.APP_DESTINATION,
619                 SourceValues.APP_DESTINATION);
620         source.put(MeasurementTables.SourceContract.ENROLLMENT_ID, SourceValues.ENROLLMENT_ID);
621         source.put(MeasurementTables.SourceContract.EVENT_TIME, SourceValues.EVENT_TIME);
622         source.put(MeasurementTables.SourceContract.EXPIRY_TIME, SourceValues.EXPIRY_TIME);
623         source.put(MeasurementTables.SourceContract.PRIORITY, SourceValues.PRIORITY);
624         source.put(MeasurementTables.SourceContract.STATUS, SourceValues.STATUS);
625         source.put(MeasurementTablesDeprecated.SourceContract.DEDUP_KEYS, SourceValues.DEDUP_KEYS);
626         source.put(MeasurementTables.SourceContract.SOURCE_TYPE, SourceValues.SOURCE_TYPE);
627         source.put(MeasurementTables.SourceContract.REGISTRANT, SourceValues.REGISTRANT);
628         source.put(
629                 MeasurementTables.SourceContract.ATTRIBUTION_MODE, SourceValues.ATTRIBUTION_MODE);
630         source.put(
631                 MeasurementTables.SourceContract.INSTALL_ATTRIBUTION_WINDOW,
632                 SourceValues.INSTALL_ATTRIBUTION_WINDOW);
633         source.put(
634                 MeasurementTables.SourceContract.INSTALL_COOLDOWN_WINDOW,
635                 SourceValues.INSTALL_COOLDOWN_WINDOW);
636         source.put(
637                 MeasurementTables.SourceContract.IS_INSTALL_ATTRIBUTED,
638                 SourceValues.IS_INSTALL_ATTRIBUTED);
639         source.put(MeasurementTables.SourceContract.FILTER_DATA, SourceValues.FILTER_DATA);
640         source.put(
641                 MeasurementTables.SourceContract.AGGREGATE_SOURCE,
642                 SourceValues.AGGREGATE_SOURCE_V2_AND_BELOW);
643         source.put(
644                 MeasurementTables.SourceContract.AGGREGATE_CONTRIBUTIONS,
645                 SourceValues.AGGREGATE_CONTRIBUTIONS);
646         source.put(MeasurementTablesDeprecated.SourceContract.WEB_DESTINATION,
647                 SourceValues.WEB_DESTINATION);
648         source.put(MeasurementTables.SourceContract.DEBUG_KEY, SourceValues.DEBUG_KEY);
649 
650         return source;
651     }
652 
generateSourceContentValuesV2()653     public static ContentValues generateSourceContentValuesV2() {
654         // No differences in source fields between V1 and V2.
655         return generateSourceContentValuesV1();
656     }
657 
generateSourceContentValuesV3()658     public static ContentValues generateSourceContentValuesV3() {
659         ContentValues source = generateSourceContentValuesV2();
660 
661         // Update columns.
662         source.put(
663                 MeasurementTables.SourceContract.AGGREGATE_SOURCE,
664                 SourceValues.AGGREGATE_SOURCE_V3);
665 
666         // Add columns.
667         source.put(MeasurementTables.SourceContract.DEBUG_REPORTING, SourceValues.DEBUG_REPORTING);
668         source.put(
669                 MeasurementTables.SourceContract.AD_ID_PERMISSION, SourceValues.AD_ID_PERMISSION);
670         source.put(
671                 MeasurementTables.SourceContract.AR_DEBUG_PERMISSION,
672                 SourceValues.AR_DEBUG_PERMISSION);
673 
674         return source;
675     }
676 
generateSourceContentValuesV6()677     public static ContentValues generateSourceContentValuesV6() {
678         ContentValues values = generateSourceContentValuesV3();
679 
680         // Rename dedup key column
681         values.remove(MeasurementTablesDeprecated.SourceContract.DEDUP_KEYS);
682         values.put(
683                 MeasurementTables.SourceContract.EVENT_REPORT_DEDUP_KEYS,
684                 SourceValues.EVENT_REPORT_DEDUP_KEY);
685 
686         // Add new columns
687         values.put(
688                 MeasurementTables.SourceContract.AGGREGATE_REPORT_DEDUP_KEYS,
689                 SourceValues.AGGREGATE_REPORT_DEDUP_KEY);
690         values.put(
691                 MeasurementTables.SourceContract.EVENT_REPORT_WINDOW,
692                 SourceValues.EVENT_REPORT_WINDOW);
693         values.put(
694                 MeasurementTables.SourceContract.AGGREGATABLE_REPORT_WINDOW,
695                 SourceValues.AGGREGATE_REPORT_WINDOW);
696         values.put(MeasurementTables.SourceContract.REGISTRATION_ID, SourceValues.REGISTRATION_ID);
697         values.put(
698                 MeasurementTables.SourceContract.SHARED_AGGREGATION_KEYS,
699                 SourceValues.SHARED_AGGREGATION_KEY);
700         values.put(MeasurementTables.SourceContract.INSTALL_TIME, SourceValues.INSTALL_TIME);
701 
702         return values;
703     }
704 
generateSourceContentValuesV7()705     public static ContentValues generateSourceContentValuesV7() {
706         return generateSourceContentValuesV6();
707     }
708 
generateSourceContentValuesV8()709     public static ContentValues generateSourceContentValuesV8() {
710         ContentValues values = generateSourceContentValuesV7();
711         values.put(MeasurementTables.SourceContract.DEBUG_JOIN_KEY, SourceValues.DEBUG_JOIN_KEY);
712         return values;
713     }
714 
generateSourceContentValuesV9()715     public static ContentValues generateSourceContentValuesV9() {
716         ContentValues values = generateSourceContentValuesV8();
717         values.remove(MeasurementTablesDeprecated.SourceContract.APP_DESTINATION);
718         values.remove(MeasurementTablesDeprecated.SourceContract.WEB_DESTINATION);
719         return values;
720     }
721 
generateSourceContentValuesV10()722     public static ContentValues generateSourceContentValuesV10() {
723         return generateSourceContentValuesV9();
724     }
725 
generateSourceContentValuesV11()726     public static ContentValues generateSourceContentValuesV11() {
727         return generateSourceContentValuesV10();
728     }
729 
generateSourceContentValuesV12()730     public static ContentValues generateSourceContentValuesV12() {
731         ContentValues values = generateSourceContentValuesV11();
732         values.put(MeasurementTables.SourceContract.TRIGGER_SPECS, SourceValues.TRIGGER_SPECS);
733         values.put(
734                 MeasurementTablesDeprecated.SourceContract.MAX_BUCKET_INCREMENTS,
735                 SourceValues.MAX_BUCKET_INCREMENTS);
736         return values;
737     }
738 
generateSourceContentValuesV13()739     public static ContentValues generateSourceContentValuesV13() {
740         ContentValues values = generateSourceContentValuesV12();
741         values.put(MeasurementTables.SourceContract.PLATFORM_AD_ID, SourceValues.PLATFORM_AD_ID);
742         values.put(MeasurementTables.SourceContract.DEBUG_AD_ID, SourceValues.DEBUG_AD_ID);
743         return values;
744     }
745 
generateSourceContentValuesV14()746     public static ContentValues generateSourceContentValuesV14() {
747         ContentValues values = generateSourceContentValuesV13();
748         values.put(
749                 MeasurementTables.SourceContract.REGISTRATION_ORIGIN,
750                 SourceValues.REGISTRATION_ORIGIN.toString());
751         return values;
752     }
753 
generateSourceContentValuesV15()754     public static ContentValues generateSourceContentValuesV15() {
755         return generateSourceContentValuesV14();
756     }
757 
generateSourceContentValuesV16()758     public static ContentValues generateSourceContentValuesV16() {
759         ContentValues values = generateSourceContentValuesV15();
760         values.put(
761                 MeasurementTables.SourceContract.COARSE_EVENT_REPORT_DESTINATIONS,
762                 SourceValues.COARSE_EVENT_REPORT_DESTINATIONS);
763         return values;
764     }
765 
generateSourceContentValuesV17()766     public static ContentValues generateSourceContentValuesV17() {
767         ContentValues values = generateSourceContentValuesV16();
768         return values;
769     }
770 
generateSourceContentValuesV18()771     public static ContentValues generateSourceContentValuesV18() {
772         ContentValues values = generateSourceContentValuesV17();
773         values.put(
774                 MeasurementTables.SourceContract.EVENT_ATTRIBUTION_STATUS,
775                 SourceValues.EVENT_ATTRIBUTION_STATUS);
776         values.put(
777                 MeasurementTables.SourceContract.PRIVACY_PARAMETERS,
778                 SourceValues.PRIVACY_PARAMETERS);
779         return values;
780     }
781 
generateSourceContentValuesV19()782     public static ContentValues generateSourceContentValuesV19() {
783         ContentValues values = generateSourceContentValuesV18();
784         values.remove(MeasurementTablesDeprecated.SourceContract.MAX_BUCKET_INCREMENTS);
785         values.put(
786                 MeasurementTables.SourceContract.MAX_EVENT_LEVEL_REPORTS,
787                 SourceValues.MAX_EVENT_LEVEL_REPORTS);
788         values.put(
789                 MeasurementTables.SourceContract.EVENT_REPORT_WINDOWS,
790                 SourceValues.EVENT_REPORT_WINDOWS);
791         return values;
792     }
793 
generateSourceContentValuesV20()794     public static ContentValues generateSourceContentValuesV20() {
795         return generateSourceContentValuesV19();
796     }
797 
generateSourceContentValuesV21()798     public static ContentValues generateSourceContentValuesV21() {
799         ContentValues values = generateSourceContentValuesV20();
800         values.put(
801                 MeasurementTables.SourceContract.SHARED_DEBUG_KEY, SourceValues.SHARED_DEBUG_KEY);
802         return values;
803     }
804 
generateSourceContentValuesV22()805     public static ContentValues generateSourceContentValuesV22() {
806         ContentValues values = generateSourceContentValuesV21();
807         values.put(
808                 MeasurementTables.SourceContract.SHARED_FILTER_DATA_KEYS,
809                 SourceValues.SHARED_FILTER_DATA_KEYS);
810         return values;
811     }
812 
813     /** Returns content values for source version 29 */
generateSourceContentValuesV29()814     public static ContentValues generateSourceContentValuesV29() {
815         return generateSourceContentValuesV22();
816     }
817 
818     /** Returns content values for source version 30 */
generateSourceContentValuesV30()819     public static ContentValues generateSourceContentValuesV30() {
820         ContentValues values = generateSourceContentValuesV29();
821         values.put(
822                 MeasurementTables.SourceContract.TRIGGER_DATA_MATCHING,
823                 SourceValues.TRIGGER_DATA_MATCHING);
824         return values;
825     }
826 
827     /** Returns content values for source version 32 */
generateSourceContentValuesV32()828     public static ContentValues generateSourceContentValuesV32() {
829         return generateSourceContentValuesV30();
830     }
831 
832     /** Returns content values for source version 33 */
generateSourceContentValuesV33()833     public static ContentValues generateSourceContentValuesV33() {
834         return generateSourceContentValuesV32();
835     }
836 
837     /** Returns content values for source version 34 */
generateSourceContentValuesV34()838     public static ContentValues generateSourceContentValuesV34() {
839         ContentValues values = generateSourceContentValuesV33();
840         values.put(
841                 MeasurementTables.SourceContract.ATTRIBUTION_SCOPE_LIMIT,
842                 SourceValues.ATTRIBUTION_SCOPE_LIMIT);
843         values.put(
844                 MeasurementTables.SourceContract.MAX_EVENT_STATES, SourceValues.MAX_EVENT_STATES);
845         return values;
846     }
847 
848     /** Returns content values for source version 35 */
generateSourceContentValuesV35()849     public static ContentValues generateSourceContentValuesV35() {
850         return generateSourceContentValuesV34();
851     }
852 
853     /** Returns content values for source version 36 */
generateSourceContentValuesV36()854     public static ContentValues generateSourceContentValuesV36() {
855         ContentValues values = generateSourceContentValuesV35();
856         values.put(
857                 MeasurementTables.SourceContract.REINSTALL_REATTRIBUTION_WINDOW,
858                 SourceValues.REINSTALL_REATTRIBUTION_WINDOW);
859         return values;
860     }
861 
862     /** Returns content values for source version 37 */
generateSourceContentValuesV37()863     public static ContentValues generateSourceContentValuesV37() {
864         return generateSourceContentValuesV36();
865     }
866 
867     /** Returns content values for source version 38 */
generateSourceContentValuesV38()868     public static ContentValues generateSourceContentValuesV38() {
869         ContentValues values = generateSourceContentValuesV37();
870         values.put(
871                 MeasurementTables.SourceContract.DESTINATION_LIMIT_PRIORITY,
872                 SourceValues.DESTINATION_LIMIT_PRIORITY);
873         return values;
874     }
875 
876     /** Returns content values for source version 39 */
generateSourceContentValuesV39()877     public static ContentValues generateSourceContentValuesV39() {
878         ContentValues values = generateSourceContentValuesV38();
879         values.put(
880                 MeasurementTables.SourceContract.TRIGGER_DATA,
881                 SourceValues.TRIGGER_DATA);
882         return values;
883     }
884 
885     /** Returns content values for source version 40 */
generateSourceContentValuesV40()886     public static ContentValues generateSourceContentValuesV40() {
887         ContentValues values = generateSourceContentValuesV39();
888         values.put(
889                 MeasurementTables.SourceContract.EVENT_LEVEL_EPSILON,
890                 SourceValues.EVENT_LEVEL_EPSILON);
891         return values;
892     }
893 
generateSourceDestinationContentValuesV9()894     public static ContentValues generateSourceDestinationContentValuesV9() {
895         ContentValues sourceDestination = new ContentValues();
896 
897         sourceDestination.put(MeasurementTables.SourceDestination.SOURCE_ID, SourceValues.ID);
898         sourceDestination.put(MeasurementTables.SourceDestination.DESTINATION,
899                 SourceDestinationValues.DESTINATION);
900         sourceDestination.put(MeasurementTables.SourceDestination.DESTINATION_TYPE,
901                 SourceDestinationValues.DESTINATION_TYPE);
902 
903         return sourceDestination;
904     }
905 
generateSourceDestinationContentValuesV10()906     public static ContentValues generateSourceDestinationContentValuesV10() {
907         return generateSourceDestinationContentValuesV9();
908     }
909 
generateSourceDestinationContentValuesV11()910     public static ContentValues generateSourceDestinationContentValuesV11() {
911         return generateSourceDestinationContentValuesV10();
912     }
913 
generateSourceDestinationContentValuesV12()914     public static ContentValues generateSourceDestinationContentValuesV12() {
915         return generateSourceDestinationContentValuesV11();
916     }
917 
generateSourceDestinationContentValuesV13()918     public static ContentValues generateSourceDestinationContentValuesV13() {
919         return generateSourceDestinationContentValuesV12();
920     }
921 
generateSourceDestinationContentValuesV14()922     public static ContentValues generateSourceDestinationContentValuesV14() {
923         return generateSourceDestinationContentValuesV13();
924     }
925 
generateSourceDestinationContentValuesV15()926     public static ContentValues generateSourceDestinationContentValuesV15() {
927         return generateSourceDestinationContentValuesV14();
928     }
929 
generateSourceDestinationContentValuesV16()930     public static ContentValues generateSourceDestinationContentValuesV16() {
931         return generateSourceDestinationContentValuesV15();
932     }
933 
generateSourceDestinationContentValuesV17()934     public static ContentValues generateSourceDestinationContentValuesV17() {
935         return generateSourceDestinationContentValuesV16();
936     }
937 
generateSourceDestinationContentValuesV18()938     public static ContentValues generateSourceDestinationContentValuesV18() {
939         return generateSourceDestinationContentValuesV17();
940     }
941 
generateSourceDestinationContentValuesV19()942     public static ContentValues generateSourceDestinationContentValuesV19() {
943         return generateSourceDestinationContentValuesV18();
944     }
945 
generateSourceDestinationContentValuesV20()946     public static ContentValues generateSourceDestinationContentValuesV20() {
947         return generateSourceDestinationContentValuesV19();
948     }
949 
generateSourceDestinationContentValuesV21()950     public static ContentValues generateSourceDestinationContentValuesV21() {
951         return generateSourceDestinationContentValuesV20();
952     }
953 
generateSourceDestinationContentValuesV22()954     public static ContentValues generateSourceDestinationContentValuesV22() {
955         return generateSourceDestinationContentValuesV21();
956     }
957 
generateTriggerContentValuesV1()958     public static ContentValues generateTriggerContentValuesV1() {
959         ContentValues trigger = new ContentValues();
960 
961         trigger.put(MeasurementTables.TriggerContract.ID, TriggerValues.ID);
962         trigger.put(
963                 MeasurementTables.TriggerContract.ATTRIBUTION_DESTINATION,
964                 TriggerValues.ATTRIBUTION_DESTINATION);
965         trigger.put(
966                 MeasurementTables.TriggerContract.DESTINATION_TYPE, TriggerValues.DESTINATION_TYPE);
967         trigger.put(MeasurementTables.TriggerContract.ENROLLMENT_ID, TriggerValues.ENROLLMENT_ID);
968         trigger.put(MeasurementTables.TriggerContract.TRIGGER_TIME, TriggerValues.TRIGGER_TIME);
969         trigger.put(
970                 MeasurementTables.TriggerContract.EVENT_TRIGGERS,
971                 TriggerValues.EVENT_TRIGGERS_V2_AND_BELOW);
972         trigger.put(MeasurementTables.TriggerContract.STATUS, TriggerValues.STATUS);
973         trigger.put(MeasurementTables.TriggerContract.REGISTRANT, TriggerValues.REGISTRANT);
974         trigger.put(
975                 MeasurementTables.TriggerContract.AGGREGATE_TRIGGER_DATA,
976                 TriggerValues.AGGREGATE_TRIGGER_DATA_V2_AND_BELOW);
977         trigger.put(
978                 MeasurementTables.TriggerContract.AGGREGATE_VALUES, TriggerValues.AGGREGATE_VALUES);
979         trigger.put(MeasurementTables.TriggerContract.FILTERS, TriggerValues.FILTERS_V2_AND_BELOW);
980         trigger.put(MeasurementTables.TriggerContract.DEBUG_KEY, TriggerValues.DEBUG_KEY);
981 
982         return trigger;
983     }
984 
generateTriggerContentValuesV2()985     public static ContentValues generateTriggerContentValuesV2() {
986         // No differences in trigger fields between V1 and V2.
987         return generateTriggerContentValuesV1();
988     }
989 
generateTriggerContentValuesV3()990     public static ContentValues generateTriggerContentValuesV3() {
991         // No differences in trigger fields between V1 and V2.
992         ContentValues trigger = generateTriggerContentValuesV2();
993 
994         // Update values.
995         trigger.put(
996                 MeasurementTables.TriggerContract.EVENT_TRIGGERS, TriggerValues.EVENT_TRIGGERS_V3);
997         trigger.put(
998                 MeasurementTables.TriggerContract.AGGREGATE_TRIGGER_DATA,
999                 TriggerValues.AGGREGATE_TRIGGER_DATA_V3);
1000         trigger.put(MeasurementTables.TriggerContract.FILTERS, TriggerValues.FILTERS_V3);
1001 
1002         // Add columns.
1003         trigger.put(MeasurementTables.TriggerContract.NOT_FILTERS, TriggerValues.NOT_FILTERS);
1004         trigger.put(
1005                 MeasurementTables.TriggerContract.DEBUG_REPORTING, TriggerValues.DEBUG_REPORTING);
1006         trigger.put(
1007                 MeasurementTables.TriggerContract.AD_ID_PERMISSION, TriggerValues.AD_ID_PERMISSION);
1008         trigger.put(
1009                 MeasurementTables.TriggerContract.AR_DEBUG_PERMISSION,
1010                 TriggerValues.AR_DEBUG_PERMISSION);
1011 
1012         return trigger;
1013     }
1014 
generateTriggerContentValuesV6()1015     public static ContentValues generateTriggerContentValuesV6() {
1016         ContentValues values = generateTriggerContentValuesV3();
1017         values.put(
1018                 MeasurementTables.TriggerContract.ATTRIBUTION_CONFIG,
1019                 TriggerValues.ATTRIBUTION_CONFIG);
1020         values.put(
1021                 MeasurementTables.TriggerContract.X_NETWORK_KEY_MAPPING,
1022                 TriggerValues.X_NETWORK_KEY_MAPPING);
1023         values.put(
1024                 MeasurementTables.TriggerContract.AGGREGATABLE_DEDUPLICATION_KEYS,
1025                 TriggerValues.AGGREGATABLE_DEDUPLICATION_KEYS);
1026         return values;
1027     }
1028 
generateTriggerContentValuesV7()1029     public static ContentValues generateTriggerContentValuesV7() {
1030         return generateTriggerContentValuesV6();
1031     }
1032 
generateTriggerContentValuesV8()1033     public static ContentValues generateTriggerContentValuesV8() {
1034         ContentValues values = generateTriggerContentValuesV7();
1035         values.put(MeasurementTables.TriggerContract.DEBUG_JOIN_KEY, TriggerValues.DEBUG_JOIN_KEY);
1036         return values;
1037     }
1038 
generateTriggerContentValuesV9()1039     public static ContentValues generateTriggerContentValuesV9() {
1040         return generateTriggerContentValuesV8();
1041     }
1042 
generateTriggerContentValuesV10()1043     public static ContentValues generateTriggerContentValuesV10() {
1044         return generateTriggerContentValuesV9();
1045     }
1046 
generateTriggerContentValuesV11()1047     public static ContentValues generateTriggerContentValuesV11() {
1048         return generateTriggerContentValuesV10();
1049     }
1050 
generateTriggerContentValuesV12()1051     public static ContentValues generateTriggerContentValuesV12() {
1052         return generateTriggerContentValuesV11();
1053     }
1054 
generateTriggerContentValuesV13()1055     public static ContentValues generateTriggerContentValuesV13() {
1056         ContentValues values = generateTriggerContentValuesV12();
1057         values.put(MeasurementTables.TriggerContract.PLATFORM_AD_ID, TriggerValues.PLATFORM_AD_ID);
1058         values.put(MeasurementTables.TriggerContract.DEBUG_AD_ID, TriggerValues.DEBUG_AD_ID);
1059         return values;
1060     }
1061 
generateTriggerContentValuesV14()1062     public static ContentValues generateTriggerContentValuesV14() {
1063         ContentValues values = generateTriggerContentValuesV13();
1064         values.put(
1065                 MeasurementTables.TriggerContract.REGISTRATION_ORIGIN,
1066                 TriggerValues.REGISTRATION_ORIGIN.toString());
1067         return values;
1068     }
1069 
generateTriggerContentValuesV15()1070     public static ContentValues generateTriggerContentValuesV15() {
1071         return generateTriggerContentValuesV14();
1072     }
1073 
generateTriggerContentValuesV16()1074     public static ContentValues generateTriggerContentValuesV16() {
1075         return generateTriggerContentValuesV15();
1076     }
1077 
generateTriggerContentValuesV17()1078     public static ContentValues generateTriggerContentValuesV17() {
1079         return generateTriggerContentValuesV16();
1080     }
1081 
generateTriggerContentValuesV18()1082     public static ContentValues generateTriggerContentValuesV18() {
1083         return generateTriggerContentValuesV17();
1084     }
1085 
generateTriggerContentValuesV19()1086     public static ContentValues generateTriggerContentValuesV19() {
1087         return generateTriggerContentValuesV18();
1088     }
1089 
generateTriggerContentValuesV20()1090     public static ContentValues generateTriggerContentValuesV20() {
1091         ContentValues values = generateTriggerContentValuesV19();
1092         values.put(
1093                 MeasurementTables.TriggerContract.AGGREGATION_COORDINATOR_ORIGIN,
1094                 TriggerValues.AGGREGATION_COORDINATOR_ORIGIN.toString());
1095         return values;
1096     }
1097 
generateTriggerContentValuesV21()1098     public static ContentValues generateTriggerContentValuesV21() {
1099         return generateTriggerContentValuesV20();
1100     }
1101 
1102     /** Get ContentValues for V31 */
generateTriggerContentValuesV31()1103     public static ContentValues generateTriggerContentValuesV31() {
1104         return generateTriggerContentValuesV21();
1105     }
1106 
1107     /** Get ContentValues for V32 */
generateTriggerContentValuesV32()1108     public static ContentValues generateTriggerContentValuesV32() {
1109         ContentValues values = generateTriggerContentValuesV31();
1110         values.put(
1111                 MeasurementTables.TriggerContract.AGGREGATABLE_SOURCE_REGISTRATION_TIME_CONFIG,
1112                 TriggerValues.AGGREGATABLE_SOURCE_REGISTRATION_TIME);
1113 
1114         return values;
1115     }
1116 
1117     /** Get ContentValues for V33 */
generateTriggerContentValuesV33()1118     public static ContentValues generateTriggerContentValuesV33() {
1119         ContentValues values = generateTriggerContentValuesV32();
1120         values.put(
1121                 MeasurementTables.TriggerContract.TRIGGER_CONTEXT_ID,
1122                 TriggerValues.TRIGGER_CONTEXT_ID);
1123 
1124         return values;
1125     }
1126 
1127     /** Get ContentValues for V33 */
generateTriggerContentValuesV34()1128     public static ContentValues generateTriggerContentValuesV34() {
1129         ContentValues values = generateTriggerContentValuesV33();
1130         values.put(
1131                 MeasurementTables.TriggerContract.ATTRIBUTION_SCOPES,
1132                 TriggerValues.ATTRIBUTION_SCOPE);
1133         return values;
1134     }
1135 
1136     /** Get ContentValues for V42 */
generateTriggerContentValuesV42()1137     public static ContentValues generateTriggerContentValuesV42() {
1138         ContentValues values = generateTriggerContentValuesV34();
1139         values.put(
1140                 MeasurementTables.TriggerContract.AGGREGATABLE_FILTERING_ID_MAX_BYTES,
1141                 TriggerValues.AGGREGATABLE_FILTERING_ID_MAX_BYTES);
1142         return values;
1143     }
1144 
1145     /** Get ContentValues for V44 */
generateTriggerContentValuesV44()1146     public static ContentValues generateTriggerContentValuesV44() {
1147         return generateTriggerContentValuesV42();
1148     }
1149 
1150     /** Get ContentValues for V45 */
generateTriggerContentValuesV45()1151     public static ContentValues generateTriggerContentValuesV45() {
1152         ContentValues values = generateTriggerContentValuesV44();
1153         values.put(MeasurementTables.TriggerContract.NAMED_BUDGETS, TriggerValues.NAMED_BUDGETS);
1154         return values;
1155     }
1156 
generateAttributionContentValuesV1()1157     public static ContentValues generateAttributionContentValuesV1() {
1158         ContentValues attribution = new ContentValues();
1159 
1160         attribution.put(MeasurementTables.AttributionContract.ID, AttributionValues.ID);
1161         attribution.put(
1162                 MeasurementTables.AttributionContract.SOURCE_SITE, AttributionValues.SOURCE_SITE);
1163         attribution.put(
1164                 MeasurementTables.AttributionContract.SOURCE_ORIGIN,
1165                 AttributionValues.SOURCE_ORIGIN);
1166         attribution.put(
1167                 MeasurementTables.AttributionContract.DESTINATION_SITE,
1168                 AttributionValues.DESTINATION_SITE);
1169         attribution.put(
1170                 MeasurementTables.AttributionContract.DESTINATION_ORIGIN,
1171                 AttributionValues.DESTINATION_ORIGIN);
1172         attribution.put(
1173                 MeasurementTables.AttributionContract.ENROLLMENT_ID,
1174                 AttributionValues.ENROLLMENT_ID);
1175         attribution.put(
1176                 MeasurementTables.AttributionContract.TRIGGER_TIME, AttributionValues.TRIGGER_TIME);
1177         attribution.put(
1178                 MeasurementTables.AttributionContract.REGISTRANT, AttributionValues.REGISTRANT);
1179 
1180         return attribution;
1181     }
1182 
generateAttributionContentValuesV2()1183     public static ContentValues generateAttributionContentValuesV2() {
1184         // No differences in attribution fields between V1 and V2.
1185         return generateAttributionContentValuesV1();
1186     }
1187 
generateAttributionContentValuesV3()1188     public static ContentValues generateAttributionContentValuesV3() {
1189         ContentValues attribution = generateAttributionContentValuesV2();
1190 
1191         // Add columns.
1192         attribution.put(
1193                 MeasurementTables.AttributionContract.SOURCE_ID, AttributionValues.SOURCE_ID);
1194         attribution.put(
1195                 MeasurementTables.AttributionContract.TRIGGER_ID, AttributionValues.TRIGGER_ID);
1196 
1197         return attribution;
1198     }
1199 
generateAttributionContentValuesV6()1200     public static ContentValues generateAttributionContentValuesV6() {
1201         return generateAttributionContentValuesV3();
1202     }
1203 
generateAttributionContentValuesV7()1204     public static ContentValues generateAttributionContentValuesV7() {
1205         return generateAttributionContentValuesV6();
1206     }
1207 
generateAttributionContentValuesV8()1208     public static ContentValues generateAttributionContentValuesV8() {
1209         return generateAttributionContentValuesV7();
1210     }
1211 
generateAttributionContentValuesV9()1212     public static ContentValues generateAttributionContentValuesV9() {
1213         return generateAttributionContentValuesV7();
1214     }
1215 
generateAttributionContentValuesV10()1216     public static ContentValues generateAttributionContentValuesV10() {
1217         return generateAttributionContentValuesV9();
1218     }
1219 
generateAttributionContentValuesV11()1220     public static ContentValues generateAttributionContentValuesV11() {
1221         return generateAttributionContentValuesV10();
1222     }
1223 
generateAttributionContentValuesV12()1224     public static ContentValues generateAttributionContentValuesV12() {
1225         return generateAttributionContentValuesV11();
1226     }
1227 
generateAttributionContentValuesV13()1228     public static ContentValues generateAttributionContentValuesV13() {
1229         return generateAttributionContentValuesV12();
1230     }
1231 
generateAttributionContentValuesV14()1232     public static ContentValues generateAttributionContentValuesV14() {
1233         return generateAttributionContentValuesV13();
1234     }
1235 
generateAttributionContentValuesV15()1236     public static ContentValues generateAttributionContentValuesV15() {
1237         return generateAttributionContentValuesV14();
1238     }
1239 
generateAttributionContentValuesV16()1240     public static ContentValues generateAttributionContentValuesV16() {
1241         return generateAttributionContentValuesV15();
1242     }
1243 
generateAttributionContentValuesV17()1244     public static ContentValues generateAttributionContentValuesV17() {
1245         return generateAttributionContentValuesV16();
1246     }
1247 
generateAttributionContentValuesV24()1248     public static ContentValues generateAttributionContentValuesV24() {
1249         return generateAttributionContentValuesV17();
1250     }
1251 
generateAttributionContentValuesV25()1252     public static ContentValues generateAttributionContentValuesV25() {
1253         ContentValues values = generateAttributionContentValuesV24();
1254         values.put(
1255                 MeasurementTables.AttributionContract.REGISTRATION_ORIGIN,
1256                 AttributionValues.REGISTRATION_ORIGIN.toString());
1257         return values;
1258     }
1259 
1260     /** Return content values for an attribution record version 26 */
generateAttributionContentValuesV26()1261     public static ContentValues generateAttributionContentValuesV26() {
1262         return generateAttributionContentValuesV25();
1263     }
1264 
1265     /** Return content values for an attribution record version 28 */
generateAttributionContentValuesV28()1266     public static ContentValues generateAttributionContentValuesV28() {
1267         return generateAttributionContentValuesV26();
1268     }
1269 
1270     /** Return content values for an attribution record version 29 */
generateAttributionContentValuesV29()1271     public static ContentValues generateAttributionContentValuesV29() {
1272         ContentValues values = generateAttributionContentValuesV28();
1273         values.put(
1274                 MeasurementTables.AttributionContract.SCOPE,
1275                 AttributionValues.SCOPE);
1276         return values;
1277     }
1278 
1279     /** Get ContentValues for V34 */
generateAttributionContentValuesV35()1280     public static ContentValues generateAttributionContentValuesV35() {
1281         ContentValues values = generateAttributionContentValuesV29();
1282         values.put(MeasurementTables.AttributionContract.REPORT_ID, AttributionValues.REPORT_ID);
1283         return values;
1284     }
1285 
generateEventReportContentValuesV1()1286     public static ContentValues generateEventReportContentValuesV1() {
1287         ContentValues eventReport = new ContentValues();
1288 
1289         eventReport.put(MeasurementTables.EventReportContract.ID, EventReportValues.ID);
1290         eventReport.put(
1291                 MeasurementTables.EventReportContract.SOURCE_ID,
1292                 EventReportValues.SOURCE_ID_V2_AND_BELOW);
1293         eventReport.put(
1294                 MeasurementTables.EventReportContract.ENROLLMENT_ID,
1295                 EventReportValues.ENROLLMENT_ID);
1296         eventReport.put(
1297                 MeasurementTables.EventReportContract.ATTRIBUTION_DESTINATION,
1298                 EventReportValues.ATTRIBUTION_DESTINATION);
1299         eventReport.put(
1300                 MeasurementTables.EventReportContract.REPORT_TIME, EventReportValues.REPORT_TIME);
1301         eventReport.put(
1302                 MeasurementTables.EventReportContract.TRIGGER_DATA, EventReportValues.TRIGGER_DATA);
1303         eventReport.put(
1304                 MeasurementTables.EventReportContract.TRIGGER_PRIORITY,
1305                 EventReportValues.TRIGGER_PRIORITY);
1306         eventReport.put(
1307                 MeasurementTables.EventReportContract.TRIGGER_DEDUP_KEY,
1308                 EventReportValues.TRIGGER_DEDUP_KEY);
1309         eventReport.put(
1310                 MeasurementTables.EventReportContract.TRIGGER_TIME, EventReportValues.TRIGGER_TIME);
1311         eventReport.put(MeasurementTables.EventReportContract.STATUS, EventReportValues.STATUS);
1312         eventReport.put(
1313                 MeasurementTables.EventReportContract.SOURCE_TYPE, EventReportValues.SOURCE_TYPE);
1314         eventReport.put(
1315                 MeasurementTables.EventReportContract.RANDOMIZED_TRIGGER_RATE,
1316                 EventReportValues.RANDOMIZED_TRIGGER_RATE);
1317 
1318         return eventReport;
1319     }
1320 
generateEventReportContentValuesV2()1321     public static ContentValues generateEventReportContentValuesV2() {
1322         ContentValues eventReport = generateEventReportContentValuesV1();
1323 
1324         eventReport.put(
1325                 MeasurementTables.EventReportContract.SOURCE_DEBUG_KEY,
1326                 EventReportValues.SOURCE_DEBUG_KEY);
1327         eventReport.put(
1328                 MeasurementTables.EventReportContract.TRIGGER_DEBUG_KEY,
1329                 EventReportValues.TRIGGER_DEBUG_KEY);
1330 
1331         return eventReport;
1332     }
1333 
generateEventReportContentValuesV3()1334     public static ContentValues generateEventReportContentValuesV3() {
1335         ContentValues eventReport = generateEventReportContentValuesV2();
1336 
1337         // Update column.
1338         eventReport.put(
1339                 MeasurementTables.EventReportContract.SOURCE_ID, EventReportValues.SOURCE_ID_V3);
1340 
1341         // Add columns.
1342         eventReport.put(
1343                 MeasurementTables.EventReportContract.SOURCE_EVENT_ID,
1344                 EventReportValues.SOURCE_EVENT_ID);
1345         eventReport.put(
1346                 MeasurementTables.EventReportContract.TRIGGER_ID, EventReportValues.TRIGGER_ID);
1347         eventReport.put(
1348                 MeasurementTables.EventReportContract.DEBUG_REPORT_STATUS,
1349                 EventReportValues.DEBUG_REPORT_STATUS);
1350 
1351         return eventReport;
1352     }
1353 
generateEventReportContentValuesV6()1354     public static ContentValues generateEventReportContentValuesV6() {
1355         return generateEventReportContentValuesV3();
1356     }
1357 
generateEventReportContentValuesV7()1358     public static ContentValues generateEventReportContentValuesV7() {
1359         return generateEventReportContentValuesV6();
1360     }
1361 
generateEventReportContentValuesV8()1362     public static ContentValues generateEventReportContentValuesV8() {
1363         return generateEventReportContentValuesV7();
1364     }
1365 
generateEventReportContentValuesV9()1366     public static ContentValues generateEventReportContentValuesV9() {
1367         return generateEventReportContentValuesV8();
1368     }
1369 
generateEventReportContentValuesV10()1370     public static ContentValues generateEventReportContentValuesV10() {
1371         return generateEventReportContentValuesV9();
1372     }
1373 
generateEventReportContentValuesV11()1374     public static ContentValues generateEventReportContentValuesV11() {
1375         return generateEventReportContentValuesV10();
1376     }
1377 
generateEventReportContentValuesV12()1378     public static ContentValues generateEventReportContentValuesV12() {
1379         return generateEventReportContentValuesV11();
1380     }
1381 
generateEventReportContentValuesV13()1382     public static ContentValues generateEventReportContentValuesV13() {
1383         return generateEventReportContentValuesV12();
1384     }
1385 
generateEventReportContentValuesV14()1386     public static ContentValues generateEventReportContentValuesV14() {
1387         ContentValues eventReport = generateEventReportContentValuesV13();
1388 
1389         eventReport.put(
1390                 MeasurementTables.EventReportContract.REGISTRATION_ORIGIN,
1391                 EventReportValues.REGISTRATION_ORIGIN.toString());
1392         return eventReport;
1393     }
1394 
generateEventReportContentValuesV15()1395     public static ContentValues generateEventReportContentValuesV15() {
1396         return generateEventReportContentValuesV14();
1397     }
1398 
generateEventReportContentValuesV16()1399     public static ContentValues generateEventReportContentValuesV16() {
1400         return generateEventReportContentValuesV15();
1401     }
1402 
generateEventReportContentValuesV17()1403     public static ContentValues generateEventReportContentValuesV17() {
1404         return generateEventReportContentValuesV16();
1405     }
1406 
generateEventReportContentValuesV18()1407     public static ContentValues generateEventReportContentValuesV18() {
1408         return generateEventReportContentValuesV17();
1409     }
1410 
generateEventReportContentValuesV19()1411     public static ContentValues generateEventReportContentValuesV19() {
1412         return generateEventReportContentValuesV18();
1413     }
1414 
generateEventReportContentValuesV20()1415     public static ContentValues generateEventReportContentValuesV20() {
1416         return generateEventReportContentValuesV19();
1417     }
1418 
generateEventReportContentValuesV21()1419     public static ContentValues generateEventReportContentValuesV21() {
1420         return generateEventReportContentValuesV20();
1421     }
1422 
generateEventReportContentValuesV22()1423     public static ContentValues generateEventReportContentValuesV22() {
1424         return generateEventReportContentValuesV21();
1425     }
1426 
generateEventReportContentValuesV23()1427     public static ContentValues generateEventReportContentValuesV23() {
1428         ContentValues eventReport = generateEventReportContentValuesV22();
1429         eventReport.put(
1430                 MeasurementTables.EventReportContract.TRIGGER_SUMMARY_BUCKET,
1431                 EventReportValues.TRIGGER_SUMMARY_BUCKET);
1432         return eventReport;
1433     }
1434 
1435     /** Returns content values for event report version 26 */
generateEventReportContentValuesV26()1436     public static ContentValues generateEventReportContentValuesV26() {
1437         return generateEventReportContentValuesV23();
1438     }
1439 
1440     /** Returns content values for event report version 27 */
generateEventReportContentValuesV27()1441     public static ContentValues generateEventReportContentValuesV27() {
1442         return generateEventReportContentValuesV26();
1443     }
1444 
1445     /** Returns content values for event report version 28 */
generateEventReportContentValuesV28()1446     public static ContentValues generateEventReportContentValuesV28() {
1447         ContentValues eventReport = generateEventReportContentValuesV27();
1448         eventReport.put(
1449                 MeasurementTables.EventReportContract.TRIGGER_DEBUG_KEYS,
1450                 EventReportValues.TRIGGER_DEBUG_KEYS);
1451         return eventReport;
1452     }
1453 
generateAggregateReportContentValuesV1()1454     public static ContentValues generateAggregateReportContentValuesV1() {
1455         ContentValues aggregateReport = new ContentValues();
1456 
1457         aggregateReport.put(MeasurementTables.AggregateReport.ID, AggregateReportValues.ID);
1458         aggregateReport.put(
1459                 MeasurementTables.AggregateReport.PUBLISHER, AggregateReportValues.PUBLISHER);
1460         aggregateReport.put(
1461                 MeasurementTables.AggregateReport.ATTRIBUTION_DESTINATION,
1462                 AggregateReportValues.ATTRIBUTION_DESTINATION);
1463         aggregateReport.put(
1464                 MeasurementTables.AggregateReport.SOURCE_REGISTRATION_TIME,
1465                 AggregateReportValues.SOURCE_REGISTRATION_TIME);
1466         aggregateReport.put(
1467                 MeasurementTables.AggregateReport.SCHEDULED_REPORT_TIME,
1468                 AggregateReportValues.SCHEDULED_REPORT_TIME);
1469         aggregateReport.put(
1470                 MeasurementTables.AggregateReport.ENROLLMENT_ID,
1471                 AggregateReportValues.ENROLLMENT_ID);
1472         aggregateReport.put(
1473                 MeasurementTables.AggregateReport.DEBUG_CLEARTEXT_PAYLOAD,
1474                 AggregateReportValues.DEBUG_CLEARTEXT_PAYLOAD);
1475         aggregateReport.put(MeasurementTables.AggregateReport.STATUS, AggregateReportValues.STATUS);
1476         aggregateReport.put(
1477                 MeasurementTables.AggregateReport.API_VERSION, AggregateReportValues.API_VERSION);
1478 
1479         return aggregateReport;
1480     }
1481 
generateAggregateReportContentValuesV2()1482     public static ContentValues generateAggregateReportContentValuesV2() {
1483         ContentValues aggregateReport = generateAggregateReportContentValuesV1();
1484 
1485         aggregateReport.put(
1486                 MeasurementTables.AggregateReport.SOURCE_DEBUG_KEY,
1487                 AggregateReportValues.SOURCE_DEBUG_KEY);
1488         aggregateReport.put(
1489                 MeasurementTables.AggregateReport.TRIGGER_DEBUG_KEY,
1490                 AggregateReportValues.TRIGGER_DEBUG_KEY);
1491 
1492         return aggregateReport;
1493     }
1494 
generateAggregateReportContentValuesV3()1495     public static ContentValues generateAggregateReportContentValuesV3() {
1496         ContentValues aggregateReport = generateAggregateReportContentValuesV2();
1497 
1498         // Add columns.
1499         aggregateReport.put(
1500                 MeasurementTables.AggregateReport.SOURCE_ID, AggregateReportValues.SOURCE_ID);
1501         aggregateReport.put(
1502                 MeasurementTables.AggregateReport.TRIGGER_ID, AggregateReportValues.TRIGGER_ID);
1503         aggregateReport.put(
1504                 MeasurementTables.AggregateReport.DEBUG_REPORT_STATUS,
1505                 AggregateReportValues.DEBUG_REPORT_STATUS);
1506 
1507         return aggregateReport;
1508     }
1509 
generateAggregateReportContentValuesV6()1510     public static ContentValues generateAggregateReportContentValuesV6() {
1511         return generateAggregateReportContentValuesV3();
1512     }
1513 
generateAggregateReportContentValuesV7()1514     public static ContentValues generateAggregateReportContentValuesV7() {
1515         return generateAggregateReportContentValuesV6();
1516     }
1517 
generateAggregateReportContentValuesV8()1518     public static ContentValues generateAggregateReportContentValuesV8() {
1519         return generateAggregateReportContentValuesV7();
1520     }
1521 
generateAggregateReportContentValuesV9()1522     public static ContentValues generateAggregateReportContentValuesV9() {
1523         return generateAggregateReportContentValuesV8();
1524     }
1525 
generateAggregateReportContentValuesV10()1526     public static ContentValues generateAggregateReportContentValuesV10() {
1527         ContentValues aggregateReport = generateAggregateReportContentValuesV9();
1528 
1529         // Add columns.
1530         aggregateReport.put(
1531                 MeasurementTables.AggregateReport.DEDUP_KEY,
1532                 AggregateReportValues.DEDUP_KEY.getValue());
1533 
1534         return aggregateReport;
1535     }
1536 
generateAggregateReportContentValuesV11()1537     public static ContentValues generateAggregateReportContentValuesV11() {
1538         return generateAggregateReportContentValuesV10();
1539     }
1540 
generateAggregateReportContentValuesV12()1541     public static ContentValues generateAggregateReportContentValuesV12() {
1542         return generateAggregateReportContentValuesV11();
1543     }
1544 
generateAggregateReportContentValuesV13()1545     public static ContentValues generateAggregateReportContentValuesV13() {
1546         return generateAggregateReportContentValuesV12();
1547     }
1548 
generateAggregateReportContentValuesV14()1549     public static ContentValues generateAggregateReportContentValuesV14() {
1550         ContentValues aggregateReport = generateAggregateReportContentValuesV13();
1551 
1552         // Add columns.
1553         aggregateReport.put(
1554                 MeasurementTables.AggregateReport.REGISTRATION_ORIGIN,
1555                 AggregateReportValues.REGISTRATION_ORIGIN.toString());
1556 
1557         return aggregateReport;
1558     }
1559 
generateAggregateReportContentValuesV15()1560     public static ContentValues generateAggregateReportContentValuesV15() {
1561         return generateAggregateReportContentValuesV14();
1562     }
1563 
generateAggregateReportContentValuesV16()1564     public static ContentValues generateAggregateReportContentValuesV16() {
1565         return generateAggregateReportContentValuesV15();
1566     }
1567 
generateAggregateReportContentValuesV17()1568     public static ContentValues generateAggregateReportContentValuesV17() {
1569         return generateAggregateReportContentValuesV16();
1570     }
1571 
generateAggregateReportContentValuesV18()1572     public static ContentValues generateAggregateReportContentValuesV18() {
1573         return generateAggregateReportContentValuesV17();
1574     }
1575 
generateAggregateReportContentValuesV19()1576     public static ContentValues generateAggregateReportContentValuesV19() {
1577         return generateAggregateReportContentValuesV18();
1578     }
1579 
generateAggregateReportContentValuesV20()1580     public static ContentValues generateAggregateReportContentValuesV20() {
1581         ContentValues values = generateAggregateReportContentValuesV19();
1582         values.put(
1583                 MeasurementTables.AggregateReport.AGGREGATION_COORDINATOR_ORIGIN,
1584                 AggregateReportValues.AGGREGATION_COORDINATOR_ORIGIN.toString());
1585         return values;
1586     }
1587 
generateAggregateReportContentValuesV27()1588     public static ContentValues generateAggregateReportContentValuesV27() {
1589         ContentValues values = generateAggregateReportContentValuesV20();
1590         values.put(
1591                 MeasurementTables.AggregateReport.IS_FAKE_REPORT,
1592                 AggregateReportValues.IS_FAKE_REPORT);
1593         return values;
1594     }
1595 
1596     /** Returns content values for aggregate report version 32 */
generateAggregateReportContentValuesV32()1597     public static ContentValues generateAggregateReportContentValuesV32() {
1598         ContentValues values = generateAggregateReportContentValuesV27();
1599         return values;
1600     }
1601 
1602     /** Returns content values for aggregate report version 33 */
generateAggregateReportContentValuesV33()1603     public static ContentValues generateAggregateReportContentValuesV33() {
1604         ContentValues values = generateAggregateReportContentValuesV32();
1605         values.put(
1606                 MeasurementTables.AggregateReport.TRIGGER_CONTEXT_ID,
1607                 AggregateReportValues.TRIGGER_CONTEXT_ID);
1608         return values;
1609     }
1610 
1611     /** Returns content values for aggregate report version 41 */
generateAggregateReportContentValuesV41()1612     public static ContentValues generateAggregateReportContentValuesV41() {
1613         ContentValues values = generateAggregateReportContentValuesV33();
1614         values.put(
1615                 MeasurementTables.AggregateReport.TRIGGER_TIME, AggregateReportValues.TRIGGER_TIME);
1616         return values;
1617     }
1618 
1619     /** Returns content values for aggregate report version 44 */
generateAggregateReportContentValuesV44()1620     public static ContentValues generateAggregateReportContentValuesV44() {
1621         ContentValues values = generateAggregateReportContentValuesV41();
1622         values.put(
1623                 MeasurementTables.AggregateReport.AGGREGATABLE_FILTERING_ID_MAX_BYTES,
1624                 AggregateReportValues.AGGREGATABLE_FILTERING_ID_MAX_BYTES);
1625         return values;
1626     }
1627 
generateAggregateEncryptionKeyContentValuesV1()1628     public static ContentValues generateAggregateEncryptionKeyContentValuesV1() {
1629         ContentValues aggregateEncryptionKey = new ContentValues();
1630 
1631         aggregateEncryptionKey.put(
1632                 MeasurementTables.AggregateEncryptionKey.ID, AggregateEncryptionKeyValues.ID);
1633         aggregateEncryptionKey.put(
1634                 MeasurementTables.AggregateEncryptionKey.KEY_ID,
1635                 AggregateEncryptionKeyValues.KEY_ID);
1636         aggregateEncryptionKey.put(
1637                 MeasurementTables.AggregateEncryptionKey.PUBLIC_KEY,
1638                 AggregateEncryptionKeyValues.PUBLIC_KEY);
1639         aggregateEncryptionKey.put(
1640                 MeasurementTables.AggregateEncryptionKey.EXPIRY,
1641                 AggregateEncryptionKeyValues.EXPIRY);
1642 
1643         return aggregateEncryptionKey;
1644     }
1645 
generateAggregateEncryptionKeyContentValuesV2()1646     public static ContentValues generateAggregateEncryptionKeyContentValuesV2() {
1647         // No differences in aggregate encryption key fields between V1 and V2.
1648         return generateAggregateEncryptionKeyContentValuesV1();
1649     }
1650 
generateAggregateEncryptionKeyContentValuesV3()1651     public static ContentValues generateAggregateEncryptionKeyContentValuesV3() {
1652         // No differences in aggregate encryption key fields between V2 and V3.
1653         return generateAggregateEncryptionKeyContentValuesV2();
1654     }
1655 
generateAggregateEncryptionKeyContentValuesV6()1656     public static ContentValues generateAggregateEncryptionKeyContentValuesV6() {
1657         return generateAggregateEncryptionKeyContentValuesV3();
1658     }
1659 
generateAggregateEncryptionKeyContentValuesV7()1660     public static ContentValues generateAggregateEncryptionKeyContentValuesV7() {
1661         return generateAggregateEncryptionKeyContentValuesV6();
1662     }
1663 
generateAggregateEncryptionKeyContentValuesV8()1664     public static ContentValues generateAggregateEncryptionKeyContentValuesV8() {
1665         return generateAggregateEncryptionKeyContentValuesV7();
1666     }
1667 
generateAggregateEncryptionKeyContentValuesV9()1668     public static ContentValues generateAggregateEncryptionKeyContentValuesV9() {
1669         return generateAggregateEncryptionKeyContentValuesV7();
1670     }
1671 
generateAggregateEncryptionKeyContentValuesV10()1672     public static ContentValues generateAggregateEncryptionKeyContentValuesV10() {
1673         return generateAggregateEncryptionKeyContentValuesV9();
1674     }
1675 
generateAggregateEncryptionKeyContentValuesV11()1676     public static ContentValues generateAggregateEncryptionKeyContentValuesV11() {
1677         return generateAggregateEncryptionKeyContentValuesV10();
1678     }
1679 
generateAggregateEncryptionKeyContentValuesV12()1680     public static ContentValues generateAggregateEncryptionKeyContentValuesV12() {
1681         return generateAggregateEncryptionKeyContentValuesV11();
1682     }
1683 
generateAggregateEncryptionKeyContentValuesV13()1684     public static ContentValues generateAggregateEncryptionKeyContentValuesV13() {
1685         return generateAggregateEncryptionKeyContentValuesV12();
1686     }
1687 
generateAggregateEncryptionKeyContentValuesV14()1688     public static ContentValues generateAggregateEncryptionKeyContentValuesV14() {
1689         return generateAggregateEncryptionKeyContentValuesV13();
1690     }
1691 
generateAggregateEncryptionKeyContentValuesV15()1692     public static ContentValues generateAggregateEncryptionKeyContentValuesV15() {
1693         return generateAggregateEncryptionKeyContentValuesV14();
1694     }
1695 
generateAggregateEncryptionKeyContentValuesV16()1696     public static ContentValues generateAggregateEncryptionKeyContentValuesV16() {
1697         return generateAggregateEncryptionKeyContentValuesV15();
1698     }
1699 
generateAggregateEncryptionKeyContentValuesV17()1700     public static ContentValues generateAggregateEncryptionKeyContentValuesV17() {
1701         return generateAggregateEncryptionKeyContentValuesV16();
1702     }
1703 
generateAggregateEncryptionKeyContentValuesV18()1704     public static ContentValues generateAggregateEncryptionKeyContentValuesV18() {
1705         return generateAggregateEncryptionKeyContentValuesV17();
1706     }
1707 
generateAggregateEncryptionKeyContentValuesV19()1708     public static ContentValues generateAggregateEncryptionKeyContentValuesV19() {
1709         return generateAggregateEncryptionKeyContentValuesV18();
1710     }
1711 
generateAggregateEncryptionKeyContentValuesV20()1712     public static ContentValues generateAggregateEncryptionKeyContentValuesV20() {
1713         ContentValues values = generateAggregateEncryptionKeyContentValuesV19();
1714         values.put(
1715                 MeasurementTables.AggregateEncryptionKey.AGGREGATION_COORDINATOR_ORIGIN,
1716                 AggregateEncryptionKeyValues.AGGREGATION_COORDINATOR_ORIGIN.toString());
1717         return values;
1718     }
1719 
generateDebugReportContentValuesV3()1720     public static ContentValues generateDebugReportContentValuesV3() {
1721         ContentValues debugReport = new ContentValues();
1722 
1723         debugReport.put(MeasurementTables.DebugReportContract.ID, DebugReportValues.ID);
1724         debugReport.put(MeasurementTables.DebugReportContract.TYPE, DebugReportValues.TYPE);
1725         debugReport.put(MeasurementTables.DebugReportContract.BODY, DebugReportValues.BODY);
1726         debugReport.put(
1727                 MeasurementTables.DebugReportContract.ENROLLMENT_ID,
1728                 DebugReportValues.ENROLLMENT_ID);
1729 
1730         return debugReport;
1731     }
1732 
generateDebugReportContentValuesV6()1733     public static ContentValues generateDebugReportContentValuesV6() {
1734         return generateDebugReportContentValuesV3();
1735     }
1736 
generateDebugReportContentValuesV7()1737     public static ContentValues generateDebugReportContentValuesV7() {
1738         return generateDebugReportContentValuesV6();
1739     }
1740 
generateDebugReportContentValuesV8()1741     public static ContentValues generateDebugReportContentValuesV8() {
1742         return generateDebugReportContentValuesV7();
1743     }
1744 
generateDebugReportContentValuesV9()1745     public static ContentValues generateDebugReportContentValuesV9() {
1746         return generateDebugReportContentValuesV8();
1747     }
1748 
generateDebugReportContentValuesV10()1749     public static ContentValues generateDebugReportContentValuesV10() {
1750         return generateDebugReportContentValuesV9();
1751     }
1752 
generateDebugReportContentValuesV11()1753     public static ContentValues generateDebugReportContentValuesV11() {
1754         return generateDebugReportContentValuesV10();
1755     }
1756 
generateDebugReportContentValuesV12()1757     public static ContentValues generateDebugReportContentValuesV12() {
1758         return generateDebugReportContentValuesV11();
1759     }
1760 
generateDebugReportContentValuesV13()1761     public static ContentValues generateDebugReportContentValuesV13() {
1762         return generateDebugReportContentValuesV12();
1763     }
1764 
generateDebugReportContentValuesV14()1765     public static ContentValues generateDebugReportContentValuesV14() {
1766         return generateDebugReportContentValuesV13();
1767     }
1768 
generateDebugReportContentValuesV15()1769     public static ContentValues generateDebugReportContentValuesV15() {
1770         ContentValues debugReport = generateDebugReportContentValuesV14();
1771         debugReport.put(
1772                 MeasurementTables.DebugReportContract.REGISTRATION_ORIGIN,
1773                 DebugReportValues.REGISTRATION_ORIGIN.toString());
1774 
1775         return debugReport;
1776     }
1777 
generateDebugReportContentValuesV16()1778     public static ContentValues generateDebugReportContentValuesV16() {
1779         return generateDebugReportContentValuesV15();
1780     }
1781 
generateDebugReportContentValuesV17()1782     public static ContentValues generateDebugReportContentValuesV17() {
1783         return generateDebugReportContentValuesV16();
1784     }
1785 
1786     /**
1787      * @return DebugReport for V25
1788      */
generateDebugReportContentValuesV25()1789     public static ContentValues generateDebugReportContentValuesV25() {
1790         return generateDebugReportContentValuesV17();
1791     }
1792 
generateXnaIgnoredSourcesContentValuesV6()1793     public static ContentValues generateXnaIgnoredSourcesContentValuesV6() {
1794         ContentValues values = new ContentValues();
1795         values.put(
1796                 MeasurementTables.XnaIgnoredSourcesContract.SOURCE_ID,
1797                 XnaIgnoredSourcesValues.SOURCE_ID);
1798         values.put(
1799                 MeasurementTables.XnaIgnoredSourcesContract.ENROLLMENT_ID,
1800                 XnaIgnoredSourcesValues.ENROLLMENT_ID);
1801 
1802         return values;
1803     }
1804 
generateXnaIgnoredSourcesContentValuesV7()1805     public static ContentValues generateXnaIgnoredSourcesContentValuesV7() {
1806         return generateXnaIgnoredSourcesContentValuesV6();
1807     }
1808 
generateXnaIgnoredSourcesContentValuesV8()1809     public static ContentValues generateXnaIgnoredSourcesContentValuesV8() {
1810         return generateXnaIgnoredSourcesContentValuesV7();
1811     }
1812 
generateXnaIgnoredSourcesContentValuesV9()1813     public static ContentValues generateXnaIgnoredSourcesContentValuesV9() {
1814         return generateXnaIgnoredSourcesContentValuesV8();
1815     }
1816 
generateXnaIgnoredSourcesContentValuesV10()1817     public static ContentValues generateXnaIgnoredSourcesContentValuesV10() {
1818         return generateXnaIgnoredSourcesContentValuesV9();
1819     }
1820 
generateXnaIgnoredSourcesContentValuesV11()1821     public static ContentValues generateXnaIgnoredSourcesContentValuesV11() {
1822         return generateXnaIgnoredSourcesContentValuesV10();
1823     }
1824 
generateXnaIgnoredSourcesContentValuesV12()1825     public static ContentValues generateXnaIgnoredSourcesContentValuesV12() {
1826         return generateXnaIgnoredSourcesContentValuesV11();
1827     }
1828 
generateXnaIgnoredSourcesContentValuesV13()1829     public static ContentValues generateXnaIgnoredSourcesContentValuesV13() {
1830         return generateXnaIgnoredSourcesContentValuesV12();
1831     }
1832 
generateXnaIgnoredSourcesContentValuesV14()1833     public static ContentValues generateXnaIgnoredSourcesContentValuesV14() {
1834         return generateXnaIgnoredSourcesContentValuesV13();
1835     }
1836 
generateXnaIgnoredSourcesContentValuesV15()1837     public static ContentValues generateXnaIgnoredSourcesContentValuesV15() {
1838         return generateXnaIgnoredSourcesContentValuesV14();
1839     }
1840 
generateXnaIgnoredSourcesContentValuesV16()1841     public static ContentValues generateXnaIgnoredSourcesContentValuesV16() {
1842         return generateXnaIgnoredSourcesContentValuesV15();
1843     }
1844 
generateXnaIgnoredSourcesContentValuesV17()1845     public static ContentValues generateXnaIgnoredSourcesContentValuesV17() {
1846         return generateXnaIgnoredSourcesContentValuesV16();
1847     }
1848 
1849     /**
1850      * @return List of KeyValeData CV for each Type in V25
1851      */
generateKeyValueDataContentValuesV25()1852     public static List<ContentValues> generateKeyValueDataContentValuesV25() {
1853         List<ContentValues> list = new ArrayList<>();
1854         ContentValues rrValues = new ContentValues();
1855 
1856         rrValues.put(MeasurementTables.KeyValueDataContract.KEY, KeyValueDataValues.RR_KEY);
1857         rrValues.put(
1858                 MeasurementTables.KeyValueDataContract.DATA_TYPE,
1859                 KeyValueDataValues.RR_DATATYPE.toString());
1860         rrValues.put(MeasurementTables.KeyValueDataContract.VALUE, KeyValueDataValues.RR_VALUE);
1861         list.add(rrValues);
1862 
1863         ContentValues arValues = new ContentValues();
1864         arValues.put(MeasurementTables.KeyValueDataContract.KEY, KeyValueDataValues.AR_KEY);
1865         arValues.put(
1866                 MeasurementTables.KeyValueDataContract.DATA_TYPE,
1867                 KeyValueDataValues.AR_DATATYPE.toString());
1868         arValues.put(MeasurementTables.KeyValueDataContract.VALUE, KeyValueDataValues.AR_VALUE);
1869         list.add(arValues);
1870 
1871         ContentValues erValues = new ContentValues();
1872         erValues.put(MeasurementTables.KeyValueDataContract.KEY, KeyValueDataValues.ER_KEY);
1873         erValues.put(
1874                 MeasurementTables.KeyValueDataContract.DATA_TYPE,
1875                 KeyValueDataValues.ER_DATATYPE.toString());
1876         erValues.put(MeasurementTables.KeyValueDataContract.VALUE, KeyValueDataValues.ER_VALUE);
1877         list.add(erValues);
1878 
1879         return list;
1880     }
1881 }
1882