コード例 #1
0
        protected IEnumerator DownloadPatches()
        {
            m_VersionCheckState = VersionCheckState.DownloadingPatch;
            for (int i = m_HasDownloadDoneCount; i < m_PatchKeyList.Count; ++i)
            {
                var result           = 0;
                var downloadProgress = 0f;
                var url         = m_PatchesMap[m_PatchKeyList[i]].PatchPath;
                var downloadDir = UGCoreConfig.GetExternalDownloadFolder() + "/Patches";
                var localPath   = Path.Combine(downloadDir, m_PatchKeyList[i]);
                if (!Directory.Exists(downloadDir))
                {
                    Directory.CreateDirectory(downloadDir);
                }

                LoadingUI.Instance.ShowLoadingTip(string.Format(LoadingLanguageData.Instance.GetString(14), (i + 1), m_PatchKeyList.Count, 0));
                LoadingUI.Instance.PushLoadTaskProgressDelta(1);
                LoadingUI.Instance.SetLoadingBarProgress(0);
                HttpDownloadUtility.DownloadFileAsync(url, localPath, (progress) =>
                {
                    downloadProgress = progress;
                },
                                                      () =>
                {
                    ++m_HasDownloadDoneCount;
                    result = 1;
                },
                                                      () =>
                {
                    result = 2;
                });

                while (result == 0)
                {
                    LoadingUI.Instance.ShowLoadingTip(string.Format(LoadingLanguageData.Instance.GetString(14), (i + 1),
                                                                    m_PatchKeyList.Count, (int)downloadProgress));
                    LoadingUI.Instance.SetLoadingBarProgress(downloadProgress * 0.01f);
                    yield return(null);
                }

                if (result == 1)
                {
                    LoadingUI.Instance.ShowLoadingTip(string.Format(LoadingLanguageData.Instance.GetString(14), (i + 1),
                                                                    m_PatchKeyList.Count, 100));
                    LoadingUI.Instance.SetLoadingBarProgress(1);
                    LoadingUI.Instance.PopLoadTaskProgressDelta();
                }
                else if (result == 2)
                {
                    m_CoroutineWorkflow.AddFirst("ShowDownlaodPatchesError", ShowDownlaodPatchesError);
                    yield break;
                }
                yield return(null);
            }

            m_HasDownloadDoneCount = 0;
            m_CoroutineWorkflow.AddFirst("UncompressPatches", UncompressPatches);
        }
コード例 #2
0
        protected IEnumerator DownloadApk()
        {
            var result           = 0;
            var downloadProgress = 0f;
            var apkDir           = UGCoreConfig.GetExternalDownloadFolder() + "/Apk/";
            var apkPath          = apkDir + Path.GetFileName(GameRuntimeInfo.RemoteControlConfig.ApkInfo.ApkPath);

            if (!Directory.Exists(apkDir))
            {
                Directory.CreateDirectory(apkDir);
            }

            LoadingUI.Instance.ShowLoadingTip(string.Format(LoadingLanguageData.Instance.GetString(23), 0));
            LoadingUI.Instance.PushLoadTaskProgressDelta(1);
            LoadingUI.Instance.SetLoadingBarProgress(0);
            HttpDownloadUtility.DownloadFileAsync(GameRuntimeInfo.RemoteControlConfig.ApkInfo.ApkPath, apkPath,
                                                  (progress) =>
            {
                downloadProgress = progress;
            },
                                                  () =>
            {
                result = 1;
            },
                                                  () =>
            {
                result = 2;
            });

            while (result == 0)
            {
                LoadingUI.Instance.ShowLoadingTip(string.Format(LoadingLanguageData.Instance.GetString(23), (int)downloadProgress));
                LoadingUI.Instance.SetLoadingBarProgress(downloadProgress * 0.01f);
                yield return(null);
            }

            if (result == 1)
            {
                LoadingUI.Instance.ShowLoadingTip(string.Format(LoadingLanguageData.Instance.GetString(23), 100));
                LoadingUI.Instance.SetLoadingBarProgress(1);
                LoadingUI.Instance.PopLoadTaskProgressDelta();

                AndroidUtility.InstallApk(apkPath, true);
            }
            else if (result == 2)
            {
                m_CoroutineWorkflow.AddFirst("DownloadApkError", DownloadApkError);
                yield break;
            }
            yield return(null);
        }