13bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu/*
23bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu * Copyright (C) 2016 The Android Open Source Project
33bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu *
43bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu * Licensed under the Apache License, Version 2.0 (the "License");
53bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu * you may not use this file except in compliance with the License.
63bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu * You may obtain a copy of the License at
73bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu *
83bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu *      http://www.apache.org/licenses/LICENSE-2.0
93bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu *
103bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu * Unless required by applicable law or agreed to in writing, software
113bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu * distributed under the License is distributed on an "AS IS" BASIS,
123bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
133bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu * See the License for the specific language governing permissions and
143bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu * limitations under the License.
153bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu */
163bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu
173bcad88cbf4488e747d84893c35f2351b8f84afeDake Gupackage com.example.android.leanback;
183bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu
193bcad88cbf4488e747d84893c35f2351b8f84afeDake Guimport android.app.Activity;
203bcad88cbf4488e747d84893c35f2351b8f84afeDake Guimport android.os.Bundle;
213bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu
223bcad88cbf4488e747d84893c35f2351b8f84afeDake Guimport java.util.ArrayList;
233bcad88cbf4488e747d84893c35f2351b8f84afeDake Guimport java.util.List;
243bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu
253bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu/**
263bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu * Host PlaybackFragment and provide PIP events.
273bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu */
283bcad88cbf4488e747d84893c35f2351b8f84afeDake Gupublic class PlaybackTransportControlActivity extends Activity {
293bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu    private List<PictureInPictureListener> mListeners = new ArrayList<>();
303bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu
313bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu    /** Called when the activity is first created. */
323bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu    @Override
333bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu    public void onCreate(Bundle savedInstanceState) {
343bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu        super.onCreate(savedInstanceState);
353bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu        setContentView(R.layout.playback_transportcontrol_activity);
363bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu    }
373bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu
383bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu    @Override
393bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu    public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode) {
403bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu        for (PictureInPictureListener listener : mListeners) {
413bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu            listener.onPictureInPictureModeChanged(isInPictureInPictureMode);
423bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu        }
433bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu    }
443bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu
453bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu    /**
463bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu     * Register a PIP listener.
473bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu     */
483bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu    public void registerPictureInPictureListener(PictureInPictureListener listener) {
493bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu        mListeners.add(listener);
503bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu    }
513bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu
523bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu    /**
533bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu     * Unregister a PIP listener.
543bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu     */
553bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu    public void unregisterPictureInPictureListener(PictureInPictureListener listener) {
563bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu        mListeners.remove(listener);
573bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu    }
583bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu
593bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu    /**
603bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu     * Interface of PIP event on Activity.
613bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu     */
623bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu    public interface PictureInPictureListener {
633bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu        /**
643bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu         * Called when Activity's PIP mode is changed.
653bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu         */
663bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu        void onPictureInPictureModeChanged(boolean isInPictureInPictureMode);
673bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu    }
683bcad88cbf4488e747d84893c35f2351b8f84afeDake Gu}
69