public override EvasObject?GetHeaderView(EvasObject parent)
        {
            if (!HasHeader)
            {
                return(null);
            }

            _headerCache = ((IShellController)Shell).FlyoutHeader;

            return((_headerCache != null) ? GetPlatformView(_headerCache) : null);
        }
            public View?OnCreateView(View?parent, string name, Context context, IAttributeSet attrs)
            {
                if (Debug)
                {
                    MvxLog.Instance?.Trace("{Tag} - ... OnCreateView ... {name}", DelegateFactory1Tag, name);
                }

                return(_factoryPlaceholder.OnViewCreated(
                           _factory.OnCreateView(name, context, attrs),
                           context, attrs));
            }
Exemple #3
0
            public View?OnViewCreated(View?view, Context?context, IAttributeSet?attrs)
            {
                if (Factory != null && view != null && view.GetTag(Resource.Id.MvvmCrossTagId) != TheTruth)
                {
                    // Bind here.
                    view = Factory.BindCreatedView(view, context, attrs);

                    view.SetTag(Resource.Id.MvvmCrossTagId, TheTruth);
                }

                return(view);
            }
        public override View?OnCreateView(Context viewContext, View?parent, string name, IAttributeSet?attrs)
        {
            if (Debug)
            {
                MvxLog.Instance?.Trace("{Tag} - ... OnCreateView 4 ... {name}", Tag, name);
            }

            return(_bindingVisitor.OnViewCreated(
                       base.OnCreateView(viewContext, parent, name, attrs),
                       viewContext,
                       attrs));
        }
Exemple #5
0
        public virtual View?OnCreateView(View?parent, string name, Context context, IAttributeSet attrs)
        {
            if (name == "fragment")
            {
                // MvvmCross does not inflate Fragments - instead it returns null and lets Android inflate them.
                return(null);
            }

            View?view = AndroidViewFactory?.CreateView(parent, name, context, attrs);

            return(BindCreatedView(view, context, attrs));
        }
        protected override View?OnCreateView(View?parent, string?name, IAttributeSet?attrs)
        {
            if (Debug)
            {
                MvxLog.Instance?.Trace("{Tag} - ... OnCreateView 3 ... {name}", Tag, name);
            }

            return(_bindingVisitor.OnViewCreated(
                       base.OnCreateView(parent, name, attrs),
                       Context,
                       attrs));
        }
Exemple #7
0
        public override View GetView(int position, View?convertView, ViewGroup?parent)
        {
            var popupFieldValue = _displayFields[position];

            if (convertView == null)
            {
                convertView = new DetailsItemView(_context, _foregroundColor);
            }

            (convertView as DetailsItemView)?.Update(popupFieldValue);
            return(convertView);
        }
Exemple #8
0
        public override View?OnCreateView(Context viewContext, View?parent, string name, IAttributeSet?attrs)
        {
            if (Debug)
            {
                MvxLogHost.GetLog <MvxLayoutInflater>()?.Log(LogLevel.Trace, "{Tag} - ... OnCreateView 4 ... {name}", Tag, name);
            }

            return(_bindingVisitor.OnViewCreated(
                       base.OnCreateView(viewContext, parent, name, attrs),
                       viewContext,
                       attrs));
        }
        public override View?GetView(int position, View?convertView, ViewGroup?parent)
        {
            var layerLegend = _layerLegends[position];

            if (convertView == null)
            {
                convertView = new LayerLegendItemView(_context);
            }

            (convertView as LayerLegendItemView)?.Update(layerLegend);
            return(convertView);
        }
Exemple #10
0
        /// <summary>
        /// <inheritdoc />
        /// </summary>
        protected override void OnApplyTemplate()
        {
            base.OnApplyTemplate();

            ListView = GetTemplateChild("PART_InnerListView") as CollectionView;
            VisualStateManager.SetVisualStateGroups(ListView, new VisualStateGroupList());
            _loadingScrim = GetTemplateChild("PART_LoadingScrim") as View;
            if (ListView != null)
            {
                ListView.BindingContext = _controller;
            }
        }
Exemple #11
0
        public override View GetView(int position, View?convertView, ViewGroup?parent)
        {
            var view = convertView ?? _context.LayoutInflater.Inflate(Android.Resource.Layout.SimpleListItem2, parent, false);

            var textview1 = view.FindViewById <TextView>(Android.Resource.Id.Text1);
            var textview2 = view.FindViewById <TextView>(Android.Resource.Id.Text2);

            textview1.Text = _elements.ElementAtOrDefault(position)?.Title;
            textview2.Text = $"Created at {_elements.ElementAtOrDefault(position).CreatedAt:dd/MM/yyyy}";

            return(view);
        }
Exemple #12
0
        public override EvasObject?CreateNativeView(int index, EvasObject parent)
        {
            View?view = GetTemplatedView(index);

            if (view != null)
            {
                var native = view.ToPlatform(_context);
                _nativeFormsTable[native] = view;
                return(native);
            }

            return(null);
        }
        public static NavController?GetNavController(this Fragment fragment, View?view = null)
        {
            NavController?navController = null;

            if (fragment.Activity is IHostNavController host)
            {
                navController = host.NavController;
            }
            if (navController == null && view != null)
            {
                navController = Navigation.FindNavController(view);
            }
            return(navController);
        }
        public void LayoutItems(Rect bound, bool force)
        {
            if (_allocatedSize.Width <= 0 || _allocatedSize.Height <= 0)
            {
                return;
            }

            // TODO : need to optimization. it was frequently called with similar bound value.
            if (!ShouldRearrange(bound) && !force)
            {
                return;
            }

            _isLayouting       = true;
            _lastLayoutedBound = bound;

            int padding    = Span;
            int startIndex = Math.Max(GetStartIndex(bound) - padding * 2, 0);
            int endIndex   = Math.Min(GetEndIndex(bound) + padding * 2, CollectionView !.Count - 1);

            foreach (var index in _realizedItem.Keys.ToList())
            {
                if (index < startIndex || index > endIndex)
                {
                    CollectionView !.UnrealizeView(_realizedItem[index].View);
                    _realizedItem.Remove(index);
                }
            }

            for (int i = startIndex; i <= endIndex; i++)
            {
                View?itemView = null;
                if (!_realizedItem.ContainsKey(i))
                {
                    var view = CollectionView !.RealizeView(i);

                    _realizedItem[i] = new RealizedItem(view, i);
                    itemView         = view;
                }
                else
                {
                    itemView = _realizedItem[i].View;
                }

                var itemBound = GetItemBound(i);
                itemView.UpdateBounds(itemBound);
            }
            _isLayouting = false;
        }
Exemple #15
0
            public View?OnCreateView(View?parent, string name, Context context, IAttributeSet attrs)
            {
                if (Debug)
                {
                    MvxLogHost.GetLog <MvxLayoutInflater>()?.Log(LogLevel.Trace, "{Tag} - ... OnCreateView 3 ... {name}", PrivateFactoryWrapper2Tag, name);
                }

                return(_bindingVisitor.OnViewCreated(
                           _inflater.CreateCustomViewInternal(
                               parent,
                               // The activity's OnCreateView
                               _factory2.OnCreateView(parent, name, context, attrs),
                               name, context, attrs),
                           context, attrs));
            }
Exemple #16
0
#pragma warning disable CS8765 // Nullability of type of parameter doesn't match overridden member (possibly because of nullability attributes).
        public override View?GetGroupView(int groupPosition, bool isExpanded, View?convertView, ViewGroup parent)
        {
            var header = convertView switch
            {
                null => _context.LayoutInflater.Inflate(Resource.Layout.ListGroup, null),
                _ => convertView
            };

            if (header?.FindViewById <TextView>(Resource.Id.DataHeader) is TextView textView)
            {
                textView.Text = LocationList[groupPosition].Name;
            }

            return(header);
        }
Exemple #17
0
        protected override View CreatePlatformView()
        {
            var li = MauiContext?.GetLayoutInflater();

            _ = li ?? throw new InvalidOperationException($"LayoutInflater cannot be null");

            var dl = li.Inflate(Resource.Layout.drawer_layout, null)
                     .JavaCast <DrawerLayout>()
                     ?? throw new InvalidOperationException($"Resource.Layout.drawer_layout missing");

            _navigationRoot = li.Inflate(Resource.Layout.navigationlayout, null)
                              ?? throw new InvalidOperationException($"Resource.Layout.navigationlayout missing");

            _navigationRoot.Id = View.GenerateViewId();
            return(dl);
        }
        void OnNativeViewViewDetachedFromWindow(object?sender, View.ViewDetachedFromWindowEventArgs e)
        {
            if (lifeCycleEffect != null)
            {
                lifeCycleEffect.RaiseUnloadedEvent(Element);
            }

            if (nativeView != null)
            {
                nativeView.ViewDetachedFromWindow -= OnNativeViewViewDetachedFromWindow;
                nativeView.ViewAttachedToWindow   -= OnNativeViewViewAttachedToWindow;
            }

            nativeView      = null;
            lifeCycleEffect = null;
        }
Exemple #19
0
        void View.IOnClickListener.OnClick(View?view)
        {
            if (view == null)
            {
                return;
            }
            var vm = ViewModel;

            if (vm == null)
            {
                return;
            }
            if (view.Id == Resource.Id.tvValue)
            {
                vm.CopyCodeCilp();
            }
        }
Exemple #20
0
        public override EvasObject?GetHeaderView(EvasObject parent)
        {
            if (!HasHeader)
            {
                return(null);
            }

            _headerCache = ((IShellController)Shell).FlyoutHeader;

            if (_headerCache != null)
            {
                var native = _headerCache.ToPlatform(_context);
                return(native);
            }

            return(null);
        }
Exemple #21
0
        public async Task OnRenameView(string viewID, string newName)
        {
            lastActivity = Timestamp.Now;

            View?view = model.Views.Find(v => v.ID == viewID);

            if (view == null)
            {
                throw new Exception("Unknown viewID " + viewID);
            }

            view.Name = newName;

            DataValue   dv     = DataValue.FromObject(view.Name);
            MemberValue member = MemberValue.Make(moduleID, view.ID, nameof(View.Name), dv);
            await connection.UpdateConfig(member);
        }
Exemple #22
0
        private static void UpdateChildren(Layout <View> layout)
        {
            var items    = GetItemsSource(layout);
            var template = GetItemTemplate(layout);

            if (items == null || template == null)
            {
                return;
            }

            var separatorTemplate = GetSeparatorTemplate(layout);
            var hasSeparators     = separatorTemplate != null;

            try
            {
                layout.Children.Clear();
            }
            catch (NullReferenceException)
            {
            }

            View?separator = null;

            foreach (var item in items)
            {
                var child = (View)template.CreateContent(item, layout);
                child.BindingContext = item;
                layout.Children.Add(child);
                if (hasSeparators && separatorTemplate != null)
                {
                    separator = (View)separatorTemplate.CreateContent();
                    layout.Children.Add(separator);
                }
            }

            if (hasSeparators && separator != null)
            {
                layout.Children.Remove(separator);
            }

            if (items is INotifyCollectionChanged collection)
            {
                SetCollectionChangedListener(layout, new CollectionChangedListener(layout, collection));
            }
        }
        public override bool DispatchTouchEvent(MotionEvent e)
        {
            if (e.Action == MotionEventActions.Down)
            {
                _downTime     = DateTime.UtcNow;
                _downPosition = new Point(e.RawX, e.RawY);
            }
            if (e.Action != MotionEventActions.Up)
            {
                return(base.DispatchTouchEvent(e));
            }

            if (_disposed)
            {
                return(false);
            }

            View?currentFocus1 = ((Activity?)Context)?.CurrentFocus;

            if (currentFocus1 is EditText)
            {
                View?currentFocus2 = ((Activity?)Context)?.CurrentFocus;
                if (currentFocus1 == currentFocus2 && _downPosition.Distance(new Point(e.RawX, e.RawY)) <= Context.ToPixels(20.0) && !(DateTime.UtcNow - _downTime > TimeSpan.FromMilliseconds(200.0)))
                {
                    var location = new int[2];
                    currentFocus1.GetLocationOnScreen(location);
                    var num1 = e.RawX + currentFocus1.Left - location[0];
                    var num2 = e.RawY + currentFocus1.Top - location[1];
                    if (!new Rectangle(currentFocus1.Left, currentFocus1.Top, currentFocus1.Width, currentFocus1.Height).Contains(num1, num2))
                    {
                        Context.HideKeyboard(currentFocus1);
                        currentFocus1.ClearFocus();
                    }
                }
            }

            if (_disposed)
            {
                return(false);
            }

            var flag = base.DispatchTouchEvent(e);

            return(flag);
        }
            public override View GetView(int position, View?convertView, ViewGroup?parent)
            {
                var layerLegend = _layers[position];

                if (convertView == null)
                {
                    convertView = new LegendItemView(_context);
                }

                var tv = convertView as LegendItemView;

                if (tv != null)
                {
                    tv.Update(layerLegend);
                }

                return(convertView);
            }
Exemple #25
0
        protected override View?OnCreateView(string?name, IAttributeSet?attrs)
        {
            if (Debug)
            {
                MvxLogHost.GetLog <MvxLayoutInflater>()?.Log(LogLevel.Trace, "{Tag} - ... OnCreateView 2 ... {name}", Tag, name);
            }

            View?view = null;

            if (name != null && Context != null && attrs != null)
            {
                view = AndroidViewFactory?.CreateView(null, name, Context, attrs);
            }

            view ??= PhoneLayoutInflaterOnCreateView(name, attrs) ?? base.OnCreateView(name, attrs);

            return(_bindingVisitor.OnViewCreated(view, Context, attrs));
        }
Exemple #26
0
        public static T?FindFirstParentOfView <T>(this View?childView, bool includeCurrent)
            where T : class
        {
            var view = includeCurrent ? childView as IViewParent : null;

            view ??= childView?.Parent;

            while (view != null)
            {
                if (view is T parent)
                {
                    return(parent);
                }

                view = view.Parent;
            }

            return(null);
        }
        public void SetHeader(View?header, Size size)
        {
            bool contentSizeChanged = false;

            if (IsHorizontal)
            {
                if (_headerSize.Width != size.Width)
                {
                    contentSizeChanged = true;
                }
            }
            else
            {
                if (_headerSize.Height != size.Height)
                {
                    contentSizeChanged = true;
                }
            }

            _header     = header;
            _headerSize = size;

            if (contentSizeChanged)
            {
                InitializeMeasureCache();
                CollectionView !.ContentSizeUpdated();
            }

            if (_header != null)
            {
                var bound = new Rect(0, 0, _headerSize.Width, _headerSize.Height);
                if (IsHorizontal)
                {
                    bound.Height = _allocatedSize.Height;
                }
                else
                {
                    bound.Width = _allocatedSize.Width;
                }
                _header.UpdateBounds(bound);
            }
        }
Exemple #28
0
        private static (Label label, Label value) BuildLabelView(string name, View?relativeTo = null, int width = 12)
        {
            var label = new Label(name)
            {
                X      = 1,
                Y      = relativeTo == null ? 0 : Pos.Bottom(relativeTo),
                Height = 1,
                Width  = width
            };
            var value = new Label("")
            {
                X        = Pos.Right(label),
                Y        = relativeTo == null ? 0 : Pos.Bottom(relativeTo),
                Width    = Dim.Fill(),
                Height   = 1,
                CanFocus = false
            };

            return(label, value);
        }
Exemple #29
0
        public override void OnDraw(Canvas c, RecyclerView parent, RecyclerView.State state)
        {
            int left  = parent.Left;
            int right = parent.Right;

            int childCount = parent.ChildCount;
            CustomViewHolder?prevHolder = null;

            for (var i = 0; i < childCount; i++)
            {
                View?child = parent.GetChildAt(i);

                if (child is null)
                {
                    continue;
                }
                if (!(parent.GetChildViewHolder(child) is CustomViewHolder holder))
                {
                    continue;
                }
                if (holder.RowInfo is null)
                {
                    continue;
                }
                if ((prevHolder is IHeaderViewHolder && !_SettingsView.ShowSectionTopBottomBorder) ||
                    (holder is IFooterViewHolder && !_SettingsView.ShowSectionTopBottomBorder) ||
                    (holder is IFooterViewHolder && !holder.RowInfo.Section.Any()) ||
                    (holder is IHeaderViewHolder || !holder.RowInfo.Section.IsVisible))
                {
                    prevHolder = holder;
                    continue;
                }

                int bottom = child.Top;
                int top    = bottom - _Drawable.IntrinsicHeight;
                _Drawable.SetBounds(left, top, right, bottom);
                _Drawable.Draw(c);

                prevHolder = holder;
            }
        }
Exemple #30
0
        public override Size MeasureItem(int index, int widthConstraint, int heightConstraint)
        {
            if (widthConstraint > heightConstraint)
            {
                widthConstraint = int.MaxValue;
            }
            if (heightConstraint > widthConstraint)
            {
                heightConstraint = int.MaxValue;
            }

            var item = this[index];

            if (item != null && _dataBindedViewTable.TryGetValue(item, out View? createdView) && createdView != null)
            {
                return(createdView.Measure(DPExtensions.ConvertToScaledDP(widthConstraint), DPExtensions.ConvertToScaledDP(heightConstraint), MeasureFlags.IncludeMargins).Request.ToEFLPixel());
            }

            View?view = null;

            if (ItemTemplate is DataTemplateSelector selector)
            {
                view = selector.SelectTemplate(this[index], Element).CreateContent() as View;
            }
            else
            {
                view = ItemTemplate.CreateContent() as View;
            }

            if (view != null)
            {
                view.Parent = Element;
                if (Count > index)
                {
                    view.BindingContext = this[index];
                }
                var request = view.Measure(DPExtensions.ConvertToScaledDP(widthConstraint), DPExtensions.ConvertToScaledDP(heightConstraint), MeasureFlags.IncludeMargins).Request;
                return(request.ToEFLPixel());
            }
            return(new Size(0, 0));
        }