• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2016 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5  * in compliance with the License. You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software distributed under the License
10  * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11  * or implied. See the License for the specific language governing permissions and limitations under
12  * the License.
13  */
14 package android.support.v17.leanback.app;
15 
16 import android.support.v17.leanback.media.PlaybackGlueHost;
17 import android.support.v17.leanback.widget.Action;
18 import android.support.v17.leanback.widget.OnActionClickedListener;
19 import android.support.v17.leanback.widget.OnItemViewClickedListener;
20 import android.support.v17.leanback.widget.PlaybackRowPresenter;
21 import android.support.v17.leanback.widget.PlaybackSeekUi;
22 import android.support.v17.leanback.widget.Presenter;
23 import android.support.v17.leanback.widget.Row;
24 import android.support.v17.leanback.widget.RowPresenter;
25 import android.view.View;
26 
27 /**
28  * {@link PlaybackGlueHost} implementation
29  * the interaction between this class and {@link PlaybackFragment}.
30  */
31 public class PlaybackFragmentGlueHost extends PlaybackGlueHost implements PlaybackSeekUi {
32     private final PlaybackFragment mFragment;
33 
PlaybackFragmentGlueHost(PlaybackFragment fragment)34     public PlaybackFragmentGlueHost(PlaybackFragment fragment) {
35         this.mFragment = fragment;
36     }
37 
38     @Override
setControlsOverlayAutoHideEnabled(boolean enabled)39     public void setControlsOverlayAutoHideEnabled(boolean enabled) {
40         mFragment.setControlsOverlayAutoHideEnabled(enabled);
41     }
42 
43     @Override
isControlsOverlayAutoHideEnabled()44     public boolean isControlsOverlayAutoHideEnabled() {
45         return mFragment.isControlsOverlayAutoHideEnabled();
46     }
47 
48     @Override
setOnKeyInterceptListener(View.OnKeyListener onKeyListener)49     public void setOnKeyInterceptListener(View.OnKeyListener onKeyListener) {
50         mFragment.setOnKeyInterceptListener(onKeyListener);
51     }
52 
53     @Override
setOnActionClickedListener(final OnActionClickedListener listener)54     public void setOnActionClickedListener(final OnActionClickedListener listener) {
55         if (listener == null) {
56             mFragment.setOnPlaybackItemViewClickedListener(null);
57         } else {
58             mFragment.setOnPlaybackItemViewClickedListener(new OnItemViewClickedListener() {
59                 @Override
60                 public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
61                                           RowPresenter.ViewHolder rowViewHolder, Row row) {
62                     if (item instanceof Action) {
63                         listener.onActionClicked((Action) item);
64                     }
65                 }
66             });
67         }
68     }
69 
70     @Override
setHostCallback(HostCallback callback)71     public void setHostCallback(HostCallback callback) {
72         mFragment.setHostCallback(callback);
73     }
74 
75     @Override
notifyPlaybackRowChanged()76     public void notifyPlaybackRowChanged() {
77         mFragment.notifyPlaybackRowChanged();
78     }
79 
80     @Override
setPlaybackRowPresenter(PlaybackRowPresenter presenter)81     public void setPlaybackRowPresenter(PlaybackRowPresenter presenter) {
82         mFragment.setPlaybackRowPresenter(presenter);
83     }
84 
85     @Override
setPlaybackRow(Row row)86     public void setPlaybackRow(Row row) {
87         mFragment.setPlaybackRow(row);
88     }
89 
90     @Override
fadeOut()91     public void fadeOut() {
92         mFragment.fadeOut();
93     }
94 
95     @Override
isControlsOverlayVisible()96     public boolean isControlsOverlayVisible() {
97         return mFragment.isControlsOverlayVisible();
98     }
99 
100     @Override
hideControlsOverlay(boolean runAnimation)101     public void hideControlsOverlay(boolean runAnimation) {
102         mFragment.hideControlsOverlay(runAnimation);
103     }
104 
105     @Override
showControlsOverlay(boolean runAnimation)106     public void showControlsOverlay(boolean runAnimation) {
107         mFragment.showControlsOverlay(runAnimation);
108     }
109 
110     @Override
setPlaybackSeekUiClient(Client client)111     public void setPlaybackSeekUiClient(Client client) {
112         mFragment.setPlaybackSeekUiClient(client);
113     }
114 
115     final PlayerCallback mPlayerCallback =
116             new PlayerCallback() {
117                 @Override
118                 public void onBufferingStateChanged(boolean start) {
119                     mFragment.onBufferingStateChanged(start);
120                 }
121 
122                 @Override
123                 public void onError(int errorCode, CharSequence errorMessage) {
124                     mFragment.onError(errorCode, errorMessage);
125                 }
126 
127                 @Override
128                 public void onVideoSizeChanged(int videoWidth, int videoHeight) {
129                     mFragment.onVideoSizeChanged(videoWidth, videoHeight);
130                 }
131             };
132 
133     @Override
getPlayerCallback()134     public PlayerCallback getPlayerCallback() {
135         return mPlayerCallback;
136     }
137 }
138