Exemplo n.º 1
0
    protected void notifyVersionDownloaded(FileWrap versionFile)
    {
        // 版本文件下载完毕后,提示是否有新版本可以更新
        string versionString = FileUtility.openTxtFile(CommonDefine.VERSION);
        bool   hasNewVersion = false;

        if (versionString == "")
        {
            hasNewVersion = true;
        }
        else
        {
            string remoteVersion = BinaryUtility.bytesToString(versionFile.getFileData());
            hasNewVersion = remoteVersion != versionString;
        }
        if (hasNewVersion)
        {
            setState(UPGRADE_STATE.US_WAIT_FOR_UPGRADE);
        }
        else
        {
            done();
        }
        mEditorCore.sendDelayEvent(CORE_EVENT_TYPE.CET_NEW_VERSION, StringUtility.boolToString(hasNewVersion));
    }
Exemplo n.º 2
0
    protected void notifyFileListDownloaded(FileWrap listFile)
    {
        // 列表文件下载完毕,解析列表
        setState(UPGRADE_STATE.US_PARSING_REMOTE_FILE_LIST);
        string listContent = BinaryUtility.bytesToString(listFile.getFileData());

        parseRemoteFileList(listContent);
        setState(UPGRADE_STATE.US_GENERATE_LOCAL_FILE);
        // 检查本地文件
        getLocalFileList();
        // 如果在检查本地文件过程中取消了,则直接返回
        if (mCancel)
        {
            setState(UPGRADE_STATE.US_NONE);
            return;
        }

        // 判断出需要更新的文件
        setState(UPGRADE_STATE.US_GENERATE_MODIFIED_FILE);
        // 然后下载修改过和新增的文件
        mModifiedList = generateModifiedFile(mRemoteFileList, mLocalFileList, mIgnorePathList);
        setState(UPGRADE_STATE.US_DOWNLOADING_REMOTE_FILE);
        if (mModifiedList.Count() == 0)
        {
            // 如果有临时目录,则将临时目录中的所有文件替换到游戏目录
            notifyAllDownloaded();
            mEditorCore.sendDelayEvent(CORE_EVENT_TYPE.CET_NOTHING_UPDATE);
            done();
        }
        else
        {
            // 计算所有需要下载的文件的大小
            mTotalSize = 0.0f;
            foreach (var item in mModifiedList)
            {
                mTotalSize = mTotalSize + item.Value.mFileSize;
            }
            // 开始下载所有文件,并且开始计时
            mCurTimeCount = 0.0f;
            foreach (var item in mModifiedList)
            {
                // 如果临时文件存在,表示之前没下载成功,暂时删除临时文件
                // 如果实现断点续传时需要获取临时文件的大小
                long offset = 0;
                if (FileUtility.isFileExist(CommonDefine.TEMP_PATH + item.Key + CommonDefine.TEMP_FILE_EXTENSION))
                {
                    offset = FileUtility.getFileSize(CommonDefine.TEMP_PATH + item.Key + CommonDefine.TEMP_FILE_EXTENSION);
                }
                repuestDownload(item.Key, offset);
            }
        }
    }
Exemplo n.º 3
0
    protected void notifyVersionDownloaded(FileWrap versionFile)
    {
        // 版本文件下载完毕后,提示是否有新版本可以更新
        string localUpdateInfo  = "";
        string localVersion     = getVersionFromFile(FileUtility.openTxtFile(CommonDefine.VERSION), ref localUpdateInfo);
        string remoteUpdateInfo = "";
        string remoteVersion    = getVersionFromFile(BinaryUtility.bytesToString(versionFile.getFileData()), ref remoteUpdateInfo);
        bool   hasNewVersion    = remoteVersion != localVersion;

        if (hasNewVersion)
        {
            setState(UPGRADE_STATE.US_WAIT_FOR_UPGRADE);
        }
        else
        {
            done();
        }
        List <string> paramList = new List <string>();

        paramList.Add(StringUtility.boolToString(hasNewVersion));
        paramList.Add(remoteUpdateInfo);
        mEditorCore.sendDelayEvent(CORE_EVENT_TYPE.CET_NEW_VERSION, paramList);
    }