| 
					
				 | 
			
			
				@@ -34,6 +34,7 @@ public class ReaderPresenter extends BasePresenter<ReaderActivity> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private Manga manga; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private Chapter chapter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private List<Page> pageList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private boolean isDownloaded; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @State int currentPage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private static final int GET_PAGE_LIST = 1; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -52,13 +53,11 @@ public class ReaderPresenter extends BasePresenter<ReaderActivity> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (currentPage != 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         view.setSelectedPage(currentPage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                (view, error) -> Timber.e("An error occurred while downloading page list") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                (view, error) -> Timber.e("An error occurred while downloading page list")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         restartableReplay(GET_PAGE_IMAGES, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 this::getPageImagesObservable, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                (view, page) -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                (view, page) -> {}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 (view, error) -> Timber.e("An error occurred while downloading an image")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -77,8 +76,9 @@ public class ReaderPresenter extends BasePresenter<ReaderActivity> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     protected void onDestroy() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        source.savePageList(chapter.url, pageList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        saveChapter(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!isDownloaded) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            source.savePageList(chapter.url, pageList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        saveChapterProgress(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         super.onDestroy(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -87,6 +87,7 @@ public class ReaderPresenter extends BasePresenter<ReaderActivity> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         source = event.getSource(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         manga = event.getManga(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         chapter = event.getChapter(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        isDownloaded = chapter.downloaded == Chapter.DOWNLOADED; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (chapter.last_page_read != 0 && !chapter.read) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             currentPage = chapter.last_page_read; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -96,7 +97,7 @@ public class ReaderPresenter extends BasePresenter<ReaderActivity> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private Observable<List<Page>> getPageListObservable() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (chapter.downloaded != Chapter.DOWNLOADED) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!isDownloaded) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return source.pullPageListFromNetwork(chapter.url) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .subscribeOn(Schedulers.io()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .observeOn(AndroidSchedulers.mainThread()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -107,7 +108,7 @@ public class ReaderPresenter extends BasePresenter<ReaderActivity> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private Observable<Page> getPageImagesObservable() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Observable<Page> pages; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (chapter.downloaded != Chapter.DOWNLOADED) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!isDownloaded) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             pages = Observable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     .merge(Observable.from(pageList).filter(page -> page.getImageUrl() != null), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             source.getRemainingImageUrlsFromPageList(pageList)) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -129,7 +130,7 @@ public class ReaderPresenter extends BasePresenter<ReaderActivity> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.currentPage = currentPage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private void saveChapter() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private void saveChapterProgress() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         chapter.last_page_read = currentPage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (currentPage == pageList.size() - 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             chapter.read = true; 
			 |