示例#1
0
        /// <summary>
        /// 加载更新内容
        /// </summary>
        public uint AddDiffManifestTask(FileManifest mainifest1, FileManifest mainifest2, System.Action <LoadingEventArg> onProgress, System.Action <bool> onComplete)
        {
            if (mainifest1 == null)
            {
                return(0);
            }
            var spliteExtension = Hugula.HugulaSetting.instance.spliteExtensionFolder; //启动了分离

            var           loadInfos = mainifest1.CompareFileManifest(mainifest2);
            List <ABInfo> re        = new List <ABInfo> ();

            foreach (var abInfo in loadInfos)
            {
                if (!spliteExtension)
                {
                    re.Add(abInfo);
                }
                else if (abInfo.priority <= FileManifestOptions.AutoHotPriority)   //非自动下载级别
                {
                    re.Add(abInfo);
                }
                else if (FileHelper.PersistentFileExists(abInfo.abName))    //存在表示已经下载过但是版本不对
                {
                    re.Add(abInfo);
                }
            }

            re.Sort(abInfoCompare);

            return(AddTask(re, FileManifestOptions.FirstLoadPriority, onProgress, onComplete));
        }
示例#2
0
        /// <summary>
        /// 加载first pack 包和更新内容
        /// </summary>
        public uint AddFirstManifestTask(FileManifest mainifest1, FileManifest mainifest2, System.Action <LoadingEventArg> onProgress, System.Action <bool> onComplete)
        {
            if (mainifest1 == null)
            {
                return(0);
            }

            List <ABInfo>             re    = new List <ABInfo> ();
            Dictionary <string, bool> added = new Dictionary <string, bool> ();
            var    localABInfos             = mainifest1.allAbInfo;
            var    diffABInfos = mainifest1.CompareFileManifest(mainifest2); //mainifest2.appNumVersion - mainifest1.appNumVersion >= 0;
            ABInfo abInfo;

            for (int i = 0; i < diffABInfos.Count; i++)
            {
                abInfo = diffABInfos[i];
                re.Add(abInfo);
                added[abInfo.abName] = true;
            }

            for (int i = 0; i < localABInfos.Count; i++)
            {
                abInfo = localABInfos[i];
                if (abInfo.priority >= FileManifestOptions.FirstLoadPriority &&
                    abInfo.priority < FileManifestOptions.AutoHotPriority && !added.ContainsKey(abInfo.abName))  //首包下载内容
                {
                    re.Add(abInfo);
                }
            }
            added.Clear();

            re.Sort(abInfoCompare);

            return(AddTask(re, FileManifestOptions.FirstLoadPriority, onProgress, onComplete));
        }