/* * 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. *

* Creates a {@link MediaRouteChooserDialog}. The application may subclass * this dialog fragment to customize the media route chooser dialog. *

* * 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. *

* All subclasses of this class must also possess a default constructor. *

*/ 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. *

* Subclasses may override this method to customize the dialog. *

*/ 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; } }