1816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko/*
2816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * Copyright (C) 2015 The Android Open Source Project
3816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko *
4816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * Licensed under the Apache License, Version 2.0 (the "License");
5816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * you may not use this file except in compliance with the License.
6816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * You may obtain a copy of the License at
7816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko *
8816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko *      http://www.apache.org/licenses/LICENSE-2.0
9816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko *
10816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * Unless required by applicable law or agreed to in writing, software
11816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * distributed under the License is distributed on an "AS IS" BASIS,
12816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * See the License for the specific language governing permissions and
14816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * limitations under the License.
15816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko */
16816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
17816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalkopackage com.android.tv.analytics;
18816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
1907b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalkoimport com.android.tv.TimeShiftManager;
20816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalkoimport com.android.tv.data.Channel;
21816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
22816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko/**
23816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * Interface for sending user activity for analysis.
24816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko */
25816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalkopublic interface Tracker {
2607b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko
2707b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko    /**
2807b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko     * Send the number of channels that doesn't change often.
2907b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko     *
3007b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko     * <p>Because the number of channels does not change often, this method should not be called
3107b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko     * more than once a day.
3207b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko     *
3307b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko     * @param browsableChannelCount the number of browsable channels.
3407b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko     * @param totalChannelCount the number of all channels.
3507b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko     */
3607b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko    void sendChannelCount(int browsableChannelCount, int totalChannelCount);
3707b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko
3807b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko    /**
3907b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko     * Send data that doesn't change often.
4007b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko     *
4107b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko     * <p>Because configuration info does not change often, this method should not be called more
4207b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko     * than once a day.
4307b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko     *
4407b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko     * @param info the configuration info.
4507b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko     */
467d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko    void sendConfigurationInfo(ConfigurationInfo info);
4707b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko
48816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    /**
49816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * Sends tracking information for starting the MainActivity.
50816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     */
51816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    void sendMainStart();
52816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
53816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    /**
54816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * Sends tracking for stopping MainActivity.
55816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     *
56816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * @param durationMs The time main activity was "started" in milliseconds.
57816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     */
58816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    void sendMainStop( long durationMs);
59816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
60816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    /**
61816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * Sets the screen name and sends a ScreenView hit.
62816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     */
63816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    void sendScreenView(String screenName);
64816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
65816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    /**
66816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * Sends tracking information for starting to view a channel.
67816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     *
68816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * @param channel the current channel
6907b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko     * @param tunedByRecommendation True, if the channel was tuned by the recommendation.
70816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     */
7107b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko    void sendChannelViewStart(Channel channel, boolean tunedByRecommendation);
72816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
73816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    /**
74816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * Sends tracking information for tuning to a channel.
75816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     *
76816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * @param channel The channel that was being tuned.
77816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * @param durationMs The time the channel took to tune in milliseconds.
78816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     */
79816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    void sendChannelTuneTime(Channel channel, long durationMs);
80816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
81816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    /**
82816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * Sends tracking information for stopping viewing a channel.
83816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     *
84816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * @param channel The channel that was being watched.
85816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * @param durationMs The time the channel was watched in milliseconds.
86816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     */
87816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    void sendChannelViewStop(Channel channel, long durationMs);
88816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
89816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    /**
90816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * Sends tracking information for pressing channel up.
91816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     */
92816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    void sendChannelUp();
93816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
94816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    /**
95816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * Sends tracking information for pressing channel down.
96816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     */
97816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    void sendChannelDown();
98816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
99816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    /**
100816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * Sends tracking information for showing the main menu.
101816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     */
102816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    void sendShowMenu();
103816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
104816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    /**
105816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * Sends tracking for hiding the main menu.
106816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     *
107816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * @param durationMs The duration the menu was shown in milliseconds.
108816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     */
109816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    void sendHideMenu(long durationMs);
110816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
111816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    /**
112816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * Sends tracking for clicking a menu item.
113816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     *
114816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * <p><strong>WARNING</strong> callers must ensure no PII is included in the label.
115816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     *
116816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * @param label The label of the item clicked.
117816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     */
118816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    void sendMenuClicked(String label);
119816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
120816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    /**
121816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * Sends tracking for clicking a menu item.
122816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     *
123816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * <p>NOTE: the tracker will use the english version of the label.
124816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     *
125816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * @param labelResId The resource Id of the label for the menu item.
126816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     */
127816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    void sendMenuClicked(int labelResId);
128816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
129816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    /**
13007b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko     * Sends tracking information for showing the Electronic Program Guide (EPG).
131816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     */
132816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    void sendShowEpg();
133816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
134816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    /**
13507b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko     * Sends tracking information for clicking an Electronic Program Guide (EPG) item.
136816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     */
137816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    void sendEpgItemClicked();
138816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
139816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    /**
14007b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko     * Sends tracking for hiding the Electronic Program Guide (EPG).
141816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     *
142816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * @param durationMs The duration the EPG was shown in milliseconds.
143816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     */
144816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    void sendHideEpg(long durationMs);
145816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
146816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    /**
147816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * Sends tracking information for showing the channel switch view.
148816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     */
149816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    void sendShowChannelSwitch();
150816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
151816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    /**
152816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * Sends tracking for hiding the channel switch view.
153816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     *
154816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * @param durationMs The duration the channel switch view was shown in milliseconds.
155816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     */
156816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    void sendHideChannelSwitch(long durationMs);
157816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
158816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    /**
159816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * Sends tracking for each channel number or delimiter pressed.
160816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     */
161816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    void sendChannelNumberInput();
162816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
163816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    /**
164816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * Sends tracking for navigating during channel number input.
165816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     *
166816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * <p>This is sent once per channel input viewing.
167816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     */
168816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    void sendChannelInputNavigated();
169816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
170816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    /**
171816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * Sends tracking for channel clicked.
172816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     */
173816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    void sendChannelNumberItemClicked();
174816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
175816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    /**
176816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * Sends tracking for channel chosen (tuned) because the channel switch view timed out.
177816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     */
178816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    void sendChannelNumberItemChosenByTimeout();
179816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
180816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    /**
1817d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko     * Sends tracking for the reason video is unavailable on a channel.
1827d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko     */
1837d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko    void sendChannelVideoUnavailable(Channel channel, int reason);
1847d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko
1857d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko    /**
18607b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko     * Sends HDMI AC3 passthrough capabilities.
187816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     *
188816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * @param isSupported {@code true} if the feature is supported; otherwise {@code false}.
189816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     */
190816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    void sendAc3PassthroughCapabilities(boolean isSupported);
191816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
192816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    /**
1937d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko     * Sends tracking for input a connection failure.
1947d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko     * <p><strong>WARNING</strong> callers must ensure no PII is included in the inputId.
1957d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko     *
1967d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko     * @param inputId the input the failure happened on
1977d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko     */
1987d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko    void sendInputConnectionFailure(String inputId);
1997d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko
2007d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko    /**
2017d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko     * Sends tracking for input disconnected.
2027d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko     * <p><strong>WARNING</strong> callers must ensure no PII is included in the inputId.
2037d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko     *
2047d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko     * @param inputId the input the failure happened on
2057d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko     */
2067d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko    void sendInputDisconnected(String inputId);
2077d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko
2087d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko    /**
209816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * Sends tracking information for showing the input selection view.
210816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     */
211816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    void sendShowInputSelection();
212816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
213816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    /**
214816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * Sends tracking for hiding the input selection view.
215816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     *
216816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * @param durationMs The duration the input selection view was shown in milliseconds.
217816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     */
218816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    void sendHideInputSelection(long durationMs);
219816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
220816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    /**
221816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * Sends tracking for input selected by the selection view.
222816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     *
223816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * <p><strong>WARNING</strong> callers must ensure no PII is included in the label.
224816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     *
225816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * @param inputLabel the label of the TV input selected
226816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     */
227816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    void sendInputSelected(String inputLabel);
228816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
229816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    /**
230816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * Sends tracking information for showing a side panel.
231816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     *
232816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * @param trackerLabel the label of the side panel.
233816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     */
234816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    void sendShowSidePanel(HasTrackerLabel trackerLabel);
235816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko
236816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    /**
237816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * Sends tracking for hiding a side panel.
238816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     *
239816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * @param trackerLabel The label of the side panel
240816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     * @param durationMs The duration the side panel was shown in milliseconds.
241816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko     */
242816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko    void sendHideSidePanel(HasTrackerLabel trackerLabel, long durationMs);
24307b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko
24407b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko    /**
24507b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko     * Sends time shift action (pause, ff, etc).
24607b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko     *
2477d67089aa1e9aa2123c3cd2f386d7019a1544db1Nick Chalko     * @param actionId The {@link com.android.tv.TimeShiftManager.TimeShiftActionId}
24807b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko     */
24907b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko    void sendTimeShiftAction(@TimeShiftManager.TimeShiftActionId int actionId);
250816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko}
251