#if WINDOWSMETRO
using System;
using System.IO;
using Windows.ApplicationModel;
using Windows.Storage;

// This file is part of the ANX.Framework created by the
// "ANX.Framework developer group" and released under the Ms-PL license.
// For details see: http://anxframework.codeplex.com/license

namespace ANX.Framework.NonXNA.Windows8
{
	public static class AssetsHelper
	{
		private static StorageFolder installLocation;

		static AssetsHelper()
		{
			installLocation = Package.Current.InstalledLocation;
		}

		public static Stream LoadStreamFromAssets(string relativeFilepath)
		{
			relativeFilepath = relativeFilepath.Replace("/", "\\");
			try
			{
				var task = installLocation.OpenStreamForReadAsync(relativeFilepath);
				Stream filestream = TaskHelper.WaitForAsyncOperation(task);

				// TODO: this copy is really inefficient!!
				// Find out why reading from the asset stream causes
				// the position property to go crazy :/
				MemoryStream stream = new MemoryStream();
				filestream.CopyTo(stream);
				filestream.Dispose();
				filestream = null;

				stream.Position = 0;
				return stream;
			}
			catch
			{
			}

			return null;
		}
	}
}
#endif