diff --git a/popcorn/Assets/MyGame/Scenes/Main/Scripts/BulkOrderNotifyView.cs b/popcorn/Assets/MyGame/Scenes/Main/Scripts/BulkOrderNotifyView.cs index ff77445f..bb8c649f 100644 --- a/popcorn/Assets/MyGame/Scenes/Main/Scripts/BulkOrderNotifyView.cs +++ b/popcorn/Assets/MyGame/Scenes/Main/Scripts/BulkOrderNotifyView.cs @@ -7,6 +7,7 @@ using UnityEngine.UI; public class BulkOrderNotifyView : MonoBehaviour { + private static readonly string CallbackTag = "BulkOrderNotifyViewCallback"; private static readonly int OpenTrigger = Animator.StringToHash("OpenTrigger"); private static readonly int CloseTrigger = Animator.StringToHash("CloseTrigger"); [SerializeField] private Animator backgroundAnimator; @@ -66,13 +67,20 @@ public class BulkOrderNotifyView : MonoBehaviour } closeButton.OnClickAsObservable().Take(1).Subscribe(_ => { + LocalCacheManager.Load(CallbackTag, null)?.Invoke(); + LocalCacheManager.Remove(CallbackTag); transform.parent.SetLocalScale(0); backgroundAnimator.SetTrigger(CloseTrigger); this.CallWaitForSeconds(.25f, () => { TransitionManager.Instance.UnloadScene(GameScenes.BulkOrderTelephone); - TransitionManager.Instance.LoadSceneAdditive(GameScenes.BulkOrder); }); }).AddTo(this); } + + public static void ShowDialog(Action onComplete = null) + { + LocalCacheManager.Save(CallbackTag, onComplete); + TransitionManager.Instance.LoadSceneAdditive(GameScenes.BulkOrderTelephone); + } } diff --git a/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs b/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs index ac53072c..c74ae302 100644 --- a/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs +++ b/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs @@ -189,13 +189,25 @@ public class KitchenManager : MonoBehaviour var orderData = bulkOrderList.First(data => data.id == result.nextOrderId); LocalCacheManager.Save(BulkOrder.DataTag, orderData); - TransitionManager.Instance.LoadSceneAdditive(GameScenes.BulkOrderTelephone); + BulkOrderNotifyView.ShowDialog(() => + { + BulkOrder.ShowDialog( + onAchieved: () => + { + orderIndicatorView.SetIndicate(false, true); + orderIndicatorView.SetBadgeActive(false); + }, + onCancel: () => + { + orderIndicatorView.SetIndicate(false, true); + orderIndicatorView.SetBadgeActive(false); + }); + }); // 通知をタップ後タップ動作を切り替える orderIndicatorView.SetIndicate(false, false); orderIndicatorView.TappedPhone .ThrottleFirst(TimeSpan.FromSeconds(1f)) - .Take(1) .Subscribe(__ => { BulkOrder.ShowDialog(