Disable PA and Topics for the detentional channel.
Test: atest
Bug: b/297516147
Change-Id: I91b3a6df87a10db238250d71cfc22d448845f4d1
diff --git a/adservices/service-core/java/com/android/adservices/service/ui/enrollment/impl/U18DetentionChannel.java b/adservices/service-core/java/com/android/adservices/service/ui/enrollment/impl/U18DetentionChannel.java
index 7e71780..1f2d284 100644
--- a/adservices/service-core/java/com/android/adservices/service/ui/enrollment/impl/U18DetentionChannel.java
+++ b/adservices/service-core/java/com/android/adservices/service/ui/enrollment/impl/U18DetentionChannel.java
@@ -21,6 +21,7 @@
import androidx.annotation.RequiresApi;
+import com.android.adservices.service.consent.AdServicesApiType;
import com.android.adservices.service.consent.ConsentManager;
import com.android.adservices.service.ui.data.UxStatesManager;
import com.android.adservices.service.ui.enrollment.base.PrivacySandboxEnrollmentChannel;
@@ -39,6 +40,9 @@
&& consentManager.wasGaUxNotificationDisplayed();
}
- /** Enroll U18 users upon graduation. */
- public void enroll(Context context, ConsentManager consentManager) {}
+ /** Perform enrollment action for detained users. */
+ public void enroll(Context context, ConsentManager consentManager) {
+ consentManager.disable(context, AdServicesApiType.FLEDGE);
+ consentManager.disable(context, AdServicesApiType.TOPICS);
+ }
}
diff --git a/adservices/tests/unittest/service-core/src/com/android/adservices/service/ui/enrollment/U18DetentionChannelTest.java b/adservices/tests/unittest/service-core/src/com/android/adservices/service/ui/enrollment/U18DetentionChannelTest.java
index f9d4643..0f13866 100644
--- a/adservices/tests/unittest/service-core/src/com/android/adservices/service/ui/enrollment/U18DetentionChannelTest.java
+++ b/adservices/tests/unittest/service-core/src/com/android/adservices/service/ui/enrollment/U18DetentionChannelTest.java
@@ -29,6 +29,7 @@
import android.content.Context;
import com.android.adservices.service.common.ConsentNotificationJobService;
+import com.android.adservices.service.consent.AdServicesApiType;
import com.android.adservices.service.consent.ConsentManager;
import com.android.adservices.service.ui.data.UxStatesManager;
import com.android.adservices.service.ui.enrollment.impl.U18DetentionChannel;
@@ -60,7 +61,6 @@
mStaticMockSession =
ExtendedMockito.mockitoSession()
.spyStatic(UxStatesManager.class)
- .spyStatic(ConsentManager.class)
.spyStatic(ConsentNotificationJobService.class)
.strictness(Strictness.WARN)
.initMocks(this)
@@ -139,4 +139,13 @@
() -> ConsentNotificationJobService.schedule(any(), anyBoolean(), anyBoolean()),
never());
}
+
+ @Test
+ public void enrollTest_targetingApisDisabled() {
+ mU18DetentionChannel.enroll(mContext, mConsentManager);
+
+ verify(mConsentManager).disable(mContext, AdServicesApiType.FLEDGE);
+ verify(mConsentManager).disable(mContext, AdServicesApiType.TOPICS);
+ verify(mConsentManager, never()).disable(mContext, AdServicesApiType.MEASUREMENTS);
+ }
}