1
0
Fork 0
mirror of https://github.com/Ellpeck/MLEM.git synced 2024-11-25 22:18:34 +01:00
MLEM/Demos.Android/Activity1.cs

55 lines
2.3 KiB
C#
Raw Normal View History

2019-09-01 11:56:12 +02:00
using Android.App;
using Android.Content;
2019-09-01 11:56:12 +02:00
using Android.Content.PM;
using Android.Net;
2019-09-01 11:56:12 +02:00
using Android.OS;
using Android.Views;
2020-04-19 03:20:25 +02:00
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Input;
2020-04-19 03:20:25 +02:00
using MLEM.Extensions;
2020-02-24 14:03:53 +01:00
using MLEM.Misc;
using static Android.Views.SystemUiFlags;
2019-09-01 11:56:12 +02:00
namespace Demos.Android {
2020-04-19 03:20:25 +02:00
[Activity(
Label = "@string/app_name",
MainLauncher = true,
Icon = "@drawable/icon",
AlwaysRetainTaskState = true,
LaunchMode = LaunchMode.SingleInstance,
ScreenOrientation = ScreenOrientation.UserLandscape,
ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.Keyboard | ConfigChanges.KeyboardHidden | ConfigChanges.ScreenSize
)]
public class Activity1 : AndroidGameActivity {
private GameImpl game;
private View view;
2019-09-01 11:56:12 +02:00
protected override void OnCreate(Bundle bundle) {
base.OnCreate(bundle);
// render under notches
if (Build.VERSION.SdkInt >= BuildVersionCodes.P)
this.Window.Attributes.LayoutInDisplayCutoutMode = LayoutInDisplayCutoutMode.ShortEdges;
2020-04-19 03:20:25 +02:00
MlemPlatform.Current = new MlemPlatform.Mobile(KeyboardInput.Show, l => this.StartActivity(new Intent(Intent.ActionView, Uri.Parse(l))));
2020-04-19 03:20:25 +02:00
this.game = new GameImpl();
// reset MlemGame width and height to use device's aspect ratio
this.game.GraphicsDeviceManager.ResetWidthAndHeight(this.game.Window);
// disable mouse handling for android to make emulator behavior more coherent
this.game.OnLoadContent += game => game.InputHandler.HandleMouse = false;
// set the game to fullscreen to cause the status bar to be hidden
this.game.GraphicsDeviceManager.IsFullScreen = true;
2020-04-19 03:20:25 +02:00
this.view = this.game.Services.GetService(typeof(View)) as View;
this.SetContentView(this.view);
this.game.Run();
2019-09-01 11:56:12 +02:00
}
public override void OnWindowFocusChanged(bool hasFocus) {
base.OnWindowFocusChanged(hasFocus);
// hide the status bar
if (hasFocus)
this.Window.DecorView.SystemUiVisibility = (StatusBarVisibility) (ImmersiveSticky | LayoutStable | LayoutHideNavigation | LayoutFullscreen | HideNavigation | Fullscreen);
}
2019-09-01 11:56:12 +02:00
}
}