private void SavePreviousPageState(string pageKey)
        {
            Debug.WriteLine($"SavePreviousPageState(pageKey={pageKey})");

            if (string.IsNullOrEmpty(pageKey))
            {
                AppStateController.SaveViewState(((IContentPage)_navigation.CurrentPage)?.OnSleep());
            }
            else
            {
                var page = _navigation.Navigation.ModalStack.FirstOrDefault(x => x.GetType() == _pagesByKey[pageKey]);
                AppStateController.SaveViewState(((IContentPage)page)?.OnSleep());
            }
        }
Esempio n. 2
0
        protected override void OnSleep()
        {
            try
            {
                if (((MasterDetailPage)Application.Current.MainPage).Detail is NavigationPage navigation)
                {
                    AppStateController.SaveViewState(navigation.Navigation.ModalStack.Any()
                        ? ((IContentPage)navigation.Navigation.ModalStack.Last()).OnSleep()
                        : ((IContentPage)navigation.Navigation.NavigationStack.Last()).OnSleep());


                    AppStateController.SaveFinalState();
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
        }