Initial commit
This commit is contained in:
457
sources/com/ubt/jimu/blockly/dao/BlocklyProjectDbHandler.java
Normal file
457
sources/com/ubt/jimu/blockly/dao/BlocklyProjectDbHandler.java
Normal file
@@ -0,0 +1,457 @@
|
||||
package com.ubt.jimu.blockly.dao;
|
||||
|
||||
import android.text.TextUtils;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.ubt.jimu.JimuApplication;
|
||||
import com.ubt.jimu.base.cache.Cache;
|
||||
import com.ubt.jimu.base.db.AbstractDaoHandler;
|
||||
import com.ubt.jimu.base.db.DatabaseUtils;
|
||||
import com.ubt.jimu.blockly.Utils;
|
||||
import com.ubt.jimu.blockly.bean.BlocklyProject;
|
||||
import com.ubt.jimu.diy.DiyRobotDbHandler;
|
||||
import com.ubt.jimu.gen.BlocklyProjectDao;
|
||||
import com.ubt.jimu.gen.TransportFileDao;
|
||||
import com.ubt.jimu.transport.Transporter;
|
||||
import com.ubt.jimu.transport.dao.TransportFileDbHandler;
|
||||
import com.ubt.jimu.transport3.dao.TransportFileDbHandler2;
|
||||
import com.ubt.jimu.unity.ModelType;
|
||||
import com.ubt.jimu.utils.ExternalOverFroyoUtils;
|
||||
import com.ubt.jimu.utils.JsonHelper;
|
||||
import com.ubtech.utils.FileHelper;
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import org.greenrobot.greendao.AbstractDao;
|
||||
import org.greenrobot.greendao.query.QueryBuilder;
|
||||
import org.greenrobot.greendao.query.WhereCondition;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
public class BlocklyProjectDbHandler extends AbstractDaoHandler<BlocklyProject> {
|
||||
private static BlocklyProjectDbHandler blocklyProjectDbHandler;
|
||||
|
||||
public BlocklyProjectDbHandler(BlocklyProjectDao blocklyProjectDao) {
|
||||
super(blocklyProjectDao);
|
||||
}
|
||||
|
||||
public static synchronized BlocklyProjectDbHandler getInstance() {
|
||||
BlocklyProjectDbHandler blocklyProjectDbHandler2;
|
||||
synchronized (BlocklyProjectDbHandler.class) {
|
||||
if (blocklyProjectDbHandler == null) {
|
||||
blocklyProjectDbHandler = new BlocklyProjectDbHandler(DatabaseUtils.getDaoSession(true).a());
|
||||
}
|
||||
blocklyProjectDbHandler2 = blocklyProjectDbHandler;
|
||||
}
|
||||
return blocklyProjectDbHandler2;
|
||||
}
|
||||
|
||||
public static List<BlocklyProject> getProjects(String str, String str2, int i) {
|
||||
ArrayList arrayList;
|
||||
updateToVersion3(str, str2, i);
|
||||
BlocklyProjectDbHandler blocklyProjectDbHandler2 = new BlocklyProjectDbHandler(DatabaseUtils.getDaoSession(true).a());
|
||||
ArrayList arrayList2 = new ArrayList();
|
||||
if (i == ModelType.DEFAULT.getType()) {
|
||||
String str3 = ExternalOverFroyoUtils.a(JimuApplication.l(), ModelType.DEFAULT) + str2 + File.separator + str2 + Utils.BLOCKLY_ADD_PATH + File.separator + str2 + ".config";
|
||||
if (new File(str3).exists() && (arrayList = (ArrayList) JsonHelper.a(FileHelper.b(str3, ""), new TypeToken<List<BlocklyProject>>() { // from class: com.ubt.jimu.blockly.dao.BlocklyProjectDbHandler.1
|
||||
}.getType())) != null && arrayList.size() > 0) {
|
||||
Iterator it = arrayList.iterator();
|
||||
while (it.hasNext()) {
|
||||
((BlocklyProject) it.next()).setBlocklyType("newBlockly");
|
||||
}
|
||||
arrayList2.addAll(arrayList);
|
||||
}
|
||||
}
|
||||
List<BlocklyProject> blocklyProjects = blocklyProjectDbHandler2.getBlocklyProjects(str, String.valueOf(i), str2);
|
||||
if (blocklyProjects != null && blocklyProjects.size() > 0) {
|
||||
ArrayList arrayList3 = new ArrayList();
|
||||
String str4 = DiyRobotDbHandler.getCustomModelPath() + str2 + File.separator + str2;
|
||||
if (ModelType.DEFAULT.getType() == i) {
|
||||
str4 = DiyRobotDbHandler.getDefaultModelPath() + str2 + File.separator + str2;
|
||||
}
|
||||
for (BlocklyProject blocklyProject : blocklyProjects) {
|
||||
String str5 = str4 + File.separator + blocklyProject.getXmlId() + ".xml";
|
||||
if ("newBlockly".equals(blocklyProject.getBlocklyType())) {
|
||||
str5 = str4 + Utils.BLOCKLY_ADD_PATH + File.separator + blocklyProject.getXmlId() + ".xml";
|
||||
}
|
||||
if (!new File(str5).exists()) {
|
||||
arrayList3.add(blocklyProject);
|
||||
}
|
||||
}
|
||||
if (arrayList3.size() > 0) {
|
||||
blocklyProjects.removeAll(arrayList3);
|
||||
}
|
||||
arrayList2.addAll(blocklyProjects);
|
||||
}
|
||||
return arrayList2;
|
||||
}
|
||||
|
||||
private static void updateToVersion3(String str, String str2, int i) {
|
||||
ArrayList arrayList;
|
||||
String str3 = (ModelType.DEFAULT.getType() == i ? DiyRobotDbHandler.getDefaultModelPath(str) : DiyRobotDbHandler.getCustomModelPath(str)) + str2 + File.separator + str2 + File.separator + str2 + ".config";
|
||||
File file = new File(str3);
|
||||
if (!file.exists() || (arrayList = (ArrayList) JsonHelper.a(FileHelper.b(str3, ""), new TypeToken<List<BlocklyProject>>() { // from class: com.ubt.jimu.blockly.dao.BlocklyProjectDbHandler.2
|
||||
}.getType())) == null || arrayList.size() == 0) {
|
||||
return;
|
||||
}
|
||||
BlocklyProjectDbHandler blocklyProjectDbHandler2 = new BlocklyProjectDbHandler(DatabaseUtils.getDaoSession(true).a());
|
||||
Iterator it = arrayList.iterator();
|
||||
while (it.hasNext()) {
|
||||
BlocklyProject blocklyProject = (BlocklyProject) it.next();
|
||||
blocklyProject.setUserId(str);
|
||||
blocklyProject.setCustomModelId(str2);
|
||||
blocklyProject.setModelType(String.valueOf(i));
|
||||
blocklyProject.setIsDeleted("0");
|
||||
if (!"blockly".equals(blocklyProject.getBlocklyType()) && !"newBlockly".equals(blocklyProject.getBlocklyType())) {
|
||||
blocklyProject.setBlocklyType("blockly");
|
||||
}
|
||||
}
|
||||
blocklyProjectDbHandler2.insertOrUpdateInTx(arrayList);
|
||||
Transporter.b().a(file);
|
||||
file.delete();
|
||||
}
|
||||
|
||||
public boolean deleteBlocklyProject(String str) {
|
||||
if (TextUtils.isEmpty(str)) {
|
||||
return false;
|
||||
}
|
||||
String userId = Cache.getInstance().getUserId();
|
||||
if (TextUtils.isEmpty(userId)) {
|
||||
userId = "local";
|
||||
}
|
||||
QueryBuilder k = this.dao.k();
|
||||
k.a(BlocklyProjectDao.Properties.UserId.a((Object) userId), BlocklyProjectDao.Properties.XmlId.a((Object) str));
|
||||
BlocklyProject blocklyProject = (BlocklyProject) k.c();
|
||||
if (blocklyProject == null) {
|
||||
return false;
|
||||
}
|
||||
this.dao.b((AbstractDao<T, Long>) blocklyProject);
|
||||
return true;
|
||||
}
|
||||
|
||||
public void deleteModelBlocklyProjects(String str, int i, String str2) {
|
||||
QueryBuilder<BlocklyProject> queryBuilder = getQueryBuilder();
|
||||
queryBuilder.a(BlocklyProjectDao.Properties.UserId.a((Object) str), BlocklyProjectDao.Properties.ModelType.a(Integer.valueOf(i)), BlocklyProjectDao.Properties.CustomModelId.a((Object) str2));
|
||||
List<BlocklyProject> query = query(queryBuilder);
|
||||
if (query == null || query.size() == 0) {
|
||||
return;
|
||||
}
|
||||
deleteInTx(query);
|
||||
Iterator<BlocklyProject> it = query.iterator();
|
||||
while (it.hasNext()) {
|
||||
try {
|
||||
File file = TransportFileDbHandler.getFile(TransportFileDbHandler2.newBlocklyProjectFile(it.next()));
|
||||
if (file != null && file.exists()) {
|
||||
file.delete();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public BlocklyProject getBlocklyByXml(String str) {
|
||||
String userId = Cache.getInstance().getUserId();
|
||||
if (TextUtils.isEmpty(userId)) {
|
||||
userId = "local";
|
||||
}
|
||||
try {
|
||||
QueryBuilder k = this.dao.k();
|
||||
k.a(BlocklyProjectDao.Properties.UserId.a((Object) userId), BlocklyProjectDao.Properties.XmlId.a((Object) str));
|
||||
return (BlocklyProject) k.c();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public List<BlocklyProject> getBlocklyProject(String str) {
|
||||
List<BlocklyProject> list;
|
||||
try {
|
||||
QueryBuilder k = this.dao.k();
|
||||
k.a(BlocklyProjectDao.Properties.UserId.a((Object) str), new WhereCondition[0]);
|
||||
list = k.b();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
list = null;
|
||||
}
|
||||
return list == null ? new ArrayList() : list;
|
||||
}
|
||||
|
||||
public List<BlocklyProject> getBlocklyProjects(String str, String str2, String str3) {
|
||||
List<BlocklyProject> list;
|
||||
try {
|
||||
QueryBuilder k = this.dao.k();
|
||||
k.a(BlocklyProjectDao.Properties.UserId.a((Object) str), BlocklyProjectDao.Properties.ModelType.a((Object) str2), BlocklyProjectDao.Properties.CustomModelId.a((Object) str3), BlocklyProjectDao.Properties.IsDeleted.d("1"));
|
||||
k.b(BlocklyProjectDao.Properties.XmlId);
|
||||
list = k.b();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
list = null;
|
||||
}
|
||||
return list == null ? new ArrayList() : list;
|
||||
}
|
||||
|
||||
public String getDefaultXmlName(String str, String str2, String str3, String str4) {
|
||||
List<BlocklyProject> blocklyProjects = getBlocklyProjects(str2, str3, str4);
|
||||
if (blocklyProjects == null || blocklyProjects.size() == 0 || TextUtils.isEmpty(str)) {
|
||||
return str + "1";
|
||||
}
|
||||
int[] iArr = new int[blocklyProjects.size()];
|
||||
int i = 0;
|
||||
for (BlocklyProject blocklyProject : blocklyProjects) {
|
||||
if (blocklyProject.getXmlName().startsWith(str)) {
|
||||
String substring = blocklyProject.getXmlName().substring(str.length(), blocklyProject.getXmlName().length());
|
||||
if (TextUtils.isDigitsOnly(substring) && !TextUtils.isEmpty(substring)) {
|
||||
iArr[i] = Integer.parseInt(substring);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
return Utils.getDefaultName(iArr, i, str);
|
||||
}
|
||||
|
||||
public List<BlocklyProject> getModifyBlocklyOfflineData() {
|
||||
String userId = Cache.getInstance().getUserId();
|
||||
if (TextUtils.isEmpty(userId)) {
|
||||
userId = "local";
|
||||
}
|
||||
try {
|
||||
QueryBuilder k = this.dao.k();
|
||||
k.a(BlocklyProjectDao.Properties.UserId.a((Object) userId), BlocklyProjectDao.Properties.ModelId.b(0), BlocklyProjectDao.Properties.IsFirst.a((Object) 1), BlocklyProjectDao.Properties.IsModify.a((Object) 1), BlocklyProjectDao.Properties.IsUploadService.a((Object) 0));
|
||||
return k.b();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public List<BlocklyProject> getQiNiuBlocklyProject() {
|
||||
List<BlocklyProject> list;
|
||||
String userId = Cache.getInstance().getUserId();
|
||||
if (TextUtils.isEmpty(userId)) {
|
||||
userId = "local";
|
||||
}
|
||||
try {
|
||||
QueryBuilder k = this.dao.k();
|
||||
k.a(BlocklyProjectDao.Properties.UserId.a((Object) userId), BlocklyProjectDao.Properties.ModelId.b(0), BlocklyProjectDao.Properties.IsDeleted.a((Object) 0), BlocklyProjectDao.Properties.IsFirst.a((Object) 0), BlocklyProjectDao.Properties.IsUploadService.a((Object) 0), BlocklyProjectDao.Properties.IsUploadQiNiu.a((Object) 0));
|
||||
list = k.b();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
list = null;
|
||||
}
|
||||
if (list == null) {
|
||||
return null;
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public List<BlocklyProject> getServiceBlocklyProject() {
|
||||
List<BlocklyProject> list;
|
||||
String userId = Cache.getInstance().getUserId();
|
||||
if (TextUtils.isEmpty(userId)) {
|
||||
userId = "local";
|
||||
}
|
||||
try {
|
||||
QueryBuilder k = this.dao.k();
|
||||
k.a(BlocklyProjectDao.Properties.UserId.a((Object) userId), BlocklyProjectDao.Properties.ModelId.b(0), BlocklyProjectDao.Properties.IsUploadQiNiu.a((Object) 1), BlocklyProjectDao.Properties.IsFirst.a((Object) 0), BlocklyProjectDao.Properties.IsUploadService.a((Object) 0));
|
||||
list = k.b();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
list = null;
|
||||
}
|
||||
if (list == null) {
|
||||
return null;
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public BlocklyProject getSyncBlocklyByXml(String str) {
|
||||
String userId = Cache.getInstance().getUserId();
|
||||
if (TextUtils.isEmpty(userId)) {
|
||||
userId = "local";
|
||||
}
|
||||
try {
|
||||
QueryBuilder k = this.dao.k();
|
||||
k.a(BlocklyProjectDao.Properties.UserId.a((Object) userId), BlocklyProjectDao.Properties.XmlId.a((Object) str), BlocklyProjectDao.Properties.IsFirst.a((Object) 1));
|
||||
return (BlocklyProject) k.c();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isFirs(String str, int i) {
|
||||
BlocklyProject blocklyByXml;
|
||||
if (TextUtils.isEmpty(str) || (blocklyByXml = getBlocklyByXml(str)) == null) {
|
||||
return false;
|
||||
}
|
||||
blocklyByXml.setIsFirst(i);
|
||||
update(blocklyByXml);
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean isFirstUpload(String str, boolean z) {
|
||||
BlocklyProject blocklyProject;
|
||||
String userId = Cache.getInstance().getUserId();
|
||||
if (TextUtils.isEmpty(userId)) {
|
||||
userId = "local";
|
||||
}
|
||||
try {
|
||||
QueryBuilder k = this.dao.k();
|
||||
k.a(TransportFileDao.Properties.UserId.a((Object) userId), TransportFileDao.Properties.FilePath.a((Object) str));
|
||||
blocklyProject = (BlocklyProject) k.c();
|
||||
} catch (Exception e) {
|
||||
e.getMessage();
|
||||
blocklyProject = null;
|
||||
}
|
||||
if (blocklyProject == null) {
|
||||
return false;
|
||||
}
|
||||
if (z) {
|
||||
blocklyProject.setId(1L);
|
||||
} else {
|
||||
blocklyProject.setId(0L);
|
||||
}
|
||||
update(blocklyProject);
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean isNameExist(BlocklyProject blocklyProject) {
|
||||
try {
|
||||
QueryBuilder k = this.dao.k();
|
||||
k.a(BlocklyProjectDao.Properties.XmlName.a((Object) blocklyProject.getXmlName()), BlocklyProjectDao.Properties.ModelType.a((Object) blocklyProject.getModelType()), BlocklyProjectDao.Properties.CustomModelId.a((Object) blocklyProject.getCustomModelId()), BlocklyProjectDao.Properties.IsDeleted.d("1"), BlocklyProjectDao.Properties.UserId.a((Object) blocklyProject.getUserId()));
|
||||
List<BlocklyProject> b = k.b();
|
||||
if (b == null || b.size() <= 0) {
|
||||
return false;
|
||||
}
|
||||
for (BlocklyProject blocklyProject2 : b) {
|
||||
if (!"1".equals(blocklyProject2.getIsDeleted()) && !blocklyProject2.getXmlId().equals(blocklyProject.getXmlId())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean setDeleteState(String str, boolean z) {
|
||||
BlocklyProject blocklyByXml;
|
||||
if (TextUtils.isEmpty(str) || (blocklyByXml = getBlocklyByXml(str)) == null) {
|
||||
return false;
|
||||
}
|
||||
if (z) {
|
||||
blocklyByXml.setIsDeleted("1");
|
||||
} else {
|
||||
blocklyByXml.setIsDeleted("0");
|
||||
}
|
||||
update(blocklyByXml);
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean setQiNiuUplaodState(String str, boolean z) {
|
||||
BlocklyProject blocklyByXml;
|
||||
if (TextUtils.isEmpty(str) || (blocklyByXml = getBlocklyByXml(str)) == null) {
|
||||
return false;
|
||||
}
|
||||
blocklyByXml.setUploadQiNiu(z);
|
||||
update(blocklyByXml);
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean setServiceUplaodState(String str, boolean z) {
|
||||
BlocklyProject blocklyByXml;
|
||||
if (TextUtils.isEmpty(str) || (blocklyByXml = getBlocklyByXml(str)) == null) {
|
||||
return false;
|
||||
}
|
||||
blocklyByXml.setUploadService(z);
|
||||
update(blocklyByXml);
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean setsetModifyState(String str, boolean z) {
|
||||
BlocklyProject blocklyByXml;
|
||||
if (TextUtils.isEmpty(str) || (blocklyByXml = getBlocklyByXml(str)) == null) {
|
||||
return false;
|
||||
}
|
||||
blocklyByXml.setModify(z);
|
||||
update(blocklyByXml);
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean updateBlocklyState(String str, boolean z) {
|
||||
if (TextUtils.isEmpty(str)) {
|
||||
return false;
|
||||
}
|
||||
String userId = Cache.getInstance().getUserId();
|
||||
if (TextUtils.isEmpty(userId)) {
|
||||
userId = "local";
|
||||
}
|
||||
QueryBuilder k = this.dao.k();
|
||||
k.a(BlocklyProjectDao.Properties.UserId.a((Object) userId), BlocklyProjectDao.Properties.XmlId.a((Object) str), BlocklyProjectDao.Properties.IsDeleted.d("1"));
|
||||
BlocklyProject blocklyProject = (BlocklyProject) k.c();
|
||||
if (blocklyProject == null) {
|
||||
return false;
|
||||
}
|
||||
blocklyProject.setIsModify(z);
|
||||
update(blocklyProject);
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean updateUbtSyncState(String str, boolean z) {
|
||||
BlocklyProject blocklyProject;
|
||||
String userId = Cache.getInstance().getUserId();
|
||||
if (TextUtils.isEmpty(userId)) {
|
||||
userId = "local";
|
||||
}
|
||||
try {
|
||||
QueryBuilder k = this.dao.k();
|
||||
k.a(TransportFileDao.Properties.UserId.a((Object) userId), TransportFileDao.Properties.FilePath.a((Object) str));
|
||||
blocklyProject = (BlocklyProject) k.c();
|
||||
} catch (Exception e) {
|
||||
e.getMessage();
|
||||
blocklyProject = null;
|
||||
}
|
||||
if (blocklyProject == null) {
|
||||
return false;
|
||||
}
|
||||
blocklyProject.setIsModify(z);
|
||||
update(blocklyProject);
|
||||
return true;
|
||||
}
|
||||
|
||||
public void uploadUserIdAndModelId(String str, int i) {
|
||||
String userId = Cache.getInstance().getUserId();
|
||||
if (i <= 0) {
|
||||
return;
|
||||
}
|
||||
QueryBuilder k = this.dao.k();
|
||||
k.a(BlocklyProjectDao.Properties.CustomModelId.a((Object) str), BlocklyProjectDao.Properties.IsUploadQiNiu.a((Object) 0), BlocklyProjectDao.Properties.IsUploadService.a((Object) 0));
|
||||
List<BlocklyProject> query = query(k);
|
||||
if (query == null || query.size() == 0) {
|
||||
return;
|
||||
}
|
||||
for (BlocklyProject blocklyProject : query) {
|
||||
blocklyProject.setUserId(userId);
|
||||
blocklyProject.setModelId(i);
|
||||
insertOrUpdate(blocklyProject);
|
||||
}
|
||||
}
|
||||
|
||||
@Override // com.ubt.jimu.base.db.AbstractDaoHandler, com.ubt.jimu.base.db.IDaoHandler
|
||||
public BlocklyProject selectUnique(BlocklyProject blocklyProject) {
|
||||
return getBlocklyProject(blocklyProject.getUserId(), blocklyProject.getModelType(), blocklyProject.getCustomModelId(), blocklyProject.getXmlId());
|
||||
}
|
||||
|
||||
public BlocklyProject getBlocklyProject(String str, String str2, String str3, String str4) {
|
||||
try {
|
||||
QueryBuilder k = this.dao.k();
|
||||
k.a(BlocklyProjectDao.Properties.UserId.a((Object) str), BlocklyProjectDao.Properties.ModelType.a((Object) str2), BlocklyProjectDao.Properties.CustomModelId.a((Object) str3), BlocklyProjectDao.Properties.XmlId.a((Object) str4));
|
||||
return (BlocklyProject) k.c();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user