diff options
Diffstat (limited to 'adservices/apk/java/com/android/adservices/adselection/AdSelectionService.java')
-rw-r--r-- | adservices/apk/java/com/android/adservices/adselection/AdSelectionService.java | 16 |
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(); + } } |