public override bool OnKeyDown(Android.Views.Keycode keyCode, Android.Views.KeyEvent e)
        {
            if (keyCode == Keycode.Back && FragmentManager.BackStackEntryCount > 1)        //Button Back and we have some fragments in Backstack
            {
                FragmentManager.PopBackStackImmediate();
                string visibleFragmentTag = FragmentManager.FindFragmentById(Resource.Id.content_frame).Tag;
                if (visibleFragmentTag == "settingsfragment")
                {
                    ActionBar.Title = GetString(Resource.String.Preferences);
                }
                else
                {
                    var fragmentTagMenuArray = Resources.GetStringArray(Resource.Array.FragmentTagMenuArray);
                    int index = Array.IndexOf(fragmentTagMenuArray, visibleFragmentTag);
                    _drawerList.SetItemChecked(index, true);

                    ActionBar.Title = Resources.GetStringArray(Resource.Array.MenuArray)[index];               //ActionBar.Title = _drawerList.CheckedItemPosition.ToString();
                    InvalidateOptionsMenu();
                }
                return(true);
            }
            else
            {
                return(base.OnKeyDown(keyCode, e));
            }
        }
        protected virtual bool TryPerformCloseFragmentTransaction(
            FragmentManager fragmentManager,
            MvxFragmentPresentationAttribute fragmentAttribute)
        {
            var fragmentName = fragmentAttribute.ViewType.FragmentJavaName();
            var tag          = fragmentAttribute.Tag ?? fragmentName;

            if (fragmentManager.BackStackEntryCount > 0)
            {
                fragmentManager.PopBackStackImmediate(fragmentName, 1);
                OnFragmentPopped(null, null, fragmentAttribute);

                return(true);
            }

            if (fragmentManager.Fragments.Count > 0 && fragmentManager.FindFragmentByTag(tag) != null)
            {
                var ft       = fragmentManager.BeginTransaction();
                var fragment = fragmentManager.FindFragmentByTag(tag);

                SetAnimationsOnTransaction(ft, fragmentAttribute);

                ft.Remove(fragment);
                ft.CommitAllowingStateLoss();

                OnFragmentPopped(ft, fragment, fragmentAttribute);

                return(true);
            }

            return(false);
        }
Beispiel #3
0
        public void PopBackStack(int howMany)
        {
            DebugBackstack();

            if (howMany < 1)
            {
                return;
            }

            int backstackCount;

            //FragmentManager fm = SupportFragmentManager;

            backstackCount = FragmentManager.BackStackEntryCount;

            if (backstackCount == 0)
            {
                return;
            }

            if (howMany > backstackCount)
            {
                howMany = backstackCount;
            }

            for (int i = 0; i < howMany; i++)
            {
                FragmentManager.PopBackStackImmediate();
            }

            DebugBackstack();
        }
 public override void OnBackPressed()
 {
     if (FragmentManager.BackStackEntryCount == 0)
     {
         MoveTaskToBack(true);
         return;
     }
     fragmentManager.PopBackStackImmediate();
 }
Beispiel #5
0
        public override void OnDestroyView()
        {
            if (_mapFragment != null)
            {
                FragmentManager.PopBackStackImmediate("map", PopBackStackFlags.Inclusive);
            }

            base.OnDestroyView();
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

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

            FragmentManager?.PopBackStackImmediate();
        }
        protected virtual bool TryPerformCloseFragmentTransaction(
            FragmentManager fragmentManager,
            MvxFragmentPresentationAttribute fragmentAttribute)
        {
            try
            {
                var fragmentName = fragmentAttribute.ViewType.FragmentJavaName();

                if (fragmentManager.BackStackEntryCount > 0)
                {
                    var popBackStackFragmentName = fragmentAttribute.PopBackStackImmediateName?.Trim() == ""
                        ? fragmentName
                        : fragmentAttribute.PopBackStackImmediateName;

                    fragmentManager.PopBackStackImmediate(popBackStackFragmentName, fragmentAttribute.PopBackStackImmediateFlag.ToNativePopBackStackFlags());

                    OnFragmentPopped(null, null, fragmentAttribute);
                    return(true);
                }
                else if (CurrentFragmentManager.FindFragmentByTag(fragmentName) != null)
                {
                    var ft       = fragmentManager.BeginTransaction();
                    var fragment = fragmentManager.FindFragmentByTag(fragmentName);

                    if (!fragmentAttribute.EnterAnimation.Equals(int.MinValue) && !fragmentAttribute.ExitAnimation.Equals(int.MinValue))
                    {
                        if (!fragmentAttribute.PopEnterAnimation.Equals(int.MinValue) && !fragmentAttribute.PopExitAnimation.Equals(int.MinValue))
                        {
                            ft.SetCustomAnimations(fragmentAttribute.EnterAnimation, fragmentAttribute.ExitAnimation, fragmentAttribute.PopEnterAnimation, fragmentAttribute.PopExitAnimation);
                        }
                        else
                        {
                            ft.SetCustomAnimations(fragmentAttribute.EnterAnimation, fragmentAttribute.ExitAnimation);
                        }
                    }
                    if (fragmentAttribute.TransitionStyle != int.MinValue)
                    {
                        ft.SetTransitionStyle(fragmentAttribute.TransitionStyle);
                    }

                    ft.Remove(fragment);
                    ft.CommitAllowingStateLoss();

                    OnFragmentPopped(ft, fragment, fragmentAttribute);
                    return(true);
                }
            }
            catch (System.Exception ex)
            {
                MvxLog.Instance.Error("Cannot close fragment transaction", ex);
                return(false);
            }

            return(false);
        }
        public void NavigateTo(Page page, object parameter)
        {
            mainActivity.RunOnUiThread(() =>
            {
                if (page == CurrentPage && parameter == null)
                {
                    return;
                }

                if (!CrossConnectivity.Current.IsConnected)
                {
                    var dialogService = ServiceLocator.Current.GetInstance <IDialogService>();
                    dialogService.ShowMessage(LocalizedStrings.ConnectionError, LocalizedStrings.Error);
                    return;
                }

                if (pagesByKey[page].RequireAuth)
                {
                    var accountManager = ServiceLocator.Current.GetInstance <IAccountManager>();
                    if (!accountManager.IsAuthorized())
                    {
                        NavigateTo(Page.SignInPage);
                        return;
                    }
                }

                lock (pagesByKey)
                {
                    if (!pagesByKey.ContainsKey(page))
                    {
                        throw new ArgumentException($"No such page: {page.ToString()}. Did you forget to call NavigationService.Configure?");
                    }

                    var fragment = CreateFragment(page, parameter);

                    var transaction = fragmentManager
                                      .BeginTransaction()
                                      .SetCustomAnimations(Resource.Animation.anim_slide_in_right, Resource.Animation.anim_slide_out_right)
                                      .Replace(container, fragment, page.ToString());

                    if (!pagesByKey[page].IsRoot)
                    {
                        transaction.AddToBackStack(page.ToString());
                    }
                    else if (pageStack.Count > 0)
                    {
                        pageStack.Clear();
                        fragmentManager.PopBackStackImmediate(null, FragmentManager.PopBackStackInclusive);
                    }

                    transaction.CommitAllowingStateLoss();
                    pageStack.Push(page);
                }
            });
        }
Beispiel #9
0
        /// <summary>
        /// Remove all fragments from the back stack up to, but not including, the initial view.
        /// </summary>
        public void CloseToInitialView()
        {
            var backStackEntryCount = FragmentManager.BackStackEntryCount;

            for (var i = 0; i < backStackEntryCount; i++)
            {
                FragmentManager.PopBackStackImmediate();
            }

            this.FragmentChanged();
        }
Beispiel #10
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 = FragmentManager.FindFragmentById(contentId);

            if (frag == null)
            {
                return;
            }

            FragmentManager.PopBackStackImmediate(tag, PopBackStackFlags.Inclusive);
        }
        public override void Close(IMvxViewModel viewModel)
        {
            var currentFragment = _fragmentManager.FindFragmentById(Resource.Id.contentFrame) as MvxFragment;

            if (currentFragment != null && currentFragment.ViewModel == viewModel)
            {
                _fragmentManager.PopBackStackImmediate();

                return;
            }

            base.Close(viewModel);
        }
Beispiel #12
0
        /// <summary>
        ///
        /// </summary>
        public override void OnBackPressed()
        {
            int backstackCount = FragmentManager.BackStackEntryCount;

            if (backstackCount == 0)
            {
                base.OnBackPressed();
            }
            else
            {
                FragmentManager.PopBackStackImmediate();
            }
        }
Beispiel #13
0
        public void OnBackPressed(Object sender, EventArgs e)
        {
            FragmentManager.PopBackStackImmediate();
            //var fragmentsarray = SupportFragmentManager.Fragments;
            //foreach (var fragment in fragmentsarray)
            //{
            //    if (fragment.IsVisible)
            //    {
            //        //put the code to use and get the tag to identify the current Fragment
            //        string tag = fragment.Tag;

            //    }
            //}
        }
Beispiel #14
0
        /// <summary>
        /// Given a view model attempts to close the fragment associated with it. If the fragment
        /// associated is currently being displayed in the fragment host then the backstack
        /// is popped.
        /// </summary>
        /// <param name="viewModel"></param>
        /// <returns></returns>
        public bool Close(IMvxViewModel viewModel)
        {
            var fragmentTypeToClose = SupportedFragmentViewModels[viewModel.GetType()];

            if (CurrentFragment != null && CurrentFragment.GetType() == fragmentTypeToClose)
            {
                FragmentManager.PopBackStackImmediate();

                this.FragmentChanged();

                return(true);
            }
            else
            {
                return(false);
            }
        }
Beispiel #15
0
        /// <summary>
        /// Remove all fragments from the back stack up to, but not including the specified view.
        /// </summary>
        /// <remarks>
        /// If the specified view is not found then all fragments will be removed up to, but not including, the initial view.
        /// </remarks>
        public void CloseUpToView(Type viewModelType)
        {
            var targetFragmentType  = SupportedFragmentViewModels[viewModelType];
            var backStackEntryCount = FragmentManager.BackStackEntryCount;

            for (var i = 0; i < backStackEntryCount; i++)
            {
                if (CurrentFragment.GetType() == targetFragmentType)
                {
                    break;
                }

                FragmentManager.PopBackStackImmediate();
            }

            this.FragmentChanged();
        }
Beispiel #16
0
        public override void OnBackPressed()
        {
            if (FragmentManager.BackStackEntryCount >= 1)
            {
                FragmentManager.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();
        }
        protected virtual bool TryPerformCloseFragmentTransaction(
            FragmentManager fragmentManager,
            MvxFragmentPresentationAttribute fragmentAttribute)
        {
            try
            {
                var fragmentName = fragmentAttribute.ViewType.FragmentJavaName();
                var tag          = fragmentAttribute.Tag ?? fragmentName;

                if (fragmentManager.BackStackEntryCount > 0)
                {
                    var popBackStackFragmentName = fragmentAttribute.PopBackStackImmediateName?.Trim() == ""
                        ? fragmentName
                        : fragmentAttribute.PopBackStackImmediateName;

                    fragmentManager.PopBackStackImmediate(popBackStackFragmentName, (int)fragmentAttribute.PopBackStackImmediateFlag);
                    OnFragmentPopped(null, null, fragmentAttribute);

                    return(true);
                }

                if (fragmentManager.Fragments.Count > 0 && fragmentManager.FindFragmentByTag(tag) != null)
                {
                    var ft       = fragmentManager.BeginTransaction();
                    var fragment = fragmentManager.FindFragmentByTag(tag);

                    SetAnimationsOnTransaction(ft, fragmentAttribute);

                    ft.Remove(fragment);
                    ft.CommitAllowingStateLoss();

                    OnFragmentPopped(ft, fragment, fragmentAttribute);

                    return(true);
                }
            }
            catch (System.Exception ex)
            {
                MvxAndroidLog.Instance.Error("Cannot close fragment transaction", ex);
                return(false);
            }

            return(false);
        }
Beispiel #18
0
        protected virtual bool TryPerformCloseFragmentTransaction(
            FragmentManager fragmentManager,
            MvxFragmentPresentationAttribute fragmentAttribute)
        {
            if (fragmentManager.BackStackEntryCount > 0)
            {
                var fragmentName = FragmentJavaName(fragmentAttribute.ViewType);
                fragmentManager.PopBackStackImmediate(fragmentName, 1);

                OnFragmentPopped(null, null, fragmentAttribute);

                return(true);
            }
            else if (fragmentManager.Fragments.Count > 0 && fragmentManager.FindFragmentByTag(fragmentAttribute.ViewType.Name) != null)
            {
                var ft       = fragmentManager.BeginTransaction();
                var fragment = fragmentManager.FindFragmentByTag(fragmentAttribute.ViewType.Name);

                if (!fragmentAttribute.EnterAnimation.Equals(int.MinValue) && !fragmentAttribute.ExitAnimation.Equals(int.MinValue))
                {
                    if (!fragmentAttribute.PopEnterAnimation.Equals(int.MinValue) && !fragmentAttribute.PopExitAnimation.Equals(int.MinValue))
                    {
                        ft.SetCustomAnimations(fragmentAttribute.EnterAnimation, fragmentAttribute.ExitAnimation, fragmentAttribute.PopEnterAnimation, fragmentAttribute.PopExitAnimation);
                    }
                    else
                    {
                        ft.SetCustomAnimations(fragmentAttribute.EnterAnimation, fragmentAttribute.ExitAnimation);
                    }
                }
                if (fragmentAttribute.TransitionStyle != int.MinValue)
                {
                    ft.SetTransitionStyle(fragmentAttribute.TransitionStyle);
                }

                ft.Remove(fragment);
                ft.CommitAllowingStateLoss();

                OnFragmentPopped(ft, fragment, fragmentAttribute);

                return(true);
            }
            return(false);
        }
Beispiel #19
0
 protected void CloseCurrentFragment(int contentId)
 {
     //Mvx.Trace("BaseCachingFragmentActivity:CloseCurrentFragment");
     // find the target fragment
     if (FragmentManager.BackStackEntryCount == 1)
     {
         var targetFragmentTypeName = _currentRootTag;
         FragmentManager.PopBackStackImmediate();
         _currentFragments.Remove(contentId);
         _currentFragments[contentId] = targetFragmentTypeName;
     }
     else
     {
         var targetFragmentTypeName = FragmentManager.GetBackStackEntryAt(FragmentManager.BackStackEntryCount - 2).Name;
         FragmentManager.PopBackStackImmediate();
         _currentFragments.Remove(contentId);
         _currentFragments[contentId] = targetFragmentTypeName;
     }
 }
Beispiel #20
0
        private void ShowFragment(Fragment newFragment)
        {
            for (int i = 0; i < FragmentManager.BackStackEntryCount; i++)
            {
                FragmentManager.PopBackStackImmediate();
            }

            // Create a new fragment and a transaction.
            FragmentTransaction fragmentTx = this.FragmentManager.BeginTransaction();

            // Replace the fragment that is in the View fragment_container (if applicable).
            fragmentTx.Replace(Resource.Id.frameMain, newFragment);

            // Add the transaction to the back stack.
            fragmentTx.AddToBackStack(null);

            // Commit the transaction.
            fragmentTx.Commit();
        }
        private void NavigationView_NavigationItemSelected(object sender, NavigationView.NavigationItemSelectedEventArgs e)
        {
            var ft = FragmentManager.BeginTransaction();

            switch (e.MenuItem.ItemId)
            {
            case (Resource.Id.nav_home):
                SupportActionBar.SetTitle(Resource.String.ApplicationName);
                ft.Replace(Resource.Id.content_frame, new HomeFragment(), nameof(HomeFragment));
                FragmentManager.PopBackStackImmediate(null, PopBackStackFlags.Inclusive);
                break;

            case (Resource.Id.nav_tournaments):
                ft.Detach(FragmentManager.FindFragmentById(Resource.Id.content_frame));
                ft.Replace(Resource.Id.content_frame, new TournamentsFragment(), nameof(TournamentsFragment));
                break;
            }
            ft.Commit();
            _drawerLayout.CloseDrawers();
        }
Beispiel #22
0
        public void NavigateTo(Page page, object parameter1, object parameter2)
        {
            mainActivity.RunOnUiThread(() => {
                if (page == CurrentPage && parameter1 == null && parameter2 == null)
                {
                    return;
                }
                BeforeNavigateEvent?.Invoke(this, page);
                if (mainActivity == null)
                {
                    throw new InvalidOperationException("No MainActivity found");
                }

                lock (pagesByKey) {
                    if (!pagesByKey.ContainsKey(page))
                    {
                        throw new ArgumentException($"No such page: {page.ToString ()}. Did you forget to call NavigationService.Configure?");
                    }

                    var fragment = CreateFragment(page, parameter1, parameter2);

                    var transaction = fragmentManager
                                      .BeginTransaction()
                                      //.SetCustomAnimations (Resource.Animation.anim_slide_in_right, Resource.Animation.anim_slide_out_right)
                                      .Replace(container, fragment, page.ToString());

                    if (!pagesByKey[page].IsRoot)
                    {
                        transaction.AddToBackStack(page.ToString());
                    }
                    else if (pageStack.Count > 0)
                    {
                        pageStack.Clear();
                        fragmentManager.PopBackStackImmediate(null, FragmentManager.PopBackStackInclusive);
                    }

                    transaction.CommitAllowingStateLoss();
                    pageStack.Push(page);
                }
            });
        }
        public override void OnBackPressed()
        {
            //if (FragmentManager.BackStackEntryCount > 0)
            //    for (int i = 0; i < FragmentManager.BackStackEntryCount; i++)
            //    {
            //        FragmentManager.PopBackStackImmediate();
            //    }

            //else
            //    base.OnBackPressed();

            Fragment lastFragment = (Fragment)(myFragments[myFragments.Count - 1]);


            if (lastFragment.Tag.Equals("ONE"))
            {
                myFragments.Clear();
                Finish();
            }
            else
            {
                if (FragmentManager.BackStackEntryCount > 0)
                {
                    FragmentManager.PopBackStackImmediate(new FragmentOne().Id, PopBackStackFlags.None);
                    myFragments.RemoveRange(1, myFragments.Count - 1);
                }

                else
                {
                    base.OnBackPressed();
                }
            }



            //base.OnBackPressed();
        }
Beispiel #24
0
        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;
            }
        }
Beispiel #25
0
        //public void run()
        //{
        //    for (int i = 0; i < mThumbIds.Length; i++)
        //    {
        //        layout.SetBackgroundResource(mThumbIds[i]);

        //        try
        //        {
        //            Thread.Sleep(1000);
        //        }
        //        catch (System.Exception e)
        //        {

        //        }
        //
        //}
        //public void create()
        //{

        //    Thread th = new Thread();
        //    th.Start();
        //    try
        //    {
        //        Thread.Sleep(1000);
        //    }
        //    catch (System.Exception e)
        //    {
        //        //System.out.println(e);
        //    }
        //}

        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            base.OnCreateView(inflater, container, savedInstanceState);
            var view = inflater.Inflate(Resource.Layout.fragment, container, false);

            login = view.FindViewById <TextView>(Resource.Id.Login);
            Product_cataloguee = view.FindViewById <LinearLayout>(Resource.Id.Product_cataloguee);
            promotion          = view.FindViewById <TextView>(Resource.Id.Promotions);
            contact            = view.FindViewById <TextView>(Resource.Id.Contact_us);
            bitcash            = view.FindViewById <TextView>(Resource.Id.Bit_cash);
            website            = view.FindViewById <TextView>(Resource.Id.Website);

            layout = view.FindViewById <LinearLayout>(Resource.Id.layout);
            // textView.Text = "Fragment1";
            TaskScheduler uiContext = TaskScheduler.FromCurrentSynchronizationContext();

            Console.WriteLine("timer started");
            Task.Delay(1000).ContinueWith((task) =>
            {
                //Do UI stuff
                for (int i = 0; i < mThumbIds.Length; i++)
                {
                    layout.SetBackgroundResource(mThumbIds[i]);
                    Task.Delay(1000);
                }
                Console.WriteLine("timer stopped");
            }, uiContext);

            //async Task Run()
            //{
            //    Console.WriteLine("timer started");
            //    await Task.Delay(1000);
            //    //Do UI stuff
            //    for (int i = 0; i < mThumbIds.Length; i++)
            //    {
            //        layout.SetBackgroundResource(mThumbIds[i]);

            //        try
            //        {
            //            Thread.Sleep(1000);
            //        }
            //        catch (System.Exception e)
            //        {

            //        }
            //        Console.WriteLine("timer stopped");
            //}
            //create();

            contact.Click += (o, e) =>
            {
                FragmentTransaction             transcation1      = FragmentManager.BeginTransaction();
                src.Fragments.ContactUsFragment contactUsFragment = new src.Fragments.ContactUsFragment();
                transcation1.Replace(Resource.Id.container, contactUsFragment, "Contact");
                transcation1.AddToBackStack("Contact");
                transcation1.Commit();
            };
            website.Click += (o, e) =>
            {
                FragmentManager.PopBackStackImmediate();
                var uri    = Android.Net.Uri.Parse("http://www.masafi.com/");
                var intent = new Intent(Intent.ActionView, uri);
                StartActivity(intent);
            };
            bitcash.Click += (o, e) =>
            {
                FragmentTransaction           transcation1    = FragmentManager.BeginTransaction();
                src.Fragments.BitCashFragment bitCashFragment = new src.Fragments.BitCashFragment();
                transcation1.Replace(Resource.Id.container, bitCashFragment, "Bit");
                transcation1.AddToBackStack("Bit");
                transcation1.Commit();
            };
            login.Click += (o, e) =>
            {
                FragmentTransaction         transcation1  = FragmentManager.BeginTransaction();
                src.Fragments.LoginFragment loginFragment = new src.Fragments.LoginFragment();
                transcation1.Replace(Resource.Id.container, loginFragment, "Login");
                transcation1.AddToBackStack("Login");
                transcation1.Commit();
            };
            Product_cataloguee.Click += (o, e) =>
            {
                FragmentTransaction transcation1 = FragmentManager.BeginTransaction();
                src.Fragments.ProductCatalogFragment loginFragment = new src.Fragments.ProductCatalogFragment();
                transcation1.Replace(Resource.Id.container, loginFragment, "Product");
                transcation1.AddToBackStack("Product");
                transcation1.Commit();
            };
            promotion.Click += (o, e) =>
            {
                FragmentTransaction             transcation1      = FragmentManager.BeginTransaction();
                src.Fragments.PromotionFragment promotionFragment = new src.Fragments.PromotionFragment();
                transcation1.Replace(Resource.Id.container, promotionFragment, "Promotion");
                transcation1.AddToBackStack("Promotion");
                transcation1.Commit();
            };
            return(view);
        }
Beispiel #26
0
        public void OnItemSelected(int position)
        {
            Fragment        current            = FragmentManager.FindFragmentById(Resource.Id.fragment_container);
            Type            targetFragmentType = null;
            WeatherListType weatherListType    = 0;

            switch (mNavDrawerAdapter?.GetStringId(position))
            {
            case Resource.String.label_condition:
            default:
                targetFragmentType = typeof(WeatherNowFragment);
                break;

            case Resource.String.title_fragment_alerts:
                targetFragmentType = typeof(WeatherListFragment);
                weatherListType    = WeatherListType.Alerts;
                break;

            case Resource.String.label_forecast:
                targetFragmentType = typeof(WeatherListFragment);
                weatherListType    = WeatherListType.Forecast;
                break;

            case Resource.String.label_hourlyforecast:
                targetFragmentType = typeof(WeatherListFragment);
                weatherListType    = WeatherListType.HourlyForecast;
                break;

            case Resource.String.label_details:
                targetFragmentType = typeof(WeatherDetailsFragment);
                break;
            }

            if (typeof(WeatherNowFragment).Equals(targetFragmentType))
            {
                if (!Class.FromType(typeof(WeatherNowFragment)).Equals(current.Class))
                {
                    // Pop all since we're going home
                    FragmentManager.PopBackStackImmediate(null, PopBackStackFlags.Inclusive);
                }
            }
            else if (typeof(WeatherListFragment).Equals(targetFragmentType))
            {
                if (!Class.FromType(targetFragmentType).Equals(current.Class))
                {
                    // Add fragment to backstack
                    var ft = FragmentManager.BeginTransaction();
                    ft.Add(Resource.Id.fragment_container,
                           WeatherListFragment.NewInstance(weatherListType, mNavDrawerAdapter.WeatherNowView),
                           null)
                    .AddToBackStack(null);

                    if (FragmentManager.BackStackEntryCount > 0)
                    {
                        ft.Remove(current);
                    }

                    ft.Commit();
                }
                else if (current is WeatherListFragment forecastFragment)
                {
                    if (forecastFragment.Arguments != null &&
                        ((WeatherListType)forecastFragment.Arguments.GetInt("WeatherListType", 0)) != weatherListType)
                    {
                        Bundle args = new Bundle();
                        args.PutInt("WeatherListType", (int)weatherListType);
                        forecastFragment.Arguments = args;
                        forecastFragment.Initialize();
                    }
                }
            }
            else if (typeof(WeatherDetailsFragment).Equals(targetFragmentType))
            {
                if (!Class.FromType(typeof(WeatherDetailsFragment)).Equals(current.Class))
                {
                    // Add fragment to backstack
                    var ft = FragmentManager.BeginTransaction();
                    ft.Add(Resource.Id.fragment_container, WeatherDetailsFragment.NewInstance(mNavDrawerAdapter.WeatherNowView), null)
                    .AddToBackStack(null);

                    if (FragmentManager.BackStackEntryCount > 0)
                    {
                        ft.Remove(current);
                    }

                    ft.Commit();
                }
            }
        }
Beispiel #27
0
        void button_Click_Apply(object sender, EventArgs e)
        {
            if (distanceBox.Checked)
            {
                sort = "distance";
            }
            else if (ratingBox.Checked)
            {
                sort = "rating";
            }
            else if (mostPopBox.Checked)
            {
                sort = "popular";
            }
            else if (lowPriceBox.Checked)
            {
                sort = "low";
            }
            else if (highPriceBox.Checked)
            {
                sort = "high";
            }

            if (noDietary.Checked)
            {
                dietary = "none";
            }
            else if (veganBox.Checked)
            {
                dietary = "vegan";
            }
            else if (vegetarianBox.Checked)
            {
                dietary = "vegetarian";
            }
            else if (glutenFreeBox.Checked)
            {
                dietary = "glutenfree";
            }

            if (OpenNowSwitch.Checked)
            {
                openNow = "yes";
            }
            else
            {
                openNow = "no";
            }

            //send refinements to search results page
            searchResultsPage fragment = new searchResultsPage();
            Bundle            args     = new Bundle();

            args.PutString("sort", sort);
            args.PutString("dietary", dietary);
            args.PutString("openNow", openNow);
            args.PutString("option", option);
            args.PutString("searchedString", searchedString);
            fragment.Arguments = args;

            var fragmentTransaction = FragmentManager.BeginTransaction();

            fragmentTransaction.Replace(Resource.Id.frame, fragment);

            FragmentManager.PopBackStackImmediate();
            fragmentTransaction.AddToBackStack("SearchFragmentActual");

            fragmentTransaction.Commit();
        }
Beispiel #28
0
 public void OnClick(View v)
 {
     FragmentManager.PopBackStackImmediate();
 }
        /*Method for clearing out all backstack entries for fragments.*/
        public void clearAllBackStackFragments()
        {
            FragmentManager fm = this.FragmentManager;

            fm.PopBackStackImmediate();
        }