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