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.spe; 18 19 import java.util.Collections; 20 import java.util.HashMap; 21 import java.util.Map; 22 23 /** Enum class to store background jobs metadata. */ 24 public enum AdservicesJobInfo { 25 MAINTENANCE_JOB("MAINTENANCE_JOB", 1), 26 27 TOPICS_EPOCH_JOB("TOPICS_EPOCH_JOB", 2), 28 29 MEASUREMENT_EVENT_MAIN_REPORTING_JOB("MEASUREMENT_EVENT_MAIN_REPORTING_JOB", 3), 30 31 MEASUREMENT_DELETE_EXPIRED_JOB("MEASUREMENT_DELETE_EXPIRED_JOB", 4), 32 33 MEASUREMENT_ATTRIBUTION_JOB("MEASUREMENT_ATTRIBUTION_JOB", 5), 34 35 MEASUREMENT_EVENT_FALLBACK_REPORTING_JOB("MEASUREMENT_EVENT_FALLBACK_REPORTING_JOB", 6), 36 37 MEASUREMENT_AGGREGATE_MAIN_REPORTING_JOB("MEASUREMENT_AGGREGATE_MAIN_REPORTING_JOB", 7), 38 39 MEASUREMENT_AGGREGATE_FALLBACK_REPORTING_JOB("MEASUREMENT_AGGREGATE_FALLBACK_REPORTING_JOB", 8), 40 41 FLEDGE_BACKGROUND_FETCH_JOB("FLEDGE_BACKGROUND_FETCH_JOB", 9), 42 43 CONSENT_NOTIFICATION_JOB("CONSENT_NOTIFICATION_JOB", 10), 44 45 MDD_MAINTENANCE_PERIODIC_TASK_JOB("MDD_MAINTENANCE_PERIODIC_TASK_JOB", 11), 46 47 MDD_CHARGING_PERIODIC_TASK_JOB("MDD_CHARGING_PERIODIC_TASK_JOB", 12), 48 49 MDD_CELLULAR_CHARGING_PERIODIC_TASK_JOB("MDD_CELLULAR_CHARGING_PERIODIC_TASK_JOB", 13), 50 51 MDD_WIFI_CHARGING_PERIODIC_TASK_JOB("MDD_WIFI_CHARGING_PERIODIC_TASK_JOB", 14), 52 53 @Deprecated 54 DEPRECATED_ASYNC_REGISTRATION_QUEUE_JOB("DEPRECATED_ASYNC_REGISTRATION_QUEUE_JOB", 15), 55 56 MEASUREMENT_DELETE_UNINSTALLED_JOB("MEASUREMENT_DELETE_UNINSTALLED_JOB", 16), 57 58 MEASUREMENT_DEBUG_REPORT_JOB("MEASUREMENT_DEBUG_REPORT_JOB", 17), 59 60 MEASUREMENT_DEBUG_REPORT_API_JOB("MEASUREMENT_DEBUG_REPORT_API_JOB", 18), 61 62 MEASUREMENT_ASYNC_REGISTRATION_FALLBACK_JOB("MEASUREMENT_ASYNC_REGISTRATION_FALLBACK_JOB", 19), 63 64 MEASUREMENT_ASYNC_REGISTRATION_JOB("MEASUREMENT_ASYNC_REGISTRATION_JOB", 20), 65 66 MEASUREMENT_ATTRIBUTION_FALLBACK_JOB("MEASUREMENT_ATTRIBUTION_FALLBACK_JOB", 21); 67 68 private final String mJobServiceName; 69 private final int mJobId; 70 71 // The reverse mapping to get Job Info by Job ID. 72 private static final Map<Integer, AdservicesJobInfo> JOB_ID_TO_INFO_MAP = 73 Collections.unmodifiableMap(initializeMapping()); 74 AdservicesJobInfo(String jobServiceName, int jobId)75 AdservicesJobInfo(String jobServiceName, int jobId) { 76 mJobServiceName = jobServiceName; 77 mJobId = jobId; 78 } 79 80 /** 81 * Get the job name of a job info. 82 * 83 * @return the job name 84 */ getJobServiceName()85 public String getJobServiceName() { 86 return mJobServiceName; 87 } 88 89 /** 90 * Get the job id of a job info. 91 * 92 * @return the job id 93 */ getJobId()94 public int getJobId() { 95 return mJobId; 96 } 97 getJobIdToInfoMap()98 static Map<Integer, AdservicesJobInfo> getJobIdToInfoMap() { 99 return JOB_ID_TO_INFO_MAP; 100 } 101 initializeMapping()102 private static Map<Integer, AdservicesJobInfo> initializeMapping() { 103 Map<Integer, AdservicesJobInfo> map = new HashMap<>(); 104 for (AdservicesJobInfo info : AdservicesJobInfo.values()) { 105 map.put(info.getJobId(), info); 106 } 107 108 return map; 109 } 110 } 111