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);
                }
            }
        }
示例#2
0
        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);
                }
            }
        }
示例#3
0
        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);
        }