| /* |
| * Copyright (C) 2013 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 com.android.internal.app; |
| |
| import android.app.Dialog; |
| import android.app.DialogFragment; |
| import android.content.Context; |
| import android.os.Bundle; |
| import android.view.View; |
| |
| /** |
| * Media route chooser dialog fragment. |
| * <p> |
| * Creates a {@link MediaRouteChooserDialog}. The application may subclass |
| * this dialog fragment to customize the media route chooser dialog. |
| * </p> |
| * |
| * TODO: Move this back into the API, as in the support library media router. |
| */ |
| public class MediaRouteChooserDialogFragment extends DialogFragment { |
| private final String ARGUMENT_ROUTE_TYPES = "routeTypes"; |
| |
| private View.OnClickListener mExtendedSettingsClickListener; |
| |
| /** |
| * Creates a media route chooser dialog fragment. |
| * <p> |
| * All subclasses of this class must also possess a default constructor. |
| * </p> |
| */ |
| public MediaRouteChooserDialogFragment() { |
| setCancelable(true); |
| setStyle(STYLE_NORMAL, android.R.style.Theme_DeviceDefault_Dialog); |
| } |
| |
| public int getRouteTypes() { |
| Bundle args = getArguments(); |
| return args != null ? args.getInt(ARGUMENT_ROUTE_TYPES) : 0; |
| } |
| |
| public void setRouteTypes(int types) { |
| if (types != getRouteTypes()) { |
| Bundle args = getArguments(); |
| if (args == null) { |
| args = new Bundle(); |
| } |
| args.putInt(ARGUMENT_ROUTE_TYPES, types); |
| setArguments(args); |
| |
| MediaRouteChooserDialog dialog = (MediaRouteChooserDialog)getDialog(); |
| if (dialog != null) { |
| dialog.setRouteTypes(types); |
| } |
| } |
| } |
| |
| public void setExtendedSettingsClickListener(View.OnClickListener listener) { |
| if (listener != mExtendedSettingsClickListener) { |
| mExtendedSettingsClickListener = listener; |
| |
| MediaRouteChooserDialog dialog = (MediaRouteChooserDialog)getDialog(); |
| if (dialog != null) { |
| dialog.setExtendedSettingsClickListener(listener); |
| } |
| } |
| } |
| |
| /** |
| * Called when the chooser dialog is being created. |
| * <p> |
| * Subclasses may override this method to customize the dialog. |
| * </p> |
| */ |
| public MediaRouteChooserDialog onCreateChooserDialog( |
| Context context, Bundle savedInstanceState) { |
| return new MediaRouteChooserDialog(context, getTheme()); |
| } |
| |
| @Override |
| public Dialog onCreateDialog(Bundle savedInstanceState) { |
| MediaRouteChooserDialog dialog = onCreateChooserDialog(getActivity(), savedInstanceState); |
| dialog.setRouteTypes(getRouteTypes()); |
| dialog.setExtendedSettingsClickListener(mExtendedSettingsClickListener); |
| return dialog; |
| } |
| } |