public IScreenRegistrationConfig Register(Class <Screen> screenClass, IScreenResolver resolver) { var typeHash = screenClass.GetHashCode(); var entry = new ScreenEntry(screenClass, resolver); _screens.TryAdd(typeHash, entry); return(entry); }
public override void Forward(Screen screen, IScreenResolver resolver) { if (!(resolver is IBlazorScreenResolver blazorScreenResolver)) { return; } var intent = blazorScreenResolver.GetNavigationIntent(screen); _history.Push(intent); Dispatch(intent); }
public override void Forward(Screen screen, IScreenResolver resolver) { switch (resolver) { case IActivityScreenResolver activityScreenResolver: ForwardActivity(screen, activityScreenResolver); break; case IFragmentScreenResolver fragmentScreenResolver: ForwardFragment(screen, fragmentScreenResolver); break; } }
public override void Replace(Screen screen, IScreenResolver resolver) { if (!(resolver is IBlazorScreenResolver blazorScreenResolver)) { return; } var intent = blazorScreenResolver.GetNavigationIntent(screen); if (_history.Count > 0) { _history.Pop(); } _history.Push(intent); if (_history.Count == 1) { _rootIntent = intent; } Dispatch(intent); }
public ForwardNavCommand(Screen screen, IScreenResolver resolver) { _screen = screen; _screenResolver = resolver; }
public ScreenEntry(Class <Screen> screenClass, IScreenResolver resolver) { ScreenClass = screenClass; Resolver = resolver; }
public ReplaceScreenNavCommand(Screen screen, IScreenResolver resolver) { _screen = screen; _resolver = resolver; }
/// <summary> /// Replace current screen. /// </summary> /// <param name="screen">The screen to replace the current one</param> /// <param name="resolver"> /// Screen resolver<</param> /// <exception cref="NotSupportedException"></exception> public virtual void Replace(Screen screen, IScreenResolver resolver) { throw new NotSupportedException(); }
/// <summary> /// Open new screen and add it to the screens sequence. /// </summary> /// <param name="screen">The screen on which the navigating is performed</param> /// <param name="resolver">Screen resolver</param> public abstract void Forward(Screen screen, IScreenResolver resolver);