Prism icon indicating copy to clipboard operation
Prism copied to clipboard

[BUG] Putting an app in background when a modal is being displayed crashes the App

Open dinisvieira opened this issue 9 months ago • 0 comments

Description

Since version 9.0.456-pre Prism crashes when putting the app in background when displaying a modal. This can be reproduced with the PrismMauiDemo from Prism repo.

The crash occurs in MvvmHelpers.EvaluateCurrentPage due to page.Parent being PrismWindow instead of Page image

Steps to Reproduce

  1. Run the PrismMauiDemo from Prism repo (e2e)
  2. Select "Flyout Page"
  3. Select "Show Dialog"
  4. Press "home" button to go to homescreen (or some other strategy to put the app in background)

PS: Only tested with Android and iOS, not sure about other platforms.

Platform with bug

.NET MAUI

Affected platforms

iOS, Android, I was not able test on other platforms

Did you find any workaround?

Downgrading Prism to version 9.0.401-pre avoids this issue.

Relevant log output

[mono-rt] [ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidOperationException: Unable to determine the current page.
[mono-rt]    at Prism.Common.MvvmHelpers.EvaluateCurrentPage(Page target) in D:\a\Prism\Prism\src\Maui\Prism.Maui\Common\MvvmHelpers.cs:line 306
[mono-rt]    at Prism.Common.MvvmHelpers.<>c.<.cctor>b__31_0(Page mainPage) in D:\a\Prism\Prism\src\Maui\Prism.Maui\Common\MvvmHelpers.cs:line 275
[mono-rt]    at Prism.Common.MvvmHelpers.GetCurrentPage(Page mainPage) in D:\a\Prism\Prism\src\Maui\Prism.Maui\Common\MvvmHelpers.cs:line 261
[mono-rt]    at Prism.Navigation.PrismWindow.get_CurrentPage() in D:\a\Prism\Prism\src\Maui\Prism.Maui\Navigation\PrismWindow.cs:line 45
[mono-rt]    at Prism.Navigation.PrismWindow.OnDeactivated() in D:\a\Prism\Prism\src\Maui\Prism.Maui\Navigation\PrismWindow.cs:line 141
[mono-rt]    at Microsoft.Maui.Controls.Window.Microsoft.Maui.IWindow.Deactivated() in D:\a\_work\1\s\src\Controls\src\Core\Window\Window.cs:line 510
[mono-rt]    at Microsoft.Maui.LifecycleEvents.AppHostBuilderExtensions.<>c.<OnConfigureLifeCycle>b__2_3(Activity activity) in D:\a\_work\1\s\src\Core\src\Hosting\LifecycleEvents\AppHostBuilderExtensions.Android.cs:line 41
[mono-rt]    at Microsoft.Maui.MauiApplication.ActivityLifecycleCallbacks.<>c__DisplayClass3_0.<OnActivityPaused>b__0(OnPause del) in D:\a\_work\1\s\src\Core\src\Platform\Android\MauiApplication.cs:line 113
[mono-rt]    at Microsoft.Maui.LifecycleEvents.LifecycleEventServiceExtensions.InvokeLifecycleEvents[OnPause](IServiceProvider services, Action`1 action) in D:\a\_work\1\s\src\Core\src\LifecycleEvents\LifecycleEventServiceExtensions.cs:line 31
[mono-rt]    at Microsoft.Maui.MauiApplication.ActivityLifecycleCallbacks.OnActivityPaused(Activity activity) in D:\a\_work\1\s\src\Core\src\Platform\Android\MauiApplication.cs:line 113
[mono-rt]    at Android.App.Application.IActivityLifecycleCallbacksInvoker.n_OnActivityPaused_Landroid_app_Activity_(IntPtr jnienv, IntPtr native__this, IntPtr native_activity) in /Users/runner/work/1/s/xamarin-android/src/Mono.Android/obj/Release/net8.0/android-34/mcw/Android.App.Application.cs:line 708
[mono-rt]    at Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPL_V(_JniMarshal_PPL_V callback, IntPtr jnienv, IntPtr klazz, IntPtr p0) in /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Android.Runtime/JNINativeWrapper.g.cs:line 121

dinisvieira avatar May 17 '24 16:05 dinisvieira