Esempio n. 1
0
        /// <summary>
        /// Constructor for the Application object.
        /// </summary>
        public App()
        {
            // Global handler for uncaught exceptions.
            UnhandledException += Application_UnhandledException;

            // Initialise the ViewModel
            VM = new AppViewModel();

            // Setup settings, since are used to resolve some XAML loaded
            Settings = new SettingsHelpers();

            // Standard Silverlight initialization
            InitializeComponent();

            // Phone-specific initialization
            InitializePhoneApplication();

            // Set theme dictionaries before  loading components
            // Load appropriate resource dictionary
            if (VM.ApplicationTheme == ApplicationTheme.Light)
            {
                ThemeManager.ToLightTheme();
            }
            else
            {
                ThemeManager.ToDarkTheme();
            }
            ThemeHelpers.LoadThemeDictionary(VM.ApplicationTheme);


            // Show graphics profiling information while debugging.
            if (System.Diagnostics.Debugger.IsAttached)
            {
                // Display the current frame rate counters.
                //Application.Current.Host.Settings.EnableFrameRateCounter = true;

                // Show the areas of the app that are being redrawn in each frame.
                //Application.Current.Host.Settings.EnableRedrawRegions = true;

                // Enable non-production analysis visualization mode,
                // which shows areas of a page that are handed off to GPU with a colored overlay.
                //Application.Current.Host.Settings.EnableCacheVisualization = true;

                // Disable the application idle detection by setting the UserIdleDetectionMode property of the
                // application's PhoneApplicationService object to Disabled.
                // Caution:- Use this under debug mode only. Application that disables user idle detection will continue to run
                // and consume battery power when the user is not using the phone.
                PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;
            }



            // Create DB if not there already
            using (AppDataContext db = new AppDataContext(AppConstants.APP_DB_CONNECTION_STRING))
            {
                if (!db.DatabaseExists())
                {
                    SetupDatabase.InitialiseDB(db);
                }
            }
            // Load cache
            Cache = new Cache();
            // Connect to databases
            VM.ConnectToAppDB(AppConstants.APP_DB_CONNECTION_STRING);
            if (VersionHelpers.IsWP8)
            {
                VM.ConnectToConversionsDB(AppConstants.CONVERSIONS_DB_WP8_CONNECTION_STRING);
            }
            else
            {
                VM.ConnectToConversionsDB(AppConstants.CONVERSIONS_DB_WP7_CONNECTION_STRING);
            }

            // Load and send feedback
            FeedbackAgent = new FeedbackAgent();
            FeedbackAgent.DeliverAdjustmentsTaskAsync();

            //  Check if ready to rate
            VM.AddALaunch();

            // Update to cool new tiles if v.7.8+
            if (VersionHelpers.IsWideTileCapable)
            {
                TileHelpers.UpdateFlipTile("Pocketailor", "", "", "", 0, new Uri("/", UriKind.Relative),
                                           new Uri("/Images/Tiles/SmallBackgroundImage.png", UriKind.Relative),
                                           new Uri("/Images/Tiles/BackgroundImage.png", UriKind.Relative),
                                           new Uri("/Images/Tiles/BackBackgroundImage.png", UriKind.Relative),
                                           new Uri("/Images/Tiles/WideBackgroundImage.png", UriKind.Relative),
                                           new Uri("/Images/Tiles/WideBackBackgroundImage.png", UriKind.Relative));
            }
        }