Prism
Prism copied to clipboard
[BUG] Putting an app in background when a modal is being displayed crashes the App
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
Steps to Reproduce
- Run the
PrismMauiDemo
from Prism repo (e2e) - Select "Flyout Page"
- Select "Show Dialog"
- 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