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;
                }
            }
        }
示例#2
0
        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);
            }
        }
示例#3
0
        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());
        }
示例#4
0
        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);
            }
        }