private async Task Refresh() { Processing = true; FolderName = null; RefreshPhotosCommand.RaiseCanExecuteChanged(); Thumbnails.Clear(); var filters = FilterFactory.CreateStreamFilters(); var maxItems = (uint)_highlightStrategy.BatchSize * 5; if (SessionModel.Instance.Folder != null) { FolderName = SessionModel.Instance.Folder.DisplayName; var models = await GetPhotosFromFolderAsync(SessionModel.Instance.Folder, maxItems); for (var i = 0; i < models.Count; i++) { var k = i % (_highlightStrategy.BatchSize); var highlight = _highlightStrategy.HighlightedIndexes.Contains(k); Thumbnails.Add(new ThumbnailViewModel(models[i], TakeRandomFilter(filters), highlight)); } } else { var models = await GetPhotosFromFolderAsync(Windows.Storage.KnownFolders.CameraRoll, maxItems); FolderName = Windows.Storage.KnownFolders.CameraRoll.DisplayName; #if !WINDOWS_PHONE_APP if (models.Count == 0) { models = await GetPhotosFromFolderAsync(Windows.Storage.KnownFolders.PicturesLibrary, maxItems); FolderName = Windows.Storage.KnownFolders.PicturesLibrary.DisplayName; } #endif for (var i = 0; i < models.Count; i++) { var k = i % (_highlightStrategy.BatchSize); var highlight = _highlightStrategy.HighlightedIndexes.Contains(k); Thumbnails.Add(new ThumbnailViewModel(models[i], TakeRandomFilter(filters), highlight)); } } Processing = false; RefreshPhotosCommand.RaiseCanExecuteChanged(); }
private void ShowCluster(int clusterId) { if (bitmapReader != null && clusters != null) { Thumbnails.Clear(); foreach (int descriptorId in clusters[clusterId]) { // TODO verbose (videoID, shotID...) Bitmap bitmap = bitmapReader.ReadFrame(descriptorId); Thumbnails.Add(new Thumbnail(descriptorId.ToString(), BitmapToImageSource(bitmap))); } } }
private void ShowDisplay(int displayId) { if (bitmapReader != null && log != null) { Thumbnails.Clear(); int selectedItemId = log[displayId].Item1; int[] displayedItems = log[displayId].Item2; foreach (int displayedId in displayedItems) { // TODO verbose (videoID, shotID...) Bitmap bitmap = bitmapReader.ReadFrame(displayedId); if (selectedItemId == displayedId) { MarkSelectedItem(bitmap); } Thumbnails.Add(new Thumbnail(displayedId.ToString(), BitmapToImageSource(bitmap))); } } }
private object ParseXml(string type, string XmlString, Func <string, object> customParser) { var imageList = new Thumbnails(); var xDoc = System.Xml.Linq.XDocument.Parse(XmlString); if (xDoc.Root.Name.ToString() == "error") { var str = "API error:\n" + xDoc.Descendants("error") .Select(el => el.Element("error_msg").Value) .ToList <String>()[0]; Debug.WriteLine(str); return(null); } if (customParser != null) { return(customParser(XmlString)); } switch (type) { case ("photos.getAlbums"): var albums = xDoc.Descendants("album").Select(a => new Thumbnail { Name = a.Element("aid").Value, Title = a.Element("title").Value, Image = ImageDataFromUri(a.Element("thumb_src").Value), Checked = false }); imageList.Clear(); foreach (var album in albums) { imageList.Add(album); } return(imageList); case ("photos.get"): Func <System.Xml.Linq.XElement, string> tmp = (xElement) => { var bigImage = xElement.Element("src_xxxbig"); if (bigImage != null && !string.IsNullOrWhiteSpace(bigImage.Value)) { return(bigImage.Value); } bigImage = xElement.Element("src_xxbig"); if (bigImage != null && !string.IsNullOrWhiteSpace(bigImage.Value)) { return(bigImage.Value); } bigImage = xElement.Element("src_xbig"); if (bigImage != null && !string.IsNullOrWhiteSpace(bigImage.Value)) { return(bigImage.Value); } bigImage = xElement.Element("src_big"); if (bigImage != null && !string.IsNullOrWhiteSpace(bigImage.Value)) { return(bigImage.Value); } bigImage = xElement.Element("src"); if (bigImage != null && !string.IsNullOrWhiteSpace(bigImage.Value)) { return(bigImage.Value); } bigImage = xElement.Element("src_small"); if (bigImage != null && !string.IsNullOrWhiteSpace(bigImage.Value)) { return(bigImage.Value); } return(null); }; var photos = xDoc.Descendants("photo") .Select(a => new Thumbnail() { Name = a.Element("src_small").Value.Split('/').Last(), Title = tmp(a).Split('/').Last(), BigImage = tmp(a), Image = ImageDataFromUri(a.Element("src_small").Value), Checked = false }); imageList.Clear(); foreach (var photo in photos) { imageList.Add(photo); } return(imageList); case "utils.resolveScreenName": return(xDoc.Element("response").HasElements ? xDoc.Element("response").Element("object_id").Value : null); case "users.get": return(xDoc.Element("response").Element("id").Value); default: break; } return(null); }
private object ParseXml(string type, string XmlString, Func<string, object> customParser) { var imageList = new Thumbnails(); var xDoc = System.Xml.Linq.XDocument.Parse(XmlString); if (xDoc.Root.Name.ToString() == "error") { var str = "API error:\n" + xDoc.Descendants("error") .Select(el => el.Element("error_msg").Value) .ToList<String>()[0]; Debug.WriteLine(str); return null; } if (customParser != null) return customParser(XmlString); switch (type) { case ("photos.getAlbums"): var albums = xDoc.Descendants("album").Select(a => new Thumbnail { Name = a.Element("aid").Value, Title = a.Element("title").Value, Image = ImageDataFromUri(a.Element("thumb_src").Value), Checked = false }); imageList.Clear(); foreach (var album in albums) imageList.Add(album); return imageList; case ("photos.get"): Func<System.Xml.Linq.XElement, string> tmp = (xElement) => { var bigImage = xElement.Element("src_xxxbig"); if (bigImage != null && !string.IsNullOrWhiteSpace(bigImage.Value)) return bigImage.Value; bigImage = xElement.Element("src_xxbig"); if (bigImage != null && !string.IsNullOrWhiteSpace(bigImage.Value)) return bigImage.Value; bigImage = xElement.Element("src_xbig"); if (bigImage != null && !string.IsNullOrWhiteSpace(bigImage.Value)) return bigImage.Value; bigImage = xElement.Element("src_big"); if (bigImage != null && !string.IsNullOrWhiteSpace(bigImage.Value)) return bigImage.Value; bigImage = xElement.Element("src"); if (bigImage != null && !string.IsNullOrWhiteSpace(bigImage.Value)) return bigImage.Value; bigImage = xElement.Element("src_small"); if (bigImage != null && !string.IsNullOrWhiteSpace(bigImage.Value)) return bigImage.Value; return null; }; var photos = xDoc.Descendants("photo") .Select(a => new Thumbnail() { Name = a.Element("src_small").Value.Split('/').Last(), Title = tmp(a).Split('/').Last(), BigImage = tmp(a), Image = ImageDataFromUri(a.Element("src_small").Value), Checked = false }); imageList.Clear(); foreach (var photo in photos) imageList.Add(photo); return imageList; case "utils.resolveScreenName": return xDoc.Element("response").HasElements ? xDoc.Element("response").Element("object_id").Value : null; case "users.get": return xDoc.Element("response").Element("id").Value; default: break; } return null; }