public async Task <Application> Show(Type appType, ApplicationOptions options = null, bool finishActivityOnExit = false) { await Stop(); if (SDLSurface != null) { RemoveView(SDLSurface); } SDLSurface = SDLActivity.CreateSurface(Context as Activity); AddView(SDLSurface, ViewGroup.LayoutParams.MatchParent); var tcs = new TaskCompletionSource <Application>(); Action startedHandler = null; startedHandler = () => { Application.Started -= startedHandler; tcs.TrySetResult(Application.Current); }; Application.Started += startedHandler; UrhoSurface.SetSdlMain(() => Application.CreateInstance(appType, options), finishActivityOnExit, SDLSurface); return(await tcs.Task); }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); requestedOrientation = (ApplicationOptions.OrientationType)Intent.GetIntExtra(nameof(ApplicationOptions.OrientationType), 0); switch (requestedOrientation) { case ApplicationOptions.OrientationType.Landscape: RequestedOrientation = ScreenOrientation.SensorLandscape; break; case ApplicationOptions.OrientationType.Portrait: RequestedOrientation = ScreenOrientation.SensorPortrait; break; case ApplicationOptions.OrientationType.LandscapeAndPortrait: RequestedOrientation = ScreenOrientation.Unspecified; break; } SDLSurface surface = SDLActivity.CreateSurface(this); FrameLayout layout = new FrameLayout(this); layout.AddView(surface); SetContentView(layout); }
/// <summary> /// Creates a view (SurfaceView) that can be added anywhere /// </summary> public static SDLSurface CreateSurface(Activity activity, Func <Application> applicationFactory, bool finishActivtiyOnExit = false) { var surface = SDLActivity.CreateSurface(activity); SetSdlMain(applicationFactory, finishActivtiyOnExit, surface); return(surface); }
/// <summary> /// Creates a view (SurfaceView) that can be added anywhere /// </summary> public static SDLSurface CreateSurface(Activity activity, bool finishActivtiyOnExit = false, Type appDelegateType = null) { AndroidSDLSurface.appDelegateType = appDelegateType; var surface = SDLActivity.CreateSurface(activity); SetSDLEntryCallback(finishActivtiyOnExit, surface); return(surface); }
public async Task <Application> Show(Type appType, ApplicationOptions options = null, bool finishActivityOnExit = false) { Stop(); launching = true; if (SDLSurface != null) { RemoveView(SDLSurface); } SDLSurface = SDLActivity.CreateSurface(Context as Activity); AddView(SDLSurface, ViewGroup.LayoutParams.MatchParent); // Reflection <UrhoSurfacePlaceholder>: Urho.Application.CurrentSurface = new WeakReference(SDLSurface); var currentSurface = typeof(Application).GetProperty(nameof(Application.CurrentSurface), BindingFlags.Public | BindingFlags.Static | BindingFlags.GetProperty); currentSurface.SetValue(default, new WeakReference(SDLSurface));
/// <summary> /// Creates a view (SurfaceView) that can be added anywhere /// </summary> public static SDLSurface CreateSurface(Activity activity, Type applicationType, ApplicationOptions options = null) { RegisterSdlLauncher(contextPtr => Application.CreateInstance(applicationType, options).Run()); return(SDLActivity.CreateSurface(activity)); }
/// <summary> /// Creates a view (SurfaceView) that can be added anywhere /// </summary> public static SDLSurface CreateSurface(Activity activity) => SDLActivity.CreateSurface(activity);