public void CheckNotice(LaunchingResponse.LaunchingInfo launchingInfo)
        {
            if (null != launchingInfo.launching.notice)
            {
                StringBuilder msg = new StringBuilder();
                msg.AppendLine(launchingInfo.launching.notice.title);
                msg.AppendLine(string.Empty);
                msg.AppendLine(launchingInfo.launching.notice.message);

                ShowSystemPopup(
                    GetButtonTypeWithURL(launchingInfo.launching.notice.url),
#if !UNITY_WEBGL
                    DisplayLanguage.Instance.GetString("common_notice_title"),
#else
                    string.Empty,
#endif
                    msg.ToString(),
                    DisplayLanguage.Instance.GetString("common_show_detail_button"),
                    DisplayLanguage.Instance.GetString("common_close_button"),
                    DisplayLanguage.Instance.GetString("common_show_detail_message"),
                    (buttonID) =>
                {
                    if (GamebaseUtilAlertButtonID.BUTTON_ONE == buttonID)
                    {
                        if (false == string.IsNullOrEmpty(launchingInfo.launching.notice.url))
                        {
                            GamebaseWebviewImplementation.Instance.OpenWebBrowser(launchingInfo.launching.notice.url);
                        }
                    }
                });
            }
        }
        public void ShowLaunchingPopup(LaunchingResponse.LaunchingInfo launchingInfo)
        {
            if (false == GamebaseUnitySDK.EnablePopup || false == GamebaseUnitySDK.EnableLaunchingStatusPopup)
            {
                return;
            }

            GamebaseLog.Debug(string.Format("LaunchingStatusCode : {0}", launchingInfo.launching.status.code), this);

            CheckNotice(launchingInfo);

            switch (launchingInfo.launching.status.code)
            {
            case GamebaseLaunchingStatus.INSPECTING_SERVICE:            // 서비스 점검
            {
                if (null != launchingInfo.launching.maintenance)
                {
                    StringBuilder msg = new StringBuilder();
                    msg.AppendLine(DisplayLanguage.Instance.GetString("launching_maintenance_message"));
                    msg.AppendLine();
                    msg.AppendLine(MakePeriod(launchingInfo.launching.maintenance.localBeginDate, launchingInfo.launching.maintenance.localEndDate));

                    ShowSystemPopup(
                        GetButtonTypeWithPageTypeCode(launchingInfo.launching.maintenance.pageTypeCode),
                        DisplayLanguage.Instance.GetString("launching_maintenance_title"),
                        msg.ToString(),
                        DisplayLanguage.Instance.GetString("common_show_detail_button"),
                        DisplayLanguage.Instance.GetString("common_close_button"),
                        DisplayLanguage.Instance.GetString("common_show_detail_message"),
                        (buttonID) =>
                        {
                            if (GamebaseUtilAlertButtonID.BUTTON_ONE == buttonID)
                            {
                                if (false == string.IsNullOrEmpty(launchingInfo.launching.maintenance.url))
                                {
                                    GamebaseWebviewImplementation.Instance.OpenWebBrowser(launchingInfo.launching.maintenance.url);
                                }
                            }
                        });
                }
                break;
            }

            case GamebaseLaunchingStatus.INSPECTING_ALL_SERVICES:       // 서비스 전체 점검
            {
                if (null != launchingInfo.launching.maintenance)
                {
                    StringBuilder msg = new StringBuilder();
                    msg.AppendLine(DisplayLanguage.Instance.GetString("launching_maintenance_message"));
                    msg.AppendLine();
                    msg.AppendLine(MakePeriod(launchingInfo.launching.maintenance.localBeginDate, launchingInfo.launching.maintenance.localEndDate));

                    ShowSystemPopup(
                        GetButtonTypeWithPageTypeCode(launchingInfo.launching.maintenance.pageTypeCode),
                        DisplayLanguage.Instance.GetString("launching_maintenance_title"),
                        msg.ToString(),
                        DisplayLanguage.Instance.GetString("common_show_detail_button"),
                        DisplayLanguage.Instance.GetString("common_close_button"),
                        DisplayLanguage.Instance.GetString("common_show_detail_message"),
                        (buttonID) =>
                        {
                            if (GamebaseUtilAlertButtonID.BUTTON_ONE == buttonID)
                            {
                                if (false == string.IsNullOrEmpty(launchingInfo.launching.maintenance.url))
                                {
                                    GamebaseWebviewImplementation.Instance.OpenWebBrowser(launchingInfo.launching.maintenance.url);
                                }
                            }
                        });
                }
                break;
            }

            case GamebaseLaunchingStatus.TERMINATED_SERVICE:            // 서비스 종료
            {
                StringBuilder msg = new StringBuilder();
                msg.AppendLine(launchingInfo.launching.status.message);

                ShowSystemPopup(
                    GamebaseUtilAlertType.ALERT_OK,
                    DisplayLanguage.Instance.GetString("launching_service_closed_title"),
                    msg.ToString(),
                    string.Empty,
                    DisplayLanguage.Instance.GetString("common_close_button"),
                    string.Empty,
                    (buttonID) => { });
                break;
            }

            case GamebaseLaunchingStatus.RECOMMEND_UPDATE:              // 업데이트 권장
            {
#if !UNITY_WEBGL
                StringBuilder msg = new StringBuilder();
                msg.Append(launchingInfo.launching.status.message);

                ShowSystemPopup(
                    GamebaseUtilAlertType.ALERT_OKCANCEL,
                    DisplayLanguage.Instance.GetString("launching_update_recommended_title"),
                    msg.ToString(),
                    DisplayLanguage.Instance.GetString("launching_update_now_label"),
                    DisplayLanguage.Instance.GetString("launching_update_later_label"),
                    string.Empty,
                    (buttonID) =>
                    {
                        if (GamebaseUtilAlertButtonID.BUTTON_ONE == buttonID)
                        {
                            GamebaseWebviewImplementation.Instance.OpenWebBrowser(launchingInfo.launching.app.install.url);
                            Application.Quit();
                        }
                    });

                Application.Quit();
#endif
                break;
            }

            case GamebaseLaunchingStatus.REQUIRE_UPDATE:                // 업데이트 필수
            {
#if !UNITY_WEBGL
                StringBuilder msg = new StringBuilder();
                msg.Append(launchingInfo.launching.status.message);

                ShowSystemPopup(
                    GamebaseUtilAlertType.ALERT_OK,
                    DisplayLanguage.Instance.GetString("launching_update_required_title"),
                    msg.ToString(),
                    string.Empty,
                    DisplayLanguage.Instance.GetString("launching_update_now_label"),
                    string.Empty,
                    (buttonID) =>
                    {
                        if (GamebaseUtilAlertButtonID.BUTTON_ONE == buttonID)
                        {
                            GamebaseWebviewImplementation.Instance.OpenWebBrowser(launchingInfo.launching.app.install.url);
                            Application.Quit();
                        }
                    });
#endif
                break;
            }

            default:
            {
                break;
            }
            }
        }