Browse Source

Reorganize data package

inorichi 9 years ago
parent
commit
f63b7c8141
73 changed files with 248 additions and 242 deletions
  1. 4 4
      app/src/main/AndroidManifest.xml
  2. 2 2
      app/src/main/java/eu/kanade/mangafeed/data/cache/CacheManager.java
  3. 11 11
      app/src/main/java/eu/kanade/mangafeed/data/database/DatabaseHelper.java
  4. 3 3
      app/src/main/java/eu/kanade/mangafeed/data/database/DbOpenHelper.java
  5. 2 2
      app/src/main/java/eu/kanade/mangafeed/data/database/models/Chapter.java
  6. 2 2
      app/src/main/java/eu/kanade/mangafeed/data/database/models/Manga.java
  7. 4 4
      app/src/main/java/eu/kanade/mangafeed/data/database/resolvers/MangaWithUnreadGetResolver.java
  8. 1 1
      app/src/main/java/eu/kanade/mangafeed/data/database/tables/CategoriesTable.java
  9. 1 1
      app/src/main/java/eu/kanade/mangafeed/data/database/tables/ChaptersTable.java
  10. 1 1
      app/src/main/java/eu/kanade/mangafeed/data/database/tables/MangasCategoriesTable.java
  11. 1 1
      app/src/main/java/eu/kanade/mangafeed/data/database/tables/MangasTable.java
  12. 10 9
      app/src/main/java/eu/kanade/mangafeed/data/download/DownloadManager.java
  13. 2 3
      app/src/main/java/eu/kanade/mangafeed/data/download/DownloadService.java
  14. 5 2
      app/src/main/java/eu/kanade/mangafeed/data/download/model/Download.java
  15. 2 1
      app/src/main/java/eu/kanade/mangafeed/data/download/model/DownloadQueue.java
  16. 1 53
      app/src/main/java/eu/kanade/mangafeed/data/network/NetworkHelper.java
  17. 5 0
      app/src/main/java/eu/kanade/mangafeed/data/network/ProgressListener.java
  18. 52 0
      app/src/main/java/eu/kanade/mangafeed/data/network/ProgressResponseBody.java
  19. 2 2
      app/src/main/java/eu/kanade/mangafeed/data/preference/PreferencesHelper.java
  20. 5 5
      app/src/main/java/eu/kanade/mangafeed/data/source/SourceManager.java
  21. 3 3
      app/src/main/java/eu/kanade/mangafeed/data/source/base/BaseSource.java
  22. 7 7
      app/src/main/java/eu/kanade/mangafeed/data/source/base/Source.java
  23. 3 3
      app/src/main/java/eu/kanade/mangafeed/data/source/model/Page.java
  24. 5 6
      app/src/main/java/eu/kanade/mangafeed/data/source/online/english/Batoto.java
  25. 5 5
      app/src/main/java/eu/kanade/mangafeed/data/source/online/english/Mangafox.java
  26. 5 5
      app/src/main/java/eu/kanade/mangafeed/data/source/online/english/Mangahere.java
  27. 4 4
      app/src/main/java/eu/kanade/mangafeed/data/sync/LibraryUpdateService.java
  28. 1 1
      app/src/main/java/eu/kanade/mangafeed/event/ChapterCountEvent.java
  29. 3 3
      app/src/main/java/eu/kanade/mangafeed/event/DownloadChaptersEvent.java
  30. 4 4
      app/src/main/java/eu/kanade/mangafeed/event/SourceMangaChapterEvent.java
  31. 5 5
      app/src/main/java/eu/kanade/mangafeed/injection/component/AppComponent.java
  32. 6 6
      app/src/main/java/eu/kanade/mangafeed/injection/module/DataModule.java
  33. 1 1
      app/src/main/java/eu/kanade/mangafeed/ui/catalogue/CatalogueFragment.java
  34. 1 1
      app/src/main/java/eu/kanade/mangafeed/ui/catalogue/CatalogueHolder.java
  35. 4 4
      app/src/main/java/eu/kanade/mangafeed/ui/catalogue/CataloguePresenter.java
  36. 1 1
      app/src/main/java/eu/kanade/mangafeed/ui/catalogue/SourceFragment.java
  37. 1 1
      app/src/main/java/eu/kanade/mangafeed/ui/catalogue/SourceHolder.java
  38. 3 3
      app/src/main/java/eu/kanade/mangafeed/ui/catalogue/SourcePresenter.java
  39. 1 1
      app/src/main/java/eu/kanade/mangafeed/ui/download/DownloadAdapter.java
  40. 1 1
      app/src/main/java/eu/kanade/mangafeed/ui/download/DownloadFragment.java
  41. 1 1
      app/src/main/java/eu/kanade/mangafeed/ui/download/DownloadHolder.java
  42. 4 4
      app/src/main/java/eu/kanade/mangafeed/ui/download/DownloadPresenter.java
  43. 1 2
      app/src/main/java/eu/kanade/mangafeed/ui/library/LibraryAdapter.java
  44. 2 2
      app/src/main/java/eu/kanade/mangafeed/ui/library/LibraryFragment.java
  45. 1 1
      app/src/main/java/eu/kanade/mangafeed/ui/library/LibraryHolder.java
  46. 2 2
      app/src/main/java/eu/kanade/mangafeed/ui/library/LibraryPresenter.java
  47. 1 1
      app/src/main/java/eu/kanade/mangafeed/ui/main/MainActivity.java
  48. 1 1
      app/src/main/java/eu/kanade/mangafeed/ui/manga/MangaActivity.java
  49. 2 2
      app/src/main/java/eu/kanade/mangafeed/ui/manga/MangaPresenter.java
  50. 1 1
      app/src/main/java/eu/kanade/mangafeed/ui/manga/chapter/ChaptersAdapter.java
  51. 2 2
      app/src/main/java/eu/kanade/mangafeed/ui/manga/chapter/ChaptersFragment.java
  52. 1 2
      app/src/main/java/eu/kanade/mangafeed/ui/manga/chapter/ChaptersHolder.java
  53. 10 10
      app/src/main/java/eu/kanade/mangafeed/ui/manga/chapter/ChaptersPresenter.java
  54. 1 1
      app/src/main/java/eu/kanade/mangafeed/ui/manga/info/MangaInfoFragment.java
  55. 3 3
      app/src/main/java/eu/kanade/mangafeed/ui/manga/info/MangaInfoPresenter.java
  56. 2 2
      app/src/main/java/eu/kanade/mangafeed/ui/reader/ReaderActivity.java
  57. 8 8
      app/src/main/java/eu/kanade/mangafeed/ui/reader/ReaderPresenter.java
  58. 1 1
      app/src/main/java/eu/kanade/mangafeed/ui/reader/viewer/base/BaseReader.java
  59. 1 1
      app/src/main/java/eu/kanade/mangafeed/ui/reader/viewer/common/ViewPagerReaderAdapter.java
  60. 1 1
      app/src/main/java/eu/kanade/mangafeed/ui/reader/viewer/common/ViewPagerReaderFragment.java
  61. 1 1
      app/src/main/java/eu/kanade/mangafeed/ui/reader/viewer/horizontal/HorizontalReader.java
  62. 2 2
      app/src/main/java/eu/kanade/mangafeed/ui/reader/viewer/horizontal/RightToLeftReader.java
  63. 1 1
      app/src/main/java/eu/kanade/mangafeed/ui/reader/viewer/vertical/VerticalReader.java
  64. 1 1
      app/src/main/java/eu/kanade/mangafeed/ui/reader/viewer/webtoon/WebtoonAdapter.java
  65. 1 1
      app/src/main/java/eu/kanade/mangafeed/ui/reader/viewer/webtoon/WebtoonReader.java
  66. 3 3
      app/src/main/java/eu/kanade/mangafeed/ui/setting/LoginDialogPreference.java
  67. 4 4
      app/src/main/java/eu/kanade/mangafeed/ui/setting/SettingsAccountsFragment.java
  68. 1 1
      app/src/main/java/eu/kanade/mangafeed/ui/setting/SettingsActivity.java
  69. 2 2
      app/src/main/java/eu/kanade/mangafeed/ui/setting/SettingsDownloadsFragment.java
  70. 1 1
      app/src/main/java/eu/kanade/mangafeed/ui/setting/SettingsMainFragment.java
  71. 1 1
      app/src/main/java/eu/kanade/mangafeed/ui/setting/SettingsNestedFragment.java
  72. 2 2
      app/src/main/java/eu/kanade/mangafeed/util/ChapterRecognition.java
  73. 2 2
      app/src/test/java/eu/kanade/mangafeed/ChapterRecognitionTest.java

+ 4 - 4
app/src/main/AndroidManifest.xml

@@ -39,19 +39,19 @@
                 android:value=".ui.manga.MangaActivity" />
         </activity>
         <activity
-            android:name=".ui.preference.SettingsActivity"
+            android:name=".ui.setting.SettingsActivity"
             android:label="@string/title_activity_settings"
             android:parentActivityName=".ui.main.MainActivity" >
         </activity>
 
-        <service android:name=".data.services.LibraryUpdateService"
+        <service android:name=".data.sync.LibraryUpdateService"
             android:exported="false"/>
 
-        <service android:name=".data.services.DownloadService"
+        <service android:name=".data.download.DownloadService"
             android:exported="false"/>
 
         <receiver
-            android:name=".data.services.LibraryUpdateService$SyncOnConnectionAvailable"
+            android:name=".data.sync.LibraryUpdateService$SyncOnConnectionAvailable"
             android:enabled="false">
             <intent-filter>
                 <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />

+ 2 - 2
app/src/main/java/eu/kanade/mangafeed/data/caches/CacheManager.java → app/src/main/java/eu/kanade/mangafeed/data/cache/CacheManager.java

@@ -1,4 +1,4 @@
-package eu.kanade.mangafeed.data.caches;
+package eu.kanade.mangafeed.data.cache;
 
 import android.content.Context;
 
@@ -15,7 +15,7 @@ import java.io.OutputStream;
 import java.lang.reflect.Type;
 import java.util.List;
 
-import eu.kanade.mangafeed.data.models.Page;
+import eu.kanade.mangafeed.data.source.model.Page;
 import eu.kanade.mangafeed.util.DiskUtils;
 import okio.BufferedSink;
 import okio.Okio;

+ 11 - 11
app/src/main/java/eu/kanade/mangafeed/data/helpers/DatabaseHelper.java → app/src/main/java/eu/kanade/mangafeed/data/database/DatabaseHelper.java

@@ -1,4 +1,4 @@
-package eu.kanade.mangafeed.data.helpers;
+package eu.kanade.mangafeed.data.database;
 
 import android.content.Context;
 
@@ -16,16 +16,16 @@ import com.pushtorefresh.storio.sqlite.queries.RawQuery;
 
 import java.util.List;
 
-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.MangaStorIOSQLitePutResolver;
-import eu.kanade.mangafeed.data.resolvers.MangaWithUnreadGetResolver;
-import eu.kanade.mangafeed.data.tables.ChaptersTable;
-import eu.kanade.mangafeed.data.tables.MangasTable;
+import eu.kanade.mangafeed.data.database.models.Chapter;
+import eu.kanade.mangafeed.data.database.models.ChapterStorIOSQLiteDeleteResolver;
+import eu.kanade.mangafeed.data.database.models.ChapterStorIOSQLiteGetResolver;
+import eu.kanade.mangafeed.data.database.models.ChapterStorIOSQLitePutResolver;
+import eu.kanade.mangafeed.data.database.models.Manga;
+import eu.kanade.mangafeed.data.database.models.MangaStorIOSQLiteDeleteResolver;
+import eu.kanade.mangafeed.data.database.models.MangaStorIOSQLitePutResolver;
+import eu.kanade.mangafeed.data.database.resolvers.MangaWithUnreadGetResolver;
+import eu.kanade.mangafeed.data.database.tables.ChaptersTable;
+import eu.kanade.mangafeed.data.database.tables.MangasTable;
 import eu.kanade.mangafeed.util.ChapterRecognition;
 import eu.kanade.mangafeed.util.PostResult;
 import rx.Observable;

+ 3 - 3
app/src/main/java/eu/kanade/mangafeed/data/helpers/DbOpenHelper.java → app/src/main/java/eu/kanade/mangafeed/data/database/DbOpenHelper.java

@@ -1,12 +1,12 @@
-package eu.kanade.mangafeed.data.helpers;
+package eu.kanade.mangafeed.data.database;
 
 import android.content.Context;
 import android.database.sqlite.SQLiteDatabase;
 import android.database.sqlite.SQLiteOpenHelper;
 import android.support.annotation.NonNull;
 
-import eu.kanade.mangafeed.data.tables.ChaptersTable;
-import eu.kanade.mangafeed.data.tables.MangasTable;
+import eu.kanade.mangafeed.data.database.tables.ChaptersTable;
+import eu.kanade.mangafeed.data.database.tables.MangasTable;
 
 public class DbOpenHelper extends SQLiteOpenHelper {
 

+ 2 - 2
app/src/main/java/eu/kanade/mangafeed/data/models/Chapter.java → app/src/main/java/eu/kanade/mangafeed/data/database/models/Chapter.java

@@ -1,9 +1,9 @@
-package eu.kanade.mangafeed.data.models;
+package eu.kanade.mangafeed.data.database.models;
 
 import com.pushtorefresh.storio.sqlite.annotations.StorIOSQLiteColumn;
 import com.pushtorefresh.storio.sqlite.annotations.StorIOSQLiteType;
 
-import eu.kanade.mangafeed.data.tables.ChaptersTable;
+import eu.kanade.mangafeed.data.database.tables.ChaptersTable;
 
 @StorIOSQLiteType(table = ChaptersTable.TABLE)
 public class Chapter {

+ 2 - 2
app/src/main/java/eu/kanade/mangafeed/data/models/Manga.java → app/src/main/java/eu/kanade/mangafeed/data/database/models/Manga.java

@@ -1,9 +1,9 @@
-package eu.kanade.mangafeed.data.models;
+package eu.kanade.mangafeed.data.database.models;
 
 import com.pushtorefresh.storio.sqlite.annotations.StorIOSQLiteColumn;
 import com.pushtorefresh.storio.sqlite.annotations.StorIOSQLiteType;
 
-import eu.kanade.mangafeed.data.tables.MangasTable;
+import eu.kanade.mangafeed.data.database.tables.MangasTable;
 
 @StorIOSQLiteType(table = MangasTable.TABLE)
 public class Manga {

+ 4 - 4
app/src/main/java/eu/kanade/mangafeed/data/resolvers/MangaWithUnreadGetResolver.java → app/src/main/java/eu/kanade/mangafeed/data/database/resolvers/MangaWithUnreadGetResolver.java

@@ -1,11 +1,11 @@
-package eu.kanade.mangafeed.data.resolvers;
+package eu.kanade.mangafeed.data.database.resolvers;
 
 import android.database.Cursor;
 import android.support.annotation.NonNull;
 
-import eu.kanade.mangafeed.data.models.Manga;
-import eu.kanade.mangafeed.data.models.MangaStorIOSQLiteGetResolver;
-import eu.kanade.mangafeed.data.tables.MangasTable;
+import eu.kanade.mangafeed.data.database.models.Manga;
+import eu.kanade.mangafeed.data.database.models.MangaStorIOSQLiteGetResolver;
+import eu.kanade.mangafeed.data.database.tables.MangasTable;
 
 
 public class MangaWithUnreadGetResolver extends MangaStorIOSQLiteGetResolver {

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/data/tables/CategoriesTable.java → app/src/main/java/eu/kanade/mangafeed/data/database/tables/CategoriesTable.java

@@ -1,4 +1,4 @@
-package eu.kanade.mangafeed.data.tables;
+package eu.kanade.mangafeed.data.database.tables;
 
 import android.support.annotation.NonNull;
 

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/data/tables/ChaptersTable.java → app/src/main/java/eu/kanade/mangafeed/data/database/tables/ChaptersTable.java

@@ -1,4 +1,4 @@
-package eu.kanade.mangafeed.data.tables;
+package eu.kanade.mangafeed.data.database.tables;
 
 import android.support.annotation.NonNull;
 

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/data/tables/MangasCategoriesTable.java → app/src/main/java/eu/kanade/mangafeed/data/database/tables/MangasCategoriesTable.java

@@ -1,4 +1,4 @@
-package eu.kanade.mangafeed.data.tables;
+package eu.kanade.mangafeed.data.database.tables;
 
 import android.support.annotation.NonNull;
 

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/data/tables/MangasTable.java → app/src/main/java/eu/kanade/mangafeed/data/database/tables/MangasTable.java

@@ -1,4 +1,4 @@
-package eu.kanade.mangafeed.data.tables;
+package eu.kanade.mangafeed.data.database.tables;
 
 import android.support.annotation.NonNull;
 

+ 10 - 9
app/src/main/java/eu/kanade/mangafeed/data/helpers/DownloadManager.java → app/src/main/java/eu/kanade/mangafeed/data/download/DownloadManager.java

@@ -1,4 +1,4 @@
-package eu.kanade.mangafeed.data.helpers;
+package eu.kanade.mangafeed.data.download;
 
 import android.content.Context;
 
@@ -16,14 +16,15 @@ import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.List;
 
-import eu.kanade.mangafeed.data.models.Chapter;
-import eu.kanade.mangafeed.data.models.Download;
-import eu.kanade.mangafeed.data.models.DownloadQueue;
-import eu.kanade.mangafeed.data.models.Manga;
-import eu.kanade.mangafeed.data.models.Page;
-import eu.kanade.mangafeed.data.services.DownloadService;
-import eu.kanade.mangafeed.events.DownloadChaptersEvent;
-import eu.kanade.mangafeed.sources.base.Source;
+import eu.kanade.mangafeed.data.database.models.Chapter;
+import eu.kanade.mangafeed.data.database.models.Manga;
+import eu.kanade.mangafeed.data.download.model.Download;
+import eu.kanade.mangafeed.data.download.model.DownloadQueue;
+import eu.kanade.mangafeed.data.source.model.Page;
+import eu.kanade.mangafeed.data.preference.PreferencesHelper;
+import eu.kanade.mangafeed.data.source.SourceManager;
+import eu.kanade.mangafeed.event.DownloadChaptersEvent;
+import eu.kanade.mangafeed.data.source.base.Source;
 import eu.kanade.mangafeed.util.DiskUtils;
 import eu.kanade.mangafeed.util.DynamicConcurrentMergeOperator;
 import rx.Observable;

+ 2 - 3
app/src/main/java/eu/kanade/mangafeed/data/services/DownloadService.java → app/src/main/java/eu/kanade/mangafeed/data/download/DownloadService.java

@@ -1,4 +1,4 @@
-package eu.kanade.mangafeed.data.services;
+package eu.kanade.mangafeed.data.download;
 
 import android.app.Service;
 import android.content.Context;
@@ -12,8 +12,7 @@ import javax.inject.Inject;
 
 import de.greenrobot.event.EventBus;
 import eu.kanade.mangafeed.App;
-import eu.kanade.mangafeed.data.helpers.DownloadManager;
-import eu.kanade.mangafeed.events.DownloadChaptersEvent;
+import eu.kanade.mangafeed.event.DownloadChaptersEvent;
 import eu.kanade.mangafeed.util.ContentObservable;
 import eu.kanade.mangafeed.util.EventBusHook;
 import eu.kanade.mangafeed.util.NetworkUtil;

+ 5 - 2
app/src/main/java/eu/kanade/mangafeed/data/models/Download.java → app/src/main/java/eu/kanade/mangafeed/data/download/model/Download.java

@@ -1,9 +1,12 @@
-package eu.kanade.mangafeed.data.models;
+package eu.kanade.mangafeed.data.download.model;
 
 import java.io.File;
 import java.util.List;
 
-import eu.kanade.mangafeed.sources.base.Source;
+import eu.kanade.mangafeed.data.database.models.Chapter;
+import eu.kanade.mangafeed.data.database.models.Manga;
+import eu.kanade.mangafeed.data.source.model.Page;
+import eu.kanade.mangafeed.data.source.base.Source;
 import rx.subjects.PublishSubject;
 
 public class Download {

+ 2 - 1
app/src/main/java/eu/kanade/mangafeed/data/models/DownloadQueue.java → app/src/main/java/eu/kanade/mangafeed/data/download/model/DownloadQueue.java

@@ -1,8 +1,9 @@
-package eu.kanade.mangafeed.data.models;
+package eu.kanade.mangafeed.data.download.model;
 
 import java.util.ArrayList;
 import java.util.List;
 
+import eu.kanade.mangafeed.data.download.model.Download;
 import rx.Observable;
 import rx.subjects.PublishSubject;
 

+ 1 - 53
app/src/main/java/eu/kanade/mangafeed/data/helpers/NetworkHelper.java → app/src/main/java/eu/kanade/mangafeed/data/network/NetworkHelper.java

@@ -1,25 +1,17 @@
-package eu.kanade.mangafeed.data.helpers;
+package eu.kanade.mangafeed.data.network;
 
 
 import com.squareup.okhttp.CacheControl;
 import com.squareup.okhttp.Headers;
-import com.squareup.okhttp.MediaType;
 import com.squareup.okhttp.OkHttpClient;
 import com.squareup.okhttp.Request;
 import com.squareup.okhttp.RequestBody;
 import com.squareup.okhttp.Response;
-import com.squareup.okhttp.ResponseBody;
 
-import java.io.IOException;
 import java.net.CookieManager;
 import java.net.CookiePolicy;
 import java.net.CookieStore;
 
-import okio.Buffer;
-import okio.BufferedSource;
-import okio.ForwardingSource;
-import okio.Okio;
-import okio.Source;
 import rx.Observable;
 
 public final class NetworkHelper {
@@ -121,48 +113,4 @@ public final class NetworkHelper {
         return cookieManager.getCookieStore();
     }
 
-    private static class ProgressResponseBody extends ResponseBody {
-
-        private final ResponseBody responseBody;
-        private final ProgressListener progressListener;
-        private BufferedSource bufferedSource;
-
-        public ProgressResponseBody(ResponseBody responseBody, ProgressListener progressListener) {
-            this.responseBody = responseBody;
-            this.progressListener = progressListener;
-        }
-
-        @Override public MediaType contentType() {
-            return responseBody.contentType();
-        }
-
-        @Override public long contentLength() throws IOException {
-            return responseBody.contentLength();
-        }
-
-        @Override public BufferedSource source() throws IOException {
-            if (bufferedSource == null) {
-                bufferedSource = Okio.buffer(source(responseBody.source()));
-            }
-            return bufferedSource;
-        }
-
-        private Source source(Source source) {
-            return new ForwardingSource(source) {
-                long totalBytesRead = 0L;
-                @Override public long read(Buffer sink, long byteCount) throws IOException {
-                    long bytesRead = super.read(sink, byteCount);
-                    // read() returns the number of bytes read, or -1 if this source is exhausted.
-                    totalBytesRead += bytesRead != -1 ? bytesRead : 0;
-                    progressListener.update(totalBytesRead, responseBody.contentLength(), bytesRead == -1);
-                    return bytesRead;
-                }
-            };
-        }
-    }
-
-    public interface ProgressListener {
-        void update(long bytesRead, long contentLength, boolean done);
-    }
-
 }

+ 5 - 0
app/src/main/java/eu/kanade/mangafeed/data/network/ProgressListener.java

@@ -0,0 +1,5 @@
+package eu.kanade.mangafeed.data.network;
+
+public interface ProgressListener {
+    void update(long bytesRead, long contentLength, boolean done);
+}

+ 52 - 0
app/src/main/java/eu/kanade/mangafeed/data/network/ProgressResponseBody.java

@@ -0,0 +1,52 @@
+package eu.kanade.mangafeed.data.network;
+
+import com.squareup.okhttp.MediaType;
+import com.squareup.okhttp.ResponseBody;
+
+import java.io.IOException;
+
+import okio.Buffer;
+import okio.BufferedSource;
+import okio.ForwardingSource;
+import okio.Okio;
+import okio.Source;
+
+public class ProgressResponseBody extends ResponseBody {
+
+    private final ResponseBody responseBody;
+    private final ProgressListener progressListener;
+    private BufferedSource bufferedSource;
+
+    public ProgressResponseBody(ResponseBody responseBody, ProgressListener progressListener) {
+        this.responseBody = responseBody;
+        this.progressListener = progressListener;
+    }
+
+    @Override public MediaType contentType() {
+        return responseBody.contentType();
+    }
+
+    @Override public long contentLength() throws IOException {
+        return responseBody.contentLength();
+    }
+
+    @Override public BufferedSource source() throws IOException {
+        if (bufferedSource == null) {
+            bufferedSource = Okio.buffer(source(responseBody.source()));
+        }
+        return bufferedSource;
+    }
+
+    private Source source(Source source) {
+        return new ForwardingSource(source) {
+            long totalBytesRead = 0L;
+            @Override public long read(Buffer sink, long byteCount) throws IOException {
+                long bytesRead = super.read(sink, byteCount);
+                // read() returns the number of bytes read, or -1 if this source is exhausted.
+                totalBytesRead += bytesRead != -1 ? bytesRead : 0;
+                progressListener.update(totalBytesRead, responseBody.contentLength(), bytesRead == -1);
+                return bytesRead;
+            }
+        };
+    }
+}

+ 2 - 2
app/src/main/java/eu/kanade/mangafeed/data/helpers/PreferencesHelper.java → app/src/main/java/eu/kanade/mangafeed/data/preference/PreferencesHelper.java

@@ -1,4 +1,4 @@
-package eu.kanade.mangafeed.data.helpers;
+package eu.kanade.mangafeed.data.preference;
 
 import android.content.Context;
 import android.content.SharedPreferences;
@@ -7,7 +7,7 @@ import android.preference.PreferenceManager;
 import com.f2prateek.rx.preferences.RxSharedPreferences;
 
 import eu.kanade.mangafeed.R;
-import eu.kanade.mangafeed.sources.base.Source;
+import eu.kanade.mangafeed.data.source.base.Source;
 import eu.kanade.mangafeed.util.DiskUtils;
 import rx.Observable;
 

+ 5 - 5
app/src/main/java/eu/kanade/mangafeed/data/helpers/SourceManager.java → app/src/main/java/eu/kanade/mangafeed/data/source/SourceManager.java

@@ -1,4 +1,4 @@
-package eu.kanade.mangafeed.data.helpers;
+package eu.kanade.mangafeed.data.source;
 
 import android.content.Context;
 
@@ -6,10 +6,10 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 
-import eu.kanade.mangafeed.sources.Batoto;
-import eu.kanade.mangafeed.sources.Mangahere;
-import eu.kanade.mangafeed.sources.Mangafox;
-import eu.kanade.mangafeed.sources.base.Source;
+import eu.kanade.mangafeed.data.source.online.english.Batoto;
+import eu.kanade.mangafeed.data.source.online.english.Mangahere;
+import eu.kanade.mangafeed.data.source.online.english.Mangafox;
+import eu.kanade.mangafeed.data.source.base.Source;
 
 public class SourceManager {
 

+ 3 - 3
app/src/main/java/eu/kanade/mangafeed/sources/base/BaseSource.java → app/src/main/java/eu/kanade/mangafeed/data/source/base/BaseSource.java

@@ -1,12 +1,12 @@
-package eu.kanade.mangafeed.sources.base;
+package eu.kanade.mangafeed.data.source.base;
 
 import com.squareup.okhttp.Headers;
 import com.squareup.okhttp.Response;
 
 import java.util.List;
 
-import eu.kanade.mangafeed.data.models.Chapter;
-import eu.kanade.mangafeed.data.models.Manga;
+import eu.kanade.mangafeed.data.database.models.Chapter;
+import eu.kanade.mangafeed.data.database.models.Manga;
 import rx.Observable;
 
 public abstract class BaseSource {

+ 7 - 7
app/src/main/java/eu/kanade/mangafeed/sources/base/Source.java → app/src/main/java/eu/kanade/mangafeed/data/source/base/Source.java

@@ -1,4 +1,4 @@
-package eu.kanade.mangafeed.sources.base;
+package eu.kanade.mangafeed.data.source.base;
 
 
 import android.content.Context;
@@ -12,12 +12,12 @@ import java.util.List;
 import javax.inject.Inject;
 
 import eu.kanade.mangafeed.App;
-import eu.kanade.mangafeed.data.caches.CacheManager;
-import eu.kanade.mangafeed.data.helpers.NetworkHelper;
-import eu.kanade.mangafeed.data.helpers.PreferencesHelper;
-import eu.kanade.mangafeed.data.models.Chapter;
-import eu.kanade.mangafeed.data.models.Manga;
-import eu.kanade.mangafeed.data.models.Page;
+import eu.kanade.mangafeed.data.cache.CacheManager;
+import eu.kanade.mangafeed.data.network.NetworkHelper;
+import eu.kanade.mangafeed.data.preference.PreferencesHelper;
+import eu.kanade.mangafeed.data.database.models.Chapter;
+import eu.kanade.mangafeed.data.database.models.Manga;
+import eu.kanade.mangafeed.data.source.model.Page;
 import rx.Observable;
 import rx.schedulers.Schedulers;
 

+ 3 - 3
app/src/main/java/eu/kanade/mangafeed/data/models/Page.java → app/src/main/java/eu/kanade/mangafeed/data/source/model/Page.java

@@ -1,9 +1,9 @@
-package eu.kanade.mangafeed.data.models;
+package eu.kanade.mangafeed.data.source.model;
 
-import eu.kanade.mangafeed.data.helpers.NetworkHelper;
+import eu.kanade.mangafeed.data.network.ProgressListener;
 import rx.subjects.PublishSubject;
 
-public class Page implements NetworkHelper.ProgressListener {
+public class Page implements ProgressListener {
 
     private int pageNumber;
     private String url;

+ 5 - 6
app/src/main/java/eu/kanade/mangafeed/sources/Batoto.java → app/src/main/java/eu/kanade/mangafeed/data/source/online/english/Batoto.java

@@ -1,4 +1,4 @@
-package eu.kanade.mangafeed.sources;
+package eu.kanade.mangafeed.data.source.online.english;
 
 import android.content.Context;
 
@@ -21,10 +21,10 @@ import java.util.Date;
 import java.util.List;
 import java.util.Locale;
 
-import eu.kanade.mangafeed.data.helpers.SourceManager;
-import eu.kanade.mangafeed.data.models.Chapter;
-import eu.kanade.mangafeed.data.models.Manga;
-import eu.kanade.mangafeed.sources.base.Source;
+import eu.kanade.mangafeed.data.source.SourceManager;
+import eu.kanade.mangafeed.data.database.models.Chapter;
+import eu.kanade.mangafeed.data.database.models.Manga;
+import eu.kanade.mangafeed.data.source.base.Source;
 import rx.Observable;
 
 public class Batoto extends Source {
@@ -400,4 +400,3 @@ public class Batoto extends Source {
     }
 
 }
-

+ 5 - 5
app/src/main/java/eu/kanade/mangafeed/sources/Mangafox.java → app/src/main/java/eu/kanade/mangafeed/data/source/online/english/Mangafox.java

@@ -1,4 +1,4 @@
-package eu.kanade.mangafeed.sources;
+package eu.kanade.mangafeed.data.source.online.english;
 
 import android.content.Context;
 
@@ -10,10 +10,10 @@ import org.jsoup.select.Elements;
 import java.util.ArrayList;
 import java.util.List;
 
-import eu.kanade.mangafeed.data.helpers.SourceManager;
-import eu.kanade.mangafeed.data.models.Chapter;
-import eu.kanade.mangafeed.data.models.Manga;
-import eu.kanade.mangafeed.sources.base.Source;
+import eu.kanade.mangafeed.data.source.SourceManager;
+import eu.kanade.mangafeed.data.database.models.Chapter;
+import eu.kanade.mangafeed.data.database.models.Manga;
+import eu.kanade.mangafeed.data.source.base.Source;
 
 public class Mangafox extends Source {
 

+ 5 - 5
app/src/main/java/eu/kanade/mangafeed/sources/Mangahere.java → app/src/main/java/eu/kanade/mangafeed/data/source/online/english/Mangahere.java

@@ -1,4 +1,4 @@
-package eu.kanade.mangafeed.sources;
+package eu.kanade.mangafeed.data.source.online.english;
 
 import android.content.Context;
 
@@ -15,10 +15,10 @@ import java.util.Date;
 import java.util.List;
 import java.util.Locale;
 
-import eu.kanade.mangafeed.data.helpers.SourceManager;
-import eu.kanade.mangafeed.data.models.Chapter;
-import eu.kanade.mangafeed.data.models.Manga;
-import eu.kanade.mangafeed.sources.base.Source;
+import eu.kanade.mangafeed.data.source.SourceManager;
+import eu.kanade.mangafeed.data.database.models.Chapter;
+import eu.kanade.mangafeed.data.database.models.Manga;
+import eu.kanade.mangafeed.data.source.base.Source;
 import rx.Observable;
 
 public class Mangahere extends Source {

+ 4 - 4
app/src/main/java/eu/kanade/mangafeed/data/services/LibraryUpdateService.java → app/src/main/java/eu/kanade/mangafeed/data/sync/LibraryUpdateService.java

@@ -1,4 +1,4 @@
-package eu.kanade.mangafeed.data.services;
+package eu.kanade.mangafeed.data.sync;
 
 import android.app.Service;
 import android.content.BroadcastReceiver;
@@ -15,9 +15,9 @@ import javax.inject.Inject;
 import eu.kanade.mangafeed.App;
 import eu.kanade.mangafeed.BuildConfig;
 import eu.kanade.mangafeed.R;
-import eu.kanade.mangafeed.data.helpers.DatabaseHelper;
-import eu.kanade.mangafeed.data.helpers.SourceManager;
-import eu.kanade.mangafeed.data.models.Manga;
+import eu.kanade.mangafeed.data.database.DatabaseHelper;
+import eu.kanade.mangafeed.data.source.SourceManager;
+import eu.kanade.mangafeed.data.database.models.Manga;
 import eu.kanade.mangafeed.util.AndroidComponentUtil;
 import eu.kanade.mangafeed.util.NetworkUtil;
 import eu.kanade.mangafeed.util.NotificationUtil;

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/events/ChapterCountEvent.java → app/src/main/java/eu/kanade/mangafeed/event/ChapterCountEvent.java

@@ -1,4 +1,4 @@
-package eu.kanade.mangafeed.events;
+package eu.kanade.mangafeed.event;
 
 public class ChapterCountEvent {
     private int count;

+ 3 - 3
app/src/main/java/eu/kanade/mangafeed/events/DownloadChaptersEvent.java → app/src/main/java/eu/kanade/mangafeed/event/DownloadChaptersEvent.java

@@ -1,9 +1,9 @@
-package eu.kanade.mangafeed.events;
+package eu.kanade.mangafeed.event;
 
 import java.util.List;
 
-import eu.kanade.mangafeed.data.models.Chapter;
-import eu.kanade.mangafeed.data.models.Manga;
+import eu.kanade.mangafeed.data.database.models.Chapter;
+import eu.kanade.mangafeed.data.database.models.Manga;
 
 public class DownloadChaptersEvent {
     private Manga manga;

+ 4 - 4
app/src/main/java/eu/kanade/mangafeed/events/SourceMangaChapterEvent.java → app/src/main/java/eu/kanade/mangafeed/event/SourceMangaChapterEvent.java

@@ -1,8 +1,8 @@
-package eu.kanade.mangafeed.events;
+package eu.kanade.mangafeed.event;
 
-import eu.kanade.mangafeed.data.models.Chapter;
-import eu.kanade.mangafeed.data.models.Manga;
-import eu.kanade.mangafeed.sources.base.Source;
+import eu.kanade.mangafeed.data.database.models.Chapter;
+import eu.kanade.mangafeed.data.database.models.Manga;
+import eu.kanade.mangafeed.data.source.base.Source;
 
 public class SourceMangaChapterEvent {
 

+ 5 - 5
app/src/main/java/eu/kanade/mangafeed/injection/component/AppComponent.java

@@ -5,8 +5,8 @@ import android.app.Application;
 import javax.inject.Singleton;
 
 import dagger.Component;
-import eu.kanade.mangafeed.data.services.DownloadService;
-import eu.kanade.mangafeed.data.services.LibraryUpdateService;
+import eu.kanade.mangafeed.data.download.DownloadService;
+import eu.kanade.mangafeed.data.sync.LibraryUpdateService;
 import eu.kanade.mangafeed.injection.module.AppModule;
 import eu.kanade.mangafeed.injection.module.DataModule;
 import eu.kanade.mangafeed.ui.catalogue.CataloguePresenter;
@@ -17,10 +17,10 @@ import eu.kanade.mangafeed.ui.manga.chapter.ChaptersPresenter;
 import eu.kanade.mangafeed.ui.manga.info.MangaInfoPresenter;
 import eu.kanade.mangafeed.ui.reader.ReaderPresenter;
 import eu.kanade.mangafeed.ui.catalogue.SourcePresenter;
-import eu.kanade.mangafeed.sources.base.Source;
+import eu.kanade.mangafeed.data.source.base.Source;
 import eu.kanade.mangafeed.ui.reader.ReaderActivity;
-import eu.kanade.mangafeed.ui.preference.SettingsAccountsFragment;
-import eu.kanade.mangafeed.ui.preference.SettingsDownloadsFragment;
+import eu.kanade.mangafeed.ui.setting.SettingsAccountsFragment;
+import eu.kanade.mangafeed.ui.setting.SettingsDownloadsFragment;
 
 @Singleton
 @Component(

+ 6 - 6
app/src/main/java/eu/kanade/mangafeed/injection/module/DataModule.java

@@ -6,12 +6,12 @@ import javax.inject.Singleton;
 
 import dagger.Module;
 import dagger.Provides;
-import eu.kanade.mangafeed.data.caches.CacheManager;
-import eu.kanade.mangafeed.data.helpers.DatabaseHelper;
-import eu.kanade.mangafeed.data.helpers.DownloadManager;
-import eu.kanade.mangafeed.data.helpers.NetworkHelper;
-import eu.kanade.mangafeed.data.helpers.PreferencesHelper;
-import eu.kanade.mangafeed.data.helpers.SourceManager;
+import eu.kanade.mangafeed.data.cache.CacheManager;
+import eu.kanade.mangafeed.data.database.DatabaseHelper;
+import eu.kanade.mangafeed.data.download.DownloadManager;
+import eu.kanade.mangafeed.data.network.NetworkHelper;
+import eu.kanade.mangafeed.data.preference.PreferencesHelper;
+import eu.kanade.mangafeed.data.source.SourceManager;
 
 /**
  * Provide dependencies to the DataManager, mainly Helper classes and Retrofit services.

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/ui/catalogue/CatalogueFragment.java

@@ -21,7 +21,7 @@ import butterknife.Bind;
 import butterknife.ButterKnife;
 import butterknife.OnItemClick;
 import eu.kanade.mangafeed.R;
-import eu.kanade.mangafeed.data.models.Manga;
+import eu.kanade.mangafeed.data.database.models.Manga;
 import eu.kanade.mangafeed.ui.manga.MangaActivity;
 import eu.kanade.mangafeed.ui.base.fragment.BaseRxFragment;
 import eu.kanade.mangafeed.util.PageBundle;

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/ui/catalogue/CatalogueHolder.java

@@ -8,7 +8,7 @@ import com.bumptech.glide.Glide;
 import com.bumptech.glide.load.engine.DiskCacheStrategy;
 
 import eu.kanade.mangafeed.R;
-import eu.kanade.mangafeed.data.models.Manga;
+import eu.kanade.mangafeed.data.database.models.Manga;
 import uk.co.ribot.easyadapter.ItemViewHolder;
 import uk.co.ribot.easyadapter.PositionInfo;
 import uk.co.ribot.easyadapter.annotations.LayoutId;

+ 4 - 4
app/src/main/java/eu/kanade/mangafeed/ui/catalogue/CataloguePresenter.java

@@ -9,10 +9,10 @@ import java.util.concurrent.TimeUnit;
 
 import javax.inject.Inject;
 
-import eu.kanade.mangafeed.data.helpers.DatabaseHelper;
-import eu.kanade.mangafeed.data.helpers.SourceManager;
-import eu.kanade.mangafeed.data.models.Manga;
-import eu.kanade.mangafeed.sources.base.Source;
+import eu.kanade.mangafeed.data.database.DatabaseHelper;
+import eu.kanade.mangafeed.data.source.SourceManager;
+import eu.kanade.mangafeed.data.database.models.Manga;
+import eu.kanade.mangafeed.data.source.base.Source;
 import eu.kanade.mangafeed.ui.base.presenter.BasePresenter;
 import eu.kanade.mangafeed.util.PageBundle;
 import eu.kanade.mangafeed.util.RxPager;

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/ui/catalogue/SourceFragment.java

@@ -13,7 +13,7 @@ import butterknife.Bind;
 import butterknife.ButterKnife;
 import butterknife.OnItemClick;
 import eu.kanade.mangafeed.R;
-import eu.kanade.mangafeed.sources.base.Source;
+import eu.kanade.mangafeed.data.source.base.Source;
 import eu.kanade.mangafeed.ui.main.MainActivity;
 import eu.kanade.mangafeed.ui.base.fragment.BaseRxFragment;
 import nucleus.factory.RequiresPresenter;

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/ui/catalogue/SourceHolder.java

@@ -4,7 +4,7 @@ import android.view.View;
 import android.widget.TextView;
 
 import eu.kanade.mangafeed.R;
-import eu.kanade.mangafeed.sources.base.Source;
+import eu.kanade.mangafeed.data.source.base.Source;
 import uk.co.ribot.easyadapter.ItemViewHolder;
 import uk.co.ribot.easyadapter.PositionInfo;
 import uk.co.ribot.easyadapter.annotations.LayoutId;

+ 3 - 3
app/src/main/java/eu/kanade/mangafeed/ui/catalogue/SourcePresenter.java

@@ -2,9 +2,9 @@ package eu.kanade.mangafeed.ui.catalogue;
 
 import javax.inject.Inject;
 
-import eu.kanade.mangafeed.data.helpers.PreferencesHelper;
-import eu.kanade.mangafeed.data.helpers.SourceManager;
-import eu.kanade.mangafeed.sources.base.Source;
+import eu.kanade.mangafeed.data.preference.PreferencesHelper;
+import eu.kanade.mangafeed.data.source.SourceManager;
+import eu.kanade.mangafeed.data.source.base.Source;
 import eu.kanade.mangafeed.ui.base.presenter.BasePresenter;
 
 

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/ui/download/DownloadAdapter.java

@@ -2,7 +2,7 @@ package eu.kanade.mangafeed.ui.download;
 
 import android.content.Context;
 
-import eu.kanade.mangafeed.data.models.Download;
+import eu.kanade.mangafeed.data.download.model.Download;
 import uk.co.ribot.easyadapter.EasyRecyclerAdapter;
 
 public class DownloadAdapter extends EasyRecyclerAdapter<Download> {

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/ui/download/DownloadFragment.java

@@ -14,7 +14,7 @@ import java.util.List;
 import butterknife.Bind;
 import butterknife.ButterKnife;
 import eu.kanade.mangafeed.R;
-import eu.kanade.mangafeed.data.models.Download;
+import eu.kanade.mangafeed.data.download.model.Download;
 import eu.kanade.mangafeed.ui.base.fragment.BaseRxFragment;
 import nucleus.factory.RequiresPresenter;
 

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/ui/download/DownloadHolder.java

@@ -5,7 +5,7 @@ import android.widget.ProgressBar;
 import android.widget.TextView;
 
 import eu.kanade.mangafeed.R;
-import eu.kanade.mangafeed.data.models.Download;
+import eu.kanade.mangafeed.data.download.model.Download;
 import uk.co.ribot.easyadapter.ItemViewHolder;
 import uk.co.ribot.easyadapter.PositionInfo;
 import uk.co.ribot.easyadapter.annotations.LayoutId;

+ 4 - 4
app/src/main/java/eu/kanade/mangafeed/ui/download/DownloadPresenter.java

@@ -7,10 +7,10 @@ import java.util.concurrent.TimeUnit;
 
 import javax.inject.Inject;
 
-import eu.kanade.mangafeed.data.helpers.DownloadManager;
-import eu.kanade.mangafeed.data.models.Download;
-import eu.kanade.mangafeed.data.models.DownloadQueue;
-import eu.kanade.mangafeed.data.models.Page;
+import eu.kanade.mangafeed.data.download.DownloadManager;
+import eu.kanade.mangafeed.data.download.model.Download;
+import eu.kanade.mangafeed.data.download.model.DownloadQueue;
+import eu.kanade.mangafeed.data.source.model.Page;
 import eu.kanade.mangafeed.ui.base.presenter.BasePresenter;
 import rx.Observable;
 import rx.Subscription;

+ 1 - 2
app/src/main/java/eu/kanade/mangafeed/ui/library/LibraryAdapter.java

@@ -6,8 +6,7 @@ import android.widget.Filterable;
 
 import java.util.List;
 
-import eu.kanade.mangafeed.data.models.Manga;
-import eu.kanade.mangafeed.ui.library.LibraryHolder;
+import eu.kanade.mangafeed.data.database.models.Manga;
 import rx.Observable;
 import uk.co.ribot.easyadapter.EasyAdapter;
 

+ 2 - 2
app/src/main/java/eu/kanade/mangafeed/ui/library/LibraryFragment.java

@@ -18,8 +18,8 @@ import butterknife.Bind;
 import butterknife.ButterKnife;
 import butterknife.OnItemClick;
 import eu.kanade.mangafeed.R;
-import eu.kanade.mangafeed.data.models.Manga;
-import eu.kanade.mangafeed.data.services.LibraryUpdateService;
+import eu.kanade.mangafeed.data.database.models.Manga;
+import eu.kanade.mangafeed.data.sync.LibraryUpdateService;
 import eu.kanade.mangafeed.ui.manga.MangaActivity;
 import eu.kanade.mangafeed.ui.base.fragment.BaseRxFragment;
 import nucleus.factory.RequiresPresenter;

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/ui/library/LibraryHolder.java

@@ -8,7 +8,7 @@ import com.bumptech.glide.Glide;
 import com.bumptech.glide.load.engine.DiskCacheStrategy;
 
 import eu.kanade.mangafeed.R;
-import eu.kanade.mangafeed.data.models.Manga;
+import eu.kanade.mangafeed.data.database.models.Manga;
 import uk.co.ribot.easyadapter.ItemViewHolder;
 import uk.co.ribot.easyadapter.PositionInfo;
 import uk.co.ribot.easyadapter.annotations.LayoutId;

+ 2 - 2
app/src/main/java/eu/kanade/mangafeed/ui/library/LibraryPresenter.java

@@ -5,8 +5,8 @@ import android.util.SparseBooleanArray;
 
 import javax.inject.Inject;
 
-import eu.kanade.mangafeed.data.helpers.DatabaseHelper;
-import eu.kanade.mangafeed.data.helpers.PreferencesHelper;
+import eu.kanade.mangafeed.data.database.DatabaseHelper;
+import eu.kanade.mangafeed.data.preference.PreferencesHelper;
 import eu.kanade.mangafeed.ui.base.presenter.BasePresenter;
 import rx.Observable;
 import rx.Subscription;

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/ui/main/MainActivity.java

@@ -14,7 +14,7 @@ import com.mikepenz.materialdrawer.model.PrimaryDrawerItem;
 import butterknife.Bind;
 import butterknife.ButterKnife;
 import eu.kanade.mangafeed.R;
-import eu.kanade.mangafeed.ui.preference.SettingsActivity;
+import eu.kanade.mangafeed.ui.setting.SettingsActivity;
 import eu.kanade.mangafeed.ui.base.activity.BaseActivity;
 import eu.kanade.mangafeed.ui.download.DownloadFragment;
 import eu.kanade.mangafeed.ui.library.LibraryFragment;

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/ui/manga/MangaActivity.java

@@ -15,7 +15,7 @@ import android.view.MenuItem;
 import butterknife.Bind;
 import butterknife.ButterKnife;
 import eu.kanade.mangafeed.R;
-import eu.kanade.mangafeed.data.models.Manga;
+import eu.kanade.mangafeed.data.database.models.Manga;
 import eu.kanade.mangafeed.ui.base.activity.BaseRxActivity;
 import eu.kanade.mangafeed.ui.manga.chapter.ChaptersFragment;
 import eu.kanade.mangafeed.ui.manga.info.MangaInfoFragment;

+ 2 - 2
app/src/main/java/eu/kanade/mangafeed/ui/manga/MangaPresenter.java

@@ -5,8 +5,8 @@ import android.os.Bundle;
 import javax.inject.Inject;
 
 import de.greenrobot.event.EventBus;
-import eu.kanade.mangafeed.data.helpers.DatabaseHelper;
-import eu.kanade.mangafeed.data.models.Manga;
+import eu.kanade.mangafeed.data.database.DatabaseHelper;
+import eu.kanade.mangafeed.data.database.models.Manga;
 import eu.kanade.mangafeed.ui.base.presenter.BasePresenter;
 import rx.Observable;
 import rx.android.schedulers.AndroidSchedulers;

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/ui/manga/chapter/ChaptersAdapter.java

@@ -9,7 +9,7 @@ import java.util.List;
 
 import eu.davidea.flexibleadapter.FlexibleAdapter;
 import eu.kanade.mangafeed.R;
-import eu.kanade.mangafeed.data.models.Chapter;
+import eu.kanade.mangafeed.data.database.models.Chapter;
 import eu.kanade.mangafeed.ui.base.fragment.BaseFragment;
 
 public class ChaptersAdapter extends FlexibleAdapter<ChaptersHolder, Chapter> {

+ 2 - 2
app/src/main/java/eu/kanade/mangafeed/ui/manga/chapter/ChaptersFragment.java

@@ -18,8 +18,8 @@ import java.util.List;
 import butterknife.Bind;
 import butterknife.ButterKnife;
 import eu.kanade.mangafeed.R;
-import eu.kanade.mangafeed.data.models.Chapter;
-import eu.kanade.mangafeed.data.services.DownloadService;
+import eu.kanade.mangafeed.data.database.models.Chapter;
+import eu.kanade.mangafeed.data.download.DownloadService;
 import eu.kanade.mangafeed.ui.manga.MangaActivity;
 import eu.kanade.mangafeed.ui.reader.ReaderActivity;
 import eu.kanade.mangafeed.ui.base.activity.BaseActivity;

+ 1 - 2
app/src/main/java/eu/kanade/mangafeed/ui/manga/chapter/ChaptersHolder.java

@@ -11,8 +11,7 @@ import android.widget.TextView;
 import butterknife.Bind;
 import butterknife.ButterKnife;
 import eu.kanade.mangafeed.R;
-import eu.kanade.mangafeed.data.models.Chapter;
-import eu.kanade.mangafeed.ui.manga.chapter.ChaptersAdapter;
+import eu.kanade.mangafeed.data.database.models.Chapter;
 
 public class ChaptersHolder extends RecyclerView.ViewHolder implements
         View.OnClickListener, View.OnLongClickListener {

+ 10 - 10
app/src/main/java/eu/kanade/mangafeed/ui/manga/chapter/ChaptersPresenter.java

@@ -8,16 +8,16 @@ import java.util.List;
 import javax.inject.Inject;
 
 import de.greenrobot.event.EventBus;
-import eu.kanade.mangafeed.data.helpers.DatabaseHelper;
-import eu.kanade.mangafeed.data.helpers.DownloadManager;
-import eu.kanade.mangafeed.data.helpers.PreferencesHelper;
-import eu.kanade.mangafeed.data.helpers.SourceManager;
-import eu.kanade.mangafeed.data.models.Chapter;
-import eu.kanade.mangafeed.data.models.Manga;
-import eu.kanade.mangafeed.events.ChapterCountEvent;
-import eu.kanade.mangafeed.events.DownloadChaptersEvent;
-import eu.kanade.mangafeed.events.SourceMangaChapterEvent;
-import eu.kanade.mangafeed.sources.base.Source;
+import eu.kanade.mangafeed.data.database.DatabaseHelper;
+import eu.kanade.mangafeed.data.download.DownloadManager;
+import eu.kanade.mangafeed.data.preference.PreferencesHelper;
+import eu.kanade.mangafeed.data.source.SourceManager;
+import eu.kanade.mangafeed.data.database.models.Chapter;
+import eu.kanade.mangafeed.data.database.models.Manga;
+import eu.kanade.mangafeed.event.ChapterCountEvent;
+import eu.kanade.mangafeed.event.DownloadChaptersEvent;
+import eu.kanade.mangafeed.event.SourceMangaChapterEvent;
+import eu.kanade.mangafeed.data.source.base.Source;
 import eu.kanade.mangafeed.ui.base.presenter.BasePresenter;
 import eu.kanade.mangafeed.util.EventBusHook;
 import eu.kanade.mangafeed.util.PostResult;

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/ui/manga/info/MangaInfoFragment.java

@@ -16,7 +16,7 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy;
 import butterknife.Bind;
 import butterknife.ButterKnife;
 import eu.kanade.mangafeed.R;
-import eu.kanade.mangafeed.data.models.Manga;
+import eu.kanade.mangafeed.data.database.models.Manga;
 import eu.kanade.mangafeed.ui.base.fragment.BaseRxFragment;
 import nucleus.factory.RequiresPresenter;
 

+ 3 - 3
app/src/main/java/eu/kanade/mangafeed/ui/manga/info/MangaInfoPresenter.java

@@ -4,9 +4,9 @@ import android.os.Bundle;
 
 import javax.inject.Inject;
 
-import eu.kanade.mangafeed.data.helpers.DatabaseHelper;
-import eu.kanade.mangafeed.data.models.Manga;
-import eu.kanade.mangafeed.events.ChapterCountEvent;
+import eu.kanade.mangafeed.data.database.DatabaseHelper;
+import eu.kanade.mangafeed.data.database.models.Manga;
+import eu.kanade.mangafeed.event.ChapterCountEvent;
 import eu.kanade.mangafeed.ui.base.presenter.BasePresenter;
 import eu.kanade.mangafeed.util.EventBusHook;
 import rx.Observable;

+ 2 - 2
app/src/main/java/eu/kanade/mangafeed/ui/reader/ReaderActivity.java

@@ -18,8 +18,8 @@ import butterknife.Bind;
 import butterknife.ButterKnife;
 import eu.kanade.mangafeed.App;
 import eu.kanade.mangafeed.R;
-import eu.kanade.mangafeed.data.helpers.PreferencesHelper;
-import eu.kanade.mangafeed.data.models.Page;
+import eu.kanade.mangafeed.data.preference.PreferencesHelper;
+import eu.kanade.mangafeed.data.source.model.Page;
 import eu.kanade.mangafeed.ui.base.activity.BaseRxActivity;
 import eu.kanade.mangafeed.ui.reader.viewer.base.BaseReader;
 import eu.kanade.mangafeed.ui.reader.viewer.horizontal.LeftToRightReader;

+ 8 - 8
app/src/main/java/eu/kanade/mangafeed/ui/reader/ReaderPresenter.java

@@ -8,14 +8,14 @@ import java.util.List;
 import javax.inject.Inject;
 
 import de.greenrobot.event.EventBus;
-import eu.kanade.mangafeed.data.helpers.DatabaseHelper;
-import eu.kanade.mangafeed.data.helpers.DownloadManager;
-import eu.kanade.mangafeed.data.helpers.PreferencesHelper;
-import eu.kanade.mangafeed.data.models.Chapter;
-import eu.kanade.mangafeed.data.models.Manga;
-import eu.kanade.mangafeed.data.models.Page;
-import eu.kanade.mangafeed.events.SourceMangaChapterEvent;
-import eu.kanade.mangafeed.sources.base.Source;
+import eu.kanade.mangafeed.data.database.DatabaseHelper;
+import eu.kanade.mangafeed.data.download.DownloadManager;
+import eu.kanade.mangafeed.data.preference.PreferencesHelper;
+import eu.kanade.mangafeed.data.database.models.Chapter;
+import eu.kanade.mangafeed.data.database.models.Manga;
+import eu.kanade.mangafeed.data.source.model.Page;
+import eu.kanade.mangafeed.event.SourceMangaChapterEvent;
+import eu.kanade.mangafeed.data.source.base.Source;
 import eu.kanade.mangafeed.ui.base.presenter.BasePresenter;
 import eu.kanade.mangafeed.util.EventBusHook;
 import icepick.State;

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/ui/reader/viewer/base/BaseReader.java

@@ -5,7 +5,7 @@ import android.widget.FrameLayout;
 
 import java.util.List;
 
-import eu.kanade.mangafeed.data.models.Page;
+import eu.kanade.mangafeed.data.source.model.Page;
 import eu.kanade.mangafeed.ui.reader.ReaderActivity;
 
 public abstract class BaseReader {

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/ui/reader/viewer/common/ViewPagerReaderAdapter.java

@@ -5,7 +5,7 @@ import android.support.v4.app.FragmentManager;
 
 import java.util.List;
 
-import eu.kanade.mangafeed.data.models.Page;
+import eu.kanade.mangafeed.data.source.model.Page;
 
 public class ViewPagerReaderAdapter extends SmartFragmentStatePagerAdapter {
 

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/ui/reader/viewer/common/ViewPagerReaderFragment.java

@@ -18,7 +18,7 @@ import java.util.concurrent.atomic.AtomicInteger;
 import butterknife.Bind;
 import butterknife.ButterKnife;
 import eu.kanade.mangafeed.R;
-import eu.kanade.mangafeed.data.models.Page;
+import eu.kanade.mangafeed.data.source.model.Page;
 import eu.kanade.mangafeed.ui.base.fragment.BaseFragment;
 import eu.kanade.mangafeed.ui.reader.ReaderActivity;
 import rx.Observable;

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/ui/reader/viewer/horizontal/HorizontalReader.java

@@ -8,7 +8,7 @@ import java.util.List;
 import butterknife.Bind;
 import butterknife.ButterKnife;
 import eu.kanade.mangafeed.R;
-import eu.kanade.mangafeed.data.models.Page;
+import eu.kanade.mangafeed.data.source.model.Page;
 import eu.kanade.mangafeed.ui.reader.ReaderActivity;
 import eu.kanade.mangafeed.ui.reader.viewer.base.BaseReader;
 import eu.kanade.mangafeed.ui.reader.viewer.common.ViewPagerReaderAdapter;

+ 2 - 2
app/src/main/java/eu/kanade/mangafeed/ui/reader/viewer/horizontal/RightToLeftReader.java

@@ -6,7 +6,7 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
-import eu.kanade.mangafeed.data.models.Page;
+import eu.kanade.mangafeed.data.source.model.Page;
 import eu.kanade.mangafeed.ui.reader.ReaderActivity;
 
 public class RightToLeftReader extends HorizontalReader {
@@ -20,7 +20,7 @@ public class RightToLeftReader extends HorizontalReader {
         ArrayList<Page> inversedPages = new ArrayList<>(pages);
         Collections.reverse(inversedPages);
         adapter.setPages(inversedPages);
-        viewPager.setCurrentItem(adapter.getCount()-1, false);
+        viewPager.setCurrentItem(adapter.getCount() - 1, false);
     }
 
     @Override

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/ui/reader/viewer/vertical/VerticalReader.java

@@ -9,7 +9,7 @@ import java.util.List;
 import butterknife.Bind;
 import butterknife.ButterKnife;
 import eu.kanade.mangafeed.R;
-import eu.kanade.mangafeed.data.models.Page;
+import eu.kanade.mangafeed.data.source.model.Page;
 import eu.kanade.mangafeed.ui.reader.ReaderActivity;
 import eu.kanade.mangafeed.ui.reader.viewer.base.BaseReader;
 import eu.kanade.mangafeed.ui.reader.viewer.common.ViewPagerReaderAdapter;

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/ui/reader/viewer/webtoon/WebtoonAdapter.java

@@ -11,7 +11,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import eu.kanade.mangafeed.R;
-import eu.kanade.mangafeed.data.models.Page;
+import eu.kanade.mangafeed.data.source.model.Page;
 import uk.co.ribot.easyadapter.BaseEasyRecyclerAdapter;
 import uk.co.ribot.easyadapter.ItemViewHolder;
 import uk.co.ribot.easyadapter.PositionInfo;

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/ui/reader/viewer/webtoon/WebtoonReader.java

@@ -7,7 +7,7 @@ import android.widget.FrameLayout;
 
 import java.util.List;
 
-import eu.kanade.mangafeed.data.models.Page;
+import eu.kanade.mangafeed.data.source.model.Page;
 import eu.kanade.mangafeed.ui.reader.ReaderActivity;
 import eu.kanade.mangafeed.ui.reader.viewer.base.BaseReader;
 import rx.Subscription;

+ 3 - 3
app/src/main/java/eu/kanade/mangafeed/ui/preference/LoginDialogPreference.java → app/src/main/java/eu/kanade/mangafeed/ui/setting/LoginDialogPreference.java

@@ -1,4 +1,4 @@
-package eu.kanade.mangafeed.ui.preference;
+package eu.kanade.mangafeed.ui.setting;
 
 import android.app.AlertDialog;
 import android.content.Context;
@@ -16,8 +16,8 @@ import com.dd.processbutton.iml.ActionProcessButton;
 import butterknife.Bind;
 import butterknife.ButterKnife;
 import eu.kanade.mangafeed.R;
-import eu.kanade.mangafeed.data.helpers.PreferencesHelper;
-import eu.kanade.mangafeed.sources.base.Source;
+import eu.kanade.mangafeed.data.preference.PreferencesHelper;
+import eu.kanade.mangafeed.data.source.base.Source;
 import eu.kanade.mangafeed.util.ToastUtil;
 import rx.Subscription;
 import rx.android.schedulers.AndroidSchedulers;

+ 4 - 4
app/src/main/java/eu/kanade/mangafeed/ui/preference/SettingsAccountsFragment.java → app/src/main/java/eu/kanade/mangafeed/ui/setting/SettingsAccountsFragment.java

@@ -1,4 +1,4 @@
-package eu.kanade.mangafeed.ui.preference;
+package eu.kanade.mangafeed.ui.setting;
 
 import android.os.Bundle;
 import android.preference.PreferenceFragment;
@@ -10,9 +10,9 @@ import javax.inject.Inject;
 
 import eu.kanade.mangafeed.App;
 import eu.kanade.mangafeed.R;
-import eu.kanade.mangafeed.data.helpers.PreferencesHelper;
-import eu.kanade.mangafeed.data.helpers.SourceManager;
-import eu.kanade.mangafeed.sources.base.Source;
+import eu.kanade.mangafeed.data.preference.PreferencesHelper;
+import eu.kanade.mangafeed.data.source.SourceManager;
+import eu.kanade.mangafeed.data.source.base.Source;
 import eu.kanade.mangafeed.ui.base.activity.BaseActivity;
 import rx.Observable;
 

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/ui/preference/SettingsActivity.java → app/src/main/java/eu/kanade/mangafeed/ui/setting/SettingsActivity.java

@@ -1,4 +1,4 @@
-package eu.kanade.mangafeed.ui.preference;
+package eu.kanade.mangafeed.ui.setting;
 
 import android.os.Bundle;
 import android.support.v7.widget.Toolbar;

+ 2 - 2
app/src/main/java/eu/kanade/mangafeed/ui/preference/SettingsDownloadsFragment.java → app/src/main/java/eu/kanade/mangafeed/ui/setting/SettingsDownloadsFragment.java

@@ -1,4 +1,4 @@
-package eu.kanade.mangafeed.ui.preference;
+package eu.kanade.mangafeed.ui.setting;
 
 import android.os.Bundle;
 import android.preference.ListPreference;
@@ -9,7 +9,7 @@ import javax.inject.Inject;
 
 import eu.kanade.mangafeed.App;
 import eu.kanade.mangafeed.R;
-import eu.kanade.mangafeed.data.helpers.PreferencesHelper;
+import eu.kanade.mangafeed.data.preference.PreferencesHelper;
 import eu.kanade.mangafeed.ui.base.activity.BaseActivity;
 import eu.kanade.mangafeed.util.DiskUtils;
 

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/ui/preference/SettingsMainFragment.java → app/src/main/java/eu/kanade/mangafeed/ui/setting/SettingsMainFragment.java

@@ -1,4 +1,4 @@
-package eu.kanade.mangafeed.ui.preference;
+package eu.kanade.mangafeed.ui.setting;
 
 import android.os.Bundle;
 import android.preference.PreferenceFragment;

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/ui/preference/SettingsNestedFragment.java → app/src/main/java/eu/kanade/mangafeed/ui/setting/SettingsNestedFragment.java

@@ -1,4 +1,4 @@
-package eu.kanade.mangafeed.ui.preference;
+package eu.kanade.mangafeed.ui.setting;
 
 import android.os.Bundle;
 import android.preference.PreferenceFragment;

+ 2 - 2
app/src/main/java/eu/kanade/mangafeed/util/ChapterRecognition.java

@@ -5,8 +5,8 @@ import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import eu.kanade.mangafeed.data.models.Chapter;
-import eu.kanade.mangafeed.data.models.Manga;
+import eu.kanade.mangafeed.data.database.models.Chapter;
+import eu.kanade.mangafeed.data.database.models.Manga;
 
 public class ChapterRecognition {
 

+ 2 - 2
app/src/test/java/eu/kanade/mangafeed/ChapterRecognitionTest.java

@@ -3,8 +3,8 @@ package eu.kanade.mangafeed;
 import org.junit.Before;
 import org.junit.Test;
 
-import eu.kanade.mangafeed.data.models.Chapter;
-import eu.kanade.mangafeed.data.models.Manga;
+import eu.kanade.mangafeed.data.database.models.Chapter;
+import eu.kanade.mangafeed.data.database.models.Manga;
 import eu.kanade.mangafeed.util.ChapterRecognition;
 
 import static org.hamcrest.Matchers.is;