﻿#if UNTIY_IOS		// TODO: Add "|| UNITY_STANDALONE_OSX" to support OS X builds.  We've left it out as the iOS build module is needed for this script to run
	#if UNITY_5 && !UNITY_5_0 && !UNITY_5_1 && !UNITY_5_2 && !UNITY_5_3_0 && !UNITY_5_3_1 && !UNITY_5_3_2
		#define AVPROVIDEO_UNITY_SUPPORTS_PLISTEDIT
	#endif
#endif
using System.Collections;
using System.IO;
using UnityEngine;
using UnityEditor;
using UnityEditor.Callbacks;
#if AVPROVIDEO_UNITY_SUPPORTS_PLISTEDIT
using UnityEditor.iOS.Xcode;	// Required for PlistDocument (requires Untiy 5.3.3 or above)
#endif

//-----------------------------------------------------------------------------
// Copyright 2015-2016 RenderHeads Ltd.  All rights reserverd.
//-----------------------------------------------------------------------------

namespace RenderHeads.Media.AVProVideo.Editor
{
	public class PostProcessBuild 
	{
		[PostProcessBuild]
 		public static void OnPostProcessBuild(BuildTarget target, string path)
 		{
			if (target == BuildTarget.StandaloneOSXIntel)
			{
				Debug.LogError("AVPro Video doesn't support target StandaloneOSXIntel, please use StandaloneOSXIntel64 or remove this PostProcessBuild script");

				EditorUtility.DisplayDialog("AVPro Video", "AVPro Video doesn't support target StandaloneOSXIntel, please use StandaloneOSXIntel64 or remove this PostProcessBuild script", "Ok");
			}

#if AVPROVIDEO_UNITY_SUPPORTS_PLISTEDIT
			// On Apple platforms we need to adjust the plist to allow loading from HTTP for video streaming
 			if ((target == BuildTarget.StandaloneOSXIntel)		||
 				(target == BuildTarget.StandaloneOSXIntel64)	||
 				(target == BuildTarget.StandaloneOSXUniversal))
 			{
 				string plistPath = path + "/Contents/Info.plist";
 				PlistDocument plist = new PlistDocument();
 				plist.ReadFromString(File.ReadAllText(plistPath));
 
 				// Get root
 				PlistElementDict rootDict = plist.root;
 
 				PlistElementDict nsAppTransportSecurity = rootDict.CreateDict("NSAppTransportSecurity");
 				nsAppTransportSecurity.SetBoolean("NSAllowsArbitraryLoads", true);
 
 				File.WriteAllText(plistPath, plist.WriteToString());
			}
#endif
		}
	}
}