chore(m2): 保存功能验收及后续清理前检查点

This commit is contained in:
Liubing\LB
2026-10-10 20:40:27 +08:00
parent d3c5394a55
commit 144e7f739f
110 changed files with 12672 additions and 7514 deletions

View File

@@ -8,10 +8,8 @@ public class SettingNotificationsGradePopupPanel : MonoBehaviour
{
public Button btn_ok;
public Button btn_cancel;
ISettingService settings;
ILocalNotificationService notifications;
bool handling;
bool completed;
private ISettingService settings;
private ILocalNotificationService notifications;
private void Start()
{
settings = GContext.container.Resolve<ISettingService>();
@@ -21,34 +19,24 @@ public class SettingNotificationsGradePopupPanel : MonoBehaviour
}
private void OnBtnOk()
{
HandlePrompt(true);
if (this == null)
{
return;
}
(settings as DefaultSettingService)?.RequirePromptOwner();
(notifications as LocalNotificationService)?.RequirePromptOwner(settings);
DestroyUI();
notifications.OpenSettings();
}
void DestroyUI()
{
HandlePrompt(false);
}
async void HandlePrompt(bool openSettings)
{
if (this == null || handling || completed) return;
handling = true;
try
if (this == null)
{
(settings as DefaultSettingService)?.RequirePromptOwner();
(notifications as LocalNotificationService)?.RequirePromptOwner(settings);
settings.ShowNotice = true;
if (openSettings && settings is DefaultSettingService bound && bound.HasKVPromptOwner)
{
await ((LocalNotificationService)notifications).OpenSettingsAsync();
if (this == null) return;
bound.RequirePromptOwner();
}
(settings as DefaultSettingService)?.RequirePromptOwner();
completed = true;
UIManager.Instance.DestroyUI(gameObject.name);
if (openSettings && !(settings is DefaultSettingService kv && kv.HasKVPromptOwner))
notifications.OpenSettings();
return;
}
catch (System.Exception ex) { game.DefaultSettingService.LogPromptFailure(ex); }
finally { handling = false; }
(settings as DefaultSettingService)?.RequirePromptOwner();
(notifications as LocalNotificationService)?.RequirePromptOwner(settings);
settings.ShowNotice = true;
UIManager.Instance.DestroyUI(gameObject.name);
}
}