package com.kescoode.xmail.db.internal; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.os.Looper; import com.kescoode.adk.log.Logger; import com.kescoode.xmail.db.*; import java.util.ArrayList; import java.util.List; /** * 数据库管理类,主要负责创建和升级 * * @author Kesco Lin */ public class DBManager extends SQLiteOpenHelper { private final List<DataDelegate> tables = new ArrayList<>(); public DBManager(Context context, String name, int version) { /* 目前CursorFactory和ErrorHandler都没想到具体用途,所以在构造方法上去掉 */ super(context, name, null, version); tables.add(new AccountDao(context)); tables.add(new AttachmentDao(context)); tables.add(new EmailConfigDao(context)); tables.add(new EmailDao(context)); tables.add(new FolderDao(context)); } @Override public void onCreate(SQLiteDatabase db) { for (DataDelegate delegate : tables) { delegate.onCreate(db); } } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { for (DataDelegate delegate : tables) { delegate.onUpgrade(db, oldVersion, newVersion); } } }