/// <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)); }
/// <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)); }