Exemple #1
0
        /// <summary>
        /// Pop to a specific fragment name
        /// </summary>
        /// <param name="name">Name.</param>
        public void NavigateBackToFragment(string name)
        {
            // get out fragment we want to navigate to
            var fragment = SupportFragmentManager.FindFragmentByTag(name);

            // pop everything up to our fragment
            RunOnUiThread(() =>
            {
                _drawerLayout.CloseDrawers();
                HideSoftInput();

                try
                {
                    SupportFragmentManager.PopBackStackImmediate(name,
                                                                 (int)PopBackStackFlags.None);
                }
                catch (Java.Lang.RuntimeException exception)
                {
                    var dict = new Dictionary <string, string>
                    {
                        { "Fragment Name", name }
                    };

                    Crashes.TrackError(exception, dict);
                }
            });
        }
 public override void ShowRootFragment(Type fragment)
 {
     GC.Collect();
     SupportFragmentManager.PopBackStackImmediate(null,
                                                  Android.Support.V4.App.FragmentManager.PopBackStackInclusive);
     Show(fragment);
 }
Exemple #3
0
        /// <summary>
        /// Pops to root.
        /// </summary>
        public void PopToRoot()
        {
            var count = SupportFragmentManager.BackStackEntryCount;

            // if we are already at start return
            if (count == 0)
            {
                return;
            }

            RunOnUiThread(() =>
            {
                _drawerLayout.CloseDrawers();
                HideSoftInput();

                try
                {
                    SupportFragmentManager.PopBackStackImmediate(0,
                                                                 (int)PopBackStackFlags.Inclusive);
                }
                catch (Java.Lang.RuntimeException exception)
                {
                    Crashes.TrackError(exception);
                }
            });
        }
        public override bool OnOptionsItemSelected(IMenuItem item)
        {
            if (toggle.DrawerIndicatorEnabled && toggle.OnOptionsItemSelected((Android.Views.IMenuItem)item))
            {
                return(true);
            }

            if (item.ItemId == Android.Resource.Id.Home)
            {
                SupportFragmentManager.PopBackStackImmediate();

                return(true);
            }

            switch (item.ItemId)
            {
            case (SWAP_MENU):
                App.STATE.SwapLanguage();
                return(true);

            case (PINYIN_MENU):
                App.STATE.PinyinToggleParadigm();
                return(true);

            case (SYNC_MENU):
                App.FUNCTIONS.UserSyncDialog(this);
                return(true);

            case (SETTINGS_MENU):
                StartActivity(typeof(SettingsActivity));
                return(true);
            }

            return(base.OnOptionsItemSelected(item));
        }
Exemple #5
0
		/// <summary>
		/// Close Fragment with a specific tag at a specific placeholder
		/// </summary>
		/// <param name="tag">The tag for the fragment to lookup</param>
		/// <param name="contentId">Where you want to close the Fragment</param>
		protected virtual void CloseFragment(string tag, int contentId)
		{
			var frag = SupportFragmentManager.FindFragmentById(contentId);
			if (frag == null) return;

			SupportFragmentManager.PopBackStackImmediate(tag, 1);
		}
Exemple #6
0
        public bool OnNavigationItemSelected(IMenuItem item)
        {
            while (SupportFragmentManager.BackStackEntryCount != 0)
            {
                SupportFragmentManager.PopBackStackImmediate();
            }

            switch (item.ItemId)
            {
            case Resource.Id.navigation_home:
                currentF = new MainFlowFragment();
                loadFragment(currentF);
                return(true);

            case Resource.Id.navigation_plus:
                currentF = new NewPostFragment();
                loadFragment(currentF);
                return(true);

            case Resource.Id.navigation_profile:
                currentF = new ProfileFragment();
                loadFragment(currentF);
                return(true);
            }
            return(false);
        }
        public override void GoBackTo(Type fragment)
        {
            var name = fragment.Name;

            SupportFragmentManager.PopBackStackImmediate(name,
                                                         Android.Support.V4.App.FragmentManager.PopBackStackInclusive);
            Show(fragment);
        }
Exemple #8
0
 public override bool OnOptionsItemSelected(IMenuItem item)
 {
     if (item.ItemId != Resource.Id.home)
     {
         SupportFragmentManager.PopBackStackImmediate();
         UpdateBackButtonVisibility();
     }
     return(base.OnOptionsItemSelected(item));
 }
Exemple #9
0
        /// <summary>
        /// End the nicotine editing fragment and update the UI.
        /// </summary>
        public void StopEditNicotine()
        {
            SupportFragmentManager.PopBackStackImmediate();
            var list = SupportFragmentManager.FindFragmentByTag("listFragment") as NicotineListFragment;

            if (list != null)
            {
                list.Reset();
            }
        }
Exemple #10
0
        public void StopEditFlavor()
        {
            SupportFragmentManager.PopBackStackImmediate();
            var fragment = SupportFragmentManager.FindFragmentByTag("listFragment") as FlavorListFragment;

            if (fragment != null)
            {
                fragment.Reset();
            }
        }
 public void onBackPressed()
 {
     if (SupportFragmentManager.BackStackEntryCount > 0)
     {
         SupportFragmentManager.PopBackStackImmediate();
     }
     else
     {
         base.OnBackPressed();
     }
 }
 private bool HandleHomeButton()
 {
     if (currentFragmentInfo != null && currentFragmentInfo.IsRoot)
     {
         DrawerLayout.OpenDrawer(GravityCompat.Start);
     }
     else
     {
         SupportFragmentManager.PopBackStackImmediate();
     }
     return(true);
 }
        public override bool OnOptionsItemSelected(IMenuItem item)
        {
            if (ActionBarDrawerToggle.OnOptionsItemSelected(item))
            {
                return(true);
            }

            SupportFragmentManager.PopBackStackImmediate();

            SetDrawerState(true);

            return(false);
        }
 public override void OnBackPressed()
 {
     if (SupportFragmentManager.BackStackEntryCount == 1) // landing fragment
     {
         Finish();
         return;
     }
     SupportFragmentManager.PopBackStackImmediate();
     if (SupportFragmentManager.BackStackEntryCount == 1) // landing fragment
     {
         SupportActionBar.Hide();
     }
 }
Exemple #15
0
        public override void OnBackPressed()
        {
            if (SupportFragmentManager.BackStackEntryCount > 0)
            {
                SupportFragmentManager.PopBackStackImmediate();
            }
            else
            {
                base.OnBackPressed();
            }

            UpdateToolbar();
        }
 void AttachFragment(Android.Support.V4.App.Fragment f)
 {
     if (f != null)
     {
         while (SupportFragmentManager.BackStackEntryCount > 0)
         {
             SupportFragmentManager.PopBackStackImmediate();
         }
         SupportFragmentManager.BeginTransaction()
         .Replace(Resource.Id.mainContent, f)
         .Commit();
     }
 }
Exemple #17
0
 public override void OnBackPressed()
 {
     if (SupportFragmentManager.BackStackEntryCount > 0)
     {
         SupportFragmentManager.PopBackStackImmediate();
     }
     else
     {
         var drawer = FindViewById <DrawerLayout>(Resource.Id.drawer_layout);
         drawer.OpenDrawer((int)GravityFlags.Start);
     }
     UpdateToolbar();
 }
Exemple #18
0
 public override void OnBackPressed()
 {
     if (SupportFragmentManager.BackStackEntryCount == 1)
     {
         Finish();
     }
     else
     {
         if (SupportFragmentManager.BackStackEntryCount > 1)
         {
             SupportFragmentManager.PopBackStackImmediate();
         }
     }
 }
 private void ShowLogoutPrompt()
 {
     new AlertDialog.Builder(this)
     .SetPositiveButton("Yes", (sender, args) =>
     {
         App.Logout();
         SupportFragmentManager.PopBackStackImmediate();
         Finish();
     })
     .SetNegativeButton("No", (sender, args) => { })
     .SetMessage("Do you want to logout?")
     .SetTitle("Logout")
     .
     Show();
 }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            // Init
            SetContentView(Resource.Layout.FragmentContainerActivityLayout);

            FragmentContainerId = Resource.Id.fragmentContainer;

            // Pop off all fragments
            while (SupportFragmentManager?.BackStackEntryCount > 0)
            {
                SupportFragmentManager?.PopBackStackImmediate();
            }
        }
Exemple #21
0
        public void PopFragmentOverUntil(Type targetType)
        {
            var existingFragment = GetOverFragment();

            if (existingFragment == null)
            {
                return;
            }
            if (existingFragment.GetType() == targetType)
            {
                return;
            }

            SupportFragmentManager.PopBackStackImmediate();
            PopFragmentOverUntil(targetType);
        }
        public override void OnBackPressed()
        {
            if (currentFragement != null && currentFragement.OnBackPressed())
            {
                //Has been handled by fragment
                return;
            }

            if (SupportFragmentManager.BackStackEntryCount == 1)
            {
                ShowLogoutPrompt();
            }
            else
            {
                SupportFragmentManager.PopBackStackImmediate();
            }
        }
        public override void OnBackPressed()
        {
            if (SupportFragmentManager.BackStackEntryCount >= 1)
            {
                SupportFragmentManager.PopBackStackImmediate();

                if (FragmentCacheConfiguration.EnableOnFragmentPoppedCallback)
                {
                    //NOTE(vvolkgang) this is returning ALL the frags. Should we return only the visible ones?
                    var currentFragsInfo = GetCurrentCacheableFragmentsInfo();
                    OnFragmentPopped(currentFragsInfo);
                }

                return;
            }

            base.OnBackPressed();
        }
Exemple #24
0
        public override void OnBackPressed()
        {
            DrawerLayout drawer = FindViewById <DrawerLayout>(Resource.Id.drawer_layout);

            if (drawer.IsDrawerOpen(GravityCompat.Start))
            {
                drawer.CloseDrawer(GravityCompat.Start);
            }
            else
            {
                if (SupportFragmentManager.BackStackEntryCount == 1)
                {
                    SupportFragmentManager.PopBackStackImmediate();
                }
                base.OnBackPressed();
                SetSelectedMenuItem();
            }
        }
        public override bool OnOptionsItemSelected(IMenuItem item)
        {
            AndroidX.Fragment.App.Fragment existingFragment;
            existingFragment = SupportFragmentManager.FindFragmentByTag("CHK");
            if (existingFragment != null)
            {
                SupportFragmentManager.PopBackStackImmediate(existingFragment.Id, 0);
            }
            existingFragment = SupportFragmentManager.FindFragmentByTag("STS");
            if (existingFragment != null)
            {
                SupportFragmentManager.PopBackStackImmediate(existingFragment.Id, 0);
            }
            existingFragment = SupportFragmentManager.FindFragmentByTag("ABT");
            if (existingFragment != null)
            {
                SupportFragmentManager.PopBackStackImmediate(existingFragment.Id, 0);
            }

            AndroidX.Fragment.App.Fragment fragment;
            if (item.ItemId == Resource.Id.menu_about)
            {
                _fragmentTag = "ABT";
                fragment     = AboutFragment.NewInstance();
                SupportActionBar.SetTitle(Resource.String.aboutTitle);
                _navigation.Visibility = ViewStates.Gone;
                _menu.FindItem(Resource.Id.menu_share).SetVisible(false);
                SupportFragmentManager.BeginTransaction().Replace(Resource.Id.content_frame, fragment, _fragmentTag).Commit();
            }

            if (item.ItemId == Resource.Id.menu_settings)
            {
                _fragmentTag = "SET";
                fragment     = SettingsFragment.NewInstance(_settingsService, Container.Resolve <IWorkerService>());
                SupportActionBar.SetTitle(Resource.String.settingsTitle);
                _navigation.Visibility = ViewStates.Gone;
                _menu.FindItem(Resource.Id.menu_share).SetVisible(false);
                SupportFragmentManager.BeginTransaction().Replace(Resource.Id.content_frame, fragment, _fragmentTag).Commit();
            }

            _eventService.OnMenuItemPressedEvent(new MenuItemPressedEventArgs(item.TitleFormatted.ToString(), _fragmentTag));
            //_eventService.OnSpareEvent(new EventArgs());
            return(base.OnOptionsItemSelected(item));
        }
Exemple #26
0
        /// <summary>
        /// React to the 'select new flavor' action ending.
        /// </summary>
        /// <param name="newFlavor">The flavor that was selected. May be null.</param>
        public void FlavorSelected(Flavor newFlavor)
        {
            if (newFlavor != null)
            {
                RecipeItem newItem = new RecipeItem();
                newItem.Flavor     = newFlavor;
                newItem.Percentage = newFlavor.RecommendedPercentage;
                //DatabaseHelper helper = new DatabaseHelper(ApplicationContext);
                //helper.PutRecipeItem(newItem, ActiveRecipe);
                ActiveRecipe.Flavors.Add(newItem);
            }
            SupportFragmentManager.PopBackStackImmediate();
            var list = SupportFragmentManager.FindFragmentByTag("listFragment") as RecipeItemListFragment;

            if (list != null)
            {
                list.Reset();
            }
        }
 // To support using the Fragment Backstack with back press
 // Override OnBackPress and have it call this utility method
 public void OnBackPressWithFragmentManagement()
 {
     BackPressed?.Invoke(this, EventArgs.Empty);
     if (SupportFragmentManager.BackStackEntryCount > 1)
     {
         // get the fragment to be popped
         SupportFragmentManager.PopBackStackImmediate();
         var entry = SupportFragmentManager.GetBackStackEntryAt(SupportFragmentManager.BackStackEntryCount - 1);
         var frag  = SupportFragmentManager.FindFragmentByTag(entry.Name);
         FragmentPoppedOnBack?.Invoke(null, frag);
     }
     else
     {
         if (SupportFragmentManager.BackStackEntryCount == 1)
         {
             SupportFragmentManager.PopBackStackImmediate();
         }
         base.OnBackPressed();
     }
 }
Exemple #28
0
        /// <summary>
        /// Custom navigation handler for Fragments
        /// </summary>
        /// <param name="viewType">The Type of the view receiving navigation</param>
        private void FragmentHandler(Type viewType)
        {
            RunOnUiThread(() =>
            {
                var perspective = MXContainer.Instance.Views.GetViewPerspectiveForViewType(viewType);
                var mxView      = MXContainer.Instance.Views.GetView(perspective);
                var view        = FindViewById <FrameLayout>(Resource.Id.master_fragment);

                if (mxView == null)
                {
                    if (view == null)
                    {
                        ReloadDetail = false;
                    }
                    var targetFragment = view != null && view.ChildCount < 1 ? Resource.Id.master_fragment : Resource.Id.detail_fragment;
                    view            = FindViewById <FrameLayout>(Resource.Id.detail_fragment);
                    var transaction = SupportFragmentManager.BeginTransaction();
                    if (view != null && view.ChildCount > 0 && !ReloadDetail)
                    {
                        transaction.SetTransition(Android.Support.V4.App.FragmentTransaction.TransitFragmentOpen);
                        transaction.AddToBackStack(null);
                    }
                    transaction.Replace(targetFragment, (Fragment)Activator.CreateInstance(viewType));
                    transaction.Commit();
                }
                else
                {
                    SupportFragmentManager.PopBackStackImmediate(null, Android.Support.V4.App.FragmentManager.PopBackStackInclusive);

                    if (view != null && !ReloadDetail)
                    {
                        var transaction = SupportFragmentManager.BeginTransaction();
                        transaction.Remove(SupportFragmentManager.FindFragmentById(Resource.Id.detail_fragment));
                        transaction.Commit();
                    }
                }
                ReloadDetail = false;
            });
        }
        private void HandleHomeButton()
        {
            if (actionBarDrawerToggle.DrawerIndicatorEnabled)
            {
                drawerLayout.OpenDrawer(Android.Support.V4.View.GravityCompat.Start);
                return;
            }

            actionBarDrawerToggle.DrawerIndicatorEnabled = true;

            if (FragmentManager.BackStackEntryCount >= 1)
            {
                FragmentManager.PopBackStackImmediate();
                mainToolBar.Menu.RemoveItem(Resource.Id.menu_card_view);
                mainToolBar.Menu.RemoveItem(Resource.Id.menu_grid_view);
                mainToolBar.Menu.Clear();
                mainToolBar.InflateMenu(Resource.Menu.MainToolBarMenu);

                ShowHamurgerIcon();
                SupportActionBar.Title = Resources.GetString(Resource.String.app_name);

                floatingAddButton.Visibility = ViewStates.Visible;
            }
            else if (SupportFragmentManager.BackStackEntryCount >= 1)
            {
                SupportFragmentManager.PopBackStackImmediate();
                mainToolBar.Menu.RemoveItem(Resource.Id.menu_card_view);
                mainToolBar.Menu.RemoveItem(Resource.Id.menu_grid_view);
                mainToolBar.Menu.Clear();
                mainToolBar.InflateMenu(Resource.Menu.MainToolBarMenu);

                ShowHamurgerIcon();
                SupportActionBar.Title = Resources.GetString(Resource.String.app_name);

                floatingAddButton.Visibility = ViewStates.Visible;
            }
        }
Exemple #30
0
        private void CallTextFragment(string title, string text)
        {
            var textFragment = new TextFragment(title, text);
            v4FragmentTransaction fragmentTransaction = SupportFragmentManager.BeginTransaction();

            fragmentTransaction.Replace(Resource.Id.mainFrameLayout, textFragment);

            bool qwerty = SupportFragmentManager.PopBackStackImmediate("TextFragment", 0) ||
                          (SupportFragmentManager.FindFragmentByTag("TextFragment") == null);

            if (qwerty)
            {
                Log.Info(tag, "true");
                SupportFragmentManager.PopBackStack();
                fragmentTransaction.AddToBackStack("TextFragment");
            }
            else
            {
                Log.Info(tag, "false");
                fragmentTransaction.AddToBackStack("TextFragment");
            }

            fragmentTransaction.Commit();
        }