public void TestMasterSetNull ()
		{
			MasterDetailPage page = new MasterDetailPage ();
			var child = new ContentPage {Content = new Label (), Title = "Foo"};
			page.Master = child;

			Assert.Throws<ArgumentNullException> (() => { page.Master = null; });
		}
		public void TestMasterSetter ()
		{
			MasterDetailPage page = new MasterDetailPage ();
			var child = new ContentPage {Content = new Label (), Title = "Foo"};
			page.Master = child;

			Assert.AreEqual (child, page.Master);
		}
		public void TestConstructor ()
		{

			MasterDetailPage page = new MasterDetailPage ();

			Assert.Null (page.Master);
			Assert.Null (page.Detail);
		}
		public NavBarTitleTestPage ()
		{
			var navTab = new NavigationPage { Title = "Hello 1 nav"};
			navTab.PushAsync (GetPage (navTab));

			var stackPages = new StackLayout ();

			var btn3 = new Button {
				Text = "tab", Command = new Command (async () => {
					var tabbed = new TabbedPage { Title = "Main Tab" };
					tabbed.Children.Add (navTab);
					tabbed.Children.Add (GetPage (navTab));
					await Navigation.PushModalAsync (tabbed);
				})
			};

			var btn4 = new Button {
				Text = "mdp", Command = new Command (async () => {
					var newNav = new NavigationPage { Title = "Hello 1 nav", BarBackgroundColor = Color.Pink, BarTextColor = Color.Blue };
					var mdp = new MasterDetailPage ();
					await newNav.PushAsync (GetPage (newNav));
					mdp.Master = new ContentPage {
						Title = "Master", BackgroundColor = Color.Red, Content = new Button {
							Text = "new", Command = new Command (() => {
								mdp.Detail = new ContactsPage { Title = "hello 3" };
								mdp.IsPresented = false;
							})
						}
					};
					mdp.Detail = newNav;
					await Navigation.PushModalAsync (mdp);
				})
			};

			var btn5 = new Button {
				Text = "nav", Command = new Command (async () => {
					var newNav = new NavigationPage { Title = "Hello 1 nav" };
					await newNav.PushAsync (GetPage (newNav));
					await Navigation.PushModalAsync (newNav);
				})
			};

			var btn6 = new Button {
				Text = "change nav", Command = new Command (() => {
					(Parent as NavigationPage).BarBackgroundColor = Color.Blue;
					(Parent as NavigationPage).BarTextColor = Color.Pink;
				})
			};

			stackPages.Children.Add (btn3);
			stackPages.Children.Add (btn4);
			stackPages.Children.Add (btn5);
			stackPages.Children.Add (btn6);
			Content = stackPages;
		}
		public void SetElement(VisualElement element)
		{
			MasterDetailPage oldElement = _page;
			_page = element as MasterDetailPage;

			_detailLayout = new MasterDetailContainer(_page, false, Context) { LayoutParameters = new LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent) };

			_masterLayout = new MasterDetailContainer(_page, true, Context)
			{
				LayoutParameters = new LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent) { Gravity = (int)GravityFlags.Start }
			};

			AddView(_detailLayout);

			AddView(_masterLayout);

			var activity = Context as Activity;
			activity.ActionBar.SetDisplayShowHomeEnabled(true);
			activity.ActionBar.SetHomeButtonEnabled(true);

			UpdateBackgroundColor(_page);
			UpdateBackgroundImage(_page);

			OnElementChanged(oldElement, element);

			if (oldElement != null)
				((IMasterDetailPageController)oldElement).BackButtonPressed -= OnBackButtonPressed;

			if (_page != null)
				MasterDetailPageController.BackButtonPressed += OnBackButtonPressed;

			if (Tracker == null)
				Tracker = new VisualElementTracker(this);

			_page.PropertyChanged += HandlePropertyChanged;
			_page.Appearing += MasterDetailPageAppearing;
			_page.Disappearing += MasterDetailPageDisappearing;

			UpdateMaster();
			UpdateDetail();

			Device.Info.PropertyChanged += DeviceInfoPropertyChanged;
			SetGestureState();

			Presented = _page.IsPresented;

			AddDrawerListener(this);

			if (element != null)
				element.SendViewInitialized(this);

			if (element != null && !string.IsNullOrEmpty(element.AutomationId))
				ContentDescription = element.AutomationId;
		}
Example #6
0
		public App()
		{
			_testCloudService = DependencyService.Get<ITestCloudService>();
			InitInsights();
			//MainPage = new MainPageLifeCycleTests();
			MainPage = new MasterDetailPage
			{
				Master = new ContentPage { Title = "Master", BackgroundColor = Color.Red },
				Detail = CoreGallery.GetMainPage()
			};
		}
Example #7
0
		protected override void Init ()
		{
			s_mdp = this;
			
			_slidingPage = new SliderMenuPage {
				Title = "Menu",
				BackgroundColor = Color.FromHex ("1e1e1e")
			};
			_slidingPage.MenuListView.ItemTapped += (sender, e) => OnMenuSelected (e.Item as SliderMenuItem);
			Padding = new Thickness (0);

			Master = _slidingPage;
			OnMenuSelected (_slidingPage.MenuListView.SelectedItem as SliderMenuItem);
		}
		public void TestMasterChanged ()
		{
			MasterDetailPage page = new MasterDetailPage ();
			var child = new ContentPage {Content = new Label (), Title = "Foo"};

			bool changed = false;
			page.PropertyChanged += (sender, e) => {
				if (e.PropertyName == "Master")
					changed = true;
			};

			page.Master = child;
			
			Assert.True (changed);
		}
Example #9
0
			public MasterPage (MasterDetailPage masterPage)
			{
				_masterPage = masterPage;
				Title = "Menu";

				for (int i = 0; i < 5; i++ )
				{
					if (i == 0) _items = new List<string>();

					_items.Add("Menu Items");
				}

				var list = new ListView { ItemsSource = _items, RowHeight = 100, HasUnevenRows = true };
				list.ItemSelected += list_ItemSelected;

				Content = list;
			}
		public RootTabbedMDPNavigationContentPage (string hierarchy) 
		{
			AutomationId = hierarchy + "PageId";

			var tabOne = new MasterDetailPage {
				Title = "Testing 123",
				Master = new ContentPage {
					Title = "Testing 123",
					Content = new StackLayout {
						Children = {
								new Label {Text = "Master"},
								new AbsoluteLayout {
									BackgroundColor = Color.Red,
									VerticalOptions = LayoutOptions.FillAndExpand,
									HorizontalOptions = LayoutOptions.FillAndExpand
								},
								new Button {Text = "Button"}
							}
					}
				},
				Detail = new NavigationPage (new ContentPage {
					Title = "Testing 123",
					Content = new SwapHierachyStackLayout (hierarchy)
				})
			};

			var tabTwo = new ContentPage {
				Title = "Testing 345",
				Content = new StackLayout {
					Children = {
						new Label { Text = "Hello" },
						new AbsoluteLayout {
							BackgroundColor = Color.Red,
							VerticalOptions = LayoutOptions.FillAndExpand,
							HorizontalOptions = LayoutOptions.FillAndExpand
						}
					}
				}
			};

			Children.Add (tabOne);
			Children.Add (tabTwo);
		}
 public static MasterDetailPage IsGestureEnabled(this MasterDetailPage page, bool enabled)
 {
     page.IsGestureEnabled = enabled;
     return(page);
 }
Example #12
0
 public MasterDetailContainer(MasterDetailPage parent, bool isMaster, Context context) : base(parent, isMaster, context)
 {
     Id        = FormsAppCompatActivity.GetUniqueId();
     _parent   = parent;
     _isMaster = isMaster;
 }
Example #13
0
        public void SetElement(VisualElement element)
        {
            MasterDetailPage oldElement = _page;

            _page = element as MasterDetailPage;

            _detailLayout = new MasterDetailContainer(_page, false, Context)
            {
                LayoutParameters = new LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent)
            };

            _masterLayout = new MasterDetailContainer(_page, true, Context)
            {
                LayoutParameters = new LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent)
                {
                    Gravity = (int)GravityFlags.Start
                }
            };

            AddView(_detailLayout);

            AddView(_masterLayout);

            var activity = Context as Activity;

            activity.ActionBar.SetDisplayShowHomeEnabled(true);
            activity.ActionBar.SetHomeButtonEnabled(true);

            UpdateBackgroundColor(_page);
            UpdateBackgroundImage(_page);

            OnElementChanged(oldElement, element);

            if (oldElement != null)
            {
                ((IMasterDetailPageController)oldElement).BackButtonPressed -= OnBackButtonPressed;
            }

            if (_page != null)
            {
                MasterDetailPageController.BackButtonPressed += OnBackButtonPressed;
            }

            if (Tracker == null)
            {
                Tracker = new VisualElementTracker(this);
            }

            _page.PropertyChanged += HandlePropertyChanged;
            _page.Appearing       += MasterDetailPageAppearing;
            _page.Disappearing    += MasterDetailPageDisappearing;

            UpdateMaster();
            UpdateDetail();

            Device.Info.PropertyChanged += DeviceInfoPropertyChanged;
            SetGestureState();

            Presented = _page.IsPresented;

            AddDrawerListener(this);

            if (element != null)
            {
                element.SendViewInitialized(this);
            }

            if (element != null && !string.IsNullOrEmpty(element.AutomationId))
            {
                ContentDescription = element.AutomationId;
            }
        }
		void FindParentMasterDetail()
		{
			var parentPages = ((Page)Element).GetParentPages();
			var masterDetail = parentPages.OfType<MasterDetailPage>().FirstOrDefault();

			if (masterDetail != null && parentPages.Append((Page)Element).Contains(masterDetail.Detail))
				_parentMasterDetailPage = masterDetail;
		}
		public MasterDetailContainer(MasterDetailPage parent, bool isMaster, Context context) : base(context)
		{
			_parent = parent;
			_isMaster = isMaster;
		}
Example #16
0
        void IVisualElementRenderer.SetElement(VisualElement element)
        {
            MasterDetailPage oldElement = Element;
            MasterDetailPage newElement = Element = element as MasterDetailPage;

            if (oldElement != null)
            {
                ((IMasterDetailPageController)oldElement).BackButtonPressed -= OnBackButtonPressed;
                oldElement.PropertyChanged -= HandlePropertyChanged;
                oldElement.Appearing       -= MasterDetailPageAppearing;
                oldElement.Disappearing    -= MasterDetailPageDisappearing;
            }

            if (newElement != null)
            {
                if (_detailLayout == null)
                {
                    _detailLayout = new MasterDetailContainer(newElement, false, Context)
                    {
                        LayoutParameters = new LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent)
                    };

                    _masterLayout = new MasterDetailContainer(newElement, true, Context)
                    {
                        LayoutParameters = new LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent)
                        {
                            Gravity = (int)GravityFlags.Start
                        }
                    };

                    if (_fragmentManager != null)
                    {
                        _detailLayout.SetFragmentManager(_fragmentManager);
                        _masterLayout.SetFragmentManager(_fragmentManager);
                    }

                    AddView(_detailLayout);
                    AddView(_masterLayout);

                    Device.Info.PropertyChanged += DeviceInfoPropertyChanged;

                    AddDrawerListener(this);
                }

                UpdateBackgroundColor(newElement);
                UpdateBackgroundImage(newElement);

                UpdateMaster();
                UpdateDetail();

                ((IMasterDetailPageController)newElement).BackButtonPressed += OnBackButtonPressed;
                newElement.PropertyChanged += HandlePropertyChanged;
                newElement.Appearing       += MasterDetailPageAppearing;
                newElement.Disappearing    += MasterDetailPageDisappearing;

                SetGestureState();

                Presented = newElement.IsPresented;

                newElement.SendViewInitialized(this);
            }

            OnElementChanged(oldElement, newElement);

            // Make sure to initialize this AFTER event is fired
            if (_tracker == null)
            {
                _tracker = new VisualElementTracker(this);
            }
        }
		public void TestSetDetailBounds ()
		{
			var page = new MasterDetailPage {
				Master = new ContentPage {Content = new View (), Title = "Foo"},
				Detail = new ContentPage {Content = new View ()}
			};

			((IMasterDetailPageController)page).DetailBounds = new Rectangle (0, 0, 100, 100);
			Assert.AreEqual (new Rectangle (0, 0, 100, 100), page.Detail.Bounds);
			Assert.AreEqual (new Rectangle (0, 0, 100, 100), ((IMasterDetailPageController)page).DetailBounds);
		}
		public void TestDetailSetter ()
		{
			MasterDetailPage page = new MasterDetailPage ();
			var child = new ContentPage {Content = new Label ()};
			page.Detail = child;
			
			Assert.AreEqual (child, page.Detail);
		}
		public void TestDetailSetNull ()
		{
			MasterDetailPage page = new MasterDetailPage ();
			var child = new ContentPage {Content = new Label ()};
			page.Detail = child;
			
			Assert.Throws<ArgumentNullException> ( () => { page.Detail = null; });
		}
		public void ThrowsInSetMasterBoundsWithNullMaster ()
		{
			var page = new MasterDetailPage {
				Detail = new ContentPage {Content = new View ()},
				IsPlatformEnabled = true,
				Platform = new UnitPlatform ()
			};

			Assert.Throws<InvalidOperationException> (() => ((IMasterDetailPageController)page).MasterBounds = new Rectangle(0, 0, 200, 200));
		}
		public void ThorwsInLayoutChildrenWithNullMaster ()
		{
			var page = new MasterDetailPage {
				Detail = new ContentPage { Content = new View (), IsPlatformEnabled = true },
				IsPlatformEnabled = true,
				Platform = new UnitPlatform ()
			};

			Assert.Throws<InvalidOperationException> (() => page.Layout (new Rectangle(0, 0, 200, 200)));
		}
		public void ThorwsInSetIsPresentOnSplitPortraitModeOnTablet ()
		{
			Device.Idiom = TargetIdiom.Tablet;
			Device.Info.CurrentOrientation = DeviceOrientation.Portrait;

			var page = new MasterDetailPage {
				Master = new ContentPage { Content = new View (), IsPlatformEnabled = true, Title = "Foo" },
				Detail = new ContentPage { Content = new View (), IsPlatformEnabled = true },
				IsPlatformEnabled = true,
				Platform = new UnitPlatform (),
				MasterBehavior = MasterBehavior.SplitOnPortrait
			};

			Assert.Throws<InvalidOperationException> (() => page.IsPresented = false);
		}
		public void ThrowsExceptionWhenAddingAlreadyParentedMaster ()
		{
			var master = new ContentPage { Title = "Foo" };

			// give master a parent
			var nav = new NavigationPage (master);

			var mdp = new MasterDetailPage ();
			Assert.Throws<InvalidOperationException> (() => mdp.Master = master);
		}
		public void TestSetIsPresentedOnPopoverMode ()
		{
			Device.Info.CurrentOrientation = DeviceOrientation.Landscape;

			var page = new MasterDetailPage {
				Master = new ContentPage { Content = new View (), IsPlatformEnabled = true, Title = "Foo" },
				Detail = new ContentPage { Content = new View (), IsPlatformEnabled = true },
				IsPlatformEnabled = true,
				Platform = new UnitPlatform (),
				MasterBehavior = MasterBehavior.Popover
			};
			page.IsPresented = true;

			Assert.AreEqual (true, page.IsPresented);
		}
 public static MasterDetailPage Master(this MasterDetailPage page, Page master)
 {
     page.Master = master;
     return(page);
 }
		public void TestLayoutChildren ()
		{
			var page = new MasterDetailPage {
				Master = new ContentPage { Content = new View (), IsPlatformEnabled = true, Title = "Foo" },
				Detail = new ContentPage { Content = new View (), IsPlatformEnabled = true },
				IsPlatformEnabled = true,
				Platform = new UnitPlatform ()
			};

			((IMasterDetailPageController)page).MasterBounds = new Rectangle (0, 0, 100, 200);
			((IMasterDetailPageController)page).DetailBounds = new Rectangle (0, 0, 100, 100);

			page.Master.Layout (new Rectangle(0, 0, 1, 1));
			page.Detail.Layout (new Rectangle(0, 0, 1, 1));

			page.Layout (new Rectangle (0, 0, 200, 200));

			Assert.AreEqual (new Rectangle (0, 0, 100, 200), page.Master.Bounds);
			Assert.AreEqual (new Rectangle (0, 0, 100, 100), page.Detail.Bounds);
		}
 public static MasterDetailPage Detail(this MasterDetailPage page, Page detail)
 {
     page.Detail = detail;
     return(page);
 }
        public ManagerAssetView(ViewAsset Viewasset, ScanResponce scanResponce)
        {
            InitializeComponent();
            var tapGestureRecognizer = new TapGestureRecognizer();

            tapGestureRecognizer.Tapped += (s, e) =>
            {
                try
                {
                    MasterDetailPage ParentPage = (MasterDetailPage)this.Parent;
                    ParentPage.IsPresented = (ParentPage.IsPresented == false) ? true : false;
                }
                catch (Exception ex)
                {
                    var msg = ex.Message;
                }
            };
            img.GestureRecognizers.Add(tapGestureRecognizer);

            // AssetEntry.Text = ScanResponce.assetId;

            if (Viewasset != null)
            {
                AssetEntry.Text       = Viewasset.assetId;
                DescriptionEntry.Text = Viewasset.description;
                StatusEntry.Text      = Viewasset.status;
                timeScannedEntry.Text = Viewasset.timeLastScanned;
                timeUpdatedEntry.Text = Viewasset.timeLastUpdated;
                commentsEntry.Text    = Viewasset.comment;
                if (Viewasset.assignee != null)
                {
                    //String[] Stringbreak = Viewasset.assignee.Split('#');
                    AsigneeEntry.Text = Viewasset.assignee;
                    assign.Text       = "Return Asset";
                    lstview.IsVisible = false;
                }
                else
                {
                }
            }

            if (scanResponce != null)
            {
                AssetEntry.Text       = scanResponce.assetId;
                DescriptionEntry.Text = scanResponce.description;
                StatusEntry.Text      = scanResponce.status;
                timeScannedEntry.Text = scanResponce.timeLastScanned;
                timeUpdatedEntry.Text = scanResponce.timeLastUpdated;
                commentsEntry.Text    = scanResponce.comment;
                if (scanResponce.assignee != null)
                {
                    String[] Stringbreak = scanResponce.assignee.Split('#');
                    AsigneeEntry.Text = Stringbreak[1];
                    assign.Text       = "Return Asset";
                    lstview.IsVisible = false;
                }
                else
                {
                }
            }



            lstview.ItemSelected += async(object sender, SelectedItemChangedEventArgs e) =>
            {
                if (e.SelectedItem == null)
                {
                    return;
                }
                Users item = (Users)e.SelectedItem;
                AsigneeEntry.Text = item.email;
                lstview.IsVisible = false;
                if (Validate = true)
                {
                    DateTime now = DateTime.Now.ToLocalTime();
                    Dictionary <string, string> dict = new Dictionary <string, string>();
                    dict["asset"]    = AssetEntry.Text;
                    dict["assignee"] = AsigneeEntry.Text;
                    dict["time"]     = now.ToString();
                    var isSuccess = await cloudStore.AssignAsset(dict);

                    if (isSuccess)
                    {
                        await DisplayAlert("Success", "Asset Assigned Successfully.", "Ok");

                        App.Current.MainPage = new MainViewAssetPage();

                        //AssetEntry.Text = string.Empty;
                        //DescriptionEntry.Text = string.Empty;
                    }
                    else
                    {
                        await DisplayAlert("Error", "Assignment Failed. Please try Again.", "Ok");

                        //AssetEntry.Text = string.Empty;
                        //DescriptionEntry.Text = string.Empty;
                    }
                    Validate = false;
                }

                ((ListView)sender).SelectedItem = null;
            };

            if (AsigneeEntry.Text == null)
            {
                AsigneeEntry.Focused += async(sender, e) =>
                {
                    try
                    {
                        var isSuccess = await cloudStore.GetUsers();

                        if (isSuccess != null)
                        {
                            lstview.ItemsSource = isSuccess;
                            lstview.IsVisible   = true;
                        }
                        else
                        {
                            await DisplayAlert("Error", "No Assignee", "Cancel", "Ok");
                        }
                    }
                    catch (Exception ex)
                    {
                    }
                };
            }
            else
            {
            }
        }
Example #29
0
        protected override void Init()
        {
            var rootContentPageLayout = new StackLayout();
            var rootContentPageButton = new Button()
            {
                Text            = "PushAsync to next page",
                AutomationId    = "btnNext",
                BackgroundColor = Color.FromHex("#ecf0f1"),
                TextColor       = Color.Black
            };

            rootContentPageButton.Clicked += async(sender, args) =>
            {
                await Navigation.PushAsync(FirstContentPage);
            };

            rootContentPageLayout.Children.Add(rootContentPageButton);
            Content = rootContentPageLayout;

            Title           = "RootPage";
            BackgroundColor = Color.FromHex("#2c3e50");

            //MASTER PAGE
            MasterPage = new ContentPage()
            {
                Title           = "Master",
                BackgroundColor = Color.FromHex("#1abc9c")
            };
            var masterPageLayout = new StackLayout();
            var masterPageButton = new Button()
            {
                Text            = "Pop Modal and Pop Root",
                AutomationId    = "btnPop",
                BackgroundColor = Color.FromHex("#ecf0f1"),
                TextColor       = Color.Black
            };

            masterPageButton.Clicked += async(sender, args) =>
            {
                await Navigation.PopModalAsync();

                await Navigation.PopToRootAsync();
            };
            masterPageLayout.Children.Add(masterPageButton);
            MasterPage.Content = masterPageLayout;


            //DETAIL PAGE
            DetailPage = new NavigationPage(new ContentPage()
            {
                Title           = "RootNavigationDetailPage",
                BackgroundColor = Color.FromHex("#2980b9"),
                Content         = new Button {
                    Text      = "PopModal",
                    TextColor = Color.White,
                    Command   = new Command(async() => {
                        await Navigation.PopModalAsync();
                    })
                }
            });

            //MASTERDETAIL PAGE
            HomePage = new MasterDetailPage()
            {
                Master = MasterPage,
                Detail = DetailPage
            };

            //FIRST CONTENT PAGE
            FirstContentPage = new ContentPage()
            {
                Title           = "First Content Page",
                BackgroundColor = Color.FromHex("#e74c3c")
            };
            var firstContentPageLayout = new StackLayout();
            var firstContentPageButton = new Button()
            {
                Text            = "Push Modal To Master-Detail Page",
                AutomationId    = "btnPushModal",
                BackgroundColor = Color.FromHex("#ecf0f1"),
                TextColor       = Color.Black
            };

            firstContentPageButton.Clicked += async(sender, args) =>
            {
                await Navigation.PushModalAsync(HomePage);
            };
            firstContentPageLayout.Children.Add(firstContentPageButton);
            FirstContentPage.Content = firstContentPageLayout;
        }
Example #30
0
        private void SettingChanged(Util.SettingName settingName, bool?value)
        {
            switch (settingName)
            {
            case Util.SettingName.GurmukhiVisible:
                versesObs.ToList().ForEach(a => a.GurmukhiVisible = value.Value);
                //ReloadGrid();
                break;

            case Util.SettingName.EngTranslationVisible:
                versesObs.ToList().ForEach(a => a.TranslationVisible = value.Value);
                //ReloadGrid();
                break;

            case Util.SettingName.PunTranslationVisible:
                versesObs.ToList().ForEach(a => a.PunjabiTranslationVisible = value.Value);
                //ReloadGrid();
                break;

            case Util.SettingName.TransliterationVisible:
                versesObs.ToList().ForEach(a => a.TransliterationVisible = value.Value);
                //ReloadGrid();
                break;

            case Util.SettingName.GurmukhiFontSize:
                if (value.Value)
                {
                    versesObs.ToList().ForEach(a => a.GurmukhiFontSize += 2);
                }
                else
                {
                    if (versesObs[0].GurmukhiFontSize >= 8)
                    {
                        versesObs.ToList().ForEach(a => a.GurmukhiFontSize -= 2);
                    }
                }
                //ReloadGrid();
                break;

            case Util.SettingName.EngTranslationFontSize:
                if (value.Value)
                {
                    versesObs.ToList().ForEach(a => a.EnglishFontSize += 2);
                }
                else
                {
                    if (versesObs[0].EnglishFontSize >= 8)
                    {
                        versesObs.ToList().ForEach(a => a.EnglishFontSize -= 2);
                    }
                }
                //ReloadGrid();
                break;

            case Util.SettingName.PunTranslationFontSize:
                if (value.Value)
                {
                    versesObs.ToList().ForEach(a => a.PunjabiFontSize += 2);
                }
                else
                {
                    if (versesObs[0].PunjabiFontSize >= 8)
                    {
                        versesObs.ToList().ForEach(a => a.PunjabiFontSize -= 2);
                    }
                }
                //ReloadGrid();
                break;

            case Util.SettingName.TransliterationFontSize:
                if (value.Value)
                {
                    versesObs.ToList().ForEach(a => a.TransliterationFontSize += 2);
                }
                else
                {
                    if (versesObs[0].TransliterationFontSize >= 8)
                    {
                        versesObs.ToList().ForEach(a => a.TransliterationFontSize -= 2);
                    }
                }
                //ReloadGrid();
                break;

            case Util.SettingName.FullScreen:
                //FullScreen(value.Value);
                break;

            case Util.SettingName.NormalFont:
                string fontName = value.Value ? Util.PunjabiFontKey : Util.HandFontKey;
                versesObs.ToList().ForEach(a => a.GurmukhiFontName = fontName);
                //ReloadGrid();
                break;

            case Util.SettingName.HandFont:
                string fontName2 = value.Value ? Util.HandFontKey : Util.PunjabiFontKey;
                versesObs.ToList().ForEach(a => a.GurmukhiFontName = fontName2);
                //ReloadGrid();
                break;

            case Util.SettingName.Ladivaar:
                VishraamLadivaar();
                //ReloadGrid();
                break;

            case Util.SettingName.Vishraam:
                VishraamLadivaar();
                //ReloadGrid();
                break;

            case Util.SettingName.Theme:
                Theme theme = new Theme();
                versesObs?.ToList().ForEach(a => a.PageBgTheme = theme);
                BindingContext = theme;
                Util.SetStatusBarColor(Color.FromHex(theme.HeaderColor));
                MasterDetailPage curPage = (MasterDetailPage)Application.Current.MainPage;
                if (curPage != null)
                {
                    ((NavigationPage)curPage.Detail).BarBackgroundColor = Color.FromHex(theme.HeaderColor);
                    EditToolbar.BackgroundColor = Color.FromHex(theme.HeaderColor);
                }

                if (SelectedVerseId != null && SelectedVerseId > 0)
                {
                    SelectedVerse             = versesObs.FirstOrDefault(a => a.ID == SelectedVerseId);
                    SelectedVerse.ListBgColor = SelectedVerse.PageBgTheme.DefaultItemBg;
                }
                VishraamLadivaar();
                break;
            }
        }
		public void TestMasterVisibleDoubleSet ()
		{
			var page = new MasterDetailPage ();

			bool signaled = false;
			page.PropertyChanged += (sender, args) => {
				if (args.PropertyName == MasterDetailPage.IsPresentedProperty.PropertyName)
					signaled = true;
			};

			page.IsPresented = page.IsPresented;

			Assert.False (signaled);
		}
Example #32
0
 /// <summary>
 /// Sets the master detail master.
 /// </summary>
 /// <param name="page">Page.</param>
 public void SetMasterDetailMaster(MasterDetailPage page)
 {
     _masterDetailPage = page;
 }
Example #33
0
		protected override void Init ()
		{
			s_mdp = this;
			
			var lblCount = new Label { AutomationId = "lblCount" };

			var myCarouselPage = new CarouselPage () {

				Children = {
					new ContentPage { 
						BackgroundColor = Color.Green,
						Content = new StackLayout {
							Children = {
								new Button { 
									AutomationId = "ShowMasterBtnPage1", 
									Text = "ShowMaster",
									Command = new Command(()=> s_mdp.IsPresented = true)
								},
								lblCount
							}
						}
					},
					new ContentPage { 
						BackgroundColor = Color.Red
					},
					new ContentPage { 
						BackgroundColor = Color.Lime,
					},
					new ContentPage { 
						BackgroundColor = Color.Purple,
					},
				}
			};

			var myCarouselDetailPage = new NavigationPage (myCarouselPage);

			var myPushButton = new Button () {
				Text = "Push Page", 
				HorizontalOptions = LayoutOptions.Start
			}; 

			myCarouselPage.Appearing += (sender, e) => {
				_countAppearing++;
				lblCount.Text = _countAppearing.ToString ();
			};
			myCarouselPage.Disappearing += (sender, e) => {
				_countAppearing--;
			};


			var mySecondDetailPage = new NavigationPage (new ContentPage () { 
				Title = "My Second Page", 

				Content = new StackLayout () {
					Orientation = StackOrientation.Vertical,
					Children = {
						new Button { 
							AutomationId = "ShowMasterBtnPage2", 
							Text = "ShowMaster",
							Command = new Command(()=> s_mdp.IsPresented = true)
						},
						myPushButton
					}
				}
			});

			myPushButton.Command = new Command (() => mySecondDetailPage.Navigation.PushAsync (new ContentPage () { Title = "My Pushed Page" }));

			var myMasterPage = new ContentPage () {
				Padding = new Thickness (0, 60, 0, 0),
				Title = "Menu",
				Content = new StackLayout () {
					Orientation = StackOrientation.Vertical,
					Children = {
						new Button () {
							Text = "Detail 1",
							AutomationId = "btnDetail1",
							Command = new Command (() => {
								Detail = myCarouselDetailPage;
								IsPresented = false;
							}),
							HorizontalOptions = LayoutOptions.Start
						},

						new Button () {
							Text = "Detail 2",
							AutomationId = "btnDetail2",
							Command = new Command (() => {
								Detail = mySecondDetailPage;
								IsPresented = false;
							}),
							HorizontalOptions = LayoutOptions.Start
						}

					}
				}
			};

			Master = myMasterPage;
			Detail = myCarouselDetailPage;
		}
Example #34
0
 public MasterDetailContainer(MasterDetailPage parent, bool isMaster, Context context) : base(context)
 {
     _parent   = parent;
     _isMaster = isMaster;
 }
		public void ThrowsExceptionWhenAddingAlreadyParentedDetail ()
		{
			var detail = new ContentPage {};

			// give detail a parent
			var nav = new NavigationPage (detail);

			var mdp = new MasterDetailPage ();
			Assert.Throws<InvalidOperationException> (() => mdp.Detail = detail);
		}
Example #36
0
        void UpdateToolbarItems()
        {
            if (_page.ApplicationBar == null)
            {
                _page.ApplicationBar = new ApplicationBar();
            }

            ToolbarItem[]    items        = _tracker.ToolbarItems.ToArray();
            MasterDetailPage masterDetail = _tracker.Target.Descendants().Prepend(_tracker.Target).OfType <MasterDetailPage>().FirstOrDefault();

            TaggedAppBarButton oldMasterDetailButton = _page.ApplicationBar.Buttons.OfType <TaggedAppBarButton>().FirstOrDefault(b => b.Tag is MasterDetailPage && b.Tag != masterDetail);

            if (oldMasterDetailButton != null)
            {
                _page.ApplicationBar.Buttons.Remove(oldMasterDetailButton);
            }

            if (masterDetail != null)
            {
                if (masterDetail.ShouldShowToolbarButton())
                {
                    if (_page.ApplicationBar.Buttons.OfType <TaggedAppBarButton>().All(b => b.Tag != masterDetail))
                    {
                        var button = new TaggedAppBarButton
                        {
                            IconUri   = new Uri(masterDetail.Master.Icon ?? "ApplicationIcon.jpg", UriKind.Relative),
                            Text      = masterDetail.Master.Title,
                            IsEnabled = true,
                            Tag       = masterDetail
                        };
                        button.Click += (sender, args) =>
                        {
                            var masterDetailRenderer = GetRenderer(masterDetail) as MasterDetailRenderer;

                            if (masterDetailRenderer != null)
                            {
                                masterDetailRenderer.Toggle();
                            }
                        };
                        _page.ApplicationBar.Buttons.Add(button);
                    }
                }
            }

            var buttonsToAdd = new List <TaggedAppBarButton>();

            foreach (ToolbarItem item in items.Where(i => i.Order != ToolbarItemOrder.Secondary))
            {
                IMenuItemController controller = item;
                if (_page.ApplicationBar.Buttons.OfType <TaggedAppBarButton>().Any(b => b.Tag == item))
                {
                    continue;
                }

                var button = new TaggedAppBarButton
                {
                    IconUri   = new Uri(item.Icon ?? "ApplicationIcon.jpg", UriKind.Relative),
                    Text      = !string.IsNullOrWhiteSpace(item.Text) ? item.Text : (string)item.Icon ?? "ApplicationIcon.jpg",
                    IsEnabled = controller.IsEnabled,
                    Tag       = item
                };
                button.Click += (sender, args) => controller.Activate();
                buttonsToAdd.Add(button);
            }

            var menuItemsToAdd = new List <TaggedAppBarMenuItem>();

            foreach (ToolbarItem item in items.Where(i => i.Order == ToolbarItemOrder.Secondary))
            {
                if (_page.ApplicationBar.MenuItems.OfType <TaggedAppBarMenuItem>().Any(b => b.Tag == item))
                {
                    continue;
                }

                var button = new TaggedAppBarMenuItem {
                    Text = !string.IsNullOrWhiteSpace(item.Text) ? item.Text : (string)item.Icon ?? "MenuItem", IsEnabled = true, Tag = item
                };
                button.Click += (sender, args) => ((IMenuItemController)item).Activate();
                menuItemsToAdd.Add(button);
            }

            TaggedAppBarButton[] deadButtons = _page.ApplicationBar.Buttons.OfType <TaggedAppBarButton>().Where(b => b.Tag is ToolbarItem && !items.Contains(b.Tag)).ToArray();

            TaggedAppBarMenuItem[] deadMenuItems = _page.ApplicationBar.MenuItems.OfType <TaggedAppBarMenuItem>().Where(b => b.Tag is ToolbarItem && !items.Contains(b.Tag)).ToArray();

            // we must remove the dead buttons before adding the new ones so we don't accidentally go over the limit during the transition
            foreach (TaggedAppBarButton deadButton in deadButtons)
            {
                deadButton.Dispose();
                _page.ApplicationBar.Buttons.Remove(deadButton);
            }

            foreach (TaggedAppBarMenuItem deadMenuItem in deadMenuItems)
            {
                _page.ApplicationBar.MenuItems.Remove(deadMenuItem);
            }

            // fixme, insert in order
            foreach (TaggedAppBarButton newButton in buttonsToAdd)
            {
                _page.ApplicationBar.Buttons.Add(newButton);
            }

            foreach (TaggedAppBarMenuItem newMenuItem in menuItemsToAdd)
            {
                _page.ApplicationBar.MenuItems.Add(newMenuItem);
            }

            _page.ApplicationBar.IsVisible = _page.ApplicationBar.Buttons.Count > 0 || _page.ApplicationBar.MenuItems.Count > 0;
        }
        void IVisualElementRenderer.SetElement(VisualElement element)
        {
            MasterDetailPage oldElement = Element;
            MasterDetailPage newElement = Element = element as MasterDetailPage;

            if (oldElement != null)
            {
                ((IMasterDetailPageController)oldElement).BackButtonPressed -= OnBackButtonPressed;
                oldElement.PropertyChanged -= HandlePropertyChanged;
                oldElement.Appearing       -= MasterDetailPageAppearing;
                oldElement.Disappearing    -= MasterDetailPageDisappearing;
            }

            var statusBarHeight = 0;

            if (Forms.IsLollipopOrNewer)
            {
                statusBarHeight = ((FormsAppCompatActivity)Context).GetStatusBarHeight();
            }

            if (newElement != null)
            {
                if (_detailLayout == null)
                {
                    _detailLayout = new MasterDetailContainer(newElement, false, Context)
                    {
                        TopPadding       = HasAncestorNavigationPage(Element) ? 0 : statusBarHeight,
                        LayoutParameters = new LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent)
                    };

                    _masterLayout = new MasterDetailContainer(newElement, true, Context)
                    {
                        TopPadding       = ((IMasterDetailPageController)newElement).ShouldShowSplitMode ? statusBarHeight : 0,
                        LayoutParameters = new LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent)
                        {
                            Gravity = (int)GravityFlags.Start
                        }
                    };

                    if (_fragmentManager != null)
                    {
                        _detailLayout.SetFragmentManager(_fragmentManager);
                        _masterLayout.SetFragmentManager(_fragmentManager);
                    }

                    AddView(_detailLayout);
                    AddView(_masterLayout);

                    Device.Info.PropertyChanged += DeviceInfoPropertyChanged;

                    AddDrawerListener(this);
                }

                UpdateBackgroundColor(newElement);
                UpdateBackgroundImage(newElement);

                UpdateMaster();
                UpdateDetail();

                ((IMasterDetailPageController)newElement).BackButtonPressed += OnBackButtonPressed;
                newElement.PropertyChanged += HandlePropertyChanged;
                newElement.Appearing       += MasterDetailPageAppearing;
                newElement.Disappearing    += MasterDetailPageDisappearing;

                SetGestureState();

                Presented = newElement.IsPresented;

                newElement.SendViewInitialized(this);
            }

            OnElementChanged(oldElement, newElement);

            // Make sure to initialize this AFTER event is fired
            if (_tracker == null)
            {
                _tracker = new VisualElementTracker(this);
            }
        }
Example #38
0
 /// <summary>
 /// Applies behaviors to a MasterDetailPage.
 /// </summary>
 /// <param name="page">The MasterDetailPage to apply the behaviors</param>
 protected virtual void ApplyMasterDetailPageBehaviors(MasterDetailPage page)
 {
 }
Example #39
0
 Task HandleCustomPushNavigation(MasterDetailPage masterDetailPage, NavigationPushInfo pushInfo)
 {
     // TODO: Implement your own navigation stack manipulation using pushInfo
     return(Task.FromResult(0));
 }
Example #40
0
        void RegisterToolbar()
        {
            Context  context = Context;
            AToolbar bar     = _toolbar;
            Element  page    = Element.RealParent;

            _masterDetailPage = null;
            while (page != null)
            {
                if (page is MasterDetailPage)
                {
                    _masterDetailPage = page as MasterDetailPage;
                    break;
                }
                page = page.RealParent;
            }

            if (_masterDetailPage == null)
            {
                if (PageController.InternalChildren.Count > 0)
                {
                    _masterDetailPage = PageController.InternalChildren[0] as MasterDetailPage;
                }

                if (_masterDetailPage == null)
                {
                    return;
                }
            }

            if (((IMasterDetailPageController)_masterDetailPage).ShouldShowSplitMode)
            {
                return;
            }

            var renderer = Android.Platform.GetRenderer(_masterDetailPage) as MasterDetailPageRenderer;

            if (renderer == null)
            {
                return;
            }

            _drawerLayout = renderer;

            FastRenderers.AutomationPropertiesProvider.GetDrawerAccessibilityResources(context, _masterDetailPage, out int resourceIdOpen, out int resourceIdClose);

            if (_drawerToggle != null)
            {
                _drawerToggle.ToolbarNavigationClickListener = null;
                _drawerToggle.Dispose();
            }

            _drawerToggle = new ActionBarDrawerToggle(context.GetActivity(), _drawerLayout, bar,
                                                      resourceIdOpen == 0 ? global::Android.Resource.String.Ok : resourceIdOpen,
                                                      resourceIdClose == 0 ? global::Android.Resource.String.Ok : resourceIdClose)
            {
                ToolbarNavigationClickListener = new ClickListener(Element)
            };

            if (_drawerListener != null)
            {
                _drawerLayout.RemoveDrawerListener(_drawerListener);
                _drawerListener.Dispose();
            }

            _drawerListener = new DrawerMultiplexedListener {
                Listeners = { _drawerToggle, renderer }
            };
            _drawerLayout.AddDrawerListener(_drawerListener);
        }
 public static MasterDetailPage IsPresented(this MasterDetailPage page, bool presented)
 {
     page.IsPresented = presented;
     return(page);
 }
Example #42
0
 public MainMaster(MasterDetailPage _myMaster)
 {
     myMaster = _myMaster;
     InitializeComponent();
 }
 public static MasterDetailPage MasterBehavior(this MasterDetailPage page, MasterBehavior behavior)
 {
     page.MasterBehavior = behavior;
     return(page);
 }
        internal static async void SetMasterLeftBarButton(UIViewController containerController, MasterDetailPage masterDetailPage)
        {
            if (!masterDetailPage.ShouldShowToolbarButton())
            {
                containerController.NavigationItem.LeftBarButtonItem = null;
                return;
            }

            EventHandler handler = (o, e) => masterDetailPage.IsPresented = !masterDetailPage.IsPresented;

            bool shouldUseIcon = masterDetailPage.Master.Icon != null;

            if (shouldUseIcon)
            {
                try
                {
                    var source = Internals.Registrar.Registered.GetHandler <IImageSourceHandler>(masterDetailPage.Master.Icon.GetType());
                    var icon   = await source.LoadImageAsync(masterDetailPage.Master.Icon);

                    containerController.NavigationItem.LeftBarButtonItem = new UIBarButtonItem(icon, UIBarButtonItemStyle.Plain, handler);
                }
                catch (Exception)
                {
                    // Throws Exception otherwise would catch more specific exception type
                    shouldUseIcon = false;
                }
            }

            if (!shouldUseIcon)
            {
                containerController.NavigationItem.LeftBarButtonItem = new UIBarButtonItem(masterDetailPage.Master.Title, UIBarButtonItemStyle.Plain, handler);
            }
        }
Example #45
0
        private void TapGestureRecognizer_Pesquisar(object sender, EventArgs e)
        {
            MasterDetailPage p = (MasterDetailPage)Application.Current.MainPage;

            p.Detail = new NavigationPage(new ListarDetail());
        }
Example #46
0
        public Page ResolvePageAndViewModel(Type viewModelType, object args)
        {
            Page page = null;

            var viewModel = CreateViewModel(viewModelType);

            try
            {
                var viewModelTypeInfo = viewModelType.GetTypeInfo();

                if (viewModel is ITabbedViewModel)
                {
                    var tabbedViewModel = viewModel as ITabbedViewModel;

                    var genericViewModels = viewModelTypeInfo.BaseType.GenericTypeArguments;

                    if (genericViewModels.Length < 2)
                    {
                        throw new Exception("TabbedViewModels need at least 2 tabs (ViewModels)");
                    }

                    page = ResolveTabbedPageForViewModels(tabbedViewModel, genericViewModels, args);
                }
                else
                {
                    page = ResolvePage(viewModel);
                }

                viewModel.Init(args);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex + "Failed to initialise ViewModel " + viewModel.GetType().Name);
            }

            if (viewModel.DrawerMenuViewModelType != null)
            {
                var masterDetailPage = new MasterDetailPage
                {
                    Master = ResolvePageAndViewModel(viewModel.DrawerMenuViewModelType, null),
                    Detail = page
                };

                if (Device.RuntimePlatform != Device.Android)
                {
                    masterDetailPage.IsGestureEnabled = false;
                }

                masterDetailPage.IsPresentedChanged += (sender, eventArgs) =>
                {
                    if (masterDetailPage.IsPresented)
                    {
                        ((IBaseViewModel)masterDetailPage.Master.BindingContext).OnAppearing();
                    }
                };

                return(masterDetailPage);
            }

            return(page);
        }
Example #47
0
 public HamburgerMenuViewModel(MasterDetailPage masterDetailPage)
 {
     this.masterDetailPage = masterDetailPage;
 }
		public void TestDoesNotThrowWhenPackedWithSetting ()
		{
			MasterDetailPage page = new MasterDetailPage {
				Master = new ContentPage {Content = new View (), Title = "Foo"},
				Detail = new ContentPage {Content = new View ()}
			};
			Assert.DoesNotThrow (() => new TabbedPage {Children = {page}});
		}
        protected virtual async Task ProcessNavigationForMasterDetailPage(MasterDetailPage currentPage, string nextSegment, Queue <string> segments, INavigationParameters parameters, bool?useModalNavigation, bool animated)
        {
            bool isPresented = GetMasterDetailPageIsPresented(currentPage);

            var detail = currentPage.Detail;

            if (detail == null)
            {
                var newDetail = CreatePageFromSegment(nextSegment);
                await ProcessNavigation(newDetail, segments, parameters, useModalNavigation, animated);
                await DoNavigateAction(null, nextSegment, newDetail, parameters, onNavigationActionCompleted : () =>
                {
                    currentPage.IsPresented = isPresented;
                    currentPage.Detail      = newDetail;
                });

                return;
            }

            if (useModalNavigation.HasValue && useModalNavigation.Value)
            {
                var nextPage = CreatePageFromSegment(nextSegment);
                await ProcessNavigation(nextPage, segments, parameters, useModalNavigation, animated);
                await DoNavigateAction(currentPage, nextSegment, nextPage, parameters, async() =>
                {
                    currentPage.IsPresented = isPresented;
                    await DoPush(currentPage, nextPage, true, animated);
                });

                return;
            }

            var nextSegmentType = PageNavigationRegistry.GetPageType(UriParsingHelper.GetSegmentName(nextSegment));

            //we must recreate the NavigationPage everytime or the transitions on iOS will not work properly, unless we meet the two scenarios below
            bool detailIsNavPage = false;
            bool reuseNavPage    = false;

            if (detail is NavigationPage navPage)
            {
                detailIsNavPage = true;

                //first we check to see if we are being forced to reuse the NavPage by checking the interface
                reuseNavPage = !GetClearNavigationPageNavigationStack(navPage);

                if (!reuseNavPage)
                {
                    //if we weren't forced to reuse the NavPage, then let's check the NavPage.CurrentPage against the next segment type as we don't want to recreate the entire nav stack
                    //just in case the user is trying to navigate to the same page which may be nested in a NavPage
                    var nextPageType    = PageNavigationRegistry.GetPageType(UriParsingHelper.GetSegmentName(segments.Peek()));
                    var currentPageType = navPage.CurrentPage.GetType();

                    if (nextPageType == currentPageType)
                    {
                        reuseNavPage = true;
                    }
                }
            }

            if ((detailIsNavPage && reuseNavPage) || (!detailIsNavPage && detail.GetType() == nextSegmentType))
            {
                await ProcessNavigation(detail, segments, parameters, useModalNavigation, animated);
                await DoNavigateAction(null, nextSegment, detail, parameters, onNavigationActionCompleted : () =>
                {
                    currentPage.IsPresented = isPresented;
                });

                return;
            }
            else
            {
                var newDetail = CreatePageFromSegment(nextSegment);
                await ProcessNavigation(newDetail, segments, parameters, newDetail is NavigationPage?false : true, animated);
                await DoNavigateAction(detail, nextSegment, newDetail, parameters, onNavigationActionCompleted : () =>
                {
                    currentPage.IsPresented = isPresented;
                    currentPage.Detail      = newDetail;
                    PageUtilities.DestroyPage(detail);
                });

                return;
            }
        }
Example #50
0
        public Page GetUserRootPage()
        {
            var masterMenuAbsLayout = new AbsoluteLayout();

            App.HardwareBackPressed = () => Task.FromResult <bool?>(false);

            _userDetailPageData.FirstName    = "loading...";
            _userDetailPageData.LastName     = "Last Name : loading...";
            _userDetailPageData.Reputation   = "Reputation : loading...";
            _userDetailPageData.TotalEarning = "TotalEarning : loading...";
            _userDetailPageData.UserProfilePicImageSource = "";
            FetchUserDetailFromServer();
            var userImage = new Image
            {
                BindingContext = _userDetailPageData,
                WidthRequest   = 60,
                HeightRequest  = 60,
            };

            userImage.SetBinding(Image.SourceProperty, "UserProfilePicImageSource");
            //userImage.Source = ImageSource.FromUri(new Uri("http://i.imgur.com/Y5DauNCm.jpg"));

            var firstName = new Label
            {
                BindingContext = _userDetailPageData,
                TextColor      = Color.White
            };

            firstName.SetBinding(Label.TextProperty, "FirstName");
            var lastName = new Label
            {
                BindingContext = _userDetailPageData,
                TextColor      = Color.White
            };

            lastName.SetBinding(Label.TextProperty, "LastName");

            masterMenuAbsLayout.Children.Add(userImage, new Point(20, 5));
            masterMenuAbsLayout.Children.Add(firstName, new Point(90, 30));
            masterMenuAbsLayout.Children.Add(lastName, new Point(90, 45));

            return(MDPage = new MasterDetailPage
            {
                Master = new ContentPage
                {
                    Title = "Master",
                    BackgroundColor = Color.FromRgb(5, 99, 172),
                    Icon = Device.OS == TargetPlatform.iOS ? "menu.png" : null,
                    Content = new StackLayout
                    {
                        Padding = new Thickness(5, 50),
                        Children =
                        {
                            masterMenuAbsLayout,
                            Link(Constants.pageName_Tasks),
                            Link(Constants.pageName_ActiveTasks),
                            Link(Constants.pageName_CompletedTasks),
                            Link(Constants.pageName_FacebookLike),
                            Link(Constants.pageName_Referrals),
                            Link(Constants.logoutButtonText)
                        }
                    },
                },
                Detail = new NavigationPage(new ContentPage
                {
                    Content = new Label
                    {
                        Text = "Loading please wait...",
                        VerticalOptions = LayoutOptions.CenterAndExpand,
                        HorizontalOptions = LayoutOptions.CenterAndExpand,
                    }
                })
                ,
            });
        }
		protected override void Dispose(bool disposing)
		{
			if (disposing)
			{
				if (Tracker != null)
				{
					Tracker.Dispose();
					Tracker = null;
				}

				if (_detailLayout != null)
				{
					_detailLayout.Dispose();
					_detailLayout = null;
				}

				if (_masterLayout != null)
				{
					_masterLayout.Dispose();
					_masterLayout = null;
				}

				Device.Info.PropertyChanged -= DeviceInfoPropertyChanged;

				if (_page != null)
				{
					MasterDetailPageController.BackButtonPressed -= OnBackButtonPressed;
					_page.PropertyChanged -= HandlePropertyChanged;
					_page.Appearing -= MasterDetailPageAppearing;
					_page.Disappearing -= MasterDetailPageDisappearing;
					_page.ClearValue(Platform.RendererProperty);
					_page = null;
				}
			}

			base.Dispose(disposing);
		}
 public MasterDetailPageInfo(MasterDetailPage masterDetailPage, KeyValuePair <IMasterViewModel, Page> masterViewModelWithView, KeyValuePair <IDetailViewModel, Page> detailViewModelWithView)
 {
     MasterDetailPage        = masterDetailPage;
     MasterViewModelWithView = masterViewModelWithView;
     DetailViewModelWithView = detailViewModelWithView;
 }
		protected override void Dispose(bool disposing)
		{
			if (disposing)
			{
				MessagingCenter.Unsubscribe<IVisualElementRenderer>(this, UpdateToolbarButtons);

				foreach (var childViewController in ViewControllers)
					childViewController.Dispose();

				if (_tracker != null)
					_tracker.Dispose();

				_secondaryToolbar.RemoveFromSuperview();
				_secondaryToolbar.Dispose();
				_secondaryToolbar = null;

				_parentMasterDetailPage = null;
				Current = null; // unhooks events

				var navPage = (NavigationPage)Element;
				navPage.PropertyChanged -= HandlePropertyChanged;

				var navController = ((INavigationPageController)navPage);
				navController.PushRequested -= OnPushRequested;
				navController.PopRequested -= OnPopRequested;
				navController.PopToRootRequested -= OnPopToRootRequested;
				navController.RemovePageRequested -= OnRemovedPageRequested;
				navController.InsertPageBeforeRequested -= OnInsertPageBeforeRequested;
			}

			base.Dispose(disposing);
			if (_appeared)
			{
				PageController.SendDisappearing();

				_appeared = false;
			}
		}
Example #54
0
        private void Button_pagecadastrar_cancelar_Clicked(object sender, EventArgs e)
        {
            MasterDetailPage p = (MasterDetailPage)Application.Current.MainPage;

            p.Detail = new NavigationPage(new PageHome());
        }
		public void TestMasterVisible ()
		{
			var page = new MasterDetailPage ();

			Assert.AreEqual (false, page.IsPresented);

			bool signaled = false;
			page.PropertyChanged += (sender, args) => {
				if (args.PropertyName == MasterDetailPage.IsPresentedProperty.PropertyName)
					signaled = true;
			};

			page.IsPresented = true;

			Assert.AreEqual (true, page.IsPresented);
			Assert.True (signaled);
		}
Example #56
0
        public MasterPage(MasterDetailPage mdpl)
        {
            this.mdpl = mdpl;

            StackLayout stck = new StackLayout {
                Children =
                {
                    new Frame             {
                        HeightRequest   = 200,
                        BackgroundColor = Color.FromRgba(0, 0, 0, 0.1),
                        Content         = new StackLayout {
                            Children =
                            {
                                new Image {
                                    Source = ImageSource.FromFile("assets/images/logo.png")
                                },
                                new Label {
                                    Text = "by: Muhammad Ikbal",
                                    HorizontalOptions = LayoutOptions.StartAndExpand,
                                    VerticalOptions   = LayoutOptions.EndAndExpand,
                                }
                            }
                        }
                    }
                }
            };
            List <Template> list_menu = new List <Template>()
            {
                new Template()
                {
                    Item = "MASS SPAM COMENT POST"
                },
                new Template()
                {
                    Item = "MASS LIKE POST"
                },
                new Template()
                {
                    Item = "ABOUT"
                }
            };

            ListView lw = new ListView();

            lw.ItemTemplate = new DataTemplate(typeof(TextCell));
            lw.ItemTemplate.SetBinding(TextCell.TextProperty, "Item");
            lw.ItemsSource   = list_menu;
            lw.ItemSelected += (sender, args) => {
                string item_s_t = ((Template)args.SelectedItem).Item;
                switch (item_s_t)
                {
                case "MASS SPAM COMENT POST":
                    mdpl.Detail = new NavigationPage(new Mass_coment());
                    break;

                case "MASS LIKE POST":
                    mdpl.Detail = new NavigationPage(new Mass_like());
                    break;

                case "ABOUT":
                    mdpl.Detail = new NavigationPage(new About());
                    break;

                default:
                    break;
                }
            };


            stck.Children.Add(lw);
            Content = stck;

            Title = "ok";
        }
		public MasterDetailContainer(MasterDetailPage parent, bool isMaster, Context context) : base(parent, isMaster, context)
		{
			Id = FormsAppCompatActivity.GetUniqueId();
			_parent = parent;
			_isMaster = isMaster;
		}
Example #58
0
        public App()
        {
            FlowListView.Init();

            GatewayApi.Instance.ExpiredAccessToken += async(object sender, EventArgs e) =>
            {
                var localEnvironments = await LocalDbHelper.Instance.GetAllSavedEnvironmentsAsync();

                BlockchainEnvironment environment = localEnvironments[0];

                var authService   = ServiceContainer.Resolve <IAuthentication>();
                var loginResponse = await authService.LoginAsync(
                    $"https://login.windows.net/{environment.TenantId}",
                    environment.ResourceId,
                    environment.ClientId,
                    environment.ReturnUrl,
                    isRefresh : true);

                if (loginResponse != null)
                {
                    AppCenterHelper.TrackEvent("Refreshed Token", new Dictionary <string, string>()
                    {
                        { "username", loginResponse.Profile.DisplayableId }
                    });

                    Settings.AccessToken = loginResponse.AccessToken;
                    GatewayApi.Instance.SetAuthToken(loginResponse.AccessToken);
#if DEBUG
                    Settings.AccessTokenExpiration            = new DateTimeOffset(DateTime.Now.AddMinutes(2));
                    GatewayApi.Instance.AccessTokenExpiration = new DateTimeOffset(DateTime.Now.AddMinutes(2));
#else
                    Settings.AccessTokenExpiration            = loginResponse.ExpiresOn;
                    GatewayApi.Instance.AccessTokenExpiration = loginResponse.ExpiresOn;
#endif
                }
                else
                {
                    App.Logout(false);
                }
            };

            GatewayApi.Instance.ExceptionThrown += async(object sender, Exception e) =>
            {
                AppCenterHelper.Report(e, new Dictionary <string, string>()
                {
                    { "baseurl", GatewayApi.SiteUrl }
                });
            };

            ViewModel = new AppViewModel();

            backgroundPage = new BackgroundPage();

            var navPage       = new Xamarin.Forms.NavigationPage(backgroundPage);
            var detailNavPage = new Xamarin.Forms.NavigationPage(new ApplicationsPage());

            ContractsPage = new WorklfowInstanceListPage();

            navPage.BarBackgroundColor       = Constants.NavBarBackgroundColor;
            navPage.BarTextColor             = Constants.NavBarTextColor;
            detailNavPage.BarBackgroundColor = Constants.NavBarBackgroundColor;
            detailNavPage.BarTextColor       = Constants.NavBarTextColor;

            Master = new MasterDetailPage {
                BindingContext = ViewModel
            };
            Master.IsPresentedChanged += (object sender, EventArgs e) =>
            {
                var mdp = sender as MasterDetailPage;
                if (mdp.IsPresented)
                {
                    ((Xamarin.Forms.NavigationPage)mdp.Detail)
                    .On <iOS>()
                    .SetStatusBarTextColorMode(StatusBarTextColorMode.DoNotAdjust);
                }
                else
                {
                    ((Xamarin.Forms.NavigationPage)mdp.Detail)
                    .On <iOS>()
                    .SetStatusBarTextColorMode(StatusBarTextColorMode.MatchNavigationBarTextLuminosity);
                }
            };

            Master.Master = new MasterPage {
                BindingContext = ViewModel
            };
            Master.Detail = detailNavPage;
            Master.SetBinding(MasterDetailPage.IsPresentedProperty, nameof(AppViewModel.MenuPresented), BindingMode.TwoWay);

            Xamarin.Forms.NavigationPage.SetHasNavigationBar(detailNavPage, false);

            try
            {
                MainPage = navPage;
            }
            catch (Exception e)
            {
                AppCenterHelper.Report(e);
            }
        }
Example #59
0
 public static void SetMasterPage(MasterDetailPage masterDetailPage, Page detailPage)
 {
     masterDetailPage.Detail      = new NavigationPage(detailPage);
     Application.Current.MainPage = masterDetailPage;
 }
		public void EmitsCorrectlyWhenPresentedOnBackPressed ()
		{
			var detail = new BackButtonPage ();
			var master = new BackButtonPage { Title = "Master" };
			var mdp = new MasterDetailPage {
				Detail = detail,
				Master = master,
				IsPresented = true,
				IsPlatformEnabled = true,
				Platform = new UnitPlatform ()
			};

			((IMasterDetailPageController)mdp).BackButtonPressed += (sender, args) => {
				args.Handled = mdp.IsPresented;
				mdp.IsPresented = false;
			};

			var detailEmitted = false;
			var masterEmitted = false;

			detail.BackPressed += (sender, args) => detailEmitted = true;
			master.BackPressed += (sender, args) => masterEmitted = true;

			var result = mdp.SendBackButtonPressed ();

			Assert.True (masterEmitted);
			Assert.False (detailEmitted);
			Assert.True (result);
		}