internal override void LoadCursor(ICursor cursor, MediaAssetQueryHelper helper) { base.LoadCursor(cursor, helper); if (helper.DateTakenColumn > -1) { TakenDate = DateTimeOffset.FromUnixTimeMilliseconds(cursor.GetLong(helper.DateTakenColumn)).DateTime; } if (helper.WidthColumn > -1) { Width = cursor.GetInt(helper.WidthColumn); } if (helper.HeightColumn > -1) { Height = cursor.GetInt(helper.HeightColumn); } if (helper.LatitudeColumn > -1) { Latitude = cursor.GetDouble(helper.LatitudeColumn); } if (helper.LongitudeColumn > -1) { Longitude = cursor.GetDouble(helper.LongitudeColumn); } if (helper.OrientationColumn > -1) { switch (cursor.GetInt(helper.OrientationColumn)) { case 90: Orientation = MediaFileImageOrientation.Left; break; case 180: Orientation = MediaFileImageOrientation.Down; break; case 270: Orientation = MediaFileImageOrientation.Right; break; default: Orientation = MediaFileImageOrientation.Up; break; } } }
internal virtual void LoadCursor(ICursor cursor, MediaAssetQueryHelper helper) { Id = cursor.GetLong(helper.IdColumn); Name = cursor.GetString(helper.NameColumn); Uri = cursor.GetString(helper.UriColumn); if (helper.DateAddedColumn > -1) { CreationDate = DateTimeOffset.FromUnixTimeSeconds(cursor.GetLong(helper.DateAddedColumn)).DateTime; } if (helper.SizeColumn > -1) { Size = cursor.GetLong(helper.SizeColumn); } if (helper.MimeTypeColumn > -1) { MimeType = cursor.GetString(helper.MimeTypeColumn); } }
private IMediaFile[] GetMediaAssetsFromAlbums(MediaAlbumContentType contentTypes, int index = -1) { var helper = new MediaAssetQueryHelper(contentTypes); var queryUri = MediaStore.Files.GetContentUri("external"); var list = new List <IMediaFile>(); var cur = Context.ContentResolver.Query( queryUri, helper.GetProjection(), helper.GetSelection(Id), null, $"{MediaStore.Files.FileColumns.DateAdded} DESC" + (index >= 0 ? " LIMIT 1" : "") + (index > 0 ? $" OFFSET {index}" : "")); if (cur != null) { if (cur.Count > 0 && cur.MoveToFirst()) { helper.LoadColumnsIndexes(cur); do { var mediaType = (MediaType)cur.GetInt(helper.MediaTypeColumn); MediaFile mediaAsset = MediaFile.FromMediaType(mediaType); mediaAsset.LoadCursor(cur, helper); list.Add(mediaAsset); } while (cur.MoveToNext()); } cur.Close(); } return(list.ToArray()); }
internal override void LoadCursor(ICursor cursor, MediaAssetQueryHelper helper) { base.LoadCursor(cursor, helper); if (helper.DateTakenColumn > -1) { TakenDate = DateTimeOffset.FromUnixTimeMilliseconds(cursor.GetLong(helper.DateTakenColumn)).DateTime; } if (helper.WidthColumn > -1) { Width = cursor.GetInt(helper.WidthColumn); } if (helper.HeightColumn > -1) { Height = cursor.GetInt(helper.HeightColumn); } if (helper.LatitudeColumn > -1) { Latitude = cursor.GetDouble(helper.LatitudeColumn); } if (helper.LongitudeColumn > -1) { Longitude = cursor.GetDouble(helper.LongitudeColumn); } if (helper.DurationColumn > -1) { Duration = TimeSpan.FromMilliseconds(cursor.GetLong(helper.DurationColumn)); } if (helper.ArtistColumn > -1) { Artist = cursor.GetString(helper.ArtistColumn); } }