Load more mangas on scroll

This commit is contained in:
inorichi
2015-10-12 18:39:24 +02:00
parent 2aaaad7a24
commit e7116bdcab
8 changed files with 155 additions and 16 deletions

View File

@@ -102,6 +102,11 @@ public class DatabaseHelper implements MangaManager, ChapterManager {
return mMangaManager.getManga(id);
}
@Override
public Manga getMangaBlock(String url) {
return mMangaManager.getMangaBlock(url);
}
@Override
public Observable<PutResult> insertManga(Manga manga) {
return mMangaManager.insertManga(manga);
@@ -112,6 +117,11 @@ public class DatabaseHelper implements MangaManager, ChapterManager {
return mMangaManager.insertMangas(mangas);
}
@Override
public PutResult insertMangaBlock(Manga manga) {
return mMangaManager.insertMangaBlock(manga);
}
@Override
public Observable<DeleteResult> deleteManga(Manga manga) {
return mMangaManager.deleteManga(manga);

View File

@@ -20,10 +20,14 @@ public interface MangaManager {
Observable<List<Manga>> getManga(int id);
Manga getMangaBlock(String url);
Observable<PutResult> insertManga(Manga manga);
Observable<PutResults<Manga>> insertMangas(List<Manga> mangas);
PutResult insertMangaBlock(Manga manga);
Observable<DeleteResult> deleteManga(Manga manga);
Observable<DeleteResults<Manga>> deleteMangas(List<Manga> mangas);

View File

@@ -70,6 +70,24 @@ public class MangaManagerImpl extends BaseManager implements MangaManager {
return null;
}
@Override
public Manga getMangaBlock(String url) {
List<Manga> result = db.get()
.listOfObjects(Manga.class)
.withQuery(Query.builder()
.table(MangasTable.TABLE)
.where(MangasTable.COLUMN_URL + "=?")
.whereArgs(url)
.build())
.prepare()
.executeAsBlocking();
if (result.isEmpty())
return null;
return result.get(0);
}
public Observable<PutResult> insertManga(Manga manga) {
return db.put()
.object(manga)
@@ -84,6 +102,13 @@ public class MangaManagerImpl extends BaseManager implements MangaManager {
.createObservable();
}
public PutResult insertMangaBlock(Manga manga) {
return db.put()
.object(manga)
.prepare()
.executeAsBlocking();
}
public Observable<DeleteResult> deleteManga(Manga manga) {
return db.delete()
.object(manga)

View File

@@ -83,6 +83,8 @@ public class MangasTable {
+ COLUMN_INITIALIZED + " BOOLEAN NOT NULL, "
+ COLUMN_VIEWER + " INTEGER NOT NULL, "
+ COLUMN_CHAPTER_ORDER + " INTEGER NOT NULL"
+ ");";
+ ");"
+ "CREATE INDEX " + TABLE + "_" + COLUMN_URL + "_index ON " + TABLE + "(" + COLUMN_URL + ");";
}
}