/*
 * Copyright (C) 2018 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 com.android.tv.app;

import com.android.tv.search.LocalSearchProvider;
import dagger.Component;
import dagger.android.AndroidInjectionModule;
import dagger.android.AndroidInjector;
import javax.inject.Singleton;

/** Dagger component for {@link LiveTvApplication}. */
@Singleton
@Component(
    modules = {
        AndroidInjectionModule.class,
        LiveTvModule.class,
        LocalSearchProvider.Module.class
    })
public interface LiveTvApplicationComponent extends AndroidInjector<LiveTvApplication> {}
