Get data from database
This commit is contained in:
@@ -2,42 +2,44 @@ package eu.kanade.mangafeed.data.helpers;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.pushtorefresh.storio.sqlite.SQLiteTypeMapping;
|
||||
import com.pushtorefresh.storio.sqlite.StorIOSQLite;
|
||||
import com.pushtorefresh.storio.sqlite.impl.DefaultStorIOSQLite;
|
||||
import com.pushtorefresh.storio.sqlite.queries.Query;
|
||||
|
||||
import java.util.List;
|
||||
import eu.kanade.mangafeed.data.managers.ChapterManager;
|
||||
import eu.kanade.mangafeed.data.models.Chapter;
|
||||
import eu.kanade.mangafeed.data.models.ChapterStorIOSQLiteDeleteResolver;
|
||||
import eu.kanade.mangafeed.data.models.ChapterStorIOSQLiteGetResolver;
|
||||
import eu.kanade.mangafeed.data.models.ChapterStorIOSQLitePutResolver;
|
||||
import eu.kanade.mangafeed.data.models.Manga;
|
||||
import eu.kanade.mangafeed.data.models.MangaStorIOSQLiteDeleteResolver;
|
||||
import eu.kanade.mangafeed.data.models.MangaStorIOSQLiteGetResolver;
|
||||
import eu.kanade.mangafeed.data.models.MangaStorIOSQLitePutResolver;
|
||||
import eu.kanade.mangafeed.data.managers.MangaManager;
|
||||
|
||||
import eu.kanade.mangafeed.data.entities.Manga;
|
||||
import eu.kanade.mangafeed.data.tables.MangasTable;
|
||||
import rx.Observable;
|
||||
|
||||
/**
|
||||
* Created by len on 23/09/2015.
|
||||
*/
|
||||
public class DatabaseHelper {
|
||||
|
||||
private StorIOSQLite db;
|
||||
public MangaManager manga;
|
||||
public ChapterManager chapter;
|
||||
|
||||
public DatabaseHelper(Context context) {
|
||||
db = DefaultStorIOSQLite.builder()
|
||||
.sqliteOpenHelper(new DbOpenHelper(context))
|
||||
.build();
|
||||
}
|
||||
|
||||
public StorIOSQLite getStorIODb() {
|
||||
return db;
|
||||
}
|
||||
|
||||
public Observable<List<Manga>> getMangas() {
|
||||
return db.get()
|
||||
.listOfObjects(Manga.class)
|
||||
.withQuery(Query.builder()
|
||||
.table(MangasTable.TABLE)
|
||||
.addTypeMapping(Manga.class, SQLiteTypeMapping.<Manga>builder()
|
||||
.putResolver(new MangaStorIOSQLitePutResolver())
|
||||
.getResolver(new MangaStorIOSQLiteGetResolver())
|
||||
.deleteResolver(new MangaStorIOSQLiteDeleteResolver())
|
||||
.build())
|
||||
.prepare()
|
||||
.createObservable();
|
||||
.addTypeMapping(Chapter.class, SQLiteTypeMapping.<Chapter>builder()
|
||||
.putResolver(new ChapterStorIOSQLitePutResolver())
|
||||
.getResolver(new ChapterStorIOSQLiteGetResolver())
|
||||
.deleteResolver(new ChapterStorIOSQLiteDeleteResolver())
|
||||
.build())
|
||||
.build();
|
||||
|
||||
manga = new MangaManager(db);
|
||||
chapter = new ChapterManager(db);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -7,9 +7,6 @@ import android.support.annotation.NonNull;
|
||||
|
||||
import eu.kanade.mangafeed.data.tables.MangasTable;
|
||||
|
||||
/**
|
||||
* Created by len on 23/09/2015.
|
||||
*/
|
||||
public class DbOpenHelper extends SQLiteOpenHelper {
|
||||
|
||||
public static final String DATABASE_NAME = "mangafeed.db";
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
package eu.kanade.mangafeed.data.managers;
|
||||
|
||||
import com.pushtorefresh.storio.sqlite.StorIOSQLite;
|
||||
|
||||
public abstract class BaseManager {
|
||||
|
||||
protected StorIOSQLite db;
|
||||
|
||||
public BaseManager(StorIOSQLite db) {
|
||||
this.db = db;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package eu.kanade.mangafeed.data.managers;
|
||||
|
||||
import com.pushtorefresh.storio.sqlite.StorIOSQLite;
|
||||
import com.pushtorefresh.storio.sqlite.queries.Query;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import eu.kanade.mangafeed.data.models.Chapter;
|
||||
import eu.kanade.mangafeed.data.models.Manga;
|
||||
import eu.kanade.mangafeed.data.tables.ChaptersTable;
|
||||
import rx.Observable;
|
||||
|
||||
/**
|
||||
* Created by len on 26/09/2015.
|
||||
*/
|
||||
public class ChapterManager extends BaseManager {
|
||||
|
||||
public ChapterManager(StorIOSQLite db) {
|
||||
super(db);
|
||||
}
|
||||
|
||||
public Observable<List<Chapter>> get(Manga manga) {
|
||||
return db.get()
|
||||
.listOfObjects(Chapter.class)
|
||||
.withQuery(Query.builder()
|
||||
.table(ChaptersTable.TABLE)
|
||||
.where(ChaptersTable.COLUMN_MANGA_ID + "=?")
|
||||
.whereArgs(manga.id)
|
||||
.build())
|
||||
.prepare()
|
||||
.createObservable();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package eu.kanade.mangafeed.data.managers;
|
||||
|
||||
import com.pushtorefresh.storio.sqlite.StorIOSQLite;
|
||||
import com.pushtorefresh.storio.sqlite.operations.put.PutResult;
|
||||
import com.pushtorefresh.storio.sqlite.queries.Query;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import eu.kanade.mangafeed.data.models.Manga;
|
||||
import eu.kanade.mangafeed.data.tables.MangasTable;
|
||||
import rx.Observable;
|
||||
|
||||
public class MangaManager extends BaseManager {
|
||||
List<Manga> mangass;
|
||||
|
||||
public MangaManager(StorIOSQLite db) {
|
||||
super(db);
|
||||
}
|
||||
|
||||
public Observable<List<Manga>> get() {
|
||||
return db.get()
|
||||
.listOfObjects(Manga.class)
|
||||
.withQuery(Query.builder()
|
||||
.table(MangasTable.TABLE)
|
||||
.build())
|
||||
.prepare()
|
||||
.createObservable();
|
||||
}
|
||||
|
||||
public Observable<PutResult> insert(Manga manga) {
|
||||
return db.put()
|
||||
.object(manga)
|
||||
.prepare()
|
||||
.createObservable();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
package eu.kanade.mangafeed.data.models;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
|
||||
import com.pushtorefresh.storio.sqlite.annotations.StorIOSQLiteColumn;
|
||||
import com.pushtorefresh.storio.sqlite.annotations.StorIOSQLiteType;
|
||||
|
||||
import eu.kanade.mangafeed.data.tables.ChaptersTable;
|
||||
|
||||
@StorIOSQLiteType(table = ChaptersTable.TABLE)
|
||||
public class Chapter {
|
||||
|
||||
@Nullable
|
||||
@StorIOSQLiteColumn(name = ChaptersTable.COLUMN_ID, key = true)
|
||||
public Long id;
|
||||
|
||||
@NonNull
|
||||
@StorIOSQLiteColumn(name = ChaptersTable.COLUMN_MANGA_ID)
|
||||
public int manga_id;
|
||||
|
||||
@NonNull
|
||||
@StorIOSQLiteColumn(name = ChaptersTable.COLUMN_URL)
|
||||
public String url;
|
||||
|
||||
@NonNull
|
||||
@StorIOSQLiteColumn(name = ChaptersTable.COLUMN_NAME)
|
||||
public String name;
|
||||
|
||||
@NonNull
|
||||
@StorIOSQLiteColumn(name = ChaptersTable.COLUMN_READ)
|
||||
public int read;
|
||||
|
||||
@NonNull
|
||||
@StorIOSQLiteColumn(name = ChaptersTable.COLUMN_DATE_FETCH)
|
||||
public long date_fetch;
|
||||
|
||||
|
||||
public Chapter() {}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
|
||||
Chapter chapter = (Chapter) o;
|
||||
|
||||
if (manga_id != chapter.manga_id) return false;
|
||||
if (read != chapter.read) return false;
|
||||
if (date_fetch != chapter.date_fetch) return false;
|
||||
if (id != null ? !id.equals(chapter.id) : chapter.id != null) return false;
|
||||
if (!url.equals(chapter.url)) return false;
|
||||
return name.equals(chapter.name);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int result = id != null ? id.hashCode() : 0;
|
||||
result = 31 * result + manga_id;
|
||||
result = 31 * result + url.hashCode();
|
||||
result = 31 * result + name.hashCode();
|
||||
result = 31 * result + read;
|
||||
result = 31 * result + (int) (date_fetch ^ (date_fetch >>> 32));
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,4 @@
|
||||
package eu.kanade.mangafeed.data.entities;
|
||||
|
||||
/**
|
||||
* Created by len on 23/09/2015.
|
||||
*/
|
||||
package eu.kanade.mangafeed.data.models;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
@@ -74,7 +70,7 @@ public class Manga {
|
||||
@StorIOSQLiteColumn(name = MangasTable.COLUMN_CHAPTER_ORDER)
|
||||
public int chapter_order;
|
||||
|
||||
Manga() {}
|
||||
public Manga() {}
|
||||
|
||||
public Manga(String title) {
|
||||
this.title = title;
|
||||
Reference in New Issue
Block a user