mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 22:07:57 +01:00 
			
		
		
		
	Minor changes
This commit is contained in:
		| @@ -17,7 +17,6 @@ public class SourceManager { | ||||
|     private HashMap<Integer, Source> mSourcesMap; | ||||
|     private NetworkHelper mNetworkHelper; | ||||
|     private CacheManager mCacheManager; | ||||
|     private Source selected; | ||||
|  | ||||
|     public SourceManager(NetworkHelper networkHelper, CacheManager cacheManager) { | ||||
|         mSourcesMap = new HashMap<>(); | ||||
| @@ -51,14 +50,7 @@ public class SourceManager { | ||||
|     } | ||||
|  | ||||
|     public List<Source> getSources() { | ||||
|         return new ArrayList<Source>(mSourcesMap.values()); | ||||
|         return new ArrayList<>(mSourcesMap.values()); | ||||
|     } | ||||
|  | ||||
|     public void setSelectedSource(int sourceId) { | ||||
|         selected = get(sourceId); | ||||
|     } | ||||
|  | ||||
|     public Source getSelectedSource() { | ||||
|         return selected; | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -23,7 +23,6 @@ import rx.Subscription; | ||||
| import rx.android.schedulers.AndroidSchedulers; | ||||
| import rx.schedulers.Schedulers; | ||||
| import rx.subjects.PublishSubject; | ||||
| import timber.log.Timber; | ||||
|  | ||||
| public class CataloguePresenter extends BasePresenter<CatalogueActivity> { | ||||
|  | ||||
| @@ -36,12 +35,12 @@ public class CataloguePresenter extends BasePresenter<CatalogueActivity> { | ||||
|     @State protected boolean mSearchMode; | ||||
|     private final int SEARCH_TIMEOUT = 1000; | ||||
|  | ||||
|     @State protected int mCurrentPage; | ||||
|     private int mCurrentPage; | ||||
|     private RxPager pager; | ||||
|  | ||||
|     private Subscription mSearchViewSubscription; | ||||
|     private Subscription mQueryDebouncerSubscription; | ||||
|     private Subscription mMangaDetailFetchSubscription; | ||||
|     private PublishSubject<Observable<String>> mSearchViewPublishSubject; | ||||
|     private PublishSubject<Observable<String>> mQueryDebouncerSubject; | ||||
|     private PublishSubject<Observable<List<Manga>>> mMangaDetailPublishSubject; | ||||
|  | ||||
|     private static final int GET_MANGA_LIST = 1; | ||||
| @@ -77,14 +76,8 @@ public class CataloguePresenter extends BasePresenter<CatalogueActivity> { | ||||
|             view.restoreSearch(mSearchName); | ||||
|     } | ||||
|  | ||||
|     public void requestNext() { | ||||
|         pager.requestNext(++mCurrentPage); | ||||
|         if (getView() != null) | ||||
|             getView().showGridProgressBar(); | ||||
|     } | ||||
|  | ||||
|     public void startRequesting(int source_id) { | ||||
|         this.selectedSource = sourceManager.get(source_id); | ||||
|     public void startRequesting(int sourceId) { | ||||
|         selectedSource = sourceManager.get(sourceId); | ||||
|         restartRequest(); | ||||
|     } | ||||
|  | ||||
| @@ -92,9 +85,17 @@ public class CataloguePresenter extends BasePresenter<CatalogueActivity> { | ||||
|         stop(GET_MANGA_LIST); | ||||
|         mCurrentPage = 1; | ||||
|         pager = new RxPager(); | ||||
|         start(GET_MANGA_LIST); | ||||
|         if (getView() != null) | ||||
|             getView().showProgressBar(); | ||||
|  | ||||
|         start(GET_MANGA_LIST); | ||||
|     } | ||||
|  | ||||
|     public void requestNext() { | ||||
|         if (getView() != null) | ||||
|             getView().showGridProgressBar(); | ||||
|  | ||||
|         pager.requestNext(++mCurrentPage); | ||||
|     } | ||||
|  | ||||
|     private Observable<List<Manga>> getMangaObs(int page) { | ||||
| @@ -110,21 +111,29 @@ public class CataloguePresenter extends BasePresenter<CatalogueActivity> { | ||||
|                 .toList(); | ||||
|     } | ||||
|  | ||||
|     private Manga networkToLocalManga(Manga networkManga) { | ||||
|         Manga localManga = db.getMangaBlock(networkManga.url); | ||||
|         if (localManga == null) { | ||||
|             PutResult result = db.insertMangaBlock(networkManga); | ||||
|             networkManga.id = result.insertedId(); | ||||
|             localManga = networkManga; | ||||
|         } | ||||
|         return localManga; | ||||
|     } | ||||
|  | ||||
|     private void initializeSearch() { | ||||
|         if (mSearchViewSubscription != null) | ||||
|         if (mQueryDebouncerSubscription != null) | ||||
|             return; | ||||
|  | ||||
|         mSearchName = ""; | ||||
|         mSearchMode = false; | ||||
|         mSearchViewPublishSubject = PublishSubject.create(); | ||||
|         mQueryDebouncerSubject = PublishSubject.create(); | ||||
|  | ||||
|         mSearchViewSubscription = Observable.switchOnNext(mSearchViewPublishSubject) | ||||
|         add(mQueryDebouncerSubscription = Observable.switchOnNext(mQueryDebouncerSubject) | ||||
|                 .debounce(SEARCH_TIMEOUT, TimeUnit.MILLISECONDS) | ||||
|                 .subscribeOn(Schedulers.io()) | ||||
|                 .observeOn(AndroidSchedulers.mainThread()) | ||||
|                 .subscribe(this::queryFromSearch); | ||||
|  | ||||
|         add(mSearchViewSubscription); | ||||
|                 .subscribe(this::queryFromSearch)); | ||||
|     } | ||||
|  | ||||
|     private void initializeMangaDetailsLoader() { | ||||
| @@ -133,7 +142,7 @@ public class CataloguePresenter extends BasePresenter<CatalogueActivity> { | ||||
|  | ||||
|         mMangaDetailPublishSubject = PublishSubject.create(); | ||||
|  | ||||
|         mMangaDetailFetchSubscription = Observable.switchOnNext(mMangaDetailPublishSubject) | ||||
|         add(mMangaDetailFetchSubscription = Observable.switchOnNext(mMangaDetailPublishSubject) | ||||
|                 .subscribeOn(Schedulers.io()) | ||||
|                 .flatMap(Observable::from) | ||||
|                 .filter(manga -> !manga.initialized) | ||||
| @@ -158,32 +167,19 @@ public class CataloguePresenter extends BasePresenter<CatalogueActivity> { | ||||
|                 .subscribe(manga -> { | ||||
|                     if (getView() != null) | ||||
|                         getView().updateImage(manga); | ||||
|                 }); | ||||
|  | ||||
|         add(mMangaDetailFetchSubscription); | ||||
|                 })); | ||||
|     } | ||||
|  | ||||
|     private Manga networkToLocalManga(Manga networkManga) { | ||||
|         Manga localManga = db.getMangaBlock(networkManga.url); | ||||
|         if (localManga == null) { | ||||
|             PutResult result = db.insertMangaBlock(networkManga); | ||||
|             networkManga.id = result.insertedId(); | ||||
|             localManga = networkManga; | ||||
|         } | ||||
|         return localManga; | ||||
|     } | ||||
|  | ||||
|     public void onQueryTextChange(String query) { | ||||
|         if (query.equals("")) { | ||||
|     public void onSearchEvent(String query, boolean now) { | ||||
|         // If the query is empty or not debounced, resolve it instantly | ||||
|         if (now || query.equals("")) | ||||
|             queryFromSearch(query); | ||||
|             return; | ||||
|         } | ||||
|         if (mSearchViewPublishSubject != null) | ||||
|             mSearchViewPublishSubject.onNext(Observable.just(query)); | ||||
|         else if (mQueryDebouncerSubject != null) | ||||
|             mQueryDebouncerSubject.onNext(Observable.just(query)); | ||||
|     } | ||||
|  | ||||
|     public void queryFromSearch(String query) { | ||||
|         // If text didn't change | ||||
|     private void queryFromSearch(String query) { | ||||
|         // If text didn't change, do nothing | ||||
|         if (mSearchName.equals(query)) { | ||||
|             return; | ||||
|         } | ||||
|   | ||||
| @@ -18,7 +18,4 @@ public class SourcePresenter extends BasePresenter<SourceFragment> { | ||||
|         view.setItems(sourceManager.getSources()); | ||||
|     } | ||||
|  | ||||
|     public void setSelectedSource(Source source) { | ||||
|         sourceManager.setSelectedSource(source.getSourceId()); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -14,7 +14,6 @@ import android.widget.ProgressBar; | ||||
|  | ||||
| import com.bumptech.glide.Glide; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
|  | ||||
| import butterknife.Bind; | ||||
| @@ -86,13 +85,13 @@ public class CatalogueActivity extends BaseActivity<CataloguePresenter> { | ||||
|         sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() { | ||||
|             @Override | ||||
|             public boolean onQueryTextSubmit(String query) { | ||||
|                 getPresenter().queryFromSearch(query); | ||||
|                 getPresenter().onSearchEvent(query, true); | ||||
|                 return true; | ||||
|             } | ||||
|  | ||||
|             @Override | ||||
|             public boolean onQueryTextChange(String newText) { | ||||
|                 getPresenter().onQueryTextChange(newText); | ||||
|                 getPresenter().onSearchEvent(newText, false); | ||||
|                 return true; | ||||
|             } | ||||
|         }); | ||||
| @@ -126,10 +125,6 @@ public class CatalogueActivity extends BaseActivity<CataloguePresenter> { | ||||
|         manga_list.setOnScrollListener(scroll_listener); | ||||
|     } | ||||
|  | ||||
|     public void resetScrollListener() { | ||||
|         scroll_listener.resetScroll(); | ||||
|     } | ||||
|  | ||||
|     public void showProgressBar() { | ||||
|         progress.setVisibility(ProgressBar.VISIBLE); | ||||
|     } | ||||
| @@ -145,8 +140,8 @@ public class CatalogueActivity extends BaseActivity<CataloguePresenter> { | ||||
|  | ||||
|     public void onAddPage(PageBundle<List<Manga>> page) { | ||||
|         if (page.page == 0) { | ||||
|             adapter.setItems(new ArrayList<>()); | ||||
|             resetScrollListener(); | ||||
|             adapter.getItems().clear(); | ||||
|             scroll_listener.resetScroll(); | ||||
|         } | ||||
|         adapter.addItems(page.data); | ||||
|     } | ||||
|   | ||||
| @@ -44,9 +44,10 @@ public class SourceFragment extends BaseFragment<SourcePresenter> { | ||||
|                              Bundle savedInstanceState) { | ||||
|         // Inflate the layout for this fragment | ||||
|         View view = inflater.inflate(R.layout.fragment_catalogue, container, false); | ||||
|         activity.setToolbarTitle(R.string.catalogues_title); | ||||
|         ButterKnife.bind(this, view); | ||||
|  | ||||
|         activity.setToolbarTitle(R.string.catalogues_title); | ||||
|  | ||||
|         createAdapter(); | ||||
|  | ||||
|         return view; | ||||
| @@ -55,7 +56,6 @@ public class SourceFragment extends BaseFragment<SourcePresenter> { | ||||
|     @OnItemClick(R.id.catalogue_list) | ||||
|     public void onSourceClick(int position) { | ||||
|         Source source = adapter.getItem(position); | ||||
|         getPresenter().setSelectedSource(source); | ||||
|  | ||||
|         Intent intent = CatalogueActivity.newIntent(activity, source.getSourceId()); | ||||
|         startActivity(intent); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user