diff options
author | Jason Smith <jason.smith@xamarin.com> | 2016-04-24 12:25:26 -0400 |
---|---|---|
committer | Rui Marinho <me@ruimarinho.net> | 2016-04-24 12:25:26 -0400 |
commit | 5907152c50ee2c658b266f2804e6b383bb15a6f1 (patch) | |
tree | 9beb907623359723456c5c03b08922bebc4f41f3 /PagesGallery/PagesGallery.WinPhone/App.xaml.cs | |
parent | feac1ba3ed6df5e27b3fa2076bd15c190cbacd1c (diff) | |
download | xamarin-forms-5907152c50ee2c658b266f2804e6b383bb15a6f1.tar.gz xamarin-forms-5907152c50ee2c658b266f2804e6b383bb15a6f1.tar.bz2 xamarin-forms-5907152c50ee2c658b266f2804e6b383bb15a6f1.zip |
Evolve feature branch (#117)
* Initial import of evolve features
* [Android] Add Xamarin.Forms.Platform.Android.AppLinks project
* [iOS] Fix issues with c# 6 features on iOS AppLinks
* Added naive stanza to update-docs-windows.bat to produce Pages docs. Not tested. (#69)
* Update packages
* Add AppLinks android nuspec and fix linker issues
* Fix build
* Fix nusepc
* Fix nuspec
* Update android support nugets to 23.2.1
* Update Xamarin.UITest
* Add CardView
* [iOS] Fix app link for CoreSpotlight
* [Android] Update AppLinks android support libs
* Add Newtonsoft.Json dependency to nuspec
* Fix NRE when setting ControlTemplate to null
* Move to ModernHttpClient for download
* Try fix build
* Preserve android app links
* Fix margin issue
* General coding and simple fixes
Diffstat (limited to 'PagesGallery/PagesGallery.WinPhone/App.xaml.cs')
-rw-r--r-- | PagesGallery/PagesGallery.WinPhone/App.xaml.cs | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/PagesGallery/PagesGallery.WinPhone/App.xaml.cs b/PagesGallery/PagesGallery.WinPhone/App.xaml.cs new file mode 100644 index 00000000..059fbf88 --- /dev/null +++ b/PagesGallery/PagesGallery.WinPhone/App.xaml.cs @@ -0,0 +1,127 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices.WindowsRuntime; +using Windows.ApplicationModel; +using Windows.ApplicationModel.Activation; +using Windows.Foundation; +using Windows.Foundation.Collections; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Controls.Primitives; +using Windows.UI.Xaml.Data; +using Windows.UI.Xaml.Input; +using Windows.UI.Xaml.Media; +using Windows.UI.Xaml.Media.Animation; +using Windows.UI.Xaml.Navigation; + +// The Blank Application template is documented at http://go.microsoft.com/fwlink/?LinkId=234227 + +namespace PagesGallery.WinPhone +{ + /// <summary> + /// Provides application-specific behavior to supplement the default Application class. + /// </summary> + public sealed partial class App : Application + { + private TransitionCollection transitions; + + /// <summary> + /// Initializes the singleton application object. This is the first line of authored code + /// executed, and as such is the logical equivalent of main() or WinMain(). + /// </summary> + public App () + { + this.InitializeComponent (); + this.Suspending += this.OnSuspending; + } + + /// <summary> + /// Invoked when the application is launched normally by the end user. Other entry points + /// will be used when the application is launched to open a specific file, to display + /// search results, and so forth. + /// </summary> + /// <param name="e">Details about the launch request and process.</param> + protected override void OnLaunched (LaunchActivatedEventArgs e) + { +#if DEBUG + if (System.Diagnostics.Debugger.IsAttached) + { + this.DebugSettings.EnableFrameRateCounter = true; + } +#endif + + Frame rootFrame = Window.Current.Content as Frame; + + // Do not repeat app initialization when the Window already has content, + // just ensure that the window is active + if (rootFrame == null) { + // Create a Frame to act as the navigation context and navigate to the first page + rootFrame = new Frame (); + + // TODO: change this value to a cache size that is appropriate for your application + rootFrame.CacheSize = 1; + + Xamarin.Forms.Forms.Init (e); + + if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) { + // TODO: Load state from previously suspended application + } + + // Place the frame in the current Window + Window.Current.Content = rootFrame; + } + + if (rootFrame.Content == null) { + // Removes the turnstile navigation for startup. + if (rootFrame.ContentTransitions != null) { + this.transitions = new TransitionCollection (); + foreach (var c in rootFrame.ContentTransitions) { + this.transitions.Add (c); + } + } + + rootFrame.ContentTransitions = null; + rootFrame.Navigated += this.RootFrame_FirstNavigated; + + // When the navigation stack isn't restored navigate to the first page, + // configuring the new page by passing required information as a navigation + // parameter + if (!rootFrame.Navigate (typeof (MainPage), e.Arguments)) { + throw new Exception ("Failed to create initial page"); + } + } + + // Ensure the current window is active + Window.Current.Activate (); + } + + /// <summary> + /// Restores the content transitions after the app has launched. + /// </summary> + /// <param name="sender">The object where the handler is attached.</param> + /// <param name="e">Details about the navigation event.</param> + private void RootFrame_FirstNavigated (object sender, NavigationEventArgs e) + { + var rootFrame = sender as Frame; + rootFrame.ContentTransitions = this.transitions ?? new TransitionCollection () { new NavigationThemeTransition () }; + rootFrame.Navigated -= this.RootFrame_FirstNavigated; + } + + /// <summary> + /// Invoked when application execution is being suspended. Application state is saved + /// without knowing whether the application will be terminated or resumed with the contents + /// of memory still intact. + /// </summary> + /// <param name="sender">The source of the suspend request.</param> + /// <param name="e">Details about the suspend request.</param> + private void OnSuspending (object sender, SuspendingEventArgs e) + { + var deferral = e.SuspendingOperation.GetDeferral (); + + // TODO: Save application state and stop any background activity + deferral.Complete (); + } + } +}
\ No newline at end of file |