aboutsummaryrefslogtreecommitdiff
path: root/src/com/android/tv/TvSingletons.java
blob: af488cc8e5481157f8806c4676e89c47fe32bb5e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/*
 * 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 com.android.tv.util.account.AccountHelper;

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 {

    /**
     * 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();

    /**
     * Checks if the {@link ChannelDataManager} instance has been created and all the channels has
     * been loaded.
     */
    boolean isChannelDataManagerLoadFinished();

    /** @deprecated use injection instead. */
    @Deprecated
    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();

    /** @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();

    /** @deprecated use injection instead. */
    @Deprecated
    AccountHelper getAccountHelper();

    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();
}