Exemplo n.º 1
0
        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);
        }