diff --git a/src/MaaWpfGui/Models/PostActionSetting.cs b/src/MaaWpfGui/Models/PostActionSetting.cs index 0aa3291f89..d79072e021 100644 --- a/src/MaaWpfGui/Models/PostActionSetting.cs +++ b/src/MaaWpfGui/Models/PostActionSetting.cs @@ -122,6 +122,11 @@ public class PostActionSetting : PropertyChangedBase private bool _backToAndroidHome; + /// + /// Gets a value indicating whether AttachWindow 模式支持 Android 侧后处理动作。 + /// + public bool AndroidControlPostActionsEnabled => !_exitEmulator && !ConnectSettingsUserControlModel.Instance.UseAttachWindow; + public bool BackToAndroidHome { get => _backToAndroidHome; @@ -163,6 +168,8 @@ public class PostActionSetting : PropertyChangedBase return; } + NotifyOfPropertyChange(nameof(AndroidControlPostActionsEnabled)); + if (value) { ExitArknights = false; @@ -426,22 +433,51 @@ public class PostActionSetting : PropertyChangedBase Shutdown = _postActions.HasFlag(PostActions.Shutdown); Sleep = _postActions.HasFlag(PostActions.Sleep); Once = false; - ClearExitEmulatorForAttachWindow(); + ClearUnsupportedPostActionsForAttachWindow(); } /// - /// PC 端不支持退出模拟器:移除已保存的该标志,且不触发「取消如果没有其他 MAA」的联动。 + /// PC 端(窗口绑定)不支持 ADB 侧后处理动作:移除已保存的相关标志,且不触发额外联动。 /// - private void ClearExitEmulatorForAttachWindow() + private void ClearUnsupportedPostActionsForAttachWindow() { - if (!ConnectSettingsUserControlModel.Instance.UseAttachWindow || !_exitEmulator) + if (!ConnectSettingsUserControlModel.Instance.UseAttachWindow) { return; } - _exitEmulator = false; - _postActions &= ~PostActions.ExitEmulator; - NotifyOfPropertyChange(nameof(ExitEmulator)); + var changed = false; + + if (_backToAndroidHome) + { + _backToAndroidHome = false; + _postActions &= ~PostActions.BackToAndroidHome; + NotifyOfPropertyChange(nameof(BackToAndroidHome)); + changed = true; + } + + if (_exitArknights) + { + _exitArknights = false; + _postActions &= ~PostActions.ExitArknights; + NotifyOfPropertyChange(nameof(ExitArknights)); + changed = true; + } + + if (_exitEmulator) + { + _exitEmulator = false; + _postActions &= ~PostActions.ExitEmulator; + NotifyOfPropertyChange(nameof(ExitEmulator)); + changed = true; + } + + if (!changed) + { + return; + } + + NotifyOfPropertyChange(nameof(AndroidControlPostActionsEnabled)); RefreshDescription(); SaveActions(); } @@ -452,8 +488,9 @@ public class PostActionSetting : PropertyChangedBase { if (e.PropertyName is nameof(ConnectSettingsUserControlModel.ConnectConfig) or nameof(ConnectSettingsUserControlModel.UseAttachWindow)) { + NotifyOfPropertyChange(nameof(AndroidControlPostActionsEnabled)); NotifyOfPropertyChange(nameof(ExitEmulatorOptionEnabled)); - ClearExitEmulatorForAttachWindow(); + ClearUnsupportedPostActionsForAttachWindow(); } }; diff --git a/src/MaaWpfGui/Views/UserControl/TaskQueue/PostActionUserControl.xaml b/src/MaaWpfGui/Views/UserControl/TaskQueue/PostActionUserControl.xaml index ad5cae396c..790cacd595 100644 --- a/src/MaaWpfGui/Views/UserControl/TaskQueue/PostActionUserControl.xaml +++ b/src/MaaWpfGui/Views/UserControl/TaskQueue/PostActionUserControl.xaml @@ -32,14 +32,14 @@