ChannelDbHelper.java 3.72 KB
package com.wd.room;

import android.content.Context;

import com.wd.room.dao.ChannelDao;
import com.wd.room.entity.ChannelBean;

import java.util.ArrayList;
import java.util.List;


/**
 * 需要异步操作数据库
 *
 * @author : wd
 * @since: 2023/3/10
 */
public class ChannelDbHelper {


    public static ChannelDbHelper instance;
    /**
     * 不对外暴露
     */
    private static ChannelDao dao;


    public static ChannelDbHelper getInstance(Context context){
        if (null == instance){
            synchronized (ChannelDbHelper.class){
                if (null == instance){
                    instance = new ChannelDbHelper();
                    build(context);
                }
            }
        }
        return instance;
    }


    private static void build(Context context){
        dao = RoomUtils.getInstance().getChannelDao(context);
    }

    public synchronized void save(List<ChannelBean> channelEntities) {

        try{
            dao.insertOrUpdate(channelEntities);
        }catch (IllegalStateException e){
           e.printStackTrace();
        }
    }

//    public synchronized List<ChannelBean> searchAllSelectLocalChannel() {
//        try{
//            return dao.queryAllBySelectCategoryType(1,"3");
//        }catch (IllegalStateException e){
//            return new ArrayList<>();
//        }
//    }

    /**
     *  查询“我的频道”栏目所有频道数据
     * @return
     */
    public synchronized List<ChannelBean> searchAllSelectChannel() {
        try{
            return dao.queryAllBySelect(1);
        }catch (IllegalStateException e){
            return new ArrayList<>();
        }
    }

    /**
     *  查询 非我的频道 栏目频道数据
     * @return
     */
    public synchronized List<ChannelBean> searchAllUnSelectChannel() {
        try{
            return dao.queryAllBySelect(0);
        }catch (IllegalStateException e){
            return new ArrayList<>();
        }
    }



//    public synchronized List<ChannelBean> searchAllUnSelectRightChannel() {
//        try{
//            return dao.queryAllBySelectUnCategoryType(0,"3");
//        }catch (IllegalStateException e){
//            return new ArrayList<>();
//        }
//    }

    public synchronized void deleteAll() {
        try{
            dao.clear();
        }catch (IllegalStateException e){
            e.printStackTrace();
        }
    }

//    public synchronized List<ChannelBean> searchAllLeftChannel() {
//        try{
//            return dao.searchAllByCategoryType("3");
//        }catch (IllegalStateException e){
//            return new ArrayList<>();
//        }
//    }
//
//    public synchronized List<ChannelBean> searchChannelByName(String name) {
//        try{
//            return  dao.searchChannelByName(name);
//        }catch (IllegalStateException e){
//            return new ArrayList<>();
//        }
//    }
//
//    public synchronized ChannelBean searchLeftChannelById(String channelId) {
//        try{
//            return dao.searchByIdCategoryType(channelId,"3");
//        }catch (IllegalStateException e){
//            return null;
//        }
//    }

//    public synchronized List<ChannelBean> searchAllUnSelectLeftChannel() {
//        try{
//            return dao.queryAllBySelectCategoryType(0,"3");
//        }catch (IllegalStateException e){
//            return new ArrayList<>();
//        }
//    }

    public synchronized boolean hasData(){
        try{
            return null != dao.getFisrtData();
        }catch (IllegalStateException e){
            return false;
        }
    }

    public synchronized List<ChannelBean> getData(){
        try{
            return dao.getData();
        }catch (IllegalStateException e){
            return new ArrayList<>();
        }
    }
}