[Android Apps and Games] sensboston:
First, let me explain how I use your app (and used "Cast to"): I'm using it to show photos/videos from phone on the large TV screen via DLNA only. Why DLNA (I also do have Chromecast, Miracast, FireStick)? Because it's a simplest way, and didn't change TV input by connection (my TVs connected to HTPCs). Also, it's pretty easy to show pics at my relatives houses. And for DLNA I prefer my renderer 'cause it's usually faster than TVs, render pics better and smoothly. And I never using DLNA (or phone) to play music or watch full length movies (I do have much better and useful stuff for this).

1. As for sorting, I only need sorting by date, ascending and descending, and get a quick access to photos for specific date (we, actually, do have a lot of pics & videos on our phones, about 15K on each phone (my and my wife). Standard "Photos" app by Google is a perfect example how to handle photos and videos. If you can make something close to it, this will be superb! 3 square thumbnails is enough in portrait mode. I don't know standard/third party Android controls, but I'm pretty sure that kind of control (even not native but third-party) should exist.

As for getting date, I've used following algorithm in "Cast to": on my media library scan, I detected and cached (in my database) thumbnails and EXIF information. If no EXIF information is available (video files don't have one), I've tried to extract date and time from the file name, it's not hard, there are only a few possible formats available (and you can make it also configurable, by regular expressions, for example):

DateTime dt = DateTime.Now;
var dateStr = Path.GetFileNameWithoutExtension(file.Name).Replace("WP", "").Replace("_", " ").Replace("Z","");
if (DateTime.TryParseExact(dateStr, "yyyyMMdd HHmmss", CultureInfo.InvariantCulture, DateTimeStyles.AllowWhiteSpaces, out dt)) return dt;
else
{
if (dateStr.LastIndexOf(" ") > 0)
{
if (DateTime.TryParseExact(dateStr.Substring(0, dateStr.LastIndexOf(" ")), "yyyyMMdd HHmmss", CultureInfo.InvariantCulture, DateTimeStyles.AllowWhiteSpaces, out dt)) return dt;
else if (DateTime.TryParseExact(dateStr.Substring(0, dateStr.LastIndexOf(" ")), "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.AllowWhiteSpaces, out dt)) return dt;
else
{
if (dateStr.IndexOf("Pro") > 0)
{
if (DateTime.TryParseExact(dateStr.Substring(0, dateStr.IndexOf("Pro") - 1), "yyyyMMdd HH mm ss", CultureInfo.InvariantCulture, DateTimeStyles.AllowWhiteSpaces, out dt)) return dt;
}
else
{
// TODO: check other file names like WP_20130922_14_50_37_Pro.mp4
Debug.WriteLine("**************** file date not found: " + file.Name);
}
}
}
}

And if no date/time found I fallback to the file creation date and time (I have NTFS on sd-card).

2. I don't understand why you treated this feature as "too specific"? As for me, it's pretty natural to remember and restore last used folder by app start. Pretty easy to implement. But of course you can make it optional, configurable via settings.

3. See 1. Also, in the thumbnail view: if it's a picture or video, there is no reason to show file name (or make it optional). Maybe, grouped view (by date - month and/or year) also will be useful.

4-5. Sorry, it's my fault, didn't dig deep. Thanks for the tip!