private void SelectNewLibrary(Library library) { if (IsFinishing) { return; } // If there are fragments loaded, do nothing Stack <Fragment> stack = stacks[(int)App.STATE.CurrentLibrary]; if (stack.Count > 0) { drawer.CloseDrawer(list); return; } Fragment fragment; App.STATE.CurrentLibrary = library; string tag = Enum.GetName(typeof(Library), library); FragmentManager manager = SupportFragmentManager; FragmentTransaction transaction = manager.BeginTransaction(); transaction.SetTransition((int)FragmentTransit.FragmentFade); if (App.STATE.CurrentLibrary == Library.DailyText) { string date = App.FUNCTIONS.FormatDateTime(DateTime.Now); fragment = new ArticleFragment(NavStruct.Parse(date), library); } else { fragment = new LibraryFragment(); } transaction.Replace(Resource.Id.content_frame, fragment); transaction.Commit(); int index = App.STATE.Libraries.IndexOf(library); list.SetItemChecked(index, true); list.SetSelection(index); drawer.CloseDrawer(list); Console.WriteLine("Current LibraryMode is " + App.STATE.CurrentLibrary.ToString()); }
private void SelectLibrary(Library library) { if (IsFinishing) { return; } //// If there are fragments loaded, do nothing //Stack<Fragment> stack = stacks[(int)App.STATE.CurrentLibrary]; //if (stack.Count > 0) //{ // drawer.CloseDrawer(list); // return; //} App.STATE.CurrentLibrary = library; string tag = Enum.GetName(typeof(Library), library); FragmentManager manager = SupportFragmentManager; FragmentTransaction transaction = manager.BeginTransaction(); transaction.SetTransition((int)FragmentTransit.FragmentFade); Fragment fragment = SupportFragmentManager.FindFragmentByTag(tag); if (fragment == null) { if (App.STATE.CurrentLibrary == Library.DailyText) { string date = App.FUNCTIONS.FormatDateTime(DateTime.Now); fragment = new ArticleFragment(NavStruct.Parse(date), library); fragment.RetainInstance = true; } else { fragment = new LibraryFragment(); fragment.RetainInstance = true; } if (SelectedFragment != null) { transaction.Detach(SelectedFragment); } transaction.Add(Resource.Id.content_frame, fragment, tag); } else { transaction.Detach(SelectedFragment); transaction.Attach(fragment); } // COMMIT TRANSACTION if (active) { transaction.Commit(); } else { transaction.CommitAllowingStateLoss(); } SelectedFragment = fragment; int index = App.STATE.Libraries.IndexOf(library); list.SetItemChecked(index, true); list.SetSelection(index); drawer.CloseDrawer(list); Console.WriteLine("Current LibraryMode is " + App.STATE.CurrentLibrary.ToString()); }