//Load feeds in selection async Task LoadSelectionFeeds(bool Silent, bool EnableUI) { try { if (!Silent) { await ProgressDisableUI("Loading selection feeds...", true); } System.Diagnostics.Debug.WriteLine("Loading selection feeds, silent: " + Silent); combobox_FeedSelection.IsHitTestVisible = false; combobox_FeedSelection.Opacity = 0.30; await ClearObservableCollection(List_FeedSelect); //Check if received lists are empty List <TableFeeds> LoadTableFeeds = await SQLConnection.Table <TableFeeds>().OrderBy(x => x.feed_folder).ToListAsync(); //Filter un/ignored feeds List <TableFeeds> UnignoredFeedList = LoadTableFeeds.Where(x => x.feed_ignore_status == false).ToList(); //Add all feeds selection Feeds FeedItemAll = new Feeds(); FeedItemAll.feed_icon = await AVImage.LoadBitmapImage("ms-appx:///Assets/iconRSS-Dark.png", false); FeedItemAll.feed_title = "All available items"; FeedItemAll.feed_collection_status = true; FeedItemAll.feed_id = "0"; List_FeedSelect.Add(FeedItemAll); //Feeds that are not ignored and contain items foreach (TableFeeds Feed in UnignoredFeedList) { Feeds TempFeed = new Feeds(); TempFeed.feed_id = Feed.feed_id; //Add folder string FeedFolder = Feed.feed_folder; if (string.IsNullOrWhiteSpace(FeedFolder)) { FeedFolder = "No folder"; } Feeds FolderUpdate = List_FeedSelect.Where(x => x.feed_folder_title == FeedFolder && x.feed_folder_status).FirstOrDefault(); if (FolderUpdate == null) { //Load folder icon BitmapImage FolderIcon = await AVImage.LoadBitmapImage("ms-appx:///Assets/iconFolder-Dark.png", false); //Add folder Feeds FolderItem = new Feeds(); FolderItem.feed_icon = FolderIcon; FolderItem.feed_folder_title = FeedFolder; FolderItem.feed_folder_status = true; List_FeedSelect.Add(FolderItem); //System.Diagnostics.Debug.WriteLine("Added folder..."); } //Add feed //Load feed icon BitmapImage FeedIcon = null; if (Feed.feed_id.StartsWith("user/")) { FeedIcon = await AVImage.LoadBitmapImage("ms-appx:///Assets/iconUser-Dark.png", false); } else { FeedIcon = await AVImage.LoadBitmapImage("ms-appdata:///local/" + Feed.feed_id + ".png", false); } if (FeedIcon == null) { FeedIcon = await AVImage.LoadBitmapImage("ms-appx:///Assets/iconRSS-Dark.png", false); } //Get the current feed item count Feeds FeedItem = new Feeds(); FeedItem.feed_icon = FeedIcon; FeedItem.feed_title = Feed.feed_title; FeedItem.feed_id = Feed.feed_id; List_FeedSelect.Add(FeedItem); //Update folder FolderUpdate = List_FeedSelect.Where(x => x.feed_folder_title == FeedFolder && x.feed_folder_status).FirstOrDefault(); if (FolderUpdate != null) { FolderUpdate.feed_folder_ids.Add(Feed.feed_id); FolderUpdate.feed_item_count = FolderUpdate.feed_item_count + FeedItem.feed_item_count; //System.Diagnostics.Debug.WriteLine("Updated folder..."); } } combobox_FeedSelection.SelectedIndex = 0; combobox_FeedSelection.IsHitTestVisible = true; combobox_FeedSelection.Opacity = 1; } catch { } if (EnableUI) { await ProgressEnableUI(); } }
//Load feeds in selection async Task LoadSelectionFeeds(List <TableFeeds> LoadTableFeeds, List <TableItems> LoadTableItems, bool Silent, bool EnableUI) { try { if (!Silent) { ProgressDisableUI("Loading selection feeds...", true); } Debug.WriteLine("Loading selection feeds, silent: " + Silent); combobox_FeedSelection.IsEnabled = false; combobox_FeedSelection.Opacity = 0.30; await ClearObservableCollection(List_FeedSelect); //Check if received lists are empty if (LoadTableFeeds == null) { LoadTableFeeds = await vSQLConnection.Table <TableFeeds>().OrderBy(x => x.feed_folder).ToListAsync(); } if (LoadTableItems == null) { LoadTableItems = await vSQLConnection.Table <TableItems>().ToListAsync(); } //Filter un/ignored feeds List <string> IgnoredFeedList = LoadTableFeeds.Where(x => x.feed_ignore_status == true).Select(x => x.feed_id).ToList(); List <TableFeeds> UnignoredFeedList = LoadTableFeeds.Where(x => x.feed_ignore_status == false).ToList(); Feeds TempFeed = new Feeds(); //Add all feeds selection TempFeed.feed_id = "0"; int TotalItemsAll = ProcessItemLoad.FilterNewsItems(IgnoredFeedList, LoadTableItems, TempFeed, 0, AppVariables.ItemsToLoadMax).Count(); Feeds FeedItemAll = new Feeds(); FeedItemAll.feed_icon = ImageSource.FromResource("NewsScroll.Assets.iconRSS-Dark.png"); FeedItemAll.feed_title = "All news items"; FeedItemAll.feed_item_count = TotalItemsAll; FeedItemAll.feed_collection_status = true; FeedItemAll.feed_id = "0"; List_FeedSelect.Add(FeedItemAll); //Add unread feeds selection TempFeed.feed_id = "2"; int TotalItemsUnread = ProcessItemLoad.FilterNewsItems(IgnoredFeedList, LoadTableItems, TempFeed, 0, AppVariables.ItemsToLoadMax).Count(); Feeds FeedItemUnread = new Feeds(); FeedItemUnread.feed_icon = ImageSource.FromResource("NewsScroll.Assets.iconRSS-Dark.png"); FeedItemUnread.feed_title = "Unread news items"; FeedItemUnread.feed_item_count = TotalItemsUnread; FeedItemUnread.feed_collection_status = true; FeedItemUnread.feed_id = "2"; List_FeedSelect.Add(FeedItemUnread); //Add read feeds selection TempFeed.feed_id = "1"; int TotalItemsRead = ProcessItemLoad.FilterNewsItems(IgnoredFeedList, LoadTableItems, TempFeed, 0, AppVariables.ItemsToLoadMax).Count(); Feeds FeedItemRead = new Feeds(); FeedItemRead.feed_icon = ImageSource.FromResource("NewsScroll.Assets.iconRSS-Dark.png"); FeedItemRead.feed_title = "Read news items"; FeedItemRead.feed_item_count = TotalItemsRead; FeedItemRead.feed_collection_status = true; FeedItemRead.feed_id = "1"; List_FeedSelect.Add(FeedItemRead); //Feeds that are not ignored and contain items foreach (TableFeeds Feed in UnignoredFeedList) { TempFeed.feed_id = Feed.feed_id; int TotalItems = ProcessItemLoad.FilterNewsItems(IgnoredFeedList, LoadTableItems, TempFeed, 0, AppVariables.ItemsToLoadMax).Count(); if (TotalItems > 0) { //Add folder string FeedFolder = Feed.feed_folder; if (string.IsNullOrWhiteSpace(FeedFolder)) { FeedFolder = "No folder"; } Feeds FolderUpdate = List_FeedSelect.Where(x => x.feed_folder_title == FeedFolder && x.feed_folder_status).FirstOrDefault(); if (FolderUpdate == null) { //Load folder icon ImageSource FolderIcon = ImageSource.FromResource("NewsScroll.Assets.iconFolder-Dark.png"); //Add folder Feeds FolderItem = new Feeds(); FolderItem.feed_icon = FolderIcon; FolderItem.feed_title = "(Folder) " + FeedFolder; FolderItem.feed_folder_title = FeedFolder; FolderItem.feed_folder_status = true; List_FeedSelect.Add(FolderItem); //Debug.WriteLine("Added folder..."); } //Add feed //Load feed icon ImageSource FeedIcon = null; if (Feed.feed_id.StartsWith("user/")) { FeedIcon = ImageSource.FromResource("NewsScroll.Assets.iconUser-Dark.png"); } else { FeedIcon = AVFiles.File_LoadImage(Feed.feed_id + ".png", true); } if (FeedIcon == null) { FeedIcon = ImageSource.FromResource("NewsScroll.Assets.iconRSS-Dark.png"); } //Get the current feed item count Feeds FeedItem = new Feeds(); FeedItem.feed_icon = FeedIcon; FeedItem.feed_title = Feed.feed_title; FeedItem.feed_item_count = TotalItems; FeedItem.feed_id = Feed.feed_id; List_FeedSelect.Add(FeedItem); //Update folder FolderUpdate = List_FeedSelect.Where(x => x.feed_folder_title == FeedFolder && x.feed_folder_status).FirstOrDefault(); if (FolderUpdate != null) { FolderUpdate.feed_folder_ids.Add(Feed.feed_id); FolderUpdate.feed_item_count = FolderUpdate.feed_item_count + FeedItem.feed_item_count; //Debug.WriteLine("Updated folder..."); } } } combobox_FeedSelection.IsEnabled = true; combobox_FeedSelection.Opacity = 1; } catch { } if (EnableUI) { ProgressEnableUI(); } }
//Load feeds in selection async Task LoadSelectionFeeds(List <TableFeeds> LoadTableFeeds, List <TableItems> LoadTableItems, bool Silent, bool EnableUI) { try { if (!Silent) { await ProgressDisableUI("Loading selection feeds...", true); } Debug.WriteLine("Loading selection feeds, silent: " + Silent); combobox_FeedSelection.IsHitTestVisible = false; combobox_FeedSelection.Opacity = 0.30; await ClearObservableCollection(List_FeedSelect); //Wait for busy database await ApiUpdate.WaitForBusyDatabase(); //Check if received lists are empty if (LoadTableFeeds == null) { LoadTableFeeds = await SQLConnection.Table <TableFeeds>().OrderBy(x => x.feed_folder).ToListAsync(); } if (LoadTableItems == null) { LoadTableItems = await SQLConnection.Table <TableItems>().ToListAsync(); } //Filter un/ignored feeds List <String> IgnoredFeedList = LoadTableFeeds.Where(x => x.feed_ignore_status == true).Select(x => x.feed_id).ToList(); List <TableFeeds> UnignoredFeedList = LoadTableFeeds.Where(x => x.feed_ignore_status == false).ToList(); if (!(bool)AppVariables.ApplicationSettings["DisplayReadMarkedItems"]) { //Add unread feeds selection Feeds TempFeed = new Feeds(); TempFeed.feed_id = "2"; Int32 TotalItemsUnread = ProcessItemLoad.FilterNewsItems(IgnoredFeedList, LoadTableItems, TempFeed, 0, AppVariables.ItemsMaximumLoad).Count(); Feeds FeedItemUnread = new Feeds(); FeedItemUnread.feed_icon = await AVImage.LoadBitmapImage("ms-appx:///Assets/iconRSS-Dark.png", false); FeedItemUnread.feed_title = "All unread items"; FeedItemUnread.feed_item_count = TotalItemsUnread; FeedItemUnread.feed_collection_status = true; FeedItemUnread.feed_id = "2"; List_FeedSelect.Add(FeedItemUnread); //Add read feeds selection TempFeed.feed_id = "1"; Int32 TotalItemsRead = ProcessItemLoad.FilterNewsItems(IgnoredFeedList, LoadTableItems, TempFeed, 0, AppVariables.ItemsMaximumLoad).Count(); Feeds FeedItemRead = new Feeds(); FeedItemRead.feed_icon = await AVImage.LoadBitmapImage("ms-appx:///Assets/iconRSS-Dark.png", false); FeedItemRead.feed_title = "Already read items"; FeedItemRead.feed_item_count = TotalItemsRead; FeedItemRead.feed_collection_status = true; FeedItemRead.feed_id = "1"; List_FeedSelect.Add(FeedItemRead); } else { //Add all feeds selection Feeds TempFeed = new Feeds(); TempFeed.feed_id = "0"; Int32 TotalItemsAll = ProcessItemLoad.FilterNewsItems(IgnoredFeedList, LoadTableItems, TempFeed, 0, AppVariables.ItemsMaximumLoad).Count(); Feeds FeedItemAll = new Feeds(); FeedItemAll.feed_icon = await AVImage.LoadBitmapImage("ms-appx:///Assets/iconRSS-Dark.png", false); FeedItemAll.feed_title = "All feed items"; FeedItemAll.feed_item_count = TotalItemsAll; FeedItemAll.feed_collection_status = true; FeedItemAll.feed_id = "0"; List_FeedSelect.Add(FeedItemAll); } //Feeds that are not ignored and contain items foreach (TableFeeds Feed in UnignoredFeedList) { Feeds TempFeed = new Feeds(); TempFeed.feed_id = Feed.feed_id; Int32 TotalItems = ProcessItemLoad.FilterNewsItems(IgnoredFeedList, LoadTableItems, TempFeed, 0, AppVariables.ItemsMaximumLoad).Count(); if (TotalItems > 0) { //Add folder string FeedFolder = Feed.feed_folder; if (String.IsNullOrWhiteSpace(FeedFolder)) { FeedFolder = "No folder"; } Feeds FolderUpdate = List_FeedSelect.Where(x => x.feed_folder_title == FeedFolder && x.feed_folder_status).FirstOrDefault(); if (FolderUpdate == null) { //Load folder icon BitmapImage FolderIcon = await AVImage.LoadBitmapImage("ms-appx:///Assets/iconFolder-Dark.png", false); //Add folder Feeds FolderItem = new Feeds(); FolderItem.feed_icon = FolderIcon; FolderItem.feed_folder_title = FeedFolder; FolderItem.feed_folder_status = true; List_FeedSelect.Add(FolderItem); //Debug.WriteLine("Added folder..."); } //Add feed //Load feed icon BitmapImage FeedIcon = null; if (Feed.feed_id.StartsWith("user/")) { FeedIcon = await AVImage.LoadBitmapImage("ms-appx:///Assets/iconUser-Dark.png", false); } else { FeedIcon = await AVImage.LoadBitmapImage("ms-appdata:///local/" + Feed.feed_id + ".png", false); } if (FeedIcon == null) { FeedIcon = await AVImage.LoadBitmapImage("ms-appx:///Assets/iconRSS-Dark.png", false); } //Get the current feed item count Feeds FeedItem = new Feeds(); FeedItem.feed_icon = FeedIcon; FeedItem.feed_title = Feed.feed_title; FeedItem.feed_item_count = TotalItems; FeedItem.feed_id = Feed.feed_id; List_FeedSelect.Add(FeedItem); //Update folder FolderUpdate = List_FeedSelect.Where(x => x.feed_folder_title == FeedFolder && x.feed_folder_status).FirstOrDefault(); if (FolderUpdate != null) { FolderUpdate.feed_folder_ids.Add(Feed.feed_id); FolderUpdate.feed_item_count = FolderUpdate.feed_item_count + FeedItem.feed_item_count; //Debug.WriteLine("Updated folder..."); } } } combobox_FeedSelection.IsHitTestVisible = true; combobox_FeedSelection.Opacity = 1; } catch { } if (EnableUI) { await ProgressEnableUI(); } }