예제 #1
0
        public void SelectedItemChanged(int position, string label)
        {
            switch (label)
            {
            case "Home":
            {
                var calcFrag    = new CalcFragment();
                var transaction = SupportFragmentManager.BeginTransaction();
                transaction.Replace(Resource.Id.fragment_container, calcFrag, CalcFragTag);
                transaction.Commit();
                SlidingMenu.ShowContent();
            }
            break;

            case "Help":
            {
                Toast.MakeText(this.SupportActionBar.ThemedContext, "help clicked", ToastLength.Short).Show();
            }
            break;

            case "About":
            {
                var aFrag       = new AboutFragment();
                var transaction = SupportFragmentManager.BeginTransaction();
                transaction.Replace(Resource.Id.fragment_container, aFrag);
                transaction.Commit();
                SlidingMenu.ShowContent();
            }
            break;

            default:
                throw new InvalidOperationException();
            }
        }
        public void OnPostCreate(Bundle savedInstanceState)
        {
            if (null == _viewBehind && null == _viewAbove)
            {
                throw new InvalidOperationException("Both SetBehindContentView must be called " +
                                                    "in OnCreate in addition to SetContentView.");
            }

            _onPostCreateCalled = true;

            _slidingMenu.AttachToActivity(_activity,
                                          _enableSlide ? SlideStyle.Window : SlideStyle.Content);

            bool open, secondary;

            if (null != savedInstanceState)
            {
                open      = savedInstanceState.GetBoolean("SlidingActivityHelper.open");
                secondary = savedInstanceState.GetBoolean("SlidingActivityHelper.secondary");
            }
            else
            {
                open      = false;
                secondary = false;
            }

            new Handler().Post(() =>
            {
                if (open)
                {
                    if (secondary)
                    {
                        _slidingMenu.ShowSecondaryMenu(false);
                    }
                    else
                    {
                        _slidingMenu.ShowMenu(false);
                    }
                }
                else
                {
                    _slidingMenu.ShowContent(false);
                }
            });
        }
 public void SwitchContent(Android.Support.V4.App.Fragment fragment)
 {
     _content = fragment;
     SupportFragmentManager
     .BeginTransaction()
     .Replace(Resource.Id.content_frame, fragment)
     .Commit();
     SlidingMenu.ShowContent();
 }
예제 #4
0
 public override void SwitchContent(MvxFragment fragment)
 {
     _content = fragment;
     SupportFragmentManager
     .BeginTransaction()
     .Replace(Resource.Id.contentArea, fragment)
     .Commit();
     SlidingMenu.ShowContent();
 }
        /// <summary>
        /// Further SlidingMenu initialization. Should be called within the activitiy's onPostCreate()
        /// </summary>
        /// <param name="savedInstanceState"> the saved instance state (unused) </param>
        public void OnPostCreate(Bundle savedInstanceState)
        {
            if (mViewBehind == null || mViewAbove == null)
            {
                throw new IllegalStateException("Both setBehindContentView must be called " + "in onCreate in addition to setContentView.");
            }

            mOnPostCreateCalled = true;

            mSlidingMenu.AttachToActivity(mActivity, mEnableSlide ? SlidingMenu.SLIDING_WINDOW : SlidingMenu.SLIDING_CONTENT);

            bool open;
            bool secondary;

            if (savedInstanceState != null)
            {
                open      = savedInstanceState.GetBoolean("SlidingActivityHelper.open");
                secondary = savedInstanceState.GetBoolean("SlidingActivityHelper.secondary");
            }
            else
            {
                open      = false;
                secondary = false;
            }
            (new Handler()).Post(() =>
            {
                if (open)
                {
                    if (secondary)
                    {
                        mSlidingMenu.ShowSecondaryMenu(false);
                    }
                    else
                    {
                        mSlidingMenu.ShowMenu(false);
                    }
                }
                else
                {
                    mSlidingMenu.ShowContent(false);
                }
            });
        }
 public override void OnBackPressed()
 {
     if (menu.IsMenuShowing)
     {
         menu.ShowContent();
     }
     else
     {
         base.OnBackPressed();
     }
 }
        public void SwitchContent(Android.Support.V4.App.Fragment fragment)
        {
            _content = fragment;
            SupportFragmentManager
            .BeginTransaction()
            .Replace(Resource.Id.content_frame, fragment)
            .Commit();
            var h = new Handler();

            h.PostDelayed(() => SlidingMenu.ShowContent(), 50);
        }
예제 #8
0
        protected override void OnViewModelSet()
        {
            //this.Parent.RequestWindowFeature (WindowFeatures.NoTitle);

            //RequestWindowFeature (WindowFeatures.NoTitle);

            homeViewModel = (HomeViewModel)ViewModel;

            SetContentView(Resource.Layout.Content_Frame);

            MenuId = Resource.Menu.HomeMenu;


            LegacyBar = FindViewById <LegacyBar.Library.Bar.LegacyBar>(Resource.Id.actionbar);

            //LegacyBar.SetHomeLogo(Resource.Drawable.jabbr_home_icon);
            AddHomeAction(() => {
                slidingMenu.Toggle();
            }, Resource.Drawable.jabbr_home_icon);

            LegacyBar.Click += (sender, e) => {
                slidingMenu.Toggle();
            };
            LegacyBar.Title = "JabbR";



            slidingMenu = new SlidingMenu(this)
            {
                Mode                       = MenuMode.LeftRight,
                TouchModeAbove             = TouchMode.Fullscreen,
                BehindOffset               = 80,
                ShadowWidth                = 20,
                ShadowDrawableRes          = Resource.Drawable.SlidingMenuShadow,
                SecondaryShadowDrawableRes = Resource.Drawable.SlidingMenuShadowRight
            };

            slidingMenu.AttachToActivity(this, SlideStyle.Content);
            slidingMenu.SetMenu(Resource.Layout.Menu_Frame);
            //slidingMenu.ShadowDrawableRes = Resource.Drawable.SlidingMenuShadow;

            menuFragment           = new MenuFragment();
            menuFragment.ViewModel = ViewModel;

            SupportFragmentManager.BeginTransaction()
            .Replace(Resource.Id.menu_frame, menuFragment).Commit();

            slidingMenu.SetSecondaryMenu(Resource.Layout.UserList_Frame);
            //slidingMenu.SecondaryShadowDrawableRes = Resource.Drawable.SlidingMenuShadowRight;

            emptyFragment           = new EmptyFragment();
            emptyFragment.ViewModel = this.ViewModel;

            SupportFragmentManager.BeginTransaction()
            .Replace(Resource.Id.content_frame, emptyFragment).Commit();


            //TODO: Put some kind of default view in the chat fragment space

            homeViewModel.PropertyChanged += (sender, e) => {
                Console.WriteLine("PropertyChanged: " + e.PropertyName);

                if (e.PropertyName == "CurrentRoom")
                {
                    if (homeViewModel.CurrentRoom == null)
                    {
                        if (emptyFragment == null)
                        {
                            emptyFragment = new EmptyFragment();
                        }

                        chatFragment = null;

                        SupportFragmentManager.BeginTransaction()
                        .Replace(Resource.Id.content_frame, emptyFragment).Commit();

                        LegacyBar.Title = "JabbR";

                        showActions = false;
                        ToggleActions();

                        userListFragment.ViewModel = null;

                        SupportFragmentManager.BeginTransaction()
                        .Replace(Resource.Id.userlist_frame, userListFragment).Commit();
                        return;
                    }

                    showActions = true;


                    if (chatFragment == null)
                    {
                        chatFragment           = new ChatFragment();
                        chatFragment.ViewModel = homeViewModel.CurrentRoom;

                        SupportFragmentManager.BeginTransaction()
                        .Replace(Resource.Id.content_frame, chatFragment).Commit();
                    }
                    else
                    {
                        chatFragment.ViewModel = homeViewModel.CurrentRoom;
                    }

                    if (userListFragment == null)
                    {
                        userListFragment           = new UserListFragment();
                        userListFragment.ViewModel = homeViewModel.CurrentRoom;

                        SupportFragmentManager.BeginTransaction()
                        .Replace(Resource.Id.userlist_frame, userListFragment).Commit();
                    }
                    else
                    {
                        userListFragment.ViewModel = homeViewModel.CurrentRoom;
                    }


                    ToggleActions();

                    slidingMenu.Toggle();

                    this.RunOnUiThread(() => LegacyBar.Title = homeViewModel.CurrentRoom.Room.Name);
                }
            };

            messenger = Mvx.Resolve <IMvxMessenger> ();
            _mvxMsgTokUserSelected = messenger.SubscribeOnMainThread <UserSelectedMessage> (msg => {
                chatFragment.AppendText("@" + msg.User.Name);

                slidingMenu.ShowContent(true);
            });
        }