138 lines
6.6 KiB
Java
138 lines
6.6 KiB
Java
/*
|
|
* Copyright (C) 2022 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
package android.adservices;
|
|
|
|
import static android.adservices.adid.AdIdManager.ADID_SERVICE;
|
|
import static android.adservices.adselection.AdSelectionManager.AD_SELECTION_SERVICE;
|
|
import static android.adservices.appsetid.AppSetIdManager.APPSETID_SERVICE;
|
|
import static android.adservices.common.AdServicesCommonManager.AD_SERVICES_COMMON_SERVICE;
|
|
import static android.adservices.customaudience.CustomAudienceManager.CUSTOM_AUDIENCE_SERVICE;
|
|
import static android.adservices.measurement.MeasurementManager.MEASUREMENT_SERVICE;
|
|
import static android.adservices.signals.ProtectedSignalsManager.PROTECTED_SIGNALS_SERVICE;
|
|
import static android.adservices.topics.TopicsManager.TOPICS_SERVICE;
|
|
|
|
import android.adservices.adid.AdIdManager;
|
|
import android.adservices.adselection.AdSelectionManager;
|
|
import android.adservices.appsetid.AppSetIdManager;
|
|
import android.adservices.common.AdServicesCommonManager;
|
|
import android.adservices.customaudience.CustomAudienceManager;
|
|
import android.adservices.measurement.MeasurementManager;
|
|
import android.adservices.signals.ProtectedSignalsManager;
|
|
import android.adservices.topics.TopicsManager;
|
|
import android.annotation.SystemApi;
|
|
import android.app.SystemServiceRegistry;
|
|
import android.app.sdksandbox.SdkSandboxSystemServiceRegistry;
|
|
import android.content.Context;
|
|
import android.os.Build;
|
|
|
|
import androidx.annotation.RequiresApi;
|
|
|
|
import com.android.adservices.LogUtil;
|
|
|
|
/**
|
|
* Class holding initialization code for the AdServices module.
|
|
*
|
|
* @hide
|
|
*/
|
|
// TODO(b/269798827): Enable for R.
|
|
@RequiresApi(Build.VERSION_CODES.S)
|
|
@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
|
|
public class AdServicesFrameworkInitializer {
|
|
private AdServicesFrameworkInitializer() {
|
|
}
|
|
|
|
/**
|
|
* Called by {@link SystemServiceRegistry}'s static initializer and registers all
|
|
* AdServices services to {@link Context}, so that
|
|
* {@link Context#getSystemService} can return them.
|
|
*
|
|
* @throws IllegalStateException if this is called from anywhere besides
|
|
* {@link SystemServiceRegistry}
|
|
*/
|
|
public static void registerServiceWrappers() {
|
|
LogUtil.d("Registering AdServices's TopicsManager.");
|
|
SystemServiceRegistry.registerContextAwareService(
|
|
TOPICS_SERVICE, TopicsManager.class,
|
|
(c) -> new TopicsManager(c));
|
|
// TODO(b/242889021): don't use this workaround on devices that have proper fix
|
|
SdkSandboxSystemServiceRegistry.getInstance()
|
|
.registerServiceMutator(
|
|
TOPICS_SERVICE,
|
|
(service, ctx) -> ((TopicsManager) service).initialize(ctx));
|
|
|
|
LogUtil.d("Registering AdServices's CustomAudienceManager.");
|
|
SystemServiceRegistry.registerContextAwareService(
|
|
CUSTOM_AUDIENCE_SERVICE, CustomAudienceManager.class, CustomAudienceManager::new);
|
|
// TODO(b/242889021): don't use this workaround on devices that have proper fix
|
|
SdkSandboxSystemServiceRegistry.getInstance()
|
|
.registerServiceMutator(
|
|
CUSTOM_AUDIENCE_SERVICE,
|
|
(service, ctx) -> ((CustomAudienceManager) service).initialize(ctx));
|
|
|
|
LogUtil.d("Registering AdServices's AdSelectionManager.");
|
|
SystemServiceRegistry.registerContextAwareService(
|
|
AD_SELECTION_SERVICE, AdSelectionManager.class, AdSelectionManager::new);
|
|
// TODO(b/242889021): don't use this workaround on devices that have proper fix
|
|
SdkSandboxSystemServiceRegistry.getInstance()
|
|
.registerServiceMutator(
|
|
AD_SELECTION_SERVICE,
|
|
(service, ctx) -> ((AdSelectionManager) service).initialize(ctx));
|
|
|
|
LogUtil.d("Registering AdServices's ProtectedSignalsManager.");
|
|
SystemServiceRegistry.registerContextAwareService(
|
|
PROTECTED_SIGNALS_SERVICE,
|
|
ProtectedSignalsManager.class,
|
|
ProtectedSignalsManager::new);
|
|
// TODO(b/242889021): don't use this workaround on devices that have proper fix
|
|
SdkSandboxSystemServiceRegistry.getInstance()
|
|
.registerServiceMutator(
|
|
PROTECTED_SIGNALS_SERVICE,
|
|
(service, ctx) -> ((ProtectedSignalsManager) service).initialize(ctx));
|
|
|
|
LogUtil.d("Registering AdServices's MeasurementManager.");
|
|
SystemServiceRegistry.registerContextAwareService(
|
|
MEASUREMENT_SERVICE, MeasurementManager.class, MeasurementManager::new);
|
|
// TODO(b/242889021): don't use this workaround on devices that have proper fix
|
|
SdkSandboxSystemServiceRegistry.getInstance()
|
|
.registerServiceMutator(
|
|
MEASUREMENT_SERVICE,
|
|
(service, ctx) -> ((MeasurementManager) service).initialize(ctx));
|
|
|
|
LogUtil.d("Registering AdServices's AdIdManager.");
|
|
SystemServiceRegistry.registerContextAwareService(
|
|
ADID_SERVICE, AdIdManager.class, (c) -> new AdIdManager(c));
|
|
// TODO(b/242889021): don't use this workaround on devices that have proper fix
|
|
SdkSandboxSystemServiceRegistry.getInstance()
|
|
.registerServiceMutator(
|
|
ADID_SERVICE, (service, ctx) -> ((AdIdManager) service).initialize(ctx));
|
|
|
|
LogUtil.d("Registering AdServices's AppSetIdManager.");
|
|
SystemServiceRegistry.registerContextAwareService(
|
|
APPSETID_SERVICE, AppSetIdManager.class, (c) -> new AppSetIdManager(c));
|
|
// TODO(b/242889021): don't use this workaround on devices that have proper fix
|
|
SdkSandboxSystemServiceRegistry.getInstance()
|
|
.registerServiceMutator(
|
|
APPSETID_SERVICE,
|
|
(service, ctx) -> ((AppSetIdManager) service).initialize(ctx));
|
|
|
|
LogUtil.d("Registering AdServices's AdServicesCommonManager.");
|
|
SystemServiceRegistry.registerContextAwareService(AD_SERVICES_COMMON_SERVICE,
|
|
AdServicesCommonManager.class,
|
|
(c) -> new AdServicesCommonManager(c));
|
|
}
|
|
}
|