blob: fc16f638c81186021341f81052e2ebfbef0cf062 [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.dependency_injection;
import static org.chromium.chrome.browser.dependency_injection.ChromeCommonQualifiers.APP_CONTEXT;
import static org.chromium.chrome.browser.dependency_injection.ChromeCommonQualifiers.LAST_USED_PROFILE;
import android.content.Context;
import org.chromium.base.ContextUtils;
import org.chromium.chrome.browser.contextual_suggestions.EnabledStateMonitor;
import org.chromium.chrome.browser.contextual_suggestions.EnabledStateMonitorImpl;
import org.chromium.chrome.browser.init.ChromeBrowserInitializer;
import org.chromium.chrome.browser.preferences.ChromePreferenceManager;
import org.chromium.chrome.browser.profiles.Profile;
import javax.inject.Named;
import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
/**
* Module for {@link ChromeAppComponent}.
*/
@Module
public class ChromeAppModule {
/** See {@link ModuleFactoryOverrides} */
public interface Factory { ChromeAppModule create(); }
@Provides
@Named(LAST_USED_PROFILE)
public Profile provideLastUsedProfile() {
return Profile.getLastUsedProfile();
}
@Provides
@Singleton
public EnabledStateMonitor provideEnabledStateMonitor() {
return new EnabledStateMonitorImpl();
}
@Provides
public ChromePreferenceManager providesChromePreferenceManager() {
return ChromePreferenceManager.getInstance();
}
@Provides
@Named(APP_CONTEXT)
public Context provideContext() {
return ContextUtils.getApplicationContext();
}
@Provides
public ChromeBrowserInitializer provideChromeBrowserInitializer() {
return ChromeBrowserInitializer.getInstance();
}
}