summaryrefslogtreecommitdiff
path: root/adservices/apk/java/com/android/adservices/adselection/AdSelectionService.java
diff options
context:
space:
mode:
Diffstat (limited to 'adservices/apk/java/com/android/adservices/adselection/AdSelectionService.java')
-rw-r--r--adservices/apk/java/com/android/adservices/adselection/AdSelectionService.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/adservices/apk/java/com/android/adservices/adselection/AdSelectionService.java b/adservices/apk/java/com/android/adservices/adselection/AdSelectionService.java
index 0776576169..12e0441b4f 100644
--- a/adservices/apk/java/com/android/adservices/adselection/AdSelectionService.java
+++ b/adservices/apk/java/com/android/adservices/adselection/AdSelectionService.java
@@ -21,9 +21,13 @@ import android.content.Intent;
import android.os.IBinder;
import com.android.adservices.LogUtil;
+import com.android.adservices.download.MddJobService;
import com.android.adservices.service.Flags;
import com.android.adservices.service.FlagsFactory;
+import com.android.adservices.service.MaintenanceJobService;
import com.android.adservices.service.adselection.AdSelectionServiceImpl;
+import com.android.adservices.service.common.PackageChangedReceiver;
+import com.android.adservices.service.consent.ConsentManager;
import com.google.common.annotations.VisibleForTesting;
@@ -53,9 +57,16 @@ public class AdSelectionService extends Service {
LogUtil.e("Select Ads API is disabled");
return;
}
+
if (mAdSelectionService == null) {
mAdSelectionService = AdSelectionServiceImpl.create(this);
}
+
+ if (hasUserConsent()) {
+ PackageChangedReceiver.enableReceiver(this);
+ MddJobService.scheduleIfNeeded(this, /* forceSchedule */ false);
+ MaintenanceJobService.scheduleIfNeeded(this, /* forceSchedule */ false);
+ }
}
@Override
@@ -74,4 +85,9 @@ public class AdSelectionService extends Service {
mAdSelectionService.destroy();
}
}
+
+ /** @return {@code true} if the Privacy Sandbox has user consent */
+ private boolean hasUserConsent() {
+ return ConsentManager.getInstance(this).getConsent().isGiven();
+ }
}