private View BuildView(LayoutInflater inflater) { View view = inflater.Inflate(Resource.Layout.track_selection_dialog, null); ViewGroup root = (ViewGroup)view.FindViewById(Resource.Id.root); // View for disabling the renderer. _disableView = (CheckedTextView)inflater.Inflate( Android.Resource.Layout.SimpleListItemSingleChoice, root, false); _disableView.SetText(Resource.String.selection_disabled); _disableView.Focusable = true; _disableView.SetOnClickListener(this); root.AddView(_disableView); // View for clearing the override to allow the selector to use its default selection logic. _defaultView = (CheckedTextView)inflater.Inflate( Android.Resource.Layout.SimpleListItemSingleChoice, root, false); _defaultView.SetText(Resource.String.selection_default); _defaultView.Focusable = true; _defaultView.SetOnClickListener(this); root.AddView(inflater.Inflate(Resource.Layout.list_divider, root, false)); root.AddView(_defaultView); // Per-track views. bool haveSupportedTracks = false; bool haveAdaptiveTracks = false; _trackViews = new CheckedTextView[_trackGroups.Length][]; for (int groupIndex = 0; groupIndex < _trackGroups.Length; groupIndex++) { TrackGroup group = _trackGroups.Get(groupIndex); bool groupIsAdaptive = _trackGroupsAdaptive[groupIndex]; haveAdaptiveTracks |= groupIsAdaptive; _trackViews[groupIndex] = new CheckedTextView[group.Length]; for (int trackIndex = 0; trackIndex < group.Length; trackIndex++) { if (trackIndex == 0) { root.AddView(inflater.Inflate(Resource.Layout.list_divider, root, false)); } int trackViewLayoutId = groupIsAdaptive ? Android.Resource.Layout.SimpleListItemMultipleChoice : Android.Resource.Layout.SimpleListItemSingleChoice; CheckedTextView trackView = (CheckedTextView)inflater.Inflate( trackViewLayoutId, root, false); string txt = BuildTrackName(group.GetFormat(trackIndex)); trackView.SetText(txt, TextView.BufferType.Normal); if (_trackInfo.GetTrackFormatSupport(_rendererIndex, groupIndex, trackIndex) == RendererCapabilities.FormatHandled) { trackView.Focusable = true; trackView.Tag = Pair.Create(groupIndex, trackIndex); trackView.SetOnClickListener(this); haveSupportedTracks = true; } else { trackView.Focusable = false; trackView.Enabled = false; } _trackViews[groupIndex][trackIndex] = trackView; root.AddView(trackView); } } if (!haveSupportedTracks) { // Indicate that the default selection will be nothing. _defaultView.Text = Application.Context.GetString(Resource.String.selection_default_none); } else if (haveAdaptiveTracks) { // View for using random adaptation. _enableRandomAdaptationView = (CheckedTextView)inflater.Inflate( Android.Resource.Layout.SimpleListItemMultipleChoice, root, false); _enableRandomAdaptationView.Text = Application.Context.GetString(Resource.String.enable_random_adaptation); _enableRandomAdaptationView.SetOnClickListener(this); root.AddView(inflater.Inflate(Resource.Layout.list_divider, root, false)); root.AddView(_enableRandomAdaptationView); } UpdateViews(); return(view); }
private View buildView(Context context) { var inflater = LayoutInflater.From(context); var view = inflater.Inflate(Resource.Layout.track_selection_dialog, null); var root = (ViewGroup)view.FindViewById(Resource.Id.root); TypedArray attributeArray = context.Theme.ObtainStyledAttributes( new int[] { global::Android.Resource.Attribute.SelectableItemBackground }); var selectableItemBackgroundResourceId = attributeArray.GetResourceId(0, 0); attributeArray.Recycle(); // View for disabling the renderer. disableView = (CheckedTextView)inflater.Inflate( global::Android.Resource.Layout.SimpleListItemSingleChoice, root, false); disableView.SetBackgroundResource(selectableItemBackgroundResourceId); disableView.SetText(Resource.String.selection_disabled); disableView.Focusable = true; disableView.SetOnClickListener(this); root.AddView(disableView); // View for clearing the override to allow the selector to use its default selection logic. defaultView = (CheckedTextView)inflater.Inflate( global::Android.Resource.Layout.SimpleListItemSingleChoice, root, false); defaultView.SetBackgroundResource(selectableItemBackgroundResourceId); defaultView.SetText(Resource.String.selection_default); defaultView.Focusable = true; defaultView.SetOnClickListener(this); root.AddView(inflater.Inflate(Resource.Layout.list_divider, root, false)); root.AddView(defaultView); // Per-track views. var haveAdaptiveTracks = false; trackViews = new CheckedTextView[trackGroups.Length][]; for (var groupIndex = 0; groupIndex < trackGroups.Length; groupIndex++) { var group = trackGroups.Get(groupIndex); var groupIsAdaptive = trackGroupsAdaptive[groupIndex]; haveAdaptiveTracks |= groupIsAdaptive; trackViews[groupIndex] = new CheckedTextView[group.Length]; for (var trackIndex = 0; trackIndex < group.Length; trackIndex++) { if (trackIndex == 0) { root.AddView(inflater.Inflate(Resource.Layout.list_divider, root, false)); } int trackViewLayoutId = groupIsAdaptive ? global::Android.Resource.Layout.SimpleListItemMultipleChoice : global::Android.Resource.Layout.SimpleListItemSingleChoice; var trackView = (CheckedTextView)inflater.Inflate( trackViewLayoutId, root, false); trackView.SetBackgroundResource(selectableItemBackgroundResourceId); trackView.Text = DemoUtil.BuildTrackName(group.GetFormat(trackIndex)); if (trackInfo.GetTrackFormatSupport(rendererIndex, groupIndex, trackIndex) == RendererCapabilities.FormatHandled) { trackView.Focusable = true; trackView.Tag = Pair.Create(groupIndex, trackIndex); trackView.SetOnClickListener(this); } else { trackView.Focusable = false; trackView.Enabled = false; } trackViews[groupIndex][trackIndex] = trackView; root.AddView(trackView); } } if (haveAdaptiveTracks) { // View for using random adaptation. enableRandomAdaptationView = (CheckedTextView)inflater.Inflate( global::Android.Resource.Layout.SimpleListItemMultipleChoice, root, false); enableRandomAdaptationView.SetBackgroundResource(selectableItemBackgroundResourceId); enableRandomAdaptationView.SetText(Resource.String.enable_random_adaptation); enableRandomAdaptationView.SetOnClickListener(this); root.AddView(inflater.Inflate(Resource.Layout.list_divider, root, false)); root.AddView(enableRandomAdaptationView); } UpdateViews(); return(view); }