/* * Copyright (C) 2016 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 android.support.v17.leanback.app; import android.support.v17.leanback.media.PlaybackGlueHost; import android.support.v17.leanback.widget.Action; import android.support.v17.leanback.widget.OnActionClickedListener; import android.support.v17.leanback.widget.OnItemViewClickedListener; import android.support.v17.leanback.widget.PlaybackRowPresenter; import android.support.v17.leanback.widget.PlaybackSeekUi; import android.support.v17.leanback.widget.Presenter; import android.support.v17.leanback.widget.Row; import android.support.v17.leanback.widget.RowPresenter; import android.view.View; /** * {@link PlaybackGlueHost} implementation * the interaction between this class and {@link PlaybackFragment}. */ public class PlaybackFragmentGlueHost extends PlaybackGlueHost implements PlaybackSeekUi { private final PlaybackFragment mFragment; public PlaybackFragmentGlueHost(PlaybackFragment fragment) { this.mFragment = fragment; } @Override public void setControlsOverlayAutoHideEnabled(boolean enabled) { mFragment.setControlsOverlayAutoHideEnabled(enabled); } @Override public boolean isControlsOverlayAutoHideEnabled() { return mFragment.isControlsOverlayAutoHideEnabled(); } @Override public void setOnKeyInterceptListener(View.OnKeyListener onKeyListener) { mFragment.setOnKeyInterceptListener(onKeyListener); } @Override public void setOnActionClickedListener(final OnActionClickedListener listener) { if (listener == null) { mFragment.setOnPlaybackItemViewClickedListener(null); } else { mFragment.setOnPlaybackItemViewClickedListener(new OnItemViewClickedListener() { @Override public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item, RowPresenter.ViewHolder rowViewHolder, Row row) { if (item instanceof Action) { listener.onActionClicked((Action) item); } } }); } } @Override public void setHostCallback(HostCallback callback) { mFragment.setHostCallback(callback); } @Override public void notifyPlaybackRowChanged() { mFragment.notifyPlaybackRowChanged(); } @Override public void setPlaybackRowPresenter(PlaybackRowPresenter presenter) { mFragment.setPlaybackRowPresenter(presenter); } @Override public void setPlaybackRow(Row row) { mFragment.setPlaybackRow(row); } @Override public void fadeOut() { mFragment.fadeOut(); } @Override public boolean isControlsOverlayVisible() { return mFragment.isControlsOverlayVisible(); } @Override public void hideControlsOverlay(boolean runAnimation) { mFragment.hideControlsOverlay(runAnimation); } @Override public void showControlsOverlay(boolean runAnimation) { mFragment.showControlsOverlay(runAnimation); } @Override public void setPlaybackSeekUiClient(Client client) { mFragment.setPlaybackSeekUiClient(client); } final PlayerCallback mPlayerCallback = new PlayerCallback() { @Override public void onBufferingStateChanged(boolean start) { mFragment.onBufferingStateChanged(start); } @Override public void onError(int errorCode, CharSequence errorMessage) { mFragment.onError(errorCode, errorMessage); } @Override public void onVideoSizeChanged(int videoWidth, int videoHeight) { mFragment.onVideoSizeChanged(videoWidth, videoHeight); } }; @Override public PlayerCallback getPlayerCallback() { return mPlayerCallback; } }