mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 14:27:57 +01:00 
			
		
		
		
	Can now delete manga from recent + added missing res files #118
This commit is contained in:
		| @@ -10,6 +10,8 @@ import android.view.LayoutInflater; | ||||
| import android.view.View; | ||||
| import android.view.ViewGroup; | ||||
|  | ||||
| import com.afollestad.materialdialogs.MaterialDialog; | ||||
|  | ||||
| import java.util.List; | ||||
|  | ||||
| import butterknife.Bind; | ||||
| @@ -26,6 +28,8 @@ import eu.kanade.tachiyomi.ui.decoration.DividerItemDecoration; | ||||
| import eu.kanade.tachiyomi.ui.reader.ReaderActivity; | ||||
| import nucleus.factory.RequiresPresenter; | ||||
| import rx.Observable; | ||||
| import rx.android.schedulers.AndroidSchedulers; | ||||
| import rx.schedulers.Schedulers; | ||||
|  | ||||
| @RequiresPresenter(RecentChaptersPresenter.class) | ||||
| public class RecentChaptersFragment extends BaseRxFragment<RecentChaptersPresenter> implements FlexibleViewHolder.OnListItemClickListener { | ||||
| @@ -103,4 +107,38 @@ public class RecentChaptersFragment extends BaseRxFragment<RecentChaptersPresent | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     protected boolean onDelete(Observable<Chapter> chapters, Manga manga) { | ||||
|         int size = adapter.getSelectedItemCount(); | ||||
|  | ||||
|         MaterialDialog dialog = new MaterialDialog.Builder(getActivity()) | ||||
|                 .title(R.string.deleting) | ||||
|                 .progress(false, size, true) | ||||
|                 .cancelable(false) | ||||
|                 .show(); | ||||
|  | ||||
|         Observable<Chapter> observable = chapters | ||||
|                 .concatMap(chapter -> { | ||||
|                     getPresenter().deleteChapter(chapter, manga); | ||||
|                     return Observable.just(chapter); | ||||
|                 }) | ||||
|                 .subscribeOn(Schedulers.io()) | ||||
|                 .observeOn(AndroidSchedulers.mainThread()) | ||||
|                 .doOnNext(chapter -> { | ||||
|                     dialog.incrementProgress(1); | ||||
|                     chapter.status = Download.NOT_DOWNLOADED; | ||||
|                 }) | ||||
|                 .doOnCompleted(adapter::notifyDataSetChanged) | ||||
|                 .finallyDo(dialog::dismiss); | ||||
|  | ||||
|         getPresenter().deleteChapters(observable); | ||||
|  | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     protected boolean onMarkAsRead(Observable<Chapter> chapters) { | ||||
|         getPresenter().markChaptersRead(chapters, true); | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -133,11 +133,6 @@ public class RecentChaptersHolder extends FlexibleViewHolder { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void onProgressChange(Context context, int downloaded, int total) { | ||||
|         downloadText.setText(context.getString( | ||||
|                 R.string.chapter_downloading_progress, downloaded, total)); | ||||
|     } | ||||
|  | ||||
|     private void showPopupMenu(View view) { | ||||
|         // Create a PopupMenu, giving it the clicked view for an anchor | ||||
|         PopupMenu popup = new PopupMenu(adapter.getFragment().getActivity(), view); | ||||
| @@ -170,13 +165,10 @@ public class RecentChaptersHolder extends FlexibleViewHolder { | ||||
|                 case R.id.action_download: | ||||
|                     return adapter.getFragment().onDownload(chapterObservable, mangaChapter.manga); | ||||
|                 case R.id.action_delete: | ||||
|                     ToastUtil.showShort(context, "Delete does not work, yet...."); | ||||
|                     return true; | ||||
| //                    return adapter.getFragment().onDelete(chapterObservable); | ||||
|                     return adapter.getFragment().onDelete(chapterObservable, mangaChapter.manga); | ||||
|                 case R.id.action_mark_as_read: | ||||
|                     ToastUtil.showShort(context, "Mark as read does not work, yet...."); | ||||
|                     return true; | ||||
| //                    return adapter.getFragment().onMarkAsRead(chapterObservable); | ||||
|                     ToastUtil.showShort(context, "Mark as read"); | ||||
|                     return adapter.getFragment().onMarkAsRead(chapterObservable); | ||||
|                 case R.id.action_mark_as_unread: | ||||
|                     ToastUtil.showShort(context, "Mark as unread does not work, yet...."); | ||||
|                     return true; | ||||
|   | ||||
| @@ -27,6 +27,7 @@ import eu.kanade.tachiyomi.event.ReaderEvent; | ||||
| import eu.kanade.tachiyomi.ui.base.presenter.BasePresenter; | ||||
| import rx.Observable; | ||||
| import rx.android.schedulers.AndroidSchedulers; | ||||
| import rx.schedulers.Schedulers; | ||||
| import timber.log.Timber; | ||||
|  | ||||
| public class RecentChaptersPresenter extends BasePresenter<RecentChaptersFragment> { | ||||
| @@ -109,6 +110,7 @@ public class RecentChaptersPresenter extends BasePresenter<RecentChaptersFragmen | ||||
|     } | ||||
|  | ||||
|  | ||||
|  | ||||
|     private Observable<List<Object>> getRecentChaptersObservable() { | ||||
|         Calendar cal = Calendar.getInstance(); | ||||
|         cal.setTime(new Date()); | ||||
| @@ -171,4 +173,32 @@ public class RecentChaptersPresenter extends BasePresenter<RecentChaptersFragmen | ||||
|                     EventBus.getDefault().postSticky(new DownloadChaptersEvent(manga, chapters)); | ||||
|                 })); | ||||
|     } | ||||
|  | ||||
|     public void deleteChapter(Chapter chapter, Manga manga) { | ||||
|         Source source = sourceManager.get(manga.source); | ||||
|         downloadManager.deleteChapter(source, manga, chapter); | ||||
|     } | ||||
|  | ||||
|     public void deleteChapters(Observable<Chapter> selectedChapters) { | ||||
|         add(selectedChapters | ||||
|                 .subscribe(chapter -> { | ||||
|                     downloadManager.getQueue().remove(chapter); | ||||
|                 }, error -> { | ||||
|                     Timber.e(error.getMessage()); | ||||
|                 })); | ||||
|     } | ||||
|  | ||||
|     public void markChaptersRead(Observable<Chapter> selectedChapters, boolean read) { | ||||
|         add(selectedChapters | ||||
|                 .subscribeOn(Schedulers.io()) | ||||
|                 .map(chapter -> { | ||||
|                     chapter.read = read; | ||||
|                     if (!read) chapter.last_page_read = 0; | ||||
|                     return chapter; | ||||
|                 }) | ||||
|                 .toList() | ||||
|                 .flatMap(chapters -> db.insertChapters(chapters).asRxObservable()) | ||||
|                 .observeOn(AndroidSchedulers.mainThread()) | ||||
|                 .subscribe()); | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user