package com.yamin.reader.database; import java.util.ArrayList; import android.content.ContentResolver; import android.content.ContentValues; import android.database.Cursor; import android.net.Uri; import com.yamin.reader.model.Book; public class DbDataOperation { public static ArrayList<Book> getBookInfo(ContentResolver resolver) { ArrayList<Book> bookList = new ArrayList<Book>(); Book book; Cursor cursor = resolver.query(Uri.parse(DbTags.URI_TABLE_BOOK_INFO), null, null, null, null); while (cursor.moveToNext()) { book = new Book(); book.setBookId(Integer.parseInt(getFieldContent(cursor, DbTags.FIELD_BOOK_ID))); book.setBookName(getFieldContent(cursor, DbTags.FIELD_BOOK_NAME)); book.setBookAuthor(getFieldContent(cursor, DbTags.FIELD_BOOK_AUTHOR)); book.setBookPath(getFieldContent(cursor, DbTags.FIELD_BOOK_PATH)); book.setBookAddTime(getFieldContent(cursor, DbTags.FIELD_BOOK_ADD_TIME)); book.setBookOpenTime(getFieldContent(cursor, DbTags.FIELD_BOOK_OPEN_TIME)); book.setBookCategoryId(Integer.parseInt(getFieldContent(cursor, DbTags.FIELD_BOOK_CATEGORY_ID))); book.setBookCategroyName(getFieldContent(cursor, DbTags.FIELD_BOOK_CATEGORY_NAME)); book.setBookSize(getFieldContent(cursor, DbTags.FIELD_BOOK_SIZE)); book.setBookProgress(getFieldContent(cursor, DbTags.FIELD_BOOK_PROGRESS)); bookList.add(book); } cursor.close(); return bookList; } public static ArrayList<Book> queryFilterBooks(ContentResolver resolver, String tag, String key) { ArrayList<Book> bookList = new ArrayList<Book>(); Book book; Cursor cursor = resolver.query(Uri.parse(DbTags.URI_TABLE_BOOK_INFO), null, tag + "=?", new String[] { key + "" }, null); while (cursor.moveToNext()) { book = new Book(); book.setBookId(Integer.parseInt(getFieldContent(cursor, DbTags.FIELD_BOOK_ID))); book.setBookName(getFieldContent(cursor, DbTags.FIELD_BOOK_NAME)); book.setBookAuthor(getFieldContent(cursor, DbTags.FIELD_BOOK_AUTHOR)); book.setBookPath(getFieldContent(cursor, DbTags.FIELD_BOOK_PATH)); book.setBookAddTime(getFieldContent(cursor, DbTags.FIELD_BOOK_ADD_TIME)); book.setBookOpenTime(getFieldContent(cursor, DbTags.FIELD_BOOK_OPEN_TIME)); book.setBookCategoryId(Integer.parseInt(getFieldContent(cursor, DbTags.FIELD_BOOK_CATEGORY_ID))); book.setBookCategroyName(getFieldContent(cursor, DbTags.FIELD_BOOK_CATEGORY_NAME)); book.setBookSize(getFieldContent(cursor, DbTags.FIELD_BOOK_SIZE)); book.setBookProgress(getFieldContent(cursor, DbTags.FIELD_BOOK_PROGRESS)); bookList.add(book); } cursor.close(); return bookList; } public static ArrayList<Book> queryBooksFav(ContentResolver resolver) { ArrayList<Book> bookList = new ArrayList<Book>(); Book book; Cursor cursor = resolver.query(Uri.parse(DbTags.URI_TABLE_BOOK_FAV),null, null, null, null); while (cursor.moveToNext()) { book = new Book(); book.setBookName(getFieldContent(cursor, DbTags.FIELD_BOOK_NAME)); book.setBookPath(getFieldContent(cursor, DbTags.FIELD_BOOK_PATH)); book.setBookAddTime(getFieldContent(cursor,DbTags.FIELD_BOOK_ADD_TIME)); book.setBookSize(getFieldContent(cursor, DbTags.FIELD_BOOK_SIZE)); bookList.add(book); } cursor.close(); return bookList; } public static void insertToBookInfo(ContentResolver resolver, Book bookinfo) { ContentValues values = new ContentValues(); values.put(DbTags.FIELD_BOOK_NAME, bookinfo.getBookName()); values.put(DbTags.FIELD_BOOK_AUTHOR, bookinfo.getBookAuthor()); values.put(DbTags.FIELD_BOOK_PATH, bookinfo.getBookPath()); values.put(DbTags.FIELD_BOOK_ADD_TIME, bookinfo.getBookAddTime()); values.put(DbTags.FIELD_BOOK_OPEN_TIME, bookinfo.getBookOpenTime()); values.put(DbTags.FIELD_BOOK_CATEGORY_ID, bookinfo.getBookCategoryId()); values.put(DbTags.FIELD_BOOK_CATEGORY_NAME, bookinfo.getBookCategroyName()); values.put(DbTags.FIELD_BOOK_SIZE, bookinfo.getBookSize()); values.put(DbTags.FIELD_BOOK_PROGRESS, bookinfo.getBookProgress()); resolver.insert(Uri.parse(DbTags.URI_TABLE_BOOK_INFO), values); } public static void insertToBookFav(ContentResolver resolver, Book bookinfo) { ContentValues values = new ContentValues(); values.put(DbTags.FIELD_BOOK_NAME, bookinfo.getBookName()); values.put(DbTags.FIELD_BOOK_PATH, bookinfo.getBookPath()); values.put(DbTags.FIELD_BOOK_ADD_TIME, bookinfo.getBookAddTime()); values.put(DbTags.FIELD_BOOK_SIZE, bookinfo.getBookSize()); resolver.insert(Uri.parse(DbTags.URI_TABLE_BOOK_FAV), values); } public static Book queryBookFav(ContentResolver resolver, String tag, String key) { Book book = null; Cursor cursor = resolver.query(Uri.parse(DbTags.URI_TABLE_BOOK_FAV), null, tag + "=?", new String[] { key + "" }, null); if (cursor.moveToNext()) { book = new Book(); book.setBookName(getFieldContent(cursor, DbTags.FIELD_BOOK_NAME)); book.setBookPath(getFieldContent(cursor, DbTags.FIELD_BOOK_PATH)); book.setBookAddTime(getFieldContent(cursor, DbTags.FIELD_BOOK_ADD_TIME)); book.setBookSize(getFieldContent(cursor, DbTags.FIELD_BOOK_SIZE)); } cursor.close(); return book; } public static void updateValuesToTable(ContentResolver contentResolver, String progress, String bookName) { ContentValues values = new ContentValues(); values.put(DbTags.FIELD_BOOK_PROGRESS, progress); contentResolver.update(Uri.parse(DbTags.URI_TABLE_BOOK_INFO), values, DbTags.FIELD_BOOK_NAME + "=?", new String[] { bookName + "" }); } public static Book queryBook(ContentResolver resolver, String tag, String key) { Book book = null; Cursor cursor = resolver.query(Uri.parse(DbTags.URI_TABLE_BOOK_INFO), null, tag + "=?", new String[] { key + "" }, null); if (cursor.moveToNext()) { book = new Book(); book.setBookId(Integer.parseInt(getFieldContent(cursor, DbTags.FIELD_BOOK_ID))); book.setBookName(getFieldContent(cursor, DbTags.FIELD_BOOK_NAME)); book.setBookAuthor(getFieldContent(cursor, DbTags.FIELD_BOOK_AUTHOR)); book.setBookPath(getFieldContent(cursor, DbTags.FIELD_BOOK_PATH)); book.setBookAddTime(getFieldContent(cursor, DbTags.FIELD_BOOK_ADD_TIME)); book.setBookOpenTime(getFieldContent(cursor, DbTags.FIELD_BOOK_OPEN_TIME)); book.setBookCategoryId(Integer.parseInt(getFieldContent(cursor, DbTags.FIELD_BOOK_CATEGORY_ID))); book.setBookCategroyName(getFieldContent(cursor, DbTags.FIELD_BOOK_CATEGORY_NAME)); book.setBookSize(getFieldContent(cursor, DbTags.FIELD_BOOK_SIZE)); book.setBookProgress(getFieldContent(cursor, DbTags.FIELD_BOOK_PROGRESS)); } cursor.close(); return book; } public static String getFieldContent(Cursor cursor, String fieldName) { return cursor.getString(cursor.getColumnIndex(fieldName)); } public static void deleteBook(ContentResolver resolver, long bookId) { resolver.delete(Uri.parse(DbTags.URI_TABLE_BOOK_INFO), DbTags.FIELD_BOOK_ID + "=?", new String[] { bookId + "" }); } public static void deleteFavBook(ContentResolver resolver, String fieldName) { resolver.delete(Uri.parse(DbTags.URI_TABLE_BOOK_FAV), DbTags.FIELD_BOOK_NAME+ "=?", new String[] { fieldName + "" }); } }