mirror of
https://github.com/mihonapp/mihon.git
synced 2025-11-18 15:07:30 +01:00
Initial support for read chapters
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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 + ") "
|
||||
|
||||
Reference in New Issue
Block a user