diff --git a/lib/src/floating.dart b/lib/src/floating.dart index 736c516..2fdd922 100644 --- a/lib/src/floating.dart +++ b/lib/src/floating.dart @@ -117,7 +117,6 @@ class Floating { /// /// Note: this will not make any effect on Android SDK older than 26. Future enable(EnableArguments arguments) async { - lastEnableArguments = arguments; final (aspectRatio, sourceRectHint, autoEnable) = switch (arguments) { ImmediatePiP(:final aspectRatio, :final sourceRectHint) => ( aspectRatio, @@ -138,7 +137,12 @@ class Floating { // Cancel any previous settings in case it would interfere with the // current ones, e.g. current one is ImmediatePiP but OnLeavePiP // was called before. - await cancelOnLeavePiP(); + try { + await cancelOnLeavePiP(); + } finally { + // Ensure lastEnableArguments is always set, even if cancelOnLeavePiP throws. + lastEnableArguments = arguments; + } final bool? enabledSuccessfully = await _channel.invokeMethod( 'enablePip', {