protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); if (!savedInstanceState?.ContainsKey(SAVE) ?? true) { if (Intent?.Extras?.ContainsKey(NavigationConstants.FRAGMENT_START_PARAMETER_CODE) ?? false) { string navigationKey = Intent.Extras.GetString(NavigationConstants.FRAGMENT_START_PARAMETER_CODE); IDeferredNavigationAction deferredNavigationAction = NavigationParameterContainer <TViewModel> .GetDeferredNavigationAction(navigationKey); deferredNavigationAction.Execute(this); } } }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(LayoutId); if (Intent?.Extras != null) { if (Intent.Extras.ContainsKey(NavigationConstants.VIEWMODEL_LINK_PARAMETER_CODE)) { string viewModelKey = Intent.Extras.GetString(NavigationConstants.VIEWMODEL_LINK_PARAMETER_CODE); ViewModel = NavigationParameterContainer <SampleViewModel> .GetViewModel(viewModelKey); } if (Intent.Extras.ContainsKey(NavigationConstants.FRAGMENT_START_PARAMETER_CODE)) { string navigationKey = Intent.Extras.GetString(NavigationConstants.FRAGMENT_START_PARAMETER_CODE); IDeferredNavigationAction deferredNavigationAction = NavigationParameterContainer <SampleViewModel> .GetDeferredNavigationAction(navigationKey); deferredNavigationAction.Execute(this); } } }
public override void Execute(Activity activity) { Intent intent = new Intent(activity, ActivityStack.ActivityType); if (ActivityStack.ShouldClearHistory) { intent.SetFlags(ActivityFlags.ClearTask | ActivityFlags.NewTask); } if (ViewModel != null) { intent.PutExtra(NavigationConstants.VIEWMODEL_LINK_PARAMETER_CODE, NavigationParameterContainer <TViewModel> .CreateNavigationParameter(ViewModel)); } if (FragmentStacksToPush.Count > 0) { var operation = new FragmentPushOperation <TViewModel>(ActivityStack); operation.FragmentStacksToPush.AddRange(FragmentStacksToPush); intent.PutExtra(NavigationConstants.FRAGMENT_START_PARAMETER_CODE, NavigationParameterContainer <TViewModel> .CreateNavigationParameter(new DeferredNavigationAction(operation))); } activity.StartActivity(intent); }