// Path: app/src/main/java/com/architjn/audiobook/bean/AudioBook.java
// public class AudioBook implements Serializable {
//     private String albumId;
//     private String albumKey;
//     private String albumName;
//     private String artistName;
//     private String albumArt;
//     private int status;
//     private long duration;
//     private long currentDuration;
//     private ArrayList<BookChapter> chapters;
// 
//     public AudioBook() {
//         //for serializable
//     }
// 
//     public AudioBook(String albumId, String albumKey, String albumName, String artistName,
//                      String albumArt, int status, long duration, long currentDuration) {
//         this.albumId = albumId;
//         this.albumKey = albumKey;
//         this.albumName = albumName;
//         this.artistName = artistName;
//         this.albumArt = albumArt;
//         this.status = status;
//         this.duration = duration;
//         this.currentDuration = currentDuration;
//     }
// 
//     public String getAlbumKey() {
//         return albumKey;
//     }
// 
//     public String getAlbumId() {
//         return albumId;
//     }
// 
//     public String getAlbumName() {
//         return albumName;
//     }
// 
//     public String getArtistName() {
//         return artistName;
//     }
// 
//     public long getDuration() {
//         return duration;
//     }
// 
//     public void setChapters(ArrayList<BookChapter> chapters) {
//         this.chapters = chapters;
//     }
// 
//     public ArrayList<BookChapter> getChapters() {
//         return chapters;
//     }
// 
//     public String getAlbumArt() {
//         return albumArt;
//     }
// 
//     public int getStatus() {
//         return status;
//     }
// 
//     public void setStatus(int status) {
//         this.status = status;
//     }
// 
//     public void setAlbumId(String albumId) {
//         this.albumId = albumId;
//     }
// 
//     public void setAlbumKey(String albumKey) {
//         this.albumKey = albumKey;
//     }
// 
//     public void setAlbumName(String albumName) {
//         this.albumName = albumName;
//     }
// 
//     public void setArtistName(String artistName) {
//         this.artistName = artistName;
//     }
// 
//     public void setAlbumArt(String albumArt) {
//         this.albumArt = albumArt;
//     }
// 
//     public void setDuration(long duration) {
//         this.duration = duration;
//     }
// 
//     public long getCurrentDuration() {
//         return currentDuration;
//     }
// 
//     public void setCurrentDuration(long currentDuration) {
//         this.currentDuration = currentDuration;
//     }
// }
// 
// Path: app/src/main/java/com/architjn/audiobook/bean/BookChapter.java
// public class BookChapter implements Serializable{
//     private String id;
//     private String title;
//     private long duration;
//     private String data;
//     private long currDuration;
// 
//     public BookChapter() {
//         //for serializable
//     }
// 
//     public BookChapter(String id, String title, long duration, String data, long currDuration) {
//         this.id = id;
//         this.title = title;
//         this.duration = duration;
//         this.data = data;
//         this.currDuration = currDuration;
//     }
// 
//     public String getId() {
//         return id;
//     }
// 
//     public String getTitle() {
//         return title;
//     }
// 
//     public long getDuration() {
//         return duration;
//     }
// 
//     public void setId(String id) {
//         this.id = id;
//     }
// 
//     public void setTitle(String title) {
//         this.title = title;
//     }
// 
//     public void setDuration(long duration) {
//         this.duration = duration;
//     }
// 
//     public String getData() {
//         return data;
//     }
// 
//     public void setData(String data) {
//         this.data = data;
//     }
// 
//     public long getCurrDuration() {
//         return currDuration;
//     }
// 
//     public void setCurrDuration(long currDuration) {
//         this.currDuration = currDuration;
//     }
// }


import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.architjn.audiobook.bean.AudioBook;
import com.architjn.audiobook.bean.BookChapter;
import java.util.ArrayList;
                COMPLETE_DURATION + " TEXT)";
        db.execSQL(CREATE_TABLE);
    }

    public static long addBook(SQLiteDatabase db, AudioBook audioBook) {
        ContentValues values = new ContentValues();
        values.put(ALBUM_ID, audioBook.getAlbumId());
        values.put(ALBUM_KEY, audioBook.getAlbumKey());
        values.put(ALBUM_NAME, audioBook.getAlbumName());
        values.put(ALBUM_ART, audioBook.getAlbumArt());
        values.put(ARTIST_NAME, audioBook.getArtistName());
        values.put(COMPLETE_DURATION, audioBook.getDuration());
        return db.insertWithOnConflict(TABLE_NAME, null, values, SQLiteDatabase.CONFLICT_IGNORE);
    }

    public static ArrayList<AudioBook> getAllBooks(SQLiteDatabase db) {
        String query = "SELECT  * FROM " + TABLE_NAME;
        Cursor cursor = db.rawQuery(query, null);
        ArrayList<AudioBook> books = new ArrayList<>();
        if (cursor != null && cursor.moveToFirst()) {
            do {
                AudioBook audiobook = new AudioBook(
                        cursor.getString(cursor.getColumnIndex(ALBUM_ID)),
                        cursor.getString(cursor.getColumnIndex(ALBUM_KEY)),
                        cursor.getString(cursor.getColumnIndex(ALBUM_NAME)),
                        cursor.getString(cursor.getColumnIndex(ARTIST_NAME)),
                        cursor.getString(cursor.getColumnIndex(ALBUM_ART)),
                        cursor.getInt(cursor.getColumnIndex(ALBUM_STATUS)),
                        Long.parseLong(cursor.getString(cursor.getColumnIndex(COMPLETE_DURATION))),
                        Long.parseLong(cursor.getString(cursor.getColumnIndex(CURRENT_DURATION))));
// Path: app/src/main/java/com/architjn/audiobook/bean/AudioBook.java
// public class AudioBook implements Serializable {
//     private String albumId;
//     private String albumKey;
//     private String albumName;
//     private String artistName;
//     private String albumArt;
//     private int status;
//     private long duration;
//     private long currentDuration;
//     private ArrayList<BookChapter> chapters;
// 
//     public AudioBook() {
//         //for serializable
//     }
// 
//     public AudioBook(String albumId, String albumKey, String albumName, String artistName,
//                      String albumArt, int status, long duration, long currentDuration) {
//         this.albumId = albumId;
//         this.albumKey = albumKey;
//         this.albumName = albumName;
//         this.artistName = artistName;
//         this.albumArt = albumArt;
//         this.status = status;
//         this.duration = duration;
//         this.currentDuration = currentDuration;
//     }
// 
//     public String getAlbumKey() {
//         return albumKey;
//     }
// 
//     public String getAlbumId() {
//         return albumId;
//     }
// 
//     public String getAlbumName() {
//         return albumName;
//     }
// 
//     public String getArtistName() {
//         return artistName;
//     }
// 
//     public long getDuration() {
//         return duration;
//     }
// 
//     public void setChapters(ArrayList<BookChapter> chapters) {
//         this.chapters = chapters;
//     }
// 
//     public ArrayList<BookChapter> getChapters() {
//         return chapters;
//     }
// 
//     public String getAlbumArt() {
//         return albumArt;
//     }
// 
//     public int getStatus() {
//         return status;
//     }
// 
//     public void setStatus(int status) {
//         this.status = status;
//     }
// 
//     public void setAlbumId(String albumId) {
//         this.albumId = albumId;
//     }
// 
//     public void setAlbumKey(String albumKey) {
//         this.albumKey = albumKey;
//     }
// 
//     public void setAlbumName(String albumName) {
//         this.albumName = albumName;
//     }
// 
//     public void setArtistName(String artistName) {
//         this.artistName = artistName;
//     }
// 
//     public void setAlbumArt(String albumArt) {
//         this.albumArt = albumArt;
//     }
// 
//     public void setDuration(long duration) {
//         this.duration = duration;
//     }
// 
//     public long getCurrentDuration() {
//         return currentDuration;
//     }
// 
//     public void setCurrentDuration(long currentDuration) {
//         this.currentDuration = currentDuration;
//     }
// }
// 
// Path: app/src/main/java/com/architjn/audiobook/bean/BookChapter.java
// public class BookChapter implements Serializable{
//     private String id;
//     private String title;
//     private long duration;
//     private String data;
//     private long currDuration;
// 
//     public BookChapter() {
//         //for serializable
//     }
// 
//     public BookChapter(String id, String title, long duration, String data, long currDuration) {
//         this.id = id;
//         this.title = title;
//         this.duration = duration;
//         this.data = data;
//         this.currDuration = currDuration;
//     }
// 
//     public String getId() {
//         return id;
//     }
// 
//     public String getTitle() {
//         return title;
//     }
// 
//     public long getDuration() {
//         return duration;
//     }
// 
//     public void setId(String id) {
//         this.id = id;
//     }
// 
//     public void setTitle(String title) {
//         this.title = title;
//     }
// 
//     public void setDuration(long duration) {
//         this.duration = duration;
//     }
// 
//     public String getData() {
//         return data;
//     }
// 
//     public void setData(String data) {
//         this.data = data;
//     }
// 
//     public long getCurrDuration() {
//         return currDuration;
//     }
// 
//     public void setCurrDuration(long currDuration) {
//         this.currDuration = currDuration;
//     }
// }


// Path: app/src/main/java/com/architjn/audiobook/database/AudioBookTable.java
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.architjn.audiobook.bean.AudioBook;
import com.architjn.audiobook.bean.BookChapter;
import java.util.ArrayList;

                COMPLETE_DURATION + " TEXT)";
        db.execSQL(CREATE_TABLE);
    }

    public static long addBook(SQLiteDatabase db, AudioBook audioBook) {
        ContentValues values = new ContentValues();
        values.put(ALBUM_ID, audioBook.getAlbumId());
        values.put(ALBUM_KEY, audioBook.getAlbumKey());
        values.put(ALBUM_NAME, audioBook.getAlbumName());
        values.put(ALBUM_ART, audioBook.getAlbumArt());
        values.put(ARTIST_NAME, audioBook.getArtistName());
        values.put(COMPLETE_DURATION, audioBook.getDuration());
        return db.insertWithOnConflict(TABLE_NAME, null, values, SQLiteDatabase.CONFLICT_IGNORE);
    }

    public static ArrayList<AudioBook> getAllBooks(SQLiteDatabase db) {
        String query = "SELECT  * FROM " + TABLE_NAME;
        Cursor cursor = db.rawQuery(query, null);
        ArrayList<AudioBook> books = new ArrayList<>();
        if (cursor != null && cursor.moveToFirst()) {
            do {
                AudioBook audiobook = new AudioBook(
                        cursor.getString(cursor.getColumnIndex(ALBUM_ID)),
                        cursor.getString(cursor.getColumnIndex(ALBUM_KEY)),
                        cursor.getString(cursor.getColumnIndex(ALBUM_NAME)),
                        cursor.getString(cursor.getColumnIndex(ARTIST_NAME)),
                        cursor.getString(cursor.getColumnIndex(ALBUM_ART)),
                        cursor.getInt(cursor.getColumnIndex(ALBUM_STATUS)),
                        Long.parseLong(cursor.getString(cursor.getColumnIndex(COMPLETE_DURATION))),
                        Long.parseLong(cursor.getString(cursor.getColumnIndex(CURRENT_DURATION))));
                ArrayList<BookChapter> chapters =