Exemplo n.º 1
0
        public static void UpdatePadding(this AppCompatButton appCompatButton, IButton button, Thickness?defaultPadding = null)
        {
            var context = appCompatButton.Context;

            if (context == null)
            {
                return;
            }

            // TODO: have a way to use default padding
            //       Windows keeps the default as a base but this is also wrong.
            // var padding = defaultPadding ?? new Thickness();
            var padding = new Thickness();

            padding.Left   += context.ToPixels(button.Padding.Left);
            padding.Top    += context.ToPixels(button.Padding.Top);
            padding.Right  += context.ToPixels(button.Padding.Right);
            padding.Bottom += context.ToPixels(button.Padding.Bottom);

            appCompatButton.SetPadding(
                (int)padding.Left,
                (int)padding.Top,
                (int)padding.Right,
                (int)padding.Bottom);
        }
Exemplo n.º 2
0
        public static void UpdatePadding(this AppCompatButton appCompatButton, IButton button)
        {
            var context = appCompatButton.Context;

            if (context == null)
            {
                return;
            }
            var padding = button.Padding;

            appCompatButton.SetPadding(
                (int)context.ToPixels(padding.Left),
                (int)context.ToPixels(padding.Top),
                (int)context.ToPixels(padding.Right),
                (int)context.ToPixels(padding.Bottom));
        }
Exemplo n.º 3
0
        void UpdatePadding()
        {
            AppCompatButton view = View;

            if (view == null)
            {
                return;
            }

            if (_disposed || _renderer == null || _element == null)
            {
                return;
            }

            if (!_defaultPaddingPix.HasValue)
            {
                _defaultPaddingPix = new Thickness(view.PaddingLeft, view.PaddingTop, view.PaddingRight, view.PaddingBottom);
            }

            // Currently the Padding Bindable property uses a creator factory so once it is set it can't become unset
            // I would say this is currently a bug but it's a bug that exists already in the code base.
            // Having this comment and this code more accurately demonstrates behavior then
            // having an else clause for when the PaddingProperty isn't set
            if (!_element.IsSet(Button.PaddingProperty))
            {
                return;
            }

            var padding    = _element.Padding;
            var adjustment = 0.0;

            if (_borderAdjustsPadding && _element is IBorderElement borderElement && borderElement.IsBorderWidthSet() && borderElement.BorderWidth != borderElement.BorderWidthDefaultValue)
            {
                adjustment = borderElement.BorderWidth;
            }

            var defaultPadding = _preserveInitialPadding && _defaultPaddingPix.HasValue
                                ? _defaultPaddingPix.Value
                                : new Thickness();

            view.SetPadding(
                (int)(Context.ToPixels(padding.Left + adjustment) + defaultPadding.Left),
                (int)(Context.ToPixels(padding.Top + adjustment) + defaultPadding.Top),
                (int)(Context.ToPixels(padding.Right + adjustment) + defaultPadding.Right),
                (int)(Context.ToPixels(padding.Bottom + adjustment) + defaultPadding.Bottom));
        }
        protected override AppCompatButton CreateNativeControl()
        {
            var context = new ContextThemeWrapper(Context, Resource.Style.Widget_AppCompat_Button_Borderless);
            var button  = new AppCompatButton(context, null, Resource.Style.Widget_AppCompat_Button_Borderless);

            button.SetPadding(0, 0, 0, 0);
            button.SetLineSpacing(0, 0);
            button.SetMinWidth(1);
            button.SetMinWidth(1);
            button.SetMinimumHeight(1);
            button.SetMinimumWidth(1);
            button.SetPaddingRelative(0, 0, 0, 0);
            //button.Set(0,0,0,0);


            return(button);
        }
        private void LoadDaySelectorButtons(int type = 1)
        {
            layoutButtons = FindViewById <LinearLayout>(Resource.Id.layout_buttons);
            layoutButtons.RemoveAllViews();
            var layoutButtonParams = new LinearLayoutCompat.LayoutParams(
                (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 40, Resources.DisplayMetrics),
                (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 40, Resources.DisplayMetrics))
            {
                Width     = (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 40, Resources.DisplayMetrics),
                Height    = (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 40, Resources.DisplayMetrics),
                MarginEnd = (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 5, Resources.DisplayMetrics)
            };
            int      dayIndex = ReturnDayIndex();
            DateTime baseDate = DateTime.Today;

//            var today = baseDate;
//            var yesterday = baseDate.AddDays(-1);
            DateTime thisWeekStart = baseDate.AddDays(-dayIndex);
//            var thisWeekEnd = thisWeekStart.AddDays(7).AddSeconds(-1);
//            var lastWeekStart = thisWeekStart.AddDays(-7);
//            var lastWeekEnd = thisWeekStart.AddSeconds(-1);
            DateTime thisMonthStart = baseDate.AddDays(1 - baseDate.Day);

//            var thisMonthEnd = thisMonthStart.AddMonths(1).AddSeconds(-1);
//            var lastMonthStart = thisMonthStart.AddMonths(-1);
//            var lastMonthEnd = thisMonthStart.AddSeconds(-1);

            switch (type)
            {
            case 1:
                GetDataForChart(thisWeekStart, _dataType == "BloodPressure");
                break;

            case 2:
                GetDataForChart(thisMonthStart, _dataType == "BloodPressure");
                break;

            case 3:
                GetDataForChart(new DateTime(DateTime.Now.Year, 1, 1), _dataType == "BloodPressure");
                break;

            default:
                return;
            }

            if (type != 3)
            {
                string[] days                = { "L", "M", "M", "J", "V", "S", "D" };
                int      dayOfMonth          = DateTime.Now.Day;
                int      numberOfDaysInMonth = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);
                int      size                = type == 1 && type != 3 ? days.Length : numberOfDaysInMonth;

                var activeButton = new AppCompatButton(this);
                for (var i = 0; i < size; i++)
                {
                    bool            isActive = type == 1 && type != 3 ? i == dayIndex : i + 1 == dayOfMonth;
                    AppCompatButton btn      = DaySelectorButton(isActive);
                    btn.Id               = i + 1;
                    btn.Text             = type == 1 && type != 3 ? i < days.Length ? days[i] : i.ToString() : (i + 1).ToString();
                    btn.LayoutParameters = layoutButtonParams;
                    if (type == 1 && type != 3 && i > dayIndex)
                    {
                        btn.Enabled = false;
                        btn.SetTextColor(Resources.GetColor(Resource.Color.colorSecondary, Theme));
                    }
                    else
                    if (i + 1 > dayOfMonth)
                    {
                        btn.Enabled = false;
                        btn.SetTextColor(Resources.GetColor(Resource.Color.colorSecondary, Theme));
                    }
                    if (isActive)
                    {
                        activeButton = btn;
                    }
                    layoutButtons.AddView(btn);
                }

                if (type == 2)
                {
                    _scrollViewButtons.PostDelayed(delegate { _scrollViewButtons.SmoothScrollTo(activeButton.Left - 5, 0); }, 30);
                }
            }
            else
            {
                Drawable img = Resources.GetDrawable(Resource.Drawable.calendar_date, Theme);
                img.SetBounds(0, 0, 50, 50);
                var btn = new AppCompatButton(this)
                {
                    Id   = 1,
                    Text = "Data"
                           //Background = buttonBackgroundA,
                           //LayoutParameters = layoutButtonParams
                };
                btn.SetTextColor(Color.White);
                btn.Background = buttonBackgroundDatePicker;
                btn.SetAllCaps(false);
                btn.SetCompoundDrawables(img, null, null, null);
                btn.SetPadding((int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 8, Resources.DisplayMetrics),
                               (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 8, Resources.DisplayMetrics),
                               (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 8, Resources.DisplayMetrics),
                               (int)TypedValue.ApplyDimension(ComplexUnitType.Dip, 8, Resources.DisplayMetrics));

                btn.Click += (sender, args) =>
                {
                    var frag = SharingDatePickerFragment.NewInstance(delegate(DateTime time)
                    {
                        //_tbDate.Text = time.ToShortDateString();
                        _tvDate.Text = time.ToShortDateString();
                        switch (_dataType)
                        {
                        case "BloodPressure":
                            verticalScrollLinearLayout.RemoveAllViewsInLayout();
                            horizontalScrollLinearLayout.RemoveAllViewsInLayout();
                            LoadDataInScrollLayouts(time);
                            break;

                        case "BloodGlucose":
                            verticalScrollLinearLayout.RemoveAllViewsInLayout();
                            LoadDataInScrollLayouts(time, false);
                            break;
                        }
                    });
                    frag.Show(SupportFragmentManager, SharingDatePickerFragment.TAG);
                };
                layoutButtons.AddView(btn);
            }
        }