blob: 0c7f78a3983affd2277936973a31bafd07b4347b [file] [log] [blame]
/*
* Copyright (C) 2015 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;
import android.content.Context;
import com.android.tv.analytics.Analytics;
import com.android.tv.analytics.Tracker;
import com.android.tv.common.BaseApplication;
import com.android.tv.common.BaseSingletons;
import com.android.tv.common.experiments.ExperimentLoader;
import com.android.tv.data.ChannelDataManager;
import com.android.tv.data.PreviewDataManager;
import com.android.tv.data.ProgramDataManager;
import com.android.tv.data.epg.EpgFetcher;
import com.android.tv.data.epg.EpgReader;
import com.android.tv.dvr.DvrDataManager;
import com.android.tv.dvr.DvrManager;
import com.android.tv.dvr.DvrScheduleManager;
import com.android.tv.dvr.DvrWatchedPositionManager;
import com.android.tv.dvr.recorder.RecordingScheduler;
import com.android.tv.perf.PerformanceMonitor;
import com.android.tv.tuner.TunerInputController;
import com.android.tv.util.SetupUtils;
import com.android.tv.util.TvInputManagerHelper;
import com.android.tv.util.account.AccountHelper;
import java.util.concurrent.Executor;
import javax.inject.Provider;
/** Interface with getters for application scoped singletons. */
public interface TvSingletons extends BaseSingletons {
/** Returns the @{@link TvSingletons} using the application context. */
static TvSingletons getSingletons(Context context) {
return (TvSingletons) BaseApplication.getSingletons(context);
}
Analytics getAnalytics();
void handleInputCountChanged();
ChannelDataManager getChannelDataManager();
/**
* Checks if the {@link ChannelDataManager} instance has been created and all the channels has
* been loaded.
*/
boolean isChannelDataManagerLoadFinished();
ProgramDataManager getProgramDataManager();
/**
* Checks if the {@link ProgramDataManager} instance has been created and the current programs
* for all the channels has been loaded.
*/
boolean isProgramDataManagerCurrentProgramsLoadFinished();
PreviewDataManager getPreviewDataManager();
DvrDataManager getDvrDataManager();
DvrScheduleManager getDvrScheduleManager();
DvrManager getDvrManager();
RecordingScheduler getRecordingScheduler();
DvrWatchedPositionManager getDvrWatchedPositionManager();
InputSessionManager getInputSessionManager();
Tracker getTracker();
MainActivityWrapper getMainActivityWrapper();
AccountHelper getAccountHelper();
boolean isRunningInMainProcess();
PerformanceMonitor getPerformanceMonitor();
TvInputManagerHelper getTvInputManagerHelper();
Provider<EpgReader> providesEpgReader();
EpgFetcher getEpgFetcher();
SetupUtils getSetupUtils();
TunerInputController getTunerInputController();
ExperimentLoader getExperimentLoader();
Executor getDbExecutor();
}