public static void UpdateFromElement(this BadgeView badgeView, Page element)
        {
            var badgeText = TabBadge.GetBadgeText(element);

            badgeView.Text = badgeText;

            var tabColor = TabBadge.GetBadgeColor(element);

            if (tabColor != Color.Default)
            {
                badgeView.BadgeColor = tabColor.ToAndroid();
            }

            var tabTextColor = TabBadge.GetBadgeTextColor(element);

            if (tabTextColor != Color.Default)
            {
                badgeView.TextColor = tabTextColor.ToAndroid();
            }

            // set font if not default
            var font = TabBadge.GetBadgeFont(element);

            if (font != Font.Default)
            {
                badgeView.Typeface = font.ToTypeface();
            }

            var margin = TabBadge.GetBadgeMargin(element);

            badgeView.SetMargins((float)margin.Left, (float)margin.Top, (float)margin.Right, (float)margin.Bottom);
            badgeView.Postion = TabBadge.GetBadgePosition(element);
        }
        private ContentPage CreateTab3()
        {
            var tab3 = new ContentPage
            {
                Title   = "Tab2",
                Content = new StackLayout
                {
                    VerticalOptions = LayoutOptions.Center,
                    Orientation     = StackOrientation.Vertical,
                    BackgroundColor = Color.AliceBlue,
                    Children        =
                    {
                        new Label
                        {
                            HorizontalTextAlignment = TextAlignment.Center,
                            Text = "Welcome to Xamarin Forms Tab2!"
                        },
                        new Image
                        {
                            Margin            = new Thickness(0, 40),
                            VerticalOptions   = LayoutOptions.CenterAndExpand,
                            HorizontalOptions = LayoutOptions.Center,
                            Source            = "tabicon.png"
                        }
                    }
                }
            };

            TabBadge.SetBadgeText(tab3, "1+");
            TabBadge.SetBadgeColor(tab3, Color.FromHex("#A0FFA500"));
            return(tab3);
        }
 public void UpdateUnReadCount(long unReadCount)
 {
     Device.BeginInvokeOnMainThread(() =>
     {
         var page = this as BottomTabbedPage;
         if (Device.RuntimePlatform == Device.Android)
         {
             if (page?.Tabs.Count > 0)
             {
                 page.Tabs[1].BadgeCaption = (int)unReadCount;
             }
         }
         else
         {
             if (unReadCount <= 0)
             {
                 TabBadge.SetBadgeText(conversation, "");
             }
             else
             {
                 if (unReadCount > 5)
                 {
                     TabBadge.SetBadgeText(conversation, "5+" + "");
                 }
                 else
                 {
                     TabBadge.SetBadgeText(conversation, unReadCount + "");
                 }
             }
         }
     });
 }
        protected virtual void OnTabbedPagePropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            var element = sender as Element;

            if (element == null)
            {
                return;
            }

            BadgeView badgeView;

            if (!BadgeViews.TryGetValue(element, out badgeView))
            {
                return;
            }

            if (e.PropertyName == TabBadge.BadgeTextProperty.PropertyName)
            {
                badgeView.Text = TabBadge.GetBadgeText(element);
                return;
            }

            if (e.PropertyName == TabBadge.BadgeColorProperty.PropertyName)
            {
                badgeView.BadgeColor = TabBadge.GetBadgeColor(element).ToAndroid();
            }
        }
        private void UpdateTabBarItems()
        {
            try
            {
                for (int i = 0; i < this.TabBar.Items.Length; i++)
                {
                    var page    = this.Tabbed.GetChildPageWithTransform(i);
                    var tabItem = this.TabBar.Items[i];
                    page.PropertyChanged += OnTabbedPagePropertyChanged;
                    if (TabbedPageTransforms.GetHideTitle(page))
                    {
                        this.hidepageIndex = i;
                        this.hidepageTitle = page.Title;
                        this.UpdateHideTitle(tabItem);
                    }

                    this.UpdateTabBadgeText(tabItem, page);
                    this.UpdateTabBadgeColor(tabItem, page);
                    this.UpdateTabBadgeTextAttributes(tabItem, page);

                    if (!string.IsNullOrEmpty(TabBadge.GetBadgeText(page)))
                    {
                        var view = this.GetTabItemView(tabItem.Title, true);
                        if (view != null)
                        {
                            this.UpdateBadgeView(page, view, (float)view.Frame.Width);
                        }
                    }
                }
            }
            catch
            {
            }
        }
Exemple #6
0
        private void UpdateTabBadgeTextAttributes(UITabBarItem tabBarItem, Element element)
        {
            if (!tabBarItem.RespondsToSelector(new ObjCRuntime.Selector("setBadgeTextAttributes:forState:")))
            {
                // method not available, ios < 10
                Console.WriteLine("Plugin.Badge: badge text attributes only available starting with iOS 10.0.");
                return;
            }

            var attrs = new UIStringAttributes();

            var textColor = TabBadge.GetBadgeTextColor(element);

            if (textColor != Color.Default)
            {
                attrs.ForegroundColor = textColor.ToUIColor();
            }

            var font = TabBadge.GetBadgeFont(element);

            if (font != Font.Default)
            {
                attrs.Font = font.ToUIFont();
            }

            tabBarItem.SetBadgeTextAttributes(attrs, UIControlState.Normal);
        }
        protected virtual void OnTabbedPagePropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            var element = sender as Element;

            if (element == null)
            {
                return;
            }

            var tabItems = Control.GetDescendantsOfType <TabItem>();
            var tabItem  = tabItems.FirstOrDefault(t => t.Label == ((Page)element).Title);

            if (tabItem == null)
            {
                return;
            }

            if (e.PropertyName == TabBadge.BadgeTextProperty.PropertyName)
            {
                tabItem.BadgeText = TabBadge.GetBadgeText(element);
                return;
            }

            if (e.PropertyName == TabBadge.BadgeColorProperty.PropertyName)
            {
                tabItem.BadgeColor = new Xaml.Media.SolidColorBrush(
                    ColorHelper.XamarinFormColorToWindowsColor(
                        TabBadge.GetBadgeColor(element)));
            }

            SetSelectedTab(Control);
        }
 public static void UpdateFromPropertyChangedEvent(this BadgeView badgeView, Element element, PropertyChangedEventArgs e)
 {
     if (e.PropertyName == TabBadge.BadgeTextProperty.PropertyName)
     {
         badgeView.Text = TabBadge.GetBadgeText(element);
     }
     else if (e.PropertyName == TabBadge.BadgeColorProperty.PropertyName)
     {
         badgeView.BadgeColor = TabBadge.GetBadgeColor(element).ToAndroid();
     }
     else if (e.PropertyName == TabBadge.BadgeTextColorProperty.PropertyName)
     {
         badgeView.TextColor = TabBadge.GetBadgeTextColor(element).ToAndroid();
     }
     else if (e.PropertyName == TabBadge.BadgeFontProperty.PropertyName)
     {
         badgeView.Typeface = TabBadge.GetBadgeFont(element).ToTypeface();
     }
     else if (e.PropertyName == TabBadge.BadgePositionProperty.PropertyName)
     {
         badgeView.Postion = TabBadge.GetBadgePosition(element);
     }
     else if (e.PropertyName == TabBadge.BadgeMarginProperty.PropertyName)
     {
         var margin = TabBadge.GetBadgeMargin(element);
         badgeView.SetMargins((float)margin.Left, (float)margin.Top, (float)margin.Right, (float)margin.Bottom);
     }
 }
Exemple #9
0
        private void AddTabBadge(int tabIndex)
        {
            var element = Element.Children[tabIndex];
            var view    = _tabLayout?.GetTabAt(tabIndex).CustomView ?? _tabStrip?.GetChildAt(tabIndex);

            var badgeView = (view as ViewGroup)?.FindChildOfType <BadgeView>();

            if (badgeView == null)
            {
                var imageView = (view as ViewGroup)?.FindChildOfType <ImageView>();

                var badgeTarget = imageView?.Drawable != null
                    ? (Android.Views.View)imageView
                    : (view as ViewGroup)?.FindChildOfType <TextView>();

                //create badge for tab
                badgeView = new BadgeView(Context, badgeTarget);
            }

            BadgeViews[element] = badgeView;

            //get text
            var badgeText = TabBadge.GetBadgeText(element);

            badgeView.Text = badgeText;

            // set color if not default
            var tabColor = TabBadge.GetBadgeColor(element);

            if (tabColor != Color.Default)
            {
                badgeView.BadgeColor = tabColor.ToAndroid();
            }

            // set text color if not default
            var tabTextColor = TabBadge.GetBadgeTextColor(element);

            if (tabTextColor != Color.Default)
            {
                badgeView.TextColor = tabTextColor.ToAndroid();
            }

            // set font if not default
            var font = TabBadge.GetBadgeFont(element);

            if (font != Font.Default)
            {
                badgeView.Typeface = font.ToTypeface();
            }

            var margin = TabBadge.GetBadgeMargin(element);

            badgeView.SetMargins((float)margin.Left, (float)margin.Top, (float)margin.Right, (float)margin.Bottom);

            // set position
            badgeView.Postion = TabBadge.GetBadgePosition(element);

            element.PropertyChanged += OnTabbedPagePropertyChanged;
        }
Exemple #10
0
 private void Entry_TextChanged(object sender, TextChangedEventArgs e)
 {
     count = ntf.count.ToString();
     if (!string.IsNullOrEmpty(count) && count != "0")
     {
         TabBadge.SetBadgeText(tb, count);
     }
 }
        public object Convert(object value, Type targetType, object parameter, CultureInfo language)
        {
            if (value is Element element)
            {
                return(string.IsNullOrEmpty(TabBadge.GetBadgeText(element)) ? Visibility.Collapsed : Visibility.Visible);
            }

            return(Visibility.Collapsed);
        }
Exemple #12
0
        public object Convert(object value, Type targetType, object parameter, CultureInfo language)
        {
            if (value is Element element)
            {
                return(TabBadge.GetBadgeText(element));
            }

            return(null);
        }
        public object Convert(object value, Type targetType, object parameter, CultureInfo language)
        {
            if (value is Element element)
            {
                var margin = TabBadge.GetBadgeMargin(element);
                return(new Thickness(margin.Left, margin.Top, margin.Right, margin.Bottom));
            }

            return(new Thickness(0));
        }
Exemple #14
0
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            if (value is Page)
            {
                var badgeText = TabBadge.GetBadgeText((Page)value);

                return(badgeText);
            }

            return(string.Empty);
        }
Exemple #15
0
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            var element = value as Element;

            if (element != null)
            {
                return(TabBadge.GetBadgeText(element));
            }

            return(null);
        }
Exemple #16
0
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            var element = value as Element;

            if (element != null)
            {
                return(string.IsNullOrEmpty(TabBadge.GetBadgeText(element)) ? Visibility.Collapsed : Visibility.Visible);
            }

            return(Visibility.Collapsed);
        }
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            var element = value as Element;

            if (element != null)
            {
                var margin = TabBadge.GetBadgeMargin(element);
                return(new Windows.UI.Xaml.Thickness(margin.Left, margin.Top, margin.Right, margin.Bottom));
            }

            return(null);
        }
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            if (value is Page)
            {
                var badgeColor = TabBadge.GetBadgeColor((Page)value);

                var color = ColorHelper.XamarinFormColorToWindowsColor(badgeColor);

                return(new SolidColorBrush(color));
            }

            return(null);
        }
        public object Convert(object value, Type targetType, object parameter, CultureInfo language)
        {
            if (value is Element element)
            {
                var font = TabBadge.GetBadgeFont(element);
                if (font.FontAttributes.HasFlag(FontAttributes.Italic))
                {
                    return(FontStyles.Italic);
                }
            }

            return(FontStyles.Normal);
        }
Exemple #20
0
        protected virtual void OnTabbedPagePropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            var element = sender as Element;

            if (element == null)
            {
                return;
            }

            if (!BadgeViews.TryGetValue(element, out BadgeView badgeView))
            {
                return;
            }

            if (e.PropertyName == TabBadge.BadgeTextProperty.PropertyName)
            {
                badgeView.Text = TabBadge.GetBadgeText(element);
                return;
            }

            if (e.PropertyName == TabBadge.BadgeColorProperty.PropertyName)
            {
                badgeView.BadgeColor = TabBadge.GetBadgeColor(element).ToAndroid();
                return;
            }

            if (e.PropertyName == TabBadge.BadgeTextColorProperty.PropertyName)
            {
                badgeView.TextColor = TabBadge.GetBadgeTextColor(element).ToAndroid();
                return;
            }

            if (e.PropertyName == TabBadge.BadgeFontProperty.PropertyName)
            {
                badgeView.Typeface = TabBadge.GetBadgeFont(element).ToTypeface();
                return;
            }

            if (e.PropertyName == TabBadge.BadgePositionProperty.PropertyName)
            {
                badgeView.Postion = TabBadge.GetBadgePosition(element);
                return;
            }

            if (e.PropertyName == TabBadge.BadgeMarginProperty.PropertyName)
            {
                var margin = TabBadge.GetBadgeMargin(element);
                badgeView.SetMargins((float)margin.Left, (float)margin.Top, (float)margin.Right, (float)margin.Bottom);
                return;
            }
        }
        protected virtual void OnTabbedPagePropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            var element = sender as Element;

            if (element == null)
            {
                return;
            }

            if (!BadgeViews.TryGetValue(element, out BadgeView badgeView))
            {
                return;
            }

            if (e.PropertyName == TabBadge.BadgeTextProperty.PropertyName)
            {
                badgeView.Text = TabBadge.GetBadgeText(element);
                return;
            }

            if (e.PropertyName == TabBadge.BadgeColorProperty.PropertyName)
            {
                badgeView.Color = TabBadge.GetBadgeColor(element);
                return;
            }

            if (e.PropertyName == TabBadge.BadgeTextColorProperty.PropertyName)
            {
                badgeView.TextColor = TabBadge.GetBadgeTextColor(element);
                return;
            }

            if (e.PropertyName == TabBadge.BadgeFontProperty.PropertyName)
            {
                badgeView.Font = TabBadge.GetBadgeFont(element);
                return;
            }

            if (e.PropertyName == TabBadge.BadgePositionProperty.PropertyName)
            {
                badgeView.Position = TabBadge.GetBadgePosition(element);
                return;
            }

            if (e.PropertyName == TabBadge.BadgeMarginProperty.PropertyName)
            {
                badgeView.Margin = TabBadge.GetBadgeMargin(element);
                return;
            }
        }
        private ContentPage CreateTab3()
        {
            var tab3 = new ContentPage
            {
                Title   = "Tab3",
                Content = new StackLayout
                {
                    VerticalOptions = LayoutOptions.Center,
                    Orientation     = StackOrientation.Vertical,
                    BackgroundColor = Color.AliceBlue,
                    Children        =
                    {
                        new Label
                        {
                            HorizontalTextAlignment = TextAlignment.Center,
                            Text = "Welcome to Xamarin Forms Tab3!"
                        },
                        new Image
                        {
                            Margin            = new Thickness(0, 40),
                            VerticalOptions   = LayoutOptions.CenterAndExpand,
                            HorizontalOptions = LayoutOptions.Center,
                            Source            = "tabicon.png"
                        },
                        new Button
                        {
                            Text    = "Change tab icon",
                            Command = new Command(() =>
                            {
                                var page = ((this.MainPage as NavigationPage)?.CurrentPage as TabbedPage)?.GetChildPageWithBadge(2);

                                page.Icon = page.Icon == null ? "tabicon.png" : null;
                            })
                        },
                        new Button
                        {
                            Text    = "Navigate to other page",
                            Command = new Command(() =>
                            {
                                (this.MainPage as NavigationPage)?.PushAsync(CreateNavigationPage());
                            })
                        }
                    }
                }
            };

            TabBadge.SetBadgeText(tab3, "1+");
            TabBadge.SetBadgeColor(tab3, Color.FromHex("#A0FFA500"));
            return(tab3);
        }
Exemple #23
0
        public object Convert(object value, Type targetType, object parameter, CultureInfo language)
        {
            if (value is Element element)
            {
                var color = TabBadge.GetBadgeColor(element);
                if (color == Color.Default)
                {
                    color = Color.Red;
                }

                return(color.ToBrush());
            }

            return(new SolidColorBrush(new System.Windows.Media.Color()));
        }
        private void UpdateTabBadgeColor(UITabBarItem tabBarItem, Element element)
        {
            if (!tabBarItem.RespondsToSelector(new ObjCRuntime.Selector("setBadgeColor:")))
            {
                Console.WriteLine("Plugin.Badge: badge color only available starting with iOS 10.0.");
                return;
            }

            var tabColor = TabBadge.GetBadgeColor(element);

            if (tabColor != Color.Default)
            {
                tabBarItem.BadgeColor = tabColor.ToUIColor();
            }
        }
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            var element = value as Element;

            if (element != null)
            {
                var font = TabBadge.GetBadgeFont(element);
                if (font.FontAttributes.HasFlag(FontAttributes.Italic))
                {
                    return(Windows.UI.Text.FontStyle.Italic);
                }
            }

            return(Windows.UI.Text.FontStyle.Normal);
        }
Exemple #26
0
        void TabbedPage_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            if (e.PropertyName == TabBadge.BadgeTextProperty.PropertyName)
            {
                var tabIndex = Tabbed.Children.IndexOf(sender as Page);
                TabBar.Items[tabIndex].BadgeValue = TabBadge.GetBadgeText(sender as Page);
                return;
            }

            if (e.PropertyName == TabBadge.BadgeColorProperty.PropertyName)
            {
                var tabIndex = Tabbed.Children.IndexOf(sender as Page);
                TabBar.Items[tabIndex].BadgeColor = TabBadge.GetBadgeColor(sender as Page).ToUIColor();
                return;
            }
        }
        private void showBadge()
        {
            string strBadgeNum;
            int    badgeNum = Preferences.Get("badgeNum", 0);

            if (badgeNum > 0)
            {
                //strBadgeNum = badgeNum.ToString();
                strBadgeNum = "1";
            }
            else
            {
                strBadgeNum = string.Empty;
            }
            TabBadge.SetBadgeText(NotiTab, strBadgeNum);
        }
Exemple #28
0
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            var element = value as Element;

            if (element != null)
            {
                var position = TabBadge.GetBadgePosition(element);

                if (Enum.TryParse <PanelAlignemnet>(parameter?.ToString(), out var panelAlignement))
                {
                    return(Alignments[position][(int)panelAlignement]);
                }
            }

            return(false);
        }
Exemple #29
0
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            var element = value as Element;

            if (element != null)
            {
                var color = TabBadge.GetBadgeTextColor(element);
                if (color == Color.Default)
                {
                    color = Color.Black;
                }

                return(color.ToBrush());
            }

            return(null);
        }
        protected virtual void AddTabBadge(int tabIndex)
        {
            var segment = _segmentedControl.Subviews[tabIndex];

            var element = Tabbed.GetChildPageWithBadge(tabIndex);

            element.PropertyChanged += OnTabbedPagePropertyChanged;

            var badge = new BadgeView(segment, false)
            {
                Color     = TabBadge.GetBadgeColor(element),
                TextColor = TabBadge.GetBadgeTextColor(element),
                Text      = TabBadge.GetBadgeText(element)
            };

            BadgeViews.Add(element, badge);
        }