jimu-decompiled/sources/com/ubt/jimu/base/download/Downloader.java
2025-05-13 19:24:51 +02:00

493 lines
24 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.ubt.jimu.base.download;
import android.content.Context;
import android.text.TextUtils;
import com.liulishuo.filedownloader.BaseDownloadTask;
import com.ubt.jimu.JimuApplication;
import com.ubt.jimu.base.cache.Cache;
import com.ubt.jimu.base.cache.Constants;
import com.ubt.jimu.base.db.DatabaseUtils;
import com.ubt.jimu.base.db.FileDownloadRecordDbHandler;
import com.ubt.jimu.base.db.course.JimuCourseDbHandler;
import com.ubt.jimu.base.db.diy.DiyDetailsDbHandler;
import com.ubt.jimu.base.db.diy.DiyRobotFileDbDandler;
import com.ubt.jimu.base.db.robot.FirmwareVersionDbHandler;
import com.ubt.jimu.base.db.robot.PartFileInfoDbHandler;
import com.ubt.jimu.base.db.robot.RobotDbHandler;
import com.ubt.jimu.base.entities.FileDownloadRecord;
import com.ubt.jimu.base.entities.FirmwareVersion;
import com.ubt.jimu.base.entities.PartFileInfo;
import com.ubt.jimu.base.entities.Robot;
import com.ubt.jimu.base.entities.Story;
import com.ubt.jimu.course.repository.JimuCourse;
import com.ubt.jimu.diy.DiyRobotFile;
import com.ubt.jimu.diy.model.DiyDetailsModel;
import com.ubt.jimu.unity.ModelType;
import com.ubt.jimu.utils.ExternalOverFroyoUtils;
import com.ubt.jimu.utils.LocaleUtils;
import com.ubt.jimu.utils.NetWorkUtil;
import com.ubtech.utils.FileHelper;
import com.ubtech.utils.ThreadExecutor;
import com.ubtrobot.log.ALog;
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.concurrent.Callable;
/* loaded from: classes.dex */
public class Downloader {
private static final String TAG = "Downloader";
public interface IDownloadJimuRobotListener {
void onFailed();
void onPrepareStart();
void onProgress(int i, int i2, int i3);
void onSuccess();
}
public static final DownloadTask downloadDiy(final DiyDetailsModel diyDetailsModel, final List<DiyRobotFile> list, final IDownloadJimuRobotListener iDownloadJimuRobotListener) {
if (list == null || list.size() == 0) {
if (iDownloadJimuRobotListener != null) {
iDownloadJimuRobotListener.onFailed();
}
return null;
}
try {
return (DownloadTask) ThreadExecutor.a().a(new Callable<DownloadTask>() { // from class: com.ubt.jimu.base.download.Downloader.1
/* JADX WARN: Can't rename method to resolve collision */
@Override // java.util.concurrent.Callable
public DownloadTask call() throws Exception {
String valueOf = TextUtils.isEmpty(DiyDetailsModel.this.getCustomModelId()) ? String.valueOf(DiyDetailsModel.this.getId()) : DiyDetailsModel.this.getCustomModelId();
List<DiyRobotFile> queryDiyRobotFile = DiyRobotFileDbDandler.queryDiyRobotFile(valueOf);
final ArrayList arrayList = new ArrayList();
if (queryDiyRobotFile == null || queryDiyRobotFile.size() == 0) {
arrayList.addAll(list);
} else {
for (DiyRobotFile diyRobotFile : list) {
int i = 0;
while (true) {
if (i >= queryDiyRobotFile.size()) {
break;
}
DiyRobotFile diyRobotFile2 = queryDiyRobotFile.get(i);
if (diyRobotFile.getFileName().equals(diyRobotFile2.getFileName()) && diyRobotFile.getFileType() == diyRobotFile2.getFileType()) {
if (diyRobotFile.getUpdateDate() > diyRobotFile2.getUpdateDate()) {
arrayList.add(diyRobotFile);
}
if (!DiyRobotFile.exists(diyRobotFile)) {
arrayList.add(diyRobotFile);
}
} else {
i++;
}
}
if (i == queryDiyRobotFile.size()) {
arrayList.add(diyRobotFile);
}
}
}
if (arrayList.size() == 0) {
IDownloadJimuRobotListener iDownloadJimuRobotListener2 = iDownloadJimuRobotListener;
if (iDownloadJimuRobotListener2 != null) {
iDownloadJimuRobotListener2.onSuccess();
}
return null;
}
List<DownloadInfo> needDownloadDiyRobotFile = DownloadInfo.getNeedDownloadDiyRobotFile(valueOf, arrayList);
if (needDownloadDiyRobotFile == null || needDownloadDiyRobotFile.size() == 0) {
IDownloadJimuRobotListener iDownloadJimuRobotListener3 = iDownloadJimuRobotListener;
if (iDownloadJimuRobotListener3 != null) {
iDownloadJimuRobotListener3.onFailed();
}
return null;
}
DownloadTask downloadTask = new DownloadTask(needDownloadDiyRobotFile, new IJimuFileDownloadListener() { // from class: com.ubt.jimu.base.download.Downloader.1.1
@Override // com.ubt.jimu.base.download.IJimuFileDownloadListener
public void onBlockComplete(BaseDownloadTask baseDownloadTask) {
Cache.getInstance().getSettings().put(Constants.KEY_PROGRAM_LANGUAGE, LocaleUtils.b());
for (DiyRobotFile diyRobotFile3 : arrayList) {
if (baseDownloadTask.getUrl().equals(diyRobotFile3.getFileUrl())) {
DiyRobotFileDbDandler.saveOrUpdate(diyRobotFile3);
return;
}
}
}
@Override // com.ubt.jimu.base.download.IJimuFileDownloadListener
public void onCompleted() {
try {
DiyDetailsModel.this.setDownload(true);
new DiyDetailsDbHandler(DatabaseUtils.getDaoSession(false).e()).insertOrUpdate(DiyDetailsModel.this);
if (iDownloadJimuRobotListener != null) {
iDownloadJimuRobotListener.onProgress(1, 1, 100);
iDownloadJimuRobotListener.onSuccess();
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override // com.ubt.jimu.base.download.IJimuFileDownloadListener
public void onFailed(Throwable th) {
IDownloadJimuRobotListener iDownloadJimuRobotListener4 = iDownloadJimuRobotListener;
if (iDownloadJimuRobotListener4 != null) {
iDownloadJimuRobotListener4.onFailed();
}
}
@Override // com.ubt.jimu.base.download.IJimuFileDownloadListener
public void onProgress(int i2, int i3, int i4) {
IDownloadJimuRobotListener iDownloadJimuRobotListener4 = iDownloadJimuRobotListener;
if (iDownloadJimuRobotListener4 != null) {
iDownloadJimuRobotListener4.onProgress(i2, i3, i4);
}
}
});
IDownloadJimuRobotListener iDownloadJimuRobotListener4 = iDownloadJimuRobotListener;
if (iDownloadJimuRobotListener4 != null) {
iDownloadJimuRobotListener4.onPrepareStart();
}
downloadTask.start();
return downloadTask;
}
}).get();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public static DownloadTask downloadFirmware(final Context context, final List<FirmwareVersion> list, final IDownloadJimuRobotListener iDownloadJimuRobotListener) {
if (list == null) {
return null;
}
List<DownloadInfo> needDownloadFirmware = DownloadInfo.getNeedDownloadFirmware(context, list);
if (needDownloadFirmware == null || needDownloadFirmware.size() == 0) {
if (iDownloadJimuRobotListener != null) {
ALog.a(TAG).d("没有固件需要下载");
iDownloadJimuRobotListener.onSuccess();
}
return null;
}
DownloadTask downloadTask = new DownloadTask(needDownloadFirmware, new IJimuFileDownloadListener() { // from class: com.ubt.jimu.base.download.Downloader.4
private void deleteFirmware(Context context2, FirmwareVersion firmwareVersion) {
File parentFile = new File(FirmwareVersion.getPath(context2, firmwareVersion)).getParentFile();
if (parentFile.exists()) {
FileHelper.a(parentFile);
ALog.a(Downloader.TAG).d("删除已下载的固件:" + parentFile.getAbsolutePath());
}
}
@Override // com.ubt.jimu.base.download.IJimuFileDownloadListener
public void onBlockComplete(BaseDownloadTask baseDownloadTask) {
String url = baseDownloadTask.getUrl();
for (FirmwareVersion firmwareVersion : list) {
if (url.equals(firmwareVersion.getVersionPath())) {
if (FileHelper.a(firmwareVersion.getVersionCRCCode(), FirmwareVersion.getPath(context, firmwareVersion))) {
FirmwareVersionDbHandler.getInstance().insertOrUpdate(firmwareVersion);
return;
} else {
deleteFirmware(context, firmwareVersion);
return;
}
}
}
}
@Override // com.ubt.jimu.base.download.IJimuFileDownloadListener
public void onCompleted() {
IDownloadJimuRobotListener iDownloadJimuRobotListener2 = IDownloadJimuRobotListener.this;
if (iDownloadJimuRobotListener2 != null) {
iDownloadJimuRobotListener2.onProgress(1, 1, 100);
IDownloadJimuRobotListener.this.onSuccess();
}
ALog.a(Downloader.TAG).d("固件下载完成");
}
@Override // com.ubt.jimu.base.download.IJimuFileDownloadListener
public void onFailed(Throwable th) {
ALog.a(Downloader.TAG).d("固件下载失败");
FirmwareVersionDbHandler.getInstance().deleteInTx(list);
Iterator it = list.iterator();
while (it.hasNext()) {
deleteFirmware(context, (FirmwareVersion) it.next());
}
IDownloadJimuRobotListener iDownloadJimuRobotListener2 = IDownloadJimuRobotListener.this;
if (iDownloadJimuRobotListener2 != null) {
iDownloadJimuRobotListener2.onFailed();
}
}
@Override // com.ubt.jimu.base.download.IJimuFileDownloadListener
public void onProgress(int i, int i2, int i3) {
ALog.a(Downloader.TAG).d("总数:" + i + " 当前:" + i2 + " 进度:" + i3);
IDownloadJimuRobotListener iDownloadJimuRobotListener2 = IDownloadJimuRobotListener.this;
if (iDownloadJimuRobotListener2 != null) {
iDownloadJimuRobotListener2.onProgress(i, i2, i3);
}
}
});
downloadTask.start();
if (iDownloadJimuRobotListener != null) {
iDownloadJimuRobotListener.onPrepareStart();
ALog.a(TAG).d("开始下载固件");
}
return downloadTask;
}
public static DownloadTask downloadJimuCourse(final JimuCourse jimuCourse, final IDownloadJimuRobotListener iDownloadJimuRobotListener) {
if (jimuCourse == null) {
return null;
}
List<DownloadInfo> needDownloadCourse = DownloadInfo.getNeedDownloadCourse(jimuCourse);
if (needDownloadCourse == null || needDownloadCourse.size() == 0) {
iDownloadJimuRobotListener.onSuccess();
return null;
}
DownloadTask downloadTask = new DownloadTask(needDownloadCourse, new IJimuFileDownloadListener() { // from class: com.ubt.jimu.base.download.Downloader.3
@Override // com.ubt.jimu.base.download.IJimuFileDownloadListener
public void onBlockComplete(BaseDownloadTask baseDownloadTask) {
File file = new File(baseDownloadTask.w());
File file2 = new File(file.getParent() + File.separator + jimuCourse.getId());
if (file2.exists()) {
FileHelper.a(file2);
}
try {
FileHelper.a(baseDownloadTask.w(), file.getParent() + File.separator + jimuCourse.getId(), true);
file.delete();
JimuCourseDbHandler.updateAllUserCourseDownloaded(jimuCourse, true);
} catch (Exception e) {
e.printStackTrace();
ALog.a(Downloader.TAG).d("解压JimuCourse失败");
IDownloadJimuRobotListener iDownloadJimuRobotListener2 = IDownloadJimuRobotListener.this;
if (iDownloadJimuRobotListener2 != null) {
iDownloadJimuRobotListener2.onFailed();
}
}
}
@Override // com.ubt.jimu.base.download.IJimuFileDownloadListener
public void onCompleted() {
IDownloadJimuRobotListener iDownloadJimuRobotListener2 = IDownloadJimuRobotListener.this;
if (iDownloadJimuRobotListener2 != null) {
iDownloadJimuRobotListener2.onProgress(1, 1, 100);
IDownloadJimuRobotListener.this.onSuccess();
}
}
@Override // com.ubt.jimu.base.download.IJimuFileDownloadListener
public void onFailed(Throwable th) {
IDownloadJimuRobotListener iDownloadJimuRobotListener2 = IDownloadJimuRobotListener.this;
if (iDownloadJimuRobotListener2 != null) {
iDownloadJimuRobotListener2.onFailed();
}
}
@Override // com.ubt.jimu.base.download.IJimuFileDownloadListener
public void onProgress(int i, int i2, int i3) {
IDownloadJimuRobotListener iDownloadJimuRobotListener2 = IDownloadJimuRobotListener.this;
if (iDownloadJimuRobotListener2 != null) {
iDownloadJimuRobotListener2.onProgress(i, i2, i3);
}
}
});
if (iDownloadJimuRobotListener != null) {
iDownloadJimuRobotListener.onPrepareStart();
}
downloadTask.start();
return downloadTask;
}
public static DownloadTask downloadJimuRobot(final Robot robot, final IDownloadJimuRobotListener iDownloadJimuRobotListener) {
final ArrayList arrayList = new ArrayList();
DownloadInfo needDownloadModelInfo = DownloadInfo.getNeedDownloadModelInfo(robot);
if (needDownloadModelInfo != null) {
arrayList.add(needDownloadModelInfo);
}
List<DownloadInfo> newDownloadPartsInfo = DownloadInfo.getNewDownloadPartsInfo(robot);
if (newDownloadPartsInfo == null) {
if (iDownloadJimuRobotListener != null) {
iDownloadJimuRobotListener.onFailed();
}
return null;
}
if (newDownloadPartsInfo.size() > 0) {
arrayList.addAll(newDownloadPartsInfo);
}
if (arrayList.size() == 0) {
if (iDownloadJimuRobotListener != null) {
iDownloadJimuRobotListener.onSuccess();
}
return null;
}
DownloadTask downloadTask = new DownloadTask(arrayList, new IJimuFileDownloadListener() { // from class: com.ubt.jimu.base.download.Downloader.2
@Override // com.ubt.jimu.base.download.IJimuFileDownloadListener
public void onBlockComplete(BaseDownloadTask baseDownloadTask) {
if (baseDownloadTask.a() == null || !(baseDownloadTask.a() instanceof Integer)) {
return;
}
int intValue = ((Integer) baseDownloadTask.a()).intValue();
if (intValue == 0) {
Downloader.onModelBlockComplete(robot, baseDownloadTask);
return;
}
if (intValue == 1) {
Downloader.onPartBlockComplete(robot, baseDownloadTask);
} else if (intValue == 2) {
Downloader.onStoryCommonBlockComplete(robot, baseDownloadTask);
} else if (intValue == 3 || intValue != 4) {
}
}
@Override // com.ubt.jimu.base.download.IJimuFileDownloadListener
public void onCompleted() {
FileDownloadRecordDbHandler.writeRecord(robot.getModelId(), robot.getJarUrl(), (ExternalOverFroyoUtils.a(JimuApplication.l(), ModelType.DEFAULT) + robot.getModelName()) + ".zip", FileDownloadRecord.Type.Robot.getValue(), robot.getModelUpdateTime());
IDownloadJimuRobotListener iDownloadJimuRobotListener2 = IDownloadJimuRobotListener.this;
if (iDownloadJimuRobotListener2 != null) {
iDownloadJimuRobotListener2.onProgress(arrayList.size(), arrayList.size(), 100);
IDownloadJimuRobotListener.this.onSuccess();
}
}
@Override // com.ubt.jimu.base.download.IJimuFileDownloadListener
public void onFailed(Throwable th) {
IDownloadJimuRobotListener iDownloadJimuRobotListener2 = IDownloadJimuRobotListener.this;
if (iDownloadJimuRobotListener2 != null) {
iDownloadJimuRobotListener2.onFailed();
}
}
@Override // com.ubt.jimu.base.download.IJimuFileDownloadListener
public void onProgress(int i, int i2, int i3) {
IDownloadJimuRobotListener iDownloadJimuRobotListener2 = IDownloadJimuRobotListener.this;
if (iDownloadJimuRobotListener2 != null) {
iDownloadJimuRobotListener2.onProgress(i, i2, i3);
}
}
});
downloadTask.start();
if (iDownloadJimuRobotListener != null) {
iDownloadJimuRobotListener.onPrepareStart();
}
return downloadTask;
}
public static DownloadTask downloadStarCourse(final Story story, final IDownloadJimuRobotListener iDownloadJimuRobotListener) {
if (story == null) {
return null;
}
if (story.getIsLocked() > 0) {
if (iDownloadJimuRobotListener != null) {
iDownloadJimuRobotListener.onFailed();
}
return null;
}
final Context applicationContext = JimuApplication.l().getApplicationContext();
List<DownloadInfo> needDownloadStory = DownloadInfo.getNeedDownloadStory(applicationContext, story);
if (needDownloadStory == null || needDownloadStory.size() == 0) {
if (iDownloadJimuRobotListener != null) {
iDownloadJimuRobotListener.onSuccess();
}
return null;
}
if (!NetWorkUtil.b(applicationContext)) {
if (iDownloadJimuRobotListener != null) {
iDownloadJimuRobotListener.onFailed();
}
return null;
}
DownloadTask downloadTask = new DownloadTask(needDownloadStory, new IJimuFileDownloadListener() { // from class: com.ubt.jimu.base.download.Downloader.5
@Override // com.ubt.jimu.base.download.IJimuFileDownloadListener
public void onBlockComplete(BaseDownloadTask baseDownloadTask) {
Downloader.onStarCourseBlockComplete(Long.valueOf(story.getId()).longValue(), baseDownloadTask.getUrl(), Story.getSdcardSavePath(applicationContext, story.getResourceZip()), story.getUpdateTime());
}
@Override // com.ubt.jimu.base.download.IJimuFileDownloadListener
public void onCompleted() {
ALog.a(Downloader.TAG).d("文件下载成功:");
IDownloadJimuRobotListener iDownloadJimuRobotListener2 = IDownloadJimuRobotListener.this;
if (iDownloadJimuRobotListener2 != null) {
iDownloadJimuRobotListener2.onProgress(1, 1, 100);
IDownloadJimuRobotListener.this.onSuccess();
}
}
@Override // com.ubt.jimu.base.download.IJimuFileDownloadListener
public void onFailed(Throwable th) {
ALog.a(Downloader.TAG).d("文件下载失败:");
IDownloadJimuRobotListener iDownloadJimuRobotListener2 = IDownloadJimuRobotListener.this;
if (iDownloadJimuRobotListener2 != null) {
iDownloadJimuRobotListener2.onFailed();
}
}
@Override // com.ubt.jimu.base.download.IJimuFileDownloadListener
public void onProgress(int i, int i2, int i3) {
IDownloadJimuRobotListener iDownloadJimuRobotListener2 = IDownloadJimuRobotListener.this;
if (iDownloadJimuRobotListener2 != null) {
iDownloadJimuRobotListener2.onProgress(i, i2, i3);
}
ALog.a(Downloader.TAG).d("totalCount" + i + " current:" + i2 + " progress:" + i3);
}
});
if (iDownloadJimuRobotListener != null) {
iDownloadJimuRobotListener.onPrepareStart();
}
downloadTask.start();
return downloadTask;
}
/* JADX INFO: Access modifiers changed from: private */
public static void onModelBlockComplete(Robot robot, BaseDownloadTask baseDownloadTask) {
File file = new File(baseDownloadTask.w());
File file2 = new File(file.getParent() + File.separator + robot.getModelName());
if (file2.exists()) {
FileHelper.a(file2);
}
try {
FileHelper.a(baseDownloadTask.w(), file.getParent(), true);
robot.setDownload(true);
RobotDbHandler.setRobotDownloadState(robot);
file.delete();
} catch (Exception e) {
e.printStackTrace();
}
}
/* JADX INFO: Access modifiers changed from: private */
public static void onPartBlockComplete(Robot robot, BaseDownloadTask baseDownloadTask) {
for (PartFileInfo partFileInfo : robot.getComponentsFileInfos()) {
if (baseDownloadTask.getUrl().equals(partFileInfo.getAndroidFilePath())) {
new PartFileInfoDbHandler(DatabaseUtils.getDaoSession(true).r()).insertOrUpdate((PartFileInfoDbHandler) partFileInfo);
return;
}
}
}
/* JADX INFO: Access modifiers changed from: private */
public static void onStarCourseBlockComplete(long j, String str, String str2, long j2) {
File file = new File(str2);
String substring = str2.substring(str2.lastIndexOf("/") + 1, str2.lastIndexOf("."));
String parent = file.getParent();
File file2 = new File(parent, substring);
if (file2.exists()) {
file2.delete();
}
try {
FileHelper.a(str2, parent, true);
file.delete();
FileDownloadRecordDbHandler.writeRecord(j, str, str2, FileDownloadRecord.Type.Star_Course.getValue(), j2);
} catch (Exception e) {
e.printStackTrace();
}
}
/* JADX INFO: Access modifiers changed from: private */
public static void onStoryCommonBlockComplete(Robot robot, BaseDownloadTask baseDownloadTask) {
}
}