339 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			339 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
package com.ubt.jimu.blockly.dao;
 | 
						|
 | 
						|
import android.text.TextUtils;
 | 
						|
import android.util.Log;
 | 
						|
import com.google.gson.reflect.TypeToken;
 | 
						|
import com.ubt.jimu.JimuApplication;
 | 
						|
import com.ubt.jimu.base.cache.Cache;
 | 
						|
import com.ubt.jimu.base.cache.SharePreferenceHelper;
 | 
						|
import com.ubt.jimu.base.db.AbstractDaoHandler;
 | 
						|
import com.ubt.jimu.base.db.DatabaseUtils;
 | 
						|
import com.ubt.jimu.blockly.JimuRobot;
 | 
						|
import com.ubt.jimu.blockly.Utils;
 | 
						|
import com.ubt.jimu.blockly.bean.JimuSound;
 | 
						|
import com.ubt.jimu.blockly.feature.audio.AudioParams;
 | 
						|
import com.ubt.jimu.gen.JimuSoundDao;
 | 
						|
import com.ubt.jimu.transport.Transporter;
 | 
						|
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.ubt.jimu.utils.LogUtils;
 | 
						|
import com.ubtech.utils.FileHelper;
 | 
						|
import java.io.File;
 | 
						|
import java.util.ArrayList;
 | 
						|
import java.util.List;
 | 
						|
import org.greenrobot.greendao.query.QueryBuilder;
 | 
						|
import org.greenrobot.greendao.query.WhereCondition;
 | 
						|
 | 
						|
/* loaded from: classes.dex */
 | 
						|
public class JimuSoundDbHandler extends AbstractDaoHandler<JimuSound> {
 | 
						|
    private static final String TAG = "JimuSoundDbHandler";
 | 
						|
    private static JimuSoundDbHandler instance;
 | 
						|
 | 
						|
    public JimuSoundDbHandler(JimuSoundDao jimuSoundDao) {
 | 
						|
        super(jimuSoundDao);
 | 
						|
    }
 | 
						|
 | 
						|
    public static synchronized JimuSoundDbHandler getInstance() {
 | 
						|
        JimuSoundDbHandler jimuSoundDbHandler;
 | 
						|
        synchronized (JimuSoundDbHandler.class) {
 | 
						|
            if (instance == null) {
 | 
						|
                instance = new JimuSoundDbHandler(DatabaseUtils.getDaoSession(true).p());
 | 
						|
            }
 | 
						|
            jimuSoundDbHandler = instance;
 | 
						|
        }
 | 
						|
        return jimuSoundDbHandler;
 | 
						|
    }
 | 
						|
 | 
						|
    public static void update2Version3() {
 | 
						|
        String[] list;
 | 
						|
        SharePreferenceHelper sharePreferenceHelper = new SharePreferenceHelper();
 | 
						|
        if (sharePreferenceHelper.getBoolean("jimu_sound_update", true).booleanValue()) {
 | 
						|
            String str = ExternalOverFroyoUtils.a(JimuApplication.l(), (ModelType) null) + "users" + File.separator;
 | 
						|
            File file = new File(str);
 | 
						|
            if (!file.exists() || (list = file.list()) == null || list.length == 0) {
 | 
						|
                return;
 | 
						|
            }
 | 
						|
            JimuSoundDbHandler jimuSoundDbHandler = new JimuSoundDbHandler(DatabaseUtils.getDaoSession(true).p());
 | 
						|
            for (String str2 : list) {
 | 
						|
                String str3 = str + str2 + File.separator + TransportFileDbHandler2.DIR_SOUNDS + File.separator + JimuRobot.SOUNDS;
 | 
						|
                List<JimuSound> list2 = (List) JsonHelper.a(FileHelper.b(str3, ""), new TypeToken<List<JimuSound>>() { // from class: com.ubt.jimu.blockly.dao.JimuSoundDbHandler.2
 | 
						|
                }.getType());
 | 
						|
                if (list2 != null && list2.size() != 0) {
 | 
						|
                    for (JimuSound jimuSound : list2) {
 | 
						|
                        jimuSound.setUserId(str2);
 | 
						|
                        jimuSound.setIsDeleted("0");
 | 
						|
                    }
 | 
						|
                    try {
 | 
						|
                        jimuSoundDbHandler.insertOrUpdateInTx(list2);
 | 
						|
                        new File(str3).delete();
 | 
						|
                    } catch (Exception e) {
 | 
						|
                        e.printStackTrace();
 | 
						|
                        Log.e(TAG, "迁移用户:" + str2 + " 的录音数据到数据表失败:" + e.getMessage());
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
            sharePreferenceHelper.put("jimu_sound_update", false);
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    public boolean deleteJimuSound(JimuSound jimuSound) {
 | 
						|
        JimuSound jimuSound2;
 | 
						|
        if (jimuSound == null || (jimuSound2 = getJimuSound(jimuSound)) == null) {
 | 
						|
            return false;
 | 
						|
        }
 | 
						|
        delete(jimuSound2);
 | 
						|
        File file = new File(jimuSound.getLocalFilePath());
 | 
						|
        if (file.exists()) {
 | 
						|
            file.delete();
 | 
						|
        }
 | 
						|
        String parent = file.getParent();
 | 
						|
        LogUtils.c("path:" + parent);
 | 
						|
        File file2 = new File(parent);
 | 
						|
        if (!file2.exists() || !file2.isDirectory()) {
 | 
						|
            return true;
 | 
						|
        }
 | 
						|
        file2.delete();
 | 
						|
        return true;
 | 
						|
    }
 | 
						|
 | 
						|
    public String getDefaultSoundName(String str, String str2) {
 | 
						|
        List<JimuSound> jimuSounds = getJimuSounds(str);
 | 
						|
        if (jimuSounds == null || jimuSounds.size() == 0 || TextUtils.isEmpty(str2)) {
 | 
						|
            return str2 + "1";
 | 
						|
        }
 | 
						|
        ArrayList arrayList = new ArrayList();
 | 
						|
        for (JimuSound jimuSound : jimuSounds) {
 | 
						|
            if ("1".equals(jimuSound.getIsDeleted())) {
 | 
						|
                arrayList.add(jimuSound);
 | 
						|
            }
 | 
						|
        }
 | 
						|
        if (arrayList.size() > 0) {
 | 
						|
            jimuSounds.removeAll(arrayList);
 | 
						|
        }
 | 
						|
        int[] iArr = new int[jimuSounds.size()];
 | 
						|
        int i = 0;
 | 
						|
        for (JimuSound jimuSound2 : jimuSounds) {
 | 
						|
            if (jimuSound2.getDescription().startsWith(str2)) {
 | 
						|
                String substring = jimuSound2.getDescription().substring(str2.length(), jimuSound2.getDescription().length());
 | 
						|
                if (TextUtils.isDigitsOnly(substring) && !TextUtils.isEmpty(substring)) {
 | 
						|
                    iArr[i] = Integer.parseInt(substring);
 | 
						|
                    i++;
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        return Utils.getDefaultName(iArr, i, str2);
 | 
						|
    }
 | 
						|
 | 
						|
    public JimuSound getJimuSound(JimuSound jimuSound) {
 | 
						|
        String userId = Cache.getInstance().getUserId();
 | 
						|
        if (TextUtils.isEmpty(userId)) {
 | 
						|
            userId = "local";
 | 
						|
        }
 | 
						|
        try {
 | 
						|
            QueryBuilder k = this.dao.k();
 | 
						|
            if (!TextUtils.isEmpty(jimuSound.getAudioId())) {
 | 
						|
                k.a(JimuSoundDao.Properties.UserId.a((Object) userId), JimuSoundDao.Properties.AudioId.a((Object) jimuSound.getAudioId()), JimuSoundDao.Properties.IsDeleted.a((Object) 0));
 | 
						|
            } else {
 | 
						|
                if (TextUtils.isEmpty(jimuSound.getKey())) {
 | 
						|
                    return null;
 | 
						|
                }
 | 
						|
                k.a(JimuSoundDao.Properties.UserId.a((Object) userId), JimuSoundDao.Properties.IsDeleted.a((Object) 0), JimuSoundDao.Properties.Key.a((Object) jimuSound.getKey()));
 | 
						|
            }
 | 
						|
            return (JimuSound) k.c();
 | 
						|
        } catch (Exception e) {
 | 
						|
            e.printStackTrace();
 | 
						|
            return null;
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    public List<JimuSound> getJimuSounds(String str) {
 | 
						|
        List<JimuSound> list;
 | 
						|
        try {
 | 
						|
            QueryBuilder k = this.dao.k();
 | 
						|
            k.a(JimuSoundDao.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<JimuSound> getOfflineQiNiuFile() {
 | 
						|
        String userId = Cache.getInstance().getUserId();
 | 
						|
        if (TextUtils.isEmpty(userId)) {
 | 
						|
            userId = "local";
 | 
						|
        }
 | 
						|
        List<JimuSound> list = null;
 | 
						|
        try {
 | 
						|
            QueryBuilder k = this.dao.k();
 | 
						|
            k.a(JimuSoundDao.Properties.UserId.a((Object) userId), JimuSoundDao.Properties.IsUploadQiNiu.a((Object) 0), JimuSoundDao.Properties.IsSyncUbtService.a((Object) 0));
 | 
						|
            list = k.b();
 | 
						|
        } catch (Exception e) {
 | 
						|
            e.printStackTrace();
 | 
						|
        }
 | 
						|
        return list == null ? new ArrayList() : list;
 | 
						|
    }
 | 
						|
 | 
						|
    public List<JimuSound> getOfflineServiceFile() {
 | 
						|
        String userId = Cache.getInstance().getUserId();
 | 
						|
        if (TextUtils.isEmpty(userId)) {
 | 
						|
            userId = "local";
 | 
						|
        }
 | 
						|
        List<JimuSound> list = null;
 | 
						|
        try {
 | 
						|
            QueryBuilder k = this.dao.k();
 | 
						|
            k.a(JimuSoundDao.Properties.UserId.a((Object) userId), JimuSoundDao.Properties.IsUploadQiNiu.a((Object) 1), JimuSoundDao.Properties.IsSyncUbtService.a((Object) 0));
 | 
						|
            list = k.b();
 | 
						|
        } catch (Exception e) {
 | 
						|
            e.printStackTrace();
 | 
						|
        }
 | 
						|
        return list == null ? new ArrayList() : list;
 | 
						|
    }
 | 
						|
 | 
						|
    public boolean insertOrUpdateFromService(JimuSound jimuSound) {
 | 
						|
        if (jimuSound == null) {
 | 
						|
            return false;
 | 
						|
        }
 | 
						|
        if (TextUtils.isEmpty(jimuSound.getAudioId()) && TextUtils.isEmpty(jimuSound.getKey())) {
 | 
						|
            return false;
 | 
						|
        }
 | 
						|
        JimuSound jimuSound2 = getJimuSound(jimuSound);
 | 
						|
        if (jimuSound2 != null) {
 | 
						|
            jimuSound2.setLastUploadTime(jimuSound.getLastUploadTime());
 | 
						|
            jimuSound2.setAudioId(jimuSound.getAudioId());
 | 
						|
            jimuSound2.setDescription(jimuSound.getDescription());
 | 
						|
            jimuSound2.setDuration(jimuSound.getDuration());
 | 
						|
            jimuSound2.setIsDeleted("0");
 | 
						|
            jimuSound2.setIsSyncUbtService(true);
 | 
						|
            jimuSound2.setIsUploadQiNiu(true);
 | 
						|
            insertOrUpdate(jimuSound2);
 | 
						|
        } else {
 | 
						|
            JimuSound jimuSound3 = new JimuSound();
 | 
						|
            jimuSound3.setUserId(jimuSound.getUserId());
 | 
						|
            jimuSound3.setIsDeleted("0");
 | 
						|
            jimuSound3.setKey(jimuSound.getAudioId());
 | 
						|
            jimuSound3.setIsSyncUbtService(true);
 | 
						|
            jimuSound3.setIsUploadQiNiu(true);
 | 
						|
            jimuSound3.setDescription(jimuSound.getDescription());
 | 
						|
            jimuSound3.setDuration(jimuSound.getDuration());
 | 
						|
            jimuSound3.setIsSyncUbtService(true);
 | 
						|
            jimuSound3.setIsUploadQiNiu(true);
 | 
						|
            jimuSound3.setType(jimuSound.getType());
 | 
						|
            jimuSound3.setLastUploadTime(jimuSound.getLastUploadTime());
 | 
						|
            jimuSound3.setAudioId(jimuSound.getAudioId());
 | 
						|
            insertOrUpdate(jimuSound3);
 | 
						|
        }
 | 
						|
        return true;
 | 
						|
    }
 | 
						|
 | 
						|
    public boolean nameExist(String str, String str2) {
 | 
						|
        List<JimuSound> jimuSounds = getJimuSounds(str);
 | 
						|
        if (jimuSounds != null && jimuSounds.size() != 0) {
 | 
						|
            for (JimuSound jimuSound : jimuSounds) {
 | 
						|
                if (jimuSound.getDescription().equals(str2) && !"1".equals(jimuSound.getIsDeleted())) {
 | 
						|
                    return true;
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        return false;
 | 
						|
    }
 | 
						|
 | 
						|
    public boolean updateJimuSoundUbtServiceState(JimuSound jimuSound, boolean z) {
 | 
						|
        JimuSound selectUnique;
 | 
						|
        if (jimuSound == null || (selectUnique = selectUnique(jimuSound)) == null) {
 | 
						|
            return false;
 | 
						|
        }
 | 
						|
        selectUnique.setSyncUbtService(z);
 | 
						|
        insertOrUpdate(selectUnique);
 | 
						|
        return true;
 | 
						|
    }
 | 
						|
 | 
						|
    public boolean updateQiNiuSyncState(JimuSound jimuSound, boolean z) {
 | 
						|
        JimuSound selectUnique;
 | 
						|
        if (jimuSound == null || (selectUnique = selectUnique(jimuSound)) == null) {
 | 
						|
            return false;
 | 
						|
        }
 | 
						|
        selectUnique.setUploadQiNiu(z);
 | 
						|
        insertOrUpdate(selectUnique);
 | 
						|
        return true;
 | 
						|
    }
 | 
						|
 | 
						|
    public void updateToVersion3(String str, String str2) {
 | 
						|
        String str3 = str + JimuRobot.SOUNDS;
 | 
						|
        File file = new File(str3);
 | 
						|
        if (file.exists()) {
 | 
						|
            List<JimuSound> list = (List) JsonHelper.a(FileHelper.b(str3, ""), new TypeToken<List<JimuSound>>() { // from class: com.ubt.jimu.blockly.dao.JimuSoundDbHandler.1
 | 
						|
            }.getType());
 | 
						|
            if (list == null || list.size() == 0) {
 | 
						|
                Transporter.b().a(file);
 | 
						|
                file.delete();
 | 
						|
                return;
 | 
						|
            }
 | 
						|
            for (JimuSound jimuSound : list) {
 | 
						|
                jimuSound.setUserId(str2);
 | 
						|
                if ("1".equals(jimuSound.getIsDeleted())) {
 | 
						|
                    jimuSound.setIsDeleted(jimuSound.getIsDeleted());
 | 
						|
                }
 | 
						|
            }
 | 
						|
            try {
 | 
						|
                insertOrUpdateInTx(list);
 | 
						|
                Transporter.b().a(file);
 | 
						|
                file.delete();
 | 
						|
            } catch (Exception e) {
 | 
						|
                e.getMessage();
 | 
						|
                Log.e(TAG, "updateToVersion3 on error: " + e.getMessage());
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    public boolean uploadDeleteState(JimuSound jimuSound, boolean z) {
 | 
						|
        JimuSound selectUnique;
 | 
						|
        if (jimuSound == null || (selectUnique = selectUnique(jimuSound)) == null) {
 | 
						|
            return false;
 | 
						|
        }
 | 
						|
        selectUnique.setIsDeleted(z ? "1" : "0");
 | 
						|
        update(jimuSound);
 | 
						|
        return true;
 | 
						|
    }
 | 
						|
 | 
						|
    @Override // com.ubt.jimu.base.db.AbstractDaoHandler, com.ubt.jimu.base.db.IDaoHandler
 | 
						|
    public JimuSound selectUnique(JimuSound jimuSound) {
 | 
						|
        return getJimuSound(jimuSound.getUserId(), jimuSound.getKey());
 | 
						|
    }
 | 
						|
 | 
						|
    public List<JimuSound> getJimuSounds(String str, String str2) {
 | 
						|
        updateToVersion3(str, str2);
 | 
						|
        List<JimuSound> jimuSounds = getJimuSounds(str2);
 | 
						|
        ArrayList arrayList = new ArrayList();
 | 
						|
        if (jimuSounds != null && jimuSounds.size() != 0) {
 | 
						|
            for (JimuSound jimuSound : jimuSounds) {
 | 
						|
                if (!"1".equals(jimuSound.getIsDeleted())) {
 | 
						|
                    String key = jimuSound.getKey();
 | 
						|
                    if (TextUtils.isEmpty(key)) {
 | 
						|
                        key = jimuSound.getAudioId();
 | 
						|
                    }
 | 
						|
                    File file = new File(str + key + File.separator + key + AudioParams.AAC);
 | 
						|
                    if (file.exists() && file.isFile()) {
 | 
						|
                        arrayList.add(jimuSound);
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        return arrayList;
 | 
						|
    }
 | 
						|
 | 
						|
    public JimuSound getJimuSound(String str, String str2) {
 | 
						|
        try {
 | 
						|
            QueryBuilder k = this.dao.k();
 | 
						|
            k.a(JimuSoundDao.Properties.UserId.a((Object) str), JimuSoundDao.Properties.Key.a((Object) str2));
 | 
						|
            return (JimuSound) k.c();
 | 
						|
        } catch (Exception e) {
 | 
						|
            e.printStackTrace();
 | 
						|
            return null;
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |