public override void ViewDidLoad() { base.ViewDidLoad(); // Perform any additional setup after loading the view, typically from a nib. if (RootViewModel == null) { return; } AppDelegate app = UIApplication.SharedApplication.Delegate as AppDelegate; // create a slideout navigation controller with the top navigation controller and the menu view controller app.SidebarController = new SidebarController(this, CreateViewFor(RootViewModel.Home, false), CreateViewFor(RootViewModel.Menu, true)); app.SidebarController.ReopenOnRotate = false; app.SidebarController.MenuLocation = SidebarController.MenuLocations.Left; app.SidebarController.HasShadowing = true; View.SetHeight(Settings.DeviceInfo.ScreenHeight); app.SidebarController.View.SetHeight(Settings.DeviceInfo.ScreenHeight); RootViewModel.Menu.MenuSelected += (sender, e) => { app.SidebarController.ToggleMenu(); if (Settings.USE_RECENT_POSTS) { MenuEventArgs me = (MenuEventArgs)e; if (me.Object is CategoryOptionItem) { ((RecentPostsViewModel)RootViewModel.Home).ClearData(); CategoryOptionItem cat = (CategoryOptionItem)me.Object; ((RecentPostsViewModel)RootViewModel.Home).Init(cat.Id, cat.Title); ((RecentPostsViewModel)RootViewModel.Home).RefreshData(); ((RecentPostsViewModel)RootViewModel.Home).Title = cat.Title; } } }; RootViewModel.Menu.SignoutSelected += (sender, e) => { //this.Navigation.PopToRootAsync(); RootViewModel.SignOut(); }; RootViewModel.RefreshData(); }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Create your application here SetContentView(Resource.Layout.RootView); if (Settings.USE_RECENT_POSTS) { CreateViewFor(RecentPostsView.NewInstance(), RootViewModel.Home, Resource.Id.content_frame); } else { CreateViewFor(HomeView.NewInstance(), RootViewModel.Home, Resource.Id.content_frame); } SetBehindContentView(Resource.Layout.menu_frame); SlidingMenu.ShadowWidthRes = Resource.Dimension.shadow_width; SlidingMenu.BehindOffsetRes = Resource.Dimension.slidingmenu_offset; SlidingMenu.ShadowDrawableRes = Resource.Drawable.shadow; SlidingMenu.FadeDegree = 0.25f; SlidingMenu.TouchModeAbove = TouchMode.Fullscreen; //TouchMode.Margin; CreateViewFor(MenuView.NewInstance(), RootViewModel.Menu, Resource.Id.menu_frame); if (RootViewModel.Home is RecentPostsViewModel) { ((RecentPostsViewModel)RootViewModel.Home).MenuButtonSelected += (sender, e) => Toggle(); } else { ((HomeViewModel)RootViewModel.Home).MenuButtonSelected += (sender, e) => Toggle(); //top left menu button } RootViewModel.Menu.SignoutSelected += (sender, e) => { //do something Finish(); }; //close activity RootViewModel.Menu.MenuSelected += (sender, e) => { Toggle(); if (Settings.USE_RECENT_POSTS) { MenuEventArgs me = (MenuEventArgs)e; if (me.Object is CategoryOptionItem) { ((RecentPostsViewModel)RootViewModel.Home).ClearData(); CategoryOptionItem cat = (CategoryOptionItem)me.Object; ((RecentPostsViewModel)RootViewModel.Home).Init(cat.Id, cat.Title); ((RecentPostsViewModel)RootViewModel.Home).RefreshData(); ((RecentPostsViewModel)RootViewModel.Home).Title = cat.Title; } } }; RootViewModel.Home.ErrorHandler += (sender, e) => { ErrorEventArgs ee = (ErrorEventArgs)e; var dispatcher = Mvx.Resolve <IMvxMainThreadDispatcher> (); dispatcher.RequestMainThreadAction(() => { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.SetTitle(ee.Title); builder.SetMessage(ee.Message); builder.SetNegativeButton(ee.CloseTitle, (EventHandler <DialogClickEventArgs>)null); builder.Show(); }); }; this.StartCalled += (sender, e) => { if (FromLogin) { FromLogin = false; this.OverridePendingTransition(Resource.Animation.slide_right, Resource.Animation.slide_left); } else { this.OverridePendingTransition(Resource.Animation.slide_left_right, Resource.Animation.slide_right_right); } CatalogNewsView.FromHome = true; if (mLastTime == -1 || SystemClock.CurrentThreadTimeMillis() - mLastTime > Settings.HOME_REFRESH_TIME) { System.Diagnostics.Debug.WriteLine("Refresh Home Page"); mLastTime = SystemClock.CurrentThreadTimeMillis(); RootViewModel.RefreshData(); } }; CatalogNewsView.FromHome = true; }