using System;
using System.Collections.Generic;
#if ANDROID
using Android.App;
#endif
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
namespace AdMob
{
	/// 
	/// This is the main type for your game
	/// 
	public class AdMobGame : Game
	{
		public static AdMobGame Instance { get; private set; }
		
		GraphicsDeviceManager graphics;
		SpriteBatch spriteBatch;		
		
		public AdMobGame ()  
		{
			Instance = this;
			graphics = new GraphicsDeviceManager (this);
			
			Content.RootDirectory = "Content";
			
			graphics.PreferMultiSampling = true;
			graphics.IsFullScreen = true;	
			graphics.SupportedOrientations = DisplayOrientation.LandscapeLeft | DisplayOrientation.LandscapeRight | DisplayOrientation.Portrait;
		}
		
		/// 
		/// Allows the game to perform any initialization it needs to before starting to run.
		/// This is where it can query for any required services and load any non-graphic
		/// related content.  Calling base.Initialize will enumerate through any components
		/// and initialize them as well.
		/// 
		protected override void Initialize ()
		{
			// TODO: Add your initialization logic here
			base.Initialize ();
		}
		/// 
		/// LoadContent will be called once per game and is the place to load
		/// all of your content.
		/// 
		protected override void LoadContent ()
		{
			// Create a new SpriteBatch, which can be used to draw textures.
			spriteBatch = new SpriteBatch (GraphicsDevice);
			
		}
		/// 
		/// Allows the game to run logic such as updating the world,
		/// checking for collisions, gathering input, and playing audio.
		/// 
		/// Provides a snapshot of timing values.
		protected override void Update (GameTime gameTime)
		{
			if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
			{
				Exit();
			}
			base.Update (gameTime);
		}
		/// 
		/// This is called when the game should draw itself.
		/// 
		/// Provides a snapshot of timing values.
		protected override void Draw (GameTime gameTime)
		{
			graphics.GraphicsDevice.Clear (Color.CornflowerBlue);
			
			// Won't be visible until we hide the movie
			spriteBatch.Begin();
			spriteBatch.End();
		}
	}
}