1eff7719415542ba819054863b0995f07742a7a8aJeff Brown/* 2eff7719415542ba819054863b0995f07742a7a8aJeff Brown * Copyright (C) 2013 The Android Open Source Project 3eff7719415542ba819054863b0995f07742a7a8aJeff Brown * 4eff7719415542ba819054863b0995f07742a7a8aJeff Brown * Licensed under the Apache License, Version 2.0 (the "License"); 5eff7719415542ba819054863b0995f07742a7a8aJeff Brown * you may not use this file except in compliance with the License. 6eff7719415542ba819054863b0995f07742a7a8aJeff Brown * You may obtain a copy of the License at 7eff7719415542ba819054863b0995f07742a7a8aJeff Brown * 8eff7719415542ba819054863b0995f07742a7a8aJeff Brown * http://www.apache.org/licenses/LICENSE-2.0 9eff7719415542ba819054863b0995f07742a7a8aJeff Brown * 10eff7719415542ba819054863b0995f07742a7a8aJeff Brown * Unless required by applicable law or agreed to in writing, software 11eff7719415542ba819054863b0995f07742a7a8aJeff Brown * distributed under the License is distributed on an "AS IS" BASIS, 12eff7719415542ba819054863b0995f07742a7a8aJeff Brown * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13eff7719415542ba819054863b0995f07742a7a8aJeff Brown * See the License for the specific language governing permissions and 14eff7719415542ba819054863b0995f07742a7a8aJeff Brown * limitations under the License. 15eff7719415542ba819054863b0995f07742a7a8aJeff Brown */ 16eff7719415542ba819054863b0995f07742a7a8aJeff Brown 17eff7719415542ba819054863b0995f07742a7a8aJeff Brownpackage android.support.v7.app; 18eff7719415542ba819054863b0995f07742a7a8aJeff Brown 19eff7719415542ba819054863b0995f07742a7a8aJeff Brown/** 20eff7719415542ba819054863b0995f07742a7a8aJeff Brown * The media route dialog factory is responsible for creating the media route 21eff7719415542ba819054863b0995f07742a7a8aJeff Brown * chooser and controller dialogs as needed. 22eff7719415542ba819054863b0995f07742a7a8aJeff Brown * <p> 23eff7719415542ba819054863b0995f07742a7a8aJeff Brown * The application can customize the dialogs by providing a subclass of the 24eff7719415542ba819054863b0995f07742a7a8aJeff Brown * dialog factory to the {@link MediaRouteButton} using the 25eff7719415542ba819054863b0995f07742a7a8aJeff Brown * {@link MediaRouteButton#setDialogFactory setDialogFactory} method. 26eff7719415542ba819054863b0995f07742a7a8aJeff Brown * </p> 27eff7719415542ba819054863b0995f07742a7a8aJeff Brown */ 28eff7719415542ba819054863b0995f07742a7a8aJeff Brownpublic class MediaRouteDialogFactory { 29eff7719415542ba819054863b0995f07742a7a8aJeff Brown private static final MediaRouteDialogFactory sDefault = new MediaRouteDialogFactory(); 30eff7719415542ba819054863b0995f07742a7a8aJeff Brown 31eff7719415542ba819054863b0995f07742a7a8aJeff Brown /** 32eff7719415542ba819054863b0995f07742a7a8aJeff Brown * Creates a default media route dialog factory. 33eff7719415542ba819054863b0995f07742a7a8aJeff Brown */ 34eff7719415542ba819054863b0995f07742a7a8aJeff Brown public MediaRouteDialogFactory() { 35eff7719415542ba819054863b0995f07742a7a8aJeff Brown } 36eff7719415542ba819054863b0995f07742a7a8aJeff Brown 37eff7719415542ba819054863b0995f07742a7a8aJeff Brown /** 38eff7719415542ba819054863b0995f07742a7a8aJeff Brown * Gets the default factory instance. 39eff7719415542ba819054863b0995f07742a7a8aJeff Brown * 40eff7719415542ba819054863b0995f07742a7a8aJeff Brown * @return The default media route dialog factory, never null. 41eff7719415542ba819054863b0995f07742a7a8aJeff Brown */ 42eff7719415542ba819054863b0995f07742a7a8aJeff Brown public static MediaRouteDialogFactory getDefault() { 43eff7719415542ba819054863b0995f07742a7a8aJeff Brown return sDefault; 44eff7719415542ba819054863b0995f07742a7a8aJeff Brown } 45eff7719415542ba819054863b0995f07742a7a8aJeff Brown 46eff7719415542ba819054863b0995f07742a7a8aJeff Brown /** 47eff7719415542ba819054863b0995f07742a7a8aJeff Brown * Called when the chooser dialog is being opened and it is time to create the fragment. 48eff7719415542ba819054863b0995f07742a7a8aJeff Brown * <p> 49eff7719415542ba819054863b0995f07742a7a8aJeff Brown * Subclasses may override this method to create a customized fragment. 50eff7719415542ba819054863b0995f07742a7a8aJeff Brown * </p> 51eff7719415542ba819054863b0995f07742a7a8aJeff Brown * 52eff7719415542ba819054863b0995f07742a7a8aJeff Brown * @return The media route chooser dialog fragment, must not be null. 53eff7719415542ba819054863b0995f07742a7a8aJeff Brown */ 54eff7719415542ba819054863b0995f07742a7a8aJeff Brown public MediaRouteChooserDialogFragment onCreateChooserDialogFragment() { 55eff7719415542ba819054863b0995f07742a7a8aJeff Brown return new MediaRouteChooserDialogFragment(); 56eff7719415542ba819054863b0995f07742a7a8aJeff Brown } 57eff7719415542ba819054863b0995f07742a7a8aJeff Brown 58eff7719415542ba819054863b0995f07742a7a8aJeff Brown /** 59eff7719415542ba819054863b0995f07742a7a8aJeff Brown * Called when the controller dialog is being opened and it is time to create the fragment. 60eff7719415542ba819054863b0995f07742a7a8aJeff Brown * <p> 61eff7719415542ba819054863b0995f07742a7a8aJeff Brown * Subclasses may override this method to create a customized fragment. 62eff7719415542ba819054863b0995f07742a7a8aJeff Brown * </p> 63eff7719415542ba819054863b0995f07742a7a8aJeff Brown * 64eff7719415542ba819054863b0995f07742a7a8aJeff Brown * @return The media route controller dialog fragment, must not be null. 65eff7719415542ba819054863b0995f07742a7a8aJeff Brown */ 66eff7719415542ba819054863b0995f07742a7a8aJeff Brown public MediaRouteControllerDialogFragment onCreateControllerDialogFragment() { 67eff7719415542ba819054863b0995f07742a7a8aJeff Brown return new MediaRouteControllerDialogFragment(); 68eff7719415542ba819054863b0995f07742a7a8aJeff Brown } 69eff7719415542ba819054863b0995f07742a7a8aJeff Brown} 70