blob: 9e4f4620deeb4f6557d7fb714d4ee184a3cf31a9 [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.flags.has.HasUiFlags;
import com.android.tv.data.ChannelDataManager;
import com.android.tv.data.PreviewDataManager;
import com.android.tv.data.ProgramDataManager;
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.tunerinputcontroller.HasBuiltInTunerManager;
import com.android.tv.util.SetupUtils;
import com.android.tv.util.TvInputManagerHelper;
import dagger.Lazy;
import com.android.tv.common.flags.BackendKnobsFlags;
import java.util.concurrent.Executor;
/** Interface with getters for application scoped singletons. */
public interface TvSingletons extends BaseSingletons, HasBuiltInTunerManager, HasUiFlags {
/*
* Do not add any new methods here.
*
* To move a getter to Injection.
* 1. Make a type injectable @Singleton.
* 2. Mark the getter here as deprecated.
* 3. Lazily inject the object in TvApplication.
* 4. Move easy usages of getters to injection instead.
* 5. Delete the method when all usages are migrated.
*/
/**
* Returns the @{@link TvSingletons} using the application context.
*
* @deprecated use injection instead.
*/
@Deprecated
static TvSingletons getSingletons(Context context) {
return (TvSingletons) BaseApplication.getSingletons(context);
}
Analytics getAnalytics();
void handleInputCountChanged();
@Deprecated
ChannelDataManager getChannelDataManager();
/** @deprecated use injection instead. */
@Deprecated
ProgramDataManager getProgramDataManager();
PreviewDataManager getPreviewDataManager();
/** @deprecated use injection instead. */
@Deprecated
DvrDataManager getDvrDataManager();
DvrScheduleManager getDvrScheduleManager();
DvrManager getDvrManager();
RecordingScheduler getRecordingScheduler();
/** @deprecated use injection instead. */
@Deprecated
DvrWatchedPositionManager getDvrWatchedPositionManager();
InputSessionManager getInputSessionManager();
Tracker getTracker();
MainActivityWrapper getMainActivityWrapper();
boolean isRunningInMainProcess();
/** @deprecated use injection instead. */
@Deprecated
PerformanceMonitor getPerformanceMonitor();
/** @deprecated use injection instead. */
@Deprecated
TvInputManagerHelper getTvInputManagerHelper();
Lazy<EpgReader> providesEpgReader();
/** @deprecated use injection instead. */
@Deprecated
SetupUtils getSetupUtils();
/** @deprecated use injection instead. */
@Deprecated
Executor getDbExecutor();
BackendKnobsFlags getBackendKnobs();
}