Initial support for read chapters

This commit is contained in:
inorichi
2015-10-29 00:45:51 +01:00
parent 5e01937cce
commit afebfec737
19 changed files with 77 additions and 53 deletions

View File

@@ -73,6 +73,11 @@ public class DatabaseHelper implements MangaManager, ChapterManager {
return mChapterManager.insertChapters(chapters);
}
@Override
public PutResult insertChapterBlock(Chapter chapter) {
return mChapterManager.insertChapterBlock(chapter);
}
@Override
public Observable<PostResult> insertOrRemoveChapters(Manga manga, List<Chapter> chapters) {
return mChapterManager.insertOrRemoveChapters(manga, chapters);

View File

@@ -15,7 +15,6 @@ import java.net.CookieManager;
import java.net.CookiePolicy;
import java.net.CookieStore;
import eu.kanade.mangafeed.data.models.Page;
import okio.Buffer;
import okio.BufferedSource;
import okio.ForwardingSource;
@@ -91,7 +90,7 @@ public final class NetworkHelper {
});
}
public Observable<Response> getProgressResponse(final String url, final Headers headers, final Page page) {
public Observable<Response> getProgressResponse(final String url, final Headers headers, final ProgressListener listener) {
return Observable.<Response>create(subscriber -> {
try {
if (!subscriber.isUnsubscribed()) {
@@ -106,7 +105,7 @@ public final class NetworkHelper {
progressClient.networkInterceptors().add(chain -> {
Response originalResponse = chain.proceed(chain.request());
return originalResponse.newBuilder()
.body(new ProgressResponseBody(originalResponse.body(), page))
.body(new ProgressResponseBody(originalResponse.body(), listener))
.build();
});
subscriber.onNext(progressClient.newCall(request).execute());

View File

@@ -22,6 +22,8 @@ public interface ChapterManager {
Observable<PutResults<Chapter>> insertChapters(List<Chapter> chapters);
PutResult insertChapterBlock(Chapter chapter);
Observable<PostResult> insertOrRemoveChapters(Manga manga, List<Chapter> chapters);
Observable<DeleteResult> deleteChapter(Chapter chapter);

View File

@@ -67,6 +67,14 @@ public class ChapterManagerImpl extends BaseManager implements ChapterManager {
.createObservable();
}
@Override
public PutResult insertChapterBlock(Chapter chapter) {
return db.put()
.object(chapter)
.prepare()
.executeAsBlocking();
}
// Add new chapters or delete if the source deletes them
@Override
public Observable<PostResult> insertOrRemoveChapters(Manga manga, List<Chapter> chapters) {

View File

@@ -1,8 +1,5 @@
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;
@@ -11,31 +8,27 @@ 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 Long 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;
public boolean read;
@StorIOSQLiteColumn(name = ChaptersTable.COLUMN_LAST_PAGE_READ)
public int last_page_read;
@NonNull
@StorIOSQLiteColumn(name = ChaptersTable.COLUMN_DATE_FETCH)
public long date_fetch;
@NonNull
@StorIOSQLiteColumn(name = ChaptersTable.COLUMN_DATE_UPLOAD)
public long date_upload;

View File

@@ -28,6 +28,9 @@ public class ChaptersTable {
@NonNull
public static final String COLUMN_DATE_UPLOAD = "date_upload";
@NonNull
public static final String COLUMN_LAST_PAGE_READ = "last_page_read";
@NonNull
public static String getCreateTableQuery() {
return "CREATE TABLE " + TABLE + "("
@@ -36,6 +39,7 @@ public class ChaptersTable {
+ COLUMN_URL + " TEXT NOT NULL, "
+ COLUMN_NAME + " TEXT NOT NULL, "
+ COLUMN_READ + " BOOLEAN NOT NULL, "
+ COLUMN_LAST_PAGE_READ + " INT NOT NULL, "
+ COLUMN_DATE_FETCH + " LONG NOT NULL, "
+ COLUMN_DATE_UPLOAD + " LONG NOT NULL, "
+ "FOREIGN KEY(" + COLUMN_MANGA_ID + ") REFERENCES " + MangasTable.TABLE + "(" + MangasTable.COLUMN_ID + ") "