Exemplo n.º 1
0
        private View Indicator(int pageNumber)
        {
            const int size = 6;

            var bg = new ShapeView()
            {
                HeightRequest = size,
                WidthRequest  = size,
                Margin        = .5,
                ShapeType     = ShapeType.Circle,
                Color         = Colors.Border,
            };

            var fg = new ShapeView()
            {
                HorizontalOptions = LayoutOptions.Center,
                VerticalOptions   = LayoutOptions.Center,
                HeightRequest     = size,
                WidthRequest      = size,
                ShapeType         = ShapeType.Circle,
                Color             = Colors.TextSpecial,
            };

            fg.SetBinding(IsVisibleProperty, nameof(ViewModel.CarouselPosition),
                          BindingMode.OneWay, new IntToBooleanConverter(pageNumber));

            return(new Grid()
            {
                HeightRequest = size,
                WidthRequest = size,
                Children =
                {
                    { bg, 0, 0 },
                    { fg, 0, 0 }
                }
            });
        }
Exemplo n.º 2
0
        private View CompletedView(float iconSize, out View statusIcon)
        {
            var receivedDateSpan = new Span()
            {
                TextColor  = Colors.TextFaded,
                FontSize   = Sizes.TextMicro,
                FontFamily = Fonts.Normal,
            };

            receivedDateSpan.SetBinding(Span.TextProperty,
                                        nameof(AchievementTierProgressViewModel.DateCompleted),
                                        converter: new DateToStringConverter("dd.MM.yyyy"));

            var receivedText = new FormattedString()
            {
                Spans =
                {
                    new Span()
                    {
                        Text       = AppText.achievement_time_received + " ",
                        TextColor  = Colors.TextFaded,
                        FontSize   = Sizes.TextMicro,
                        FontFamily = Fonts.Normal,
                    },
                    receivedDateSpan
                }
            };

            statusIcon = new ShapeView()
            {
                WidthRequest  = iconSize,
                HeightRequest = iconSize,
                ShapeType     = ShapeType.Circle,
                Content       = new SvgCachedImage()
                {
                    Source           = Images.AchievementProgressCheckmark,
                    ReplaceStringMap = new Dictionary <string, string>()
                    {
                        { "#FF5737", "#00000000" }
                    },
                    Margin = 2,
                }
            };
            statusIcon.SetBinding(ShapeView.ColorProperty, nameof(AchievementTierProgressViewModel.Tier),
                                  converter: new TierToColorConverter());

            var lblCompleted = new Label()
            {
                VerticalOptions         = LayoutOptions.Start,
                HorizontalOptions       = LayoutOptions.Center,
                VerticalTextAlignment   = TextAlignment.Center,
                HorizontalTextAlignment = TextAlignment.Center,
                Margin         = new Thickness(40, 0),
                TextColor      = Colors.Text,
                FontSize       = Sizes.TextSmall,
                FontAttributes = FontAttributes.Bold,
                LineHeight     = 1.3,
            };

            lblCompleted.SetBinding(Label.TextProperty, nameof(AchievementTierProgressViewModel.UnlockedText));

            return(new StackLayout()
            {
                Spacing = 20,
                Children =
                {
                    statusIcon,
                    new Label()
                    {
                        HorizontalOptions = LayoutOptions.Center,
                        VerticalOptions = LayoutOptions.Center,
                        HorizontalTextAlignment = TextAlignment.Center,
                        FormattedText = receivedText,
                    },
                    new BorderCanvasView()
                    {
                        BorderColor = Colors.Border,
                        Margin = new Thickness(0,   3, 0, 0),
                        Border = new Thickness(0,   1, 0, 0),
                        HeightRequest = 15,
                    },
                    lblCompleted,
                }
            });
        }
Exemplo n.º 3
0
        private View GoalTotalView()
        {
            var preText = new Label
            {
                VerticalOptions         = LayoutOptions.Fill,
                HorizontalOptions       = LayoutOptions.Fill,
                HorizontalTextAlignment = TextAlignment.Start,
                VerticalTextAlignment   = TextAlignment.Center,
                FontSize = Sizes.TextMicro,
                Text     = "Du har oppnådd dagens mål ",
            };

            var goalNumberCircle = new ShapeView
            {
                VerticalOptions   = LayoutOptions.Fill,
                HorizontalOptions = LayoutOptions.Fill,
                ShapeType         = ShapeType.Circle,
                BackgroundColor   = Color.Transparent,
                BorderWidth       = 1,
                BorderColor       = Colors.ProgressWheelForeground,
                //Scale = 2,
                WidthRequest  = 35,
                HeightRequest = 35,
            };

            var goalNumber = new Label
            {
                VerticalOptions         = LayoutOptions.Fill,
                HorizontalOptions       = LayoutOptions.Fill,
                HorizontalTextAlignment = TextAlignment.Center,
                VerticalTextAlignment   = TextAlignment.Center,
                FontSize = Sizes.TextMicro,
            };

            goalNumber.SetBinding(Label.TextProperty, nameof(HistoryViewModel.GoalsMetTotal));

            var postText = new Label
            {
                VerticalOptions         = LayoutOptions.Fill,
                HorizontalOptions       = LayoutOptions.Fill,
                HorizontalTextAlignment = TextAlignment.Start,
                VerticalTextAlignment   = TextAlignment.Center,
                FontSize = Sizes.TextMicro,
            };

            postText.SetBinding(Label.TextProperty, nameof(HistoryViewModel.GoalsMetPostfix));

            var goalTotalLayout = new Grid
            {
                Scale             = 1.2f,
                VerticalOptions   = LayoutOptions.Center,
                HorizontalOptions = LayoutOptions.Center,
                Margin            = new Thickness(30, 30),
                ColumnSpacing     = 5,
                ColumnDefinitions = new ColumnDefinitionCollection
                {
                    new ColumnDefinition {
                        Width = GridLength.Auto
                    },
                    new ColumnDefinition {
                        Width = GridLength.Auto
                    },
                    new ColumnDefinition {
                        Width = GridLength.Auto
                    },
                },
                Children =
                {
                    { preText,          0, 0 },
                    { goalNumberCircle, 1, 0 },
                    { goalNumber,       1, 0 },
                    { postText,         2, 0 },
                },
            };

            var goalTotal = new ShapeView
            {
                Margin          = new Thickness(10, 0, 10, 15),
                BackgroundColor = Color.Transparent,
                BorderColor     = Colors.AchievementOutline,
                BorderWidth     = 1f,
                Content         = goalTotalLayout,
            };

            goalTotal.SizeChanged += (s, a) => goalTotal.CornerRadius = (float)goalTotal.Height * 0.5f;
            goalTotal.SetBinding(IsVisibleProperty, nameof(HistoryViewModel.ShouldShowGoalsMet));

            return(goalTotal);
        }
Exemplo n.º 4
0
        public DisplayShiftPage(DateTime selectedDate)
        {
            InitializeComponent();
            displayVM = new DisplayShiftViewModel(selectedDate)
            {
                Navigation = Navigation
            };
            BindingContext    = displayVM;
            shiftPicker.Title = Resource.ShiftPickerTitle;

            shifts = displayVM.ShiftList;

            foreach (ShiftTable shift in shifts)
            {
                // Format and add shifts to picker
                if (shift.EndDate == null)
                {
                    shift.EndDate = "Current";
                }

                DateTime shiftStart = DateTime.Parse(shift.StartDate);
                DateTime shiftEnd   = DateTime.Parse(shift.EndDate);

                shiftPicker.Items.Add(string.Format("{0:dd/MM}", shiftStart) + ") " + string.Format("{0:hh:mm tt}", shiftStart) + " - " + string.Format("{0:hh:mm tt}", shiftEnd));
            }

            var leftArrow = new ShapeView
            {
                ShapeType         = ShapeType.Triangle,
                Color             = Color.Gray,
                HeightRequest     = 30,
                WidthRequest      = 30,
                HorizontalOptions = LayoutOptions.CenterAndExpand,
                VerticalOptions   = LayoutOptions.CenterAndExpand,
                Rotation          = -90
            };

            leftArrow.SetBinding(ShapeView.IsVisibleProperty, "CanExecuteLeft");

            var leftTapGesture = new TapGestureRecognizer()
            {
                CommandParameter = "Left"
            };

            leftTapGesture.SetBinding(TapGestureRecognizer.CommandProperty, "ChangeShiftLeftCommand");
            leftArrow.GestureRecognizers.Add(leftTapGesture);
            leftBox.GestureRecognizers.Add(leftTapGesture);

            var rightArrow = new ShapeView
            {
                ShapeType         = ShapeType.Triangle,
                Color             = Color.Gray,
                HeightRequest     = 30,
                WidthRequest      = 30,
                HorizontalOptions = LayoutOptions.CenterAndExpand,
                VerticalOptions   = LayoutOptions.CenterAndExpand,
                Rotation          = 90
            };

            rightArrow.SetBinding(ShapeView.IsVisibleProperty, "CanExecuteRight");

            var rightTapGesture = new TapGestureRecognizer()
            {
                CommandParameter = "Right"
            };

            rightTapGesture.SetBinding(TapGestureRecognizer.CommandProperty, "ChangeShiftRightCommand");
            rightArrow.GestureRecognizers.Add(rightTapGesture);
            rightBox.GestureRecognizers.Add(rightTapGesture);

            grid.Children.Add(leftArrow, 0, 0);
            grid.Children.Add(rightArrow, 2, 0);

            shiftPicker.SelectedIndexChanged += ShiftPicker_SelectedIndexChanged;

            MessagingCenter.Subscribe <string, int>("ChangeShift", "ChangeShift", (s, index) =>
            {
                shiftPicker.SelectedIndex = index;
            });
        }