protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.activity_map); mFragmentManager = SupportFragmentManager; mFragmentManager.AddOnBackStackChangedListener(this); mFragmentBreadCrumbs = FindViewById<FragmentBreadCrumbs>(Resource.Id.breadcrumbs); mFragmentBreadCrumbs.SetActivity(this); mMapFragment = (MapFragment)mFragmentManager.FindFragmentByTag("map"); if (mMapFragment == null) { mMapFragment = new MapFragment(); mMapFragment.Arguments = IntentToFragmentArguments(Intent); mFragmentManager.BeginTransaction() .Add(Resource.Id.fragment_container_map, mMapFragment, "map") .Commit(); } FindViewById<ImageButton>(Resource.Id.close_button).Click += (sender, e) => { ClearBackStack(SupportFragmentManager); }; UpdateBreadCrumb(); }
public static bool TryShow (FragmentManager fragmentManager, TimeEntryModel model) { var settingsStore = ServiceContainer.Resolve<SettingsStore> (); if (settingsStore.ReadContinueDialog) return false; new RecentTimeEntryContinueDialogFragment (model).Show (fragmentManager, "notice_dialog"); return true; }
protected override void OnBeforeCommitReplaceFragment(FragmentManager fm, Android.Support.V4.App.FragmentTransaction ft, Fragment fragment) { base.OnBeforeCommitReplaceFragment(fm, ft, fragment); if (fragment is SessionDetailFragment) { ft.AddToBackStack(null); } else if (fragment is SessionsFragment) { fm.PopBackStack(); } UpdateBreadCrumb(); }
public static bool TryShow (FragmentManager fragmentManager) { var authManager = ServiceContainer.Resolve<AuthManager> (); if (authManager.User == null || authManager.User.TrackingMode == TrackingMode.StartNew) return false; var settingsStore = ServiceContainer.Resolve<SettingsStore> (); if (settingsStore.ReadDurOnlyNotice) return false; new DurOnlyNoticeDialogFragment ().Show (fragmentManager, "notice_dialog"); return true; }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.activity_schedule); mFragmentManager = SupportFragmentManager; mFragmentBreadCrumbs = FindViewById<FragmentBreadCrumbs>(Resource.Id.breadcrumbs); mFragmentBreadCrumbs.SetActivity(this); mFragmentManager.AddOnBackStackChangedListener(this); UpdateBreadCrumb(); }
public ItemsSourcePagerAdapter([NotNull] ViewPager viewPager) { Should.NotBeNull(viewPager, nameof(viewPager)); _viewPager = viewPager; _fragmentManager = viewPager.GetFragmentManager(); _itemTemplateProvider = new DataTemplateProvider(viewPager, AttachedMemberConstants.ItemTemplate, AttachedMemberConstants.ItemTemplateSelector); _weakHandler = ReflectionExtensions.MakeWeakCollectionChangedHandler(this, (adapter, o, arg3) => adapter.OnCollectionChanged(o, arg3)); var activityView = _viewPager.Context.GetActivity() as IActivityView; if (activityView != null) { _listener = ReflectionExtensions.CreateWeakEventHandler<ItemsSourcePagerAdapter, EventArgs>(this, (adapter, o, arg3) => adapter.ActivityViewOnDestroyed((Activity)o)); activityView.Mediator.Destroyed += _listener.Handle; } }
public static void Start (FragmentManager mgr, string email) { // Find old fragment to replace var frag = mgr.FindFragmentByTag ("google_auth"); if (frag != null) { var authFrag = frag as GoogleAuthFragment; if (authFrag != null && authFrag.IsAuthenticating) { // Authentication going on still, do nothing. return; } } var tx = mgr.BeginTransaction (); if (frag != null) { tx.Remove (frag); } tx.Add (new GoogleAuthFragment (email), "google_auth"); tx.Commit (); }
public MainPagerAdapter (Context ctx, FragmentManager fm) : base (fm) { this.ctx = ctx; timeEntryManager = ServiceContainer.Resolve<ActiveTimeEntryManager> (); timeEntryManager.PropertyChanged += OnTimeEntryManagerPropertyChanged; var bus = ServiceContainer.Resolve<MessageBus> (); subscriptionSettingChanged = bus.Subscribe<SettingChangedMessage> (OnSettingChanged); }
public PagerAdapter(FragmentManager fm, int NumOfTabs) : base(fm) { this.numOfTabs = NumOfTabs; fragments = new Fragment[NumOfTabs]; }
public SimpleItemRecyclerViewAdapter(List<User> items, Context context, Android.Support.V4.App.FragmentManager fragmentManager) { _users = items; _context = context; _fragmentManager = fragmentManager; }
private void ClearBackStack(FragmentManager fm) { while (fm.BackStackEntryCount > 0) { fm.PopBackStackImmediate(); } }
public GoogleMusicAdapter(FragmentManager p0) : base(p0) { }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); Xamarin.Essentials.Platform.Init(this, savedInstanceState); SetContentView(Resource.Layout.activity_main); sessionManagement = new Session_management(this); Android.Support.V7.Widget.Toolbar toolbar = FindViewById <Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar); SetSupportActionBar(toolbar); SupportActionBar.SetDisplayShowTitleEnabled(false); //SupportActionBar.SetTitle(Resource.String.app_name); drawer = (DrawerLayout)FindViewById(Resource.Id.drawer_layout); toggle = new ActionBarDrawerToggle(this, drawer, toolbar, Resource.String.navigation_drawer_open, Resource.String.navigation_drawer_close); drawer.SetDrawerListener(toggle); toggle.SyncState(); navigationView = (NavigationView)FindViewById(Resource.Id.nav_view); IMenu m = navigationView.Menu; for (int i = 0; i < m.Size(); i++) { IMenuItem mi = m.GetItem(i); //for aapplying a font to subMenu ... ISubMenu subMenu = mi.SubMenu; if (subMenu != null && subMenu.Size() > 0) { for (int j = 0; j < subMenu.Size(); j++) { IMenuItem subMenuItem = subMenu.GetItem(j); } } } View headerView = navigationView.GetHeaderView(0); navigationView.Background.SetColorFilter(Android.Graphics.Color.Rgb(128, 0, 0), PorterDuff.Mode.Multiply); navigationView.SetNavigationItemSelectedListener(this); nav_menu = navigationView.Menu; View header = ((NavigationView)FindViewById(Resource.Id.nav_view)).GetHeaderView(0); viewpa = (LinearLayout)header.FindViewById(Resource.Id.viewpa); if (sessionManagement.isLoggedIn()) { viewpa.Visibility = ViewStates.Visible; } My_Order = (LinearLayout)header.FindViewById(Resource.Id.my_orders); My_Reward = (LinearLayout)header.FindViewById(Resource.Id.my_reward); btn_checkout = (LinearLayout)header.FindViewById(Resource.Id.checkout); My_Cart = (LinearLayout)header.FindViewById(Resource.Id.my_cart); iv_profile = (ImageView)header.FindViewById(Resource.Id.iv_header_img); username = (TextView)header.FindViewById(Resource.Id.tv_header_name); totalBudgetCount = (TextView)FindViewById(Resource.Id.totalBudgetCount); My_Order.Click += delegate { if (sessionManagement.isLoggedIn()) { Intent i = new Intent(this, typeof(My_Order_activity)); StartActivity(i); } else { Intent i = new Intent(this, typeof(LoginActivity)); StartActivity(i); OverridePendingTransition(0, 0); }; }; My_Reward.Click += delegate { if (sessionManagement.isLoggedIn()) { Intent i = new Intent(this, typeof(Reward_fragment)); StartActivity(i); } else { Intent i = new Intent(this, typeof(LoginActivity)); StartActivity(i); OverridePendingTransition(0, 0); }; }; btn_checkout.Click += delegate { if (sessionManagement.isLoggedIn()) { Intent i = new Intent(this, typeof(OrderSummary)); StartActivity(i); } else { Intent i = new Intent(this, typeof(LoginActivity)); StartActivity(i); OverridePendingTransition(0, 0); }; }; My_Cart.Click += delegate { if (sessionManagement.isLoggedIn()) { Intent i = new Intent(this, typeof(CartFragment)); StartActivity(i); } else { Intent i = new Intent(this, typeof(LoginActivity)); StartActivity(i); OverridePendingTransition(0, 0); }; }; iv_profile.Click += delegate { if (sessionManagement.isLoggedIn()) { Edit_profile_fragment fm = new Edit_profile_fragment(); Android.Support.V4.App.FragmentManager fragmentManager = SupportFragmentManager; fragmentManager.BeginTransaction().Replace(Resource.Id.contentPanel, fm) .AddToBackStack(null).Commit(); } else { Intent i = new Intent(this, typeof(LoginActivity)); StartActivity(i); OverridePendingTransition(0, 0); }; }; sideMenu(); if (savedInstanceState == null) { HomeeeFragment fm = new HomeeeFragment(); Android.Support.V4.App.FragmentManager fragmentManager = SupportFragmentManager; fragmentManager.BeginTransaction() .Replace(Resource.Id.contentPanel, fm, "Home_fragment") .SetTransition(Android.Support.V4.App.FragmentTransaction.TransitFragmentOpen) .Commit(); } SupportFragmentManager.BackStackChanged += SupportFragmentManager_BackStackChanged; initComponent(); loadFragment(new HomeeeFragment()); }
Task <bool> SwitchContentAsync(Page page, bool animated, bool removed = false, bool popToRoot = false) { if (!Element.IsAttachedToRoot()) { return(Task.FromResult(false)); } var tcs = new TaskCompletionSource <bool>(); Fragment fragment = GetFragment(page, removed, popToRoot); #if DEBUG // Enables logging of moveToState operations to logcat FragmentManager.EnableDebugLogging(true); #endif Current?.SendDisappearing(); Current = page; if (Platform != null) { Platform.NavAnimationInProgress = true; } FragmentTransaction transaction = FragmentManager.BeginTransactionEx(); if (animated) { SetupPageTransition(transaction, !removed); } var fragmentsToRemove = new List <Fragment>(); if (_fragmentStack.Count == 0) { transaction.AddEx(Id, fragment); _fragmentStack.Add(fragment); } else { if (removed) { // pop only one page, or pop everything to the root var popPage = true; while (_fragmentStack.Count > 1 && popPage) { Fragment currentToRemove = _fragmentStack.Last(); _fragmentStack.RemoveAt(_fragmentStack.Count - 1); transaction.HideEx(currentToRemove); fragmentsToRemove.Add(currentToRemove); popPage = popToRoot; } Fragment toShow = _fragmentStack.Last(); // Execute pending transactions so that we can be sure the fragment list is accurate. FragmentManager.ExecutePendingTransactionsEx(); if (FragmentManager.Fragments.Contains(toShow)) { transaction.ShowEx(toShow); } else { transaction.AddEx(Id, toShow); } } else { // push Fragment currentToHide = _fragmentStack.Last(); transaction.HideEx(currentToHide); transaction.AddEx(Id, fragment); _fragmentStack.Add(fragment); } } // We don't currently support fragment restoration, so we don't need to worry about // whether the commit loses state transaction.CommitAllowingStateLossEx(); // The fragment transitions don't really SUPPORT telling you when they end // There are some hacks you can do, but they actually are worse than just doing this: if (animated) { if (!removed) { UpdateToolbar(); if (_drawerToggle != null && NavigationPageController.StackDepth == 2) { AnimateArrowIn(); } } else if (_drawerToggle != null && NavigationPageController.StackDepth == 2) { AnimateArrowOut(); } AddTransitionTimer(tcs, fragment, FragmentManager, fragmentsToRemove, TransitionDuration, removed); } else { AddTransitionTimer(tcs, fragment, FragmentManager, fragmentsToRemove, 1, true); } Context.HideKeyboard(this); if (Platform != null) { Platform.NavAnimationInProgress = false; } return(tcs.Task); }
public bool SetContent(object view, object content) { var targetView = view as ViewGroup; if (targetView == null) { return(false); } if (content == null) { FragmentManager fragmentManager = targetView.GetFragmentManager(); Fragment oldFragment = fragmentManager?.FindFragmentById(targetView.Id); if (oldFragment != null && !fragmentManager.IsDestroyed) { BeginTransaction(fragmentManager, targetView, null) .Remove(oldFragment) .CommitAllowingStateLoss(); fragmentManager.ExecutePendingTransactions(); return(true); } return(false); } var fragment = content as Fragment; if (fragment == null) { return(false); } AndroidToolkitExtensions.ValidateViewIdFragment(targetView, fragment); FragmentManager manager = targetView.GetFragmentManager(); if (manager == null) { return(false); } FragmentTransaction transaction = BeginTransaction(manager, targetView, fragment); var addToBackStack = targetView.GetBindingMemberValue(AttachedMembers.ViewGroup.AddToBackStack); if (addToBackStack && fragment.Arguments != null) { addToBackStack = !fragment.Arguments.GetBoolean(AddedToBackStackKey); } if (fragment.IsDetached) { transaction.Attach(fragment); } else { if (addToBackStack) { if (fragment.Arguments == null) { fragment.Arguments = new Bundle(); } fragment.Arguments.PutBoolean(AddedToBackStackKey, true); } transaction.Replace(targetView.Id, fragment); } if (addToBackStack) { transaction.AddToBackStack(null); } transaction.Commit(); manager.ExecutePendingTransactions(); return(true); }
public ClockAdapter(Android.Support.V4.App.FragmentManager fm, Android.Support.V4.App.Fragment[] fragments, ICharSequence[] titles) : base(fm) { throw new NotImplementedException(); }
void HideFragment(object fragment) { Android.Support.V4.App.FragmentManager fm = this.SupportFragmentManager; fm.BeginTransaction().SetCustomAnimations(Resource.Animation.anim_fade_in, Resource.Animation.anim_fade_out).Hide((Android.Support.V4.App.Fragment)fragment).Commit(); }
protected override void Dispose(bool disposing) { if (_disposed) { return; } _disposed = true; if (disposing) { Device.Info.PropertyChanged -= DeviceInfoPropertyChanged; if (NavigationPageController != null) { var navController = NavigationPageController; navController.PushRequested -= OnPushed; navController.PopRequested -= OnPopped; navController.PopToRootRequested -= OnPoppedToRoot; navController.InsertPageBeforeRequested -= OnInsertPageBeforeRequested; navController.RemovePageRequested -= OnRemovePageRequested; } if (Current != null) { Current.PropertyChanged -= CurrentOnPropertyChanged; } FragmentManager fm = FragmentManager; if (!fm.IsDestroyed) { FragmentTransaction trans = fm.BeginTransactionEx(); foreach (Fragment fragment in _fragmentStack) { trans.RemoveEx(fragment); } trans.CommitAllowingStateLossEx(); fm.ExecutePendingTransactionsEx(); } _toolbar.RemoveView(_titleView); _titleView?.Dispose(); _titleView = null; if (_titleViewRenderer != null) { Android.Platform.ClearRenderer(_titleViewRenderer.View); _titleViewRenderer.Dispose(); _titleViewRenderer = null; } _toolbar.RemoveView(_titleIconView); _titleIconView?.Dispose(); _titleIconView = null; _imageSource = null; if (_toolbarTracker != null) { _toolbarTracker.CollectionChanged -= ToolbarTrackerOnCollectionChanged; foreach (ToolbarItem item in _toolbarTracker.ToolbarItems) { item.PropertyChanged -= OnToolbarItemPropertyChanged; } _toolbarTracker.Target = null; _toolbarTracker = null; } if (_toolbar != null) { _toolbar.SetNavigationOnClickListener(null); _toolbar.Menu.Clear(); RemoveView(_toolbar); _toolbar.Dispose(); _toolbar = null; } if (_drawerLayout.IsAlive() && _drawerListener.IsAlive()) { _drawerLayout.RemoveDrawerListener(_drawerListener); RemoveView(_drawerLayout); } if (_drawerListener != null) { _drawerListener.Dispose(); _drawerListener = null; } if (_drawerToggle != null) { _drawerToggle.Dispose(); _drawerToggle = null; } if (_backgroundDrawable != null) { _backgroundDrawable.Dispose(); _backgroundDrawable = null; } Current = null; // We dispose the child renderers after cleaning up everything related to DrawerLayout in case // one of the children is a MasterDetailPage (which may dispose of the DrawerLayout). if (Element != null) { foreach (Element element in PageController.InternalChildren) { var child = element as VisualElement; if (child == null) { continue; } IVisualElementRenderer renderer = Android.Platform.GetRenderer(child); renderer?.Dispose(); } } } base.Dispose(disposing); }
public Adapter(V4FragmentManager fm) : base(fm) { }
// constructor public ClockAdapter(Android.Support.V4.App.FragmentManager fm, Android.Support.V4.App.Fragment[] fragments) : base(fm) { this.fragments = fragments; }
private async Task StartAuthAsync() { LoginActivity activity; try { var log = ServiceContainer.Resolve <ILogger> (); var authManager = ServiceContainer.Resolve <AuthManager> (); var ctx = Activity; // No point in trying to reauth when old authentication is still running. if (authManager.IsAuthenticating) { return; } // Workaround for Android linker bug which forgets to register JNI types Java.Interop.TypeManager.RegisterType("com/google/android/gms/auth/GoogleAuthException", typeof(GoogleAuthException)); Java.Interop.TypeManager.RegisterType("com/google/android/gms/auth/GooglePlayServicesAvailabilityException", typeof(GooglePlayServicesAvailabilityException)); Java.Interop.TypeManager.RegisterType("com/google/android/gms/auth/UserRecoverableAuthException", typeof(UserRecoverableAuthException)); Java.Interop.TypeManager.RegisterType("com/google/android/gms/auth/UserRecoverableNotifiedException", typeof(UserRecoverableNotifiedException)); String token = null; try { var account = AccountManager.Get(ctx).GetAccounts() .Where(x => x.Type == GoogleAuthUtil.GoogleAccountType && x.Name == Email) .FirstOrDefault(); token = await Task.Factory.StartNew(() => GoogleAuthUtil.GetToken(ctx, account, GoogleOAuthScope)); } catch (GooglePlayServicesAvailabilityException exc) { var dia = GooglePlayServicesUtil.GetErrorDialog( exc.ConnectionStatusCode, ctx, GoogleAuthRequestCode); dia.Show(); } catch (UserRecoverableAuthException exc) { StartActivityForResult(exc.Intent, GoogleAuthRequestCode); } catch (Java.IO.IOException exc) { // Connectivity error.. nothing to do really? log.Info(LogTag, exc, "Failed to login with Google due to network issues."); } catch (Exception exc) { log.Error(LogTag, exc, "Failed to get access token for '{0}'.", Email); } // Failed to get token if (token == null) { return; } try { activity = Activity as LoginActivity; if (activity != null && activity.CurrentMode == Mode.Signup) { // Signup with Google var authRes = await activity.SignupWithGoogle(token); if (authRes != AuthResult.Success) { ClearGoogleToken(ctx, token); activity.ShowAuthError(Email, authRes, Mode.Signup, true); } } else { // Authenticate client var authRes = await authManager.AuthenticateWithGoogleAsync(token); if (authRes != AuthResult.Success) { ClearGoogleToken(ctx, token); activity.ShowAuthError(Email, authRes, Mode.Login, true); } } } catch (InvalidOperationException ex) { log.Info(LogTag, ex, "Failed to authenticate user with Google login."); } } catch (Exception e) { } // Clean up self: if (Activity != null) { FragmentManager.BeginTransaction() .Remove(this) .Commit(); } }
protected override void OnBeforeCommitReplaceFragment(FragmentManager fm, Android.Support.V4.App.FragmentTransaction ft, Fragment fragment) { base.OnBeforeCommitReplaceFragment(fm, ft, fragment); if (fragment is SessionsFragment || fragment is VendorsFragment) { mPauseBackStackWatcher = true; ClearBackStack(fm); mPauseBackStackWatcher = false; } ft.AddToBackStack(null); UpdateBreadCrumb(); }
private async Task StartAuthAsync() { if (IsAuthenticating) { return; } IsAuthenticating = true; try { var log = ServiceContainer.Resolve <ILogger> (); var authManager = ServiceContainer.Resolve <AuthManager> (); var ctx = Activity; // No point in trying to reauth when old authentication is still running. if (authManager.IsAuthenticating) { return; } // Workaround for Android linker bug which forgets to register JNI types Java.Interop.TypeManager.RegisterType("com/google/android/gms/auth/GoogleAuthException", typeof(GoogleAuthException)); Java.Interop.TypeManager.RegisterType("com/google/android/gms/auth/GooglePlayServicesAvailabilityException", typeof(GooglePlayServicesAvailabilityException)); Java.Interop.TypeManager.RegisterType("com/google/android/gms/auth/UserRecoverableAuthException", typeof(UserRecoverableAuthException)); Java.Interop.TypeManager.RegisterType("com/google/android/gms/auth/UserRecoverableNotifiedException", typeof(UserRecoverableNotifiedException)); String token = null; try { token = await Task.Factory.StartNew(() => GoogleAuthUtil.GetToken(ctx, Email, GoogleOAuthScope)); } catch (GooglePlayServicesAvailabilityException exc) { var dia = GooglePlayServicesUtil.GetErrorDialog( exc.ConnectionStatusCode, ctx, GoogleAuthRequestCode); dia.Show(); } catch (UserRecoverableAuthException exc) { StartActivityForResult(exc.Intent, GoogleAuthRequestCode); } catch (Java.IO.IOException exc) { // Connectivity error.. nothing to do really? log.Info(LogTag, exc, "Failed to login with Google due to network issues."); } catch (Exception exc) { log.Error(LogTag, exc, "Failed to get access token for '{0}'.", Email); } // Failed to get token if (token == null) { return; } try { var authRes = await viewModel.TrySignupGoogleAsync(token); if (authRes != AuthResult.Success) { ClearGoogleToken(ctx, token); var dia = new ErrorDialogFragment(authRes); dia.Show(FragmentManager, "auth_result_dialog"); } } catch (InvalidOperationException ex) { log.Info(LogTag, ex, "Failed to authenticate user with Google login."); } } finally { IsAuthenticating = false; } // Clean up self: if (Activity != null) { FragmentManager.BeginTransaction() .Remove(this) .Commit(); } }
protected virtual FragmentTransaction BeginTransaction([NotNull] FragmentManager fragmentManager, [NotNull] View view, [CanBeNull] Fragment content) { return(fragmentManager.BeginTransaction()); }
protected override ViewPagerAdapter CreateViewPagerAdapter(FragmentManager fragmentManager) { return(new ViewPagerAdapter(fragmentManager, false)); }
public ClickListener(ViewHolder holder, Android.Support.V4.App.FragmentManager fragmentManager) { _holder = holder; _fragmentManager = fragmentManager; }
protected override void Dispose(bool disposing) { if (disposing && !_disposed) { _disposed = true; var activity = (FormsAppCompatActivity)Context; // API only exists on newer android YAY if ((int)Build.VERSION.SdkInt >= 17) { if (!activity.IsDestroyed) { FragmentManager fm = FragmentManager; FragmentTransaction trans = fm.BeginTransaction(); foreach (Fragment fragment in _fragmentStack) { trans.Remove(fragment); } trans.CommitAllowingStateLoss(); fm.ExecutePendingTransactions(); } } if (_toolbarTracker != null) { _toolbarTracker.CollectionChanged -= ToolbarTrackerOnCollectionChanged; _toolbarTracker.Target = null; _toolbarTracker = null; } if (_toolbar != null) { _toolbar.SetNavigationOnClickListener(null); _toolbar.Dispose(); _toolbar = null; } if (_drawerLayout != null && _drawerListener != null) { _drawerLayout.RemoveDrawerListener(_drawerListener); } if (_drawerListener != null) { _drawerListener.Dispose(); _drawerListener = null; } if (_drawerToggle != null) { _drawerToggle.Dispose(); _drawerToggle = null; } if (_backgroundDrawable != null) { _backgroundDrawable.Dispose(); _backgroundDrawable = null; } Current = null; // We dispose the child renderers after cleaning up everything related to DrawerLayout in case // one of the children is a MasterDetailPage (which may dispose of the DrawerLayout). if (Element != null) { foreach (Element element in PageController.InternalChildren) { var child = element as VisualElement; if (child == null) { continue; } IVisualElementRenderer renderer = Android.Platform.GetRenderer(child); renderer?.Dispose(); } var navController = (INavigationPageController)Element; navController.PushRequested -= OnPushed; navController.PopRequested -= OnPopped; navController.PopToRootRequested -= OnPoppedToRoot; navController.InsertPageBeforeRequested -= OnInsertPageBeforeRequested; navController.RemovePageRequested -= OnRemovePageRequested; } Device.Info.PropertyChanged -= DeviceInfoPropertyChanged; } base.Dispose(disposing); }
Task <bool> SwitchContentAsync(Page page, bool animated, bool removed = false, bool popToRoot = false) { var tcs = new TaskCompletionSource <bool>(); Fragment fragment = GetFragment(page, removed, popToRoot); #if DEBUG // Enables logging of moveToState operations to logcat FragmentManager.EnableDebugLogging(true); #endif Current = page; ((Platform)Element.Platform).NavAnimationInProgress = true; FragmentTransaction transaction = FragmentManager.BeginTransaction(); if (animated) { SetupPageTransition(transaction, !removed); } transaction.DisallowAddToBackStack(); if (_fragmentStack.Count == 0) { transaction.Add(Id, fragment); _fragmentStack.Add(fragment); } else { if (removed) { // pop only one page, or pop everything to the root var popPage = true; while (_fragmentStack.Count > 1 && popPage) { Fragment currentToRemove = _fragmentStack.Last(); _fragmentStack.RemoveAt(_fragmentStack.Count - 1); transaction.Remove(currentToRemove); popPage = popToRoot; } Fragment toShow = _fragmentStack.Last(); // Execute pending transactions so that we can be sure the fragment list is accurate. FragmentManager.ExecutePendingTransactions(); if (FragmentManager.Fragments.Contains(toShow)) { transaction.Show(toShow); } else { transaction.Add(Id, toShow); } } else { // push Fragment currentToHide = _fragmentStack.Last(); transaction.Hide(currentToHide); transaction.Add(Id, fragment); _fragmentStack.Add(fragment); } } // We don't currently support fragment restoration, so we don't need to worry about // whether the commit loses state transaction.CommitAllowingStateLoss(); // The fragment transitions don't really SUPPORT telling you when they end // There are some hacks you can do, but they actually are worse than just doing this: if (animated) { if (!removed) { UpdateToolbar(); if (_drawerToggle != null && ((INavigationPageController)Element).StackDepth == 2) { AnimateArrowIn(); } } else if (_drawerToggle != null && ((INavigationPageController)Element).StackDepth == 2) { AnimateArrowOut(); } Device.StartTimer(TimeSpan.FromMilliseconds(TransitionDuration), () => { tcs.TrySetResult(true); fragment.UserVisibleHint = true; if (removed) { UpdateToolbar(); } return(false); }); } else { Device.StartTimer(TimeSpan.FromMilliseconds(1), () => { tcs.TrySetResult(true); fragment.UserVisibleHint = true; UpdateToolbar(); return(false); }); } Context.HideKeyboard(this); ((Platform)Element.Platform).NavAnimationInProgress = false; // TransitionDuration is how long the built-in animations are, and they are "reversible" in the sense that starting another one slightly before it's done is fine return(tcs.Task); }
public MainPagerAdapter (FragmentManager fragmentManager, ZoomLevel zoomLevel) : base (fragmentManager) { this.fragmentManager = fragmentManager; this.zoomLevel = zoomLevel; }
public MonkeyPageAdapter (FragmentManager manager) : base (manager) { }
public MainPagerAdapter (Context ctx, FragmentManager fm) : base (fm) { this.ctx = ctx; currentTimeEntry = TimeEntryModel.FindRunning () ?? TimeEntryModel.GetDraft (); var bus = ServiceContainer.Resolve<MessageBus> (); subscriptionModelChanged = bus.Subscribe<ModelChangedMessage> (OnModelChanged); subscriptionSettingChanged = bus.Subscribe<SettingChangedMessage> (OnSettingChanged); }
public Adapter (V4FragmentManager fm) : base (fm) { }
public static void Show (FragmentManager fragmentManager) { new ThankForFeedbackDialog ().Show (fragmentManager, "thankforfeedback_dialog"); }
public ClockAdapter(Android.Support.V4.App.FragmentManager fm, Android.Support.V4.App.Fragment[] fragments, ICharSequence[] titles) : base(fm) { this.fragments = fragments; this.titles = titles; }
public AtmFinderAdapter(Android.Support.V4.App.FragmentManager fm, params Android.Support.V4.App.Fragment[] fragments) : base(fm) { _fragments = fragments; }
public MaterialAdapter(MaterialsView materialsView, MaterialsViewModel materialViewModel, List <Material> Materials, Context context, Android.Support.V4.App.FragmentManager fragmentManager) { this.materialsViewModel = materialViewModel; this.Materials = Materials; this.context = context; this.transaction = fragmentManager; this.materialsView = materialsView; }
public static bool ExecutePendingTransactionsEx(this FragmentManager fragmentTransaction) { return(fragmentTransaction.ExecutePendingTransactions()); }
public void SetFragmentManager(FragmentManager fragmentManager) { if (_fragmentManager == null) _fragmentManager = fragmentManager; }
public static FragmentTransaction BeginTransactionEx(this FragmentManager fragmentTransaction) { return(fragmentTransaction.BeginTransaction()); }
public static void Show (String userMessage, FragmentManager fragmentManager) { new AskPublishToAppStore (userMessage).Show (fragmentManager, "askpublishtoappstore_dialog"); }
public bool OnNavigationItemSelected(IMenuItem item) { int id = item.ItemId; Android.Support.V4.App.Fragment fm = null; Bundle args = new Bundle(); if (id == Resource.Id.sign) { Intent i = new Intent(this, typeof(LoginActivity)); StartActivity(i); } else if (id == Resource.Id.nav_logout) { sessionManagement.logoutSession(); Finish(); } if (id == Resource.Id.nav_aboutus) { fm = new About_us_fragment(); } if (id == Resource.Id.nav_policy) { fm = new Terms_and_Condition_fragment(); } if (id == Resource.Id.nav_share) { Intent sendIntent = new Intent(); sendIntent.SetAction(Intent.ActionSend); sendIntent.PutExtra(Intent.ExtraText, "Hi friends i am using ." + " http://play.google.com/store/apps/details?id=" + "" + " APP"); //getPackageName() sendIntent.SetType("text/plain"); StartActivity(sendIntent); } else if (id == Resource.Id.navigation_home) { loadFragment(new HomeeeFragment()); HomeeeFragment appNewsHome1Fragment = new HomeeeFragment(); Android.Support.V4.App.FragmentManager manager = SupportFragmentManager; Android.Support.V4.App.FragmentTransaction transaction = manager.BeginTransaction(); transaction.Replace(Resource.Id.contentPanel, appNewsHome1Fragment); transaction.Commit(); return(true); } /* else if (id == Resource.Id.nav_shop_now) { * fm = new Shop_Now_fragment(); * } */ else if (id == Resource.Id.nav_my_profile) { fm = new Edit_profile_fragment(); } // else if (id == Resource.Id.nav_aboutus) // { // // toolbar.setTitle("About"); // StartActivity(new Intent(this, About_us)); // } else if (id == Resource.Id.nav_policy) { // fm = new Terms_and_Condition_fragment(); //args.putString("url", TermsUrl); // args.putString("title", getResources().getString(R.string.nav_terms)); // fm.setArguments(args); // } // else if (id == Resource.Id.nav_review) { // //reviewOnApp(); // } // else if (id == Resource.Id.nav_contact) { // fm = new Contact_Us_fragment(); //args.putString("url", SupportUrl); // args.putString("title", getResources().getString(R.string.nav_terms)); // fm.setArguments(args); // } // else if (id == Resource.Id.nav_review) { // reviewOnApp(); // } //else if (id == Resource.Id.nav_share) { // shareApp(); // else if (id == Resource.Id.nav_powerd) { // // stripUnderlines(textView); // String url = "http://sameciti.com"; // Intent i = new Intent(Intent.ACTION_VIEW); // i.setData(Uri.parse(url)); // startActivity(i); // finish(); // } if (fm != null) { Android.Support.V4.App.FragmentManager fragmentManager = SupportFragmentManager; fragmentManager.BeginTransaction().Replace(Resource.Id.contentPanel, fm) .AddToBackStack(null).Commit(); } drawer.CloseDrawer(GravityCompat.Start); return(true); }