mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-04 08:08:55 +01:00 
			
		
		
		
	Fix force close when no more mangas found
This commit is contained in:
		@@ -2,6 +2,7 @@ package eu.kanade.mangafeed.presenter;
 | 
			
		||||
 | 
			
		||||
import android.content.Intent;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.concurrent.TimeUnit;
 | 
			
		||||
 | 
			
		||||
import javax.inject.Inject;
 | 
			
		||||
@@ -31,6 +32,7 @@ public class CatalogueListPresenter extends BasePresenter {
 | 
			
		||||
    @Inject DatabaseHelper db;
 | 
			
		||||
 | 
			
		||||
    private String mSearchName;
 | 
			
		||||
    private boolean mSearchMode;
 | 
			
		||||
    private final int SEARCH_TIMEOUT = 1000;
 | 
			
		||||
 | 
			
		||||
    private Subscription mMangaFetchSubscription;
 | 
			
		||||
@@ -81,7 +83,7 @@ public class CatalogueListPresenter extends BasePresenter {
 | 
			
		||||
                .flatMap(Observable::from)
 | 
			
		||||
                .map(this::networkToLocalManga)
 | 
			
		||||
                .toList()
 | 
			
		||||
                .subscribe(adapter::setItems);
 | 
			
		||||
                .subscribe(adapter::addItems);
 | 
			
		||||
 | 
			
		||||
        subscriptions.add(mMangaSearchSubscription);
 | 
			
		||||
    }
 | 
			
		||||
@@ -101,6 +103,8 @@ public class CatalogueListPresenter extends BasePresenter {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void initializeSearch() {
 | 
			
		||||
        mSearchName = "";
 | 
			
		||||
        mSearchMode = false;
 | 
			
		||||
        mSearchViewPublishSubject = PublishSubject.create();
 | 
			
		||||
        mSearchViewSubscription = Observable.switchOnNext(mSearchViewPublishSubject)
 | 
			
		||||
                .debounce(SEARCH_TIMEOUT, TimeUnit.MILLISECONDS)
 | 
			
		||||
@@ -114,24 +118,39 @@ public class CatalogueListPresenter extends BasePresenter {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void queryFromSearch(String query) {
 | 
			
		||||
        mSearchName = query;
 | 
			
		||||
        if (!isSearchMode()) {
 | 
			
		||||
        // If search button clicked
 | 
			
		||||
        if (mSearchName.equals("") && query.equals("")) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        // If going to search mode
 | 
			
		||||
        else if (mSearchName.equals("") && !query.equals("")) {
 | 
			
		||||
            mSearchMode = true;
 | 
			
		||||
            mSearchName = query;
 | 
			
		||||
            adapter.setItems(new ArrayList<>());
 | 
			
		||||
            getMangasFromSearch(1);
 | 
			
		||||
        }
 | 
			
		||||
        // If going to normal mode
 | 
			
		||||
        else if (!mSearchName.equals("") && query.equals("")) {
 | 
			
		||||
            mSearchMode = false;
 | 
			
		||||
            mSearchName = query;
 | 
			
		||||
            adapter.setItems(new ArrayList<>());
 | 
			
		||||
            getMangasFromSource(1);
 | 
			
		||||
        } else {
 | 
			
		||||
        }
 | 
			
		||||
        // If query changes
 | 
			
		||||
        else {
 | 
			
		||||
            mSearchName = query;
 | 
			
		||||
            adapter.setItems(new ArrayList<>());
 | 
			
		||||
            getMangasFromSearch(1);
 | 
			
		||||
        }
 | 
			
		||||
        view.setScrollListener();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void loadMoreMangas(int page) {
 | 
			
		||||
        if (!isSearchMode()) {
 | 
			
		||||
        if (!mSearchMode) {
 | 
			
		||||
            getMangasFromSource(page);
 | 
			
		||||
        } else {
 | 
			
		||||
            getMangasFromSearch(page);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private boolean isSearchMode() {
 | 
			
		||||
        return !mSearchName.equals("");
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -113,6 +113,10 @@ public class Batoto extends Source {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private List<Manga> parseMangasFromHtml(String unparsedHtml) {
 | 
			
		||||
        if (unparsedHtml.contains("No (more) comics found!")) {
 | 
			
		||||
            return new ArrayList<>();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        Document parsedDocument = Jsoup.parse(unparsedHtml);
 | 
			
		||||
 | 
			
		||||
        List<Manga> updatedMangaList = new ArrayList<>();
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user