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

            // Standard Silverlight initialization
            InitializeComponent();

            // Phone-specific initialization
            InitializePhoneApplication();

            // 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 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;
            }

            ViewModel = new MainViewModel();
            InitApiConnection();
            DbDataContext       = new MetropaperDataContext(ConnectionString);
            DownloadsController = new Controllers.DownloadsController();

            //DbDataContext.DeleteDatabase();
            if (!DbDataContext.DatabaseExists())
            {
                DbDataContext.CreateDatabase();
            }

            RootFrame.Navigating += new NavigatingCancelEventHandler(RootFrame_Navigating);
        }
예제 #2
0
        /// <summary>
        /// Constructor for the Application object.
        /// </summary>
        public App()
        {
            // Global handler for uncaught exceptions.
            UnhandledException += Application_UnhandledException;

            // Standard Silverlight initialization
            InitializeComponent();

            // Phone-specific initialization
            InitializePhoneApplication();

            // 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 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;
            }

            ViewModel = new MainViewModel();
            InitApiConnection();
            DbDataContext = new MetropaperDataContext(ConnectionString);
            DownloadsController = new Controllers.DownloadsController();

            //DbDataContext.DeleteDatabase();
            if (!DbDataContext.DatabaseExists())
            {
                DbDataContext.CreateDatabase();
            }

            RootFrame.Navigating += new NavigatingCancelEventHandler(RootFrame_Navigating);
        }
예제 #3
0
        private void UpdateBookmarkCacheStatus()
        {
            var bookmarks = App.DbDataContext.Bookmarks.ToList();
            var downloadsController = new DownloadsController();

            foreach (var bookmark in bookmarks)
            {
                if (!BookmarksStorageManager.DoesBookmarkBodyExist(bookmark.BookmarkId) && bookmark.IsDownloaded)
                {
                    bookmark.IsDownloaded = false;
                    bookmark.ShortBodyText = "Downloading...";
                    downloadsController.AddBookmark(bookmark);
                }
            }

            App.DbDataContext.SubmitChanges();
            downloadsController.ProcessQueue();
        }
예제 #4
0
        public void LoadDataFromWeb()
        {
            this.IsLoading = true;
            var downloadsController = new DownloadsController();

            App.InstapaperAPI.GetUnreadBookmarks(null, true, bookmarks =>
            {
                var trimmedBookmarks = bookmarks.Take(25);
                UpdateBookmarksWithData(trimmedBookmarks);
                downloadsController.AddBookmarks(trimmedBookmarks);

                App.InstapaperAPI.GetStarredBookmarks(true, (starredBookmarks =>
                {
                    var trimmedStarredBookmarks = starredBookmarks.Take(10);
                    UpdateBookmarksWithData(trimmedStarredBookmarks);
                    downloadsController.AddBookmarks(trimmedStarredBookmarks);

                    App.InstapaperAPI.GetArchiveBookmarks(true, (archivedBookmarks =>
                    {
                        var trimmedArchivedBookmarks = archivedBookmarks.Take(5);
                        UpdateBookmarksWithData(trimmedArchivedBookmarks);
                        downloadsController.AddBookmarks(trimmedArchivedBookmarks);

                        downloadsController.ProcessQueue();
                    }));
                }));
            });

            this.IsLoading = false;
        }