mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-12-22 22:41:48 +01:00
Rename recently read / recent updates classes/layouts to match new names
This commit is contained in:
parent
c38026886a
commit
29eb87b7ef
@ -26,8 +26,8 @@ import eu.kanade.tachiyomi.ui.download.DownloadController
|
|||||||
import eu.kanade.tachiyomi.ui.library.LibraryController
|
import eu.kanade.tachiyomi.ui.library.LibraryController
|
||||||
import eu.kanade.tachiyomi.ui.manga.MangaController
|
import eu.kanade.tachiyomi.ui.manga.MangaController
|
||||||
import eu.kanade.tachiyomi.ui.more.MoreController
|
import eu.kanade.tachiyomi.ui.more.MoreController
|
||||||
import eu.kanade.tachiyomi.ui.recent_updates.RecentChaptersController
|
import eu.kanade.tachiyomi.ui.recent.history.HistoryController
|
||||||
import eu.kanade.tachiyomi.ui.recently_read.RecentlyReadController
|
import eu.kanade.tachiyomi.ui.recent.updates.UpdatesController
|
||||||
import kotlinx.android.synthetic.main.main_activity.appbar
|
import kotlinx.android.synthetic.main.main_activity.appbar
|
||||||
import kotlinx.android.synthetic.main.main_activity.bottom_nav
|
import kotlinx.android.synthetic.main.main_activity.bottom_nav
|
||||||
import kotlinx.android.synthetic.main.main_activity.drawer
|
import kotlinx.android.synthetic.main.main_activity.drawer
|
||||||
@ -75,8 +75,8 @@ class MainActivity : BaseActivity() {
|
|||||||
if (currentRoot?.tag()?.toIntOrNull() != id) {
|
if (currentRoot?.tag()?.toIntOrNull() != id) {
|
||||||
when (id) {
|
when (id) {
|
||||||
R.id.nav_library -> setRoot(LibraryController(), id)
|
R.id.nav_library -> setRoot(LibraryController(), id)
|
||||||
R.id.nav_updates -> setRoot(RecentChaptersController(), id)
|
R.id.nav_updates -> setRoot(UpdatesController(), id)
|
||||||
R.id.nav_history -> setRoot(RecentlyReadController(), id)
|
R.id.nav_history -> setRoot(HistoryController(), id)
|
||||||
R.id.nav_catalogues -> setRoot(CatalogueController(), id)
|
R.id.nav_catalogues -> setRoot(CatalogueController(), id)
|
||||||
R.id.nav_more -> setRoot(MoreController(), id)
|
R.id.nav_more -> setRoot(MoreController(), id)
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package eu.kanade.tachiyomi.ui.recently_read
|
package eu.kanade.tachiyomi.ui.recent.history
|
||||||
|
|
||||||
import eu.davidea.flexibleadapter.FlexibleAdapter
|
import eu.davidea.flexibleadapter.FlexibleAdapter
|
||||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||||
@ -10,15 +10,15 @@ import java.text.DecimalFormatSymbols
|
|||||||
import uy.kohesive.injekt.injectLazy
|
import uy.kohesive.injekt.injectLazy
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adapter of RecentlyReadHolder.
|
* Adapter of HistoryHolder.
|
||||||
* Connection between Fragment and Holder
|
* Connection between Fragment and Holder
|
||||||
* Holder updates should be called from here.
|
* Holder updates should be called from here.
|
||||||
*
|
*
|
||||||
* @param controller a RecentlyReadController object
|
* @param controller a HistoryController object
|
||||||
* @constructor creates an instance of the adapter.
|
* @constructor creates an instance of the adapter.
|
||||||
*/
|
*/
|
||||||
class RecentlyReadAdapter(controller: RecentlyReadController) :
|
class HistoryAdapter(controller: HistoryController) :
|
||||||
FlexibleAdapter<RecentlyReadItem>(null, controller, true) {
|
FlexibleAdapter<HistoryItem>(null, controller, true) {
|
||||||
|
|
||||||
val sourceManager by injectLazy<SourceManager>()
|
val sourceManager by injectLazy<SourceManager>()
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package eu.kanade.tachiyomi.ui.recently_read
|
package eu.kanade.tachiyomi.ui.recent.history
|
||||||
|
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
@ -14,38 +14,38 @@ import eu.kanade.tachiyomi.ui.base.controller.withFadeTransaction
|
|||||||
import eu.kanade.tachiyomi.ui.manga.MangaController
|
import eu.kanade.tachiyomi.ui.manga.MangaController
|
||||||
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
|
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
|
||||||
import eu.kanade.tachiyomi.util.system.toast
|
import eu.kanade.tachiyomi.util.system.toast
|
||||||
import kotlinx.android.synthetic.main.recently_read_controller.empty_view
|
import kotlinx.android.synthetic.main.history_controller.empty_view
|
||||||
import kotlinx.android.synthetic.main.recently_read_controller.recycler
|
import kotlinx.android.synthetic.main.history_controller.recycler
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fragment that shows recently read manga.
|
* Fragment that shows recently read manga.
|
||||||
* Uses R.layout.fragment_recently_read.
|
* Uses R.layout.fragment_recently_read.
|
||||||
* UI related actions should be called from here.
|
* UI related actions should be called from here.
|
||||||
*/
|
*/
|
||||||
class RecentlyReadController : NucleusController<RecentlyReadPresenter>(),
|
class HistoryController : NucleusController<HistoryPresenter>(),
|
||||||
RootController,
|
RootController,
|
||||||
FlexibleAdapter.OnUpdateListener,
|
FlexibleAdapter.OnUpdateListener,
|
||||||
RecentlyReadAdapter.OnRemoveClickListener,
|
HistoryAdapter.OnRemoveClickListener,
|
||||||
RecentlyReadAdapter.OnResumeClickListener,
|
HistoryAdapter.OnResumeClickListener,
|
||||||
RecentlyReadAdapter.OnCoverClickListener,
|
HistoryAdapter.OnCoverClickListener,
|
||||||
RemoveHistoryDialog.Listener {
|
RemoveHistoryDialog.Listener {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adapter containing the recent manga.
|
* Adapter containing the recent manga.
|
||||||
*/
|
*/
|
||||||
var adapter: RecentlyReadAdapter? = null
|
var adapter: HistoryAdapter? = null
|
||||||
private set
|
private set
|
||||||
|
|
||||||
override fun getTitle(): String? {
|
override fun getTitle(): String? {
|
||||||
return resources?.getString(R.string.label_recent_manga)
|
return resources?.getString(R.string.label_recent_manga)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun createPresenter(): RecentlyReadPresenter {
|
override fun createPresenter(): HistoryPresenter {
|
||||||
return RecentlyReadPresenter()
|
return HistoryPresenter()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View {
|
override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View {
|
||||||
return inflater.inflate(R.layout.recently_read_controller, container, false)
|
return inflater.inflate(R.layout.history_controller, container, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -58,7 +58,7 @@ class RecentlyReadController : NucleusController<RecentlyReadPresenter>(),
|
|||||||
|
|
||||||
// Initialize adapter
|
// Initialize adapter
|
||||||
recycler.layoutManager = LinearLayoutManager(view.context)
|
recycler.layoutManager = LinearLayoutManager(view.context)
|
||||||
adapter = RecentlyReadAdapter(this@RecentlyReadController)
|
adapter = HistoryAdapter(this@HistoryController)
|
||||||
recycler.setHasFixedSize(true)
|
recycler.setHasFixedSize(true)
|
||||||
recycler.adapter = adapter
|
recycler.adapter = adapter
|
||||||
}
|
}
|
||||||
@ -73,7 +73,7 @@ class RecentlyReadController : NucleusController<RecentlyReadPresenter>(),
|
|||||||
*
|
*
|
||||||
* @param mangaHistory list of manga history
|
* @param mangaHistory list of manga history
|
||||||
*/
|
*/
|
||||||
fun onNextManga(mangaHistory: List<RecentlyReadItem>) {
|
fun onNextManga(mangaHistory: List<HistoryItem>) {
|
||||||
adapter?.updateDataSet(mangaHistory)
|
adapter?.updateDataSet(mangaHistory)
|
||||||
}
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package eu.kanade.tachiyomi.ui.recently_read
|
package eu.kanade.tachiyomi.ui.recent.history
|
||||||
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import com.bumptech.glide.load.engine.DiskCacheStrategy
|
import com.bumptech.glide.load.engine.DiskCacheStrategy
|
||||||
@ -8,12 +8,12 @@ import eu.kanade.tachiyomi.data.glide.GlideApp
|
|||||||
import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder
|
import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder
|
||||||
import eu.kanade.tachiyomi.util.lang.toTimestampString
|
import eu.kanade.tachiyomi.util.lang.toTimestampString
|
||||||
import java.util.Date
|
import java.util.Date
|
||||||
import kotlinx.android.synthetic.main.recently_read_item.cover
|
import kotlinx.android.synthetic.main.history_item.cover
|
||||||
import kotlinx.android.synthetic.main.recently_read_item.last_read
|
import kotlinx.android.synthetic.main.history_item.last_read
|
||||||
import kotlinx.android.synthetic.main.recently_read_item.manga_source
|
import kotlinx.android.synthetic.main.history_item.manga_source
|
||||||
import kotlinx.android.synthetic.main.recently_read_item.manga_title
|
import kotlinx.android.synthetic.main.history_item.manga_title
|
||||||
import kotlinx.android.synthetic.main.recently_read_item.remove
|
import kotlinx.android.synthetic.main.history_item.remove
|
||||||
import kotlinx.android.synthetic.main.recently_read_item.resume
|
import kotlinx.android.synthetic.main.history_item.resume
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holder that contains recent manga item
|
* Holder that contains recent manga item
|
||||||
@ -24,9 +24,9 @@ import kotlinx.android.synthetic.main.recently_read_item.resume
|
|||||||
* @param adapter the adapter handling this holder.
|
* @param adapter the adapter handling this holder.
|
||||||
* @constructor creates a new recent chapter holder.
|
* @constructor creates a new recent chapter holder.
|
||||||
*/
|
*/
|
||||||
class RecentlyReadHolder(
|
class HistoryHolder(
|
||||||
view: View,
|
view: View,
|
||||||
val adapter: RecentlyReadAdapter
|
val adapter: HistoryAdapter
|
||||||
) : BaseFlexibleViewHolder(view, adapter) {
|
) : BaseFlexibleViewHolder(view, adapter) {
|
||||||
|
|
||||||
init {
|
init {
|
@ -1,4 +1,4 @@
|
|||||||
package eu.kanade.tachiyomi.ui.recently_read
|
package eu.kanade.tachiyomi.ui.recent.history
|
||||||
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
@ -8,19 +8,19 @@ import eu.davidea.flexibleadapter.items.IFlexible
|
|||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.data.database.models.MangaChapterHistory
|
import eu.kanade.tachiyomi.data.database.models.MangaChapterHistory
|
||||||
|
|
||||||
class RecentlyReadItem(val mch: MangaChapterHistory) : AbstractFlexibleItem<RecentlyReadHolder>() {
|
class HistoryItem(val mch: MangaChapterHistory) : AbstractFlexibleItem<HistoryHolder>() {
|
||||||
|
|
||||||
override fun getLayoutRes(): Int {
|
override fun getLayoutRes(): Int {
|
||||||
return R.layout.recently_read_item
|
return R.layout.history_item
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun createViewHolder(view: View, adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>): RecentlyReadHolder {
|
override fun createViewHolder(view: View, adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>): HistoryHolder {
|
||||||
return RecentlyReadHolder(view, adapter as RecentlyReadAdapter)
|
return HistoryHolder(view, adapter as HistoryAdapter)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun bindViewHolder(
|
override fun bindViewHolder(
|
||||||
adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>,
|
adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>,
|
||||||
holder: RecentlyReadHolder,
|
holder: HistoryHolder,
|
||||||
position: Int,
|
position: Int,
|
||||||
payloads: List<Any?>?
|
payloads: List<Any?>?
|
||||||
) {
|
) {
|
||||||
@ -29,7 +29,7 @@ class RecentlyReadItem(val mch: MangaChapterHistory) : AbstractFlexibleItem<Rece
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun equals(other: Any?): Boolean {
|
override fun equals(other: Any?): Boolean {
|
||||||
if (other is RecentlyReadItem) {
|
if (other is HistoryItem) {
|
||||||
return mch.manga.id == other.mch.manga.id
|
return mch.manga.id == other.mch.manga.id
|
||||||
}
|
}
|
||||||
return false
|
return false
|
@ -1,4 +1,4 @@
|
|||||||
package eu.kanade.tachiyomi.ui.recently_read
|
package eu.kanade.tachiyomi.ui.recent.history
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import eu.kanade.tachiyomi.data.database.DatabaseHelper
|
import eu.kanade.tachiyomi.data.database.DatabaseHelper
|
||||||
@ -14,11 +14,11 @@ import rx.android.schedulers.AndroidSchedulers
|
|||||||
import uy.kohesive.injekt.injectLazy
|
import uy.kohesive.injekt.injectLazy
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Presenter of RecentlyReadFragment.
|
* Presenter of HistoryFragment.
|
||||||
* Contains information and data for fragment.
|
* Contains information and data for fragment.
|
||||||
* Observable updates should be called from here.
|
* Observable updates should be called from here.
|
||||||
*/
|
*/
|
||||||
class RecentlyReadPresenter : BasePresenter<RecentlyReadController>() {
|
class HistoryPresenter : BasePresenter<HistoryController>() {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Used to connect to database
|
* Used to connect to database
|
||||||
@ -30,21 +30,21 @@ class RecentlyReadPresenter : BasePresenter<RecentlyReadController>() {
|
|||||||
|
|
||||||
// Used to get a list of recently read manga
|
// Used to get a list of recently read manga
|
||||||
getRecentMangaObservable()
|
getRecentMangaObservable()
|
||||||
.subscribeLatestCache(RecentlyReadController::onNextManga)
|
.subscribeLatestCache(HistoryController::onNextManga)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get recent manga observable
|
* Get recent manga observable
|
||||||
* @return list of history
|
* @return list of history
|
||||||
*/
|
*/
|
||||||
fun getRecentMangaObservable(): Observable<List<RecentlyReadItem>> {
|
fun getRecentMangaObservable(): Observable<List<HistoryItem>> {
|
||||||
// Set date for recent manga
|
// Set date for recent manga
|
||||||
val cal = Calendar.getInstance()
|
val cal = Calendar.getInstance()
|
||||||
cal.time = Date()
|
cal.time = Date()
|
||||||
cal.add(Calendar.MONTH, -1)
|
cal.add(Calendar.MONTH, -1)
|
||||||
|
|
||||||
return db.getRecentManga(cal.time).asRxObservable()
|
return db.getRecentManga(cal.time).asRxObservable()
|
||||||
.map { recents -> recents.map(::RecentlyReadItem) }
|
.map { recents -> recents.map(::HistoryItem) }
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
}
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package eu.kanade.tachiyomi.ui.recently_read
|
package eu.kanade.tachiyomi.ui.recent.history
|
||||||
|
|
||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
@ -1,4 +1,4 @@
|
|||||||
package eu.kanade.tachiyomi.ui.recent_updates
|
package eu.kanade.tachiyomi.ui.recent.updates
|
||||||
|
|
||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
@ -10,9 +10,9 @@ import eu.kanade.tachiyomi.ui.base.controller.DialogController
|
|||||||
class ConfirmDeleteChaptersDialog<T>(bundle: Bundle? = null) : DialogController(bundle)
|
class ConfirmDeleteChaptersDialog<T>(bundle: Bundle? = null) : DialogController(bundle)
|
||||||
where T : Controller, T : ConfirmDeleteChaptersDialog.Listener {
|
where T : Controller, T : ConfirmDeleteChaptersDialog.Listener {
|
||||||
|
|
||||||
private var chaptersToDelete = emptyList<RecentChapterItem>()
|
private var chaptersToDelete = emptyList<UpdatesItem>()
|
||||||
|
|
||||||
constructor(target: T, chaptersToDelete: List<RecentChapterItem>) : this() {
|
constructor(target: T, chaptersToDelete: List<UpdatesItem>) : this() {
|
||||||
this.chaptersToDelete = chaptersToDelete
|
this.chaptersToDelete = chaptersToDelete
|
||||||
targetController = target
|
targetController = target
|
||||||
}
|
}
|
||||||
@ -29,6 +29,6 @@ class ConfirmDeleteChaptersDialog<T>(bundle: Bundle? = null) : DialogController(
|
|||||||
}
|
}
|
||||||
|
|
||||||
interface Listener {
|
interface Listener {
|
||||||
fun deleteChapters(chaptersToDelete: List<RecentChapterItem>)
|
fun deleteChapters(chaptersToDelete: List<UpdatesItem>)
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package eu.kanade.tachiyomi.ui.recent_updates
|
package eu.kanade.tachiyomi.ui.recent.updates
|
||||||
|
|
||||||
import android.text.format.DateUtils
|
import android.text.format.DateUtils
|
||||||
import android.view.View
|
import android.view.View
|
||||||
@ -14,7 +14,7 @@ import java.util.Date
|
|||||||
class DateItem(val date: Date) : AbstractHeaderItem<DateItem.Holder>() {
|
class DateItem(val date: Date) : AbstractHeaderItem<DateItem.Holder>() {
|
||||||
|
|
||||||
override fun getLayoutRes(): Int {
|
override fun getLayoutRes(): Int {
|
||||||
return R.layout.recent_chapters_section_item
|
return R.layout.updates_section_item
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun createViewHolder(view: View, adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>): Holder {
|
override fun createViewHolder(view: View, adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>): Holder {
|
@ -1,4 +1,4 @@
|
|||||||
package eu.kanade.tachiyomi.ui.recent_updates
|
package eu.kanade.tachiyomi.ui.recent.updates
|
||||||
|
|
||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
@ -1,9 +1,9 @@
|
|||||||
package eu.kanade.tachiyomi.ui.recent_updates
|
package eu.kanade.tachiyomi.ui.recent.updates
|
||||||
|
|
||||||
import eu.davidea.flexibleadapter.FlexibleAdapter
|
import eu.davidea.flexibleadapter.FlexibleAdapter
|
||||||
import eu.davidea.flexibleadapter.items.IFlexible
|
import eu.davidea.flexibleadapter.items.IFlexible
|
||||||
|
|
||||||
class RecentChaptersAdapter(val controller: RecentChaptersController) :
|
class UpdatesAdapter(val controller: UpdatesController) :
|
||||||
FlexibleAdapter<IFlexible<*>>(null, controller, true) {
|
FlexibleAdapter<IFlexible<*>>(null, controller, true) {
|
||||||
|
|
||||||
val coverClickListener: OnCoverClickListener = controller
|
val coverClickListener: OnCoverClickListener = controller
|
@ -1,4 +1,4 @@
|
|||||||
package eu.kanade.tachiyomi.ui.recent_updates
|
package eu.kanade.tachiyomi.ui.recent.updates
|
||||||
|
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.Menu
|
import android.view.Menu
|
||||||
@ -27,17 +27,17 @@ import eu.kanade.tachiyomi.ui.manga.MangaController
|
|||||||
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
|
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
|
||||||
import eu.kanade.tachiyomi.util.system.notificationManager
|
import eu.kanade.tachiyomi.util.system.notificationManager
|
||||||
import eu.kanade.tachiyomi.util.system.toast
|
import eu.kanade.tachiyomi.util.system.toast
|
||||||
import kotlinx.android.synthetic.main.recent_chapters_controller.empty_view
|
import kotlinx.android.synthetic.main.updates_controller.empty_view
|
||||||
import kotlinx.android.synthetic.main.recent_chapters_controller.recycler
|
import kotlinx.android.synthetic.main.updates_controller.recycler
|
||||||
import kotlinx.android.synthetic.main.recent_chapters_controller.swipe_refresh
|
import kotlinx.android.synthetic.main.updates_controller.swipe_refresh
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fragment that shows recent chapters.
|
* Fragment that shows recent chapters.
|
||||||
* Uses [R.layout.recent_chapters_controller].
|
* Uses [R.layout.updates_controller].
|
||||||
* UI related actions should be called from here.
|
* UI related actions should be called from here.
|
||||||
*/
|
*/
|
||||||
class RecentChaptersController : NucleusController<RecentChaptersPresenter>(),
|
class UpdatesController : NucleusController<UpdatesPresenter>(),
|
||||||
RootController,
|
RootController,
|
||||||
NoToolbarElevationController,
|
NoToolbarElevationController,
|
||||||
ActionMode.Callback,
|
ActionMode.Callback,
|
||||||
@ -45,7 +45,7 @@ class RecentChaptersController : NucleusController<RecentChaptersPresenter>(),
|
|||||||
FlexibleAdapter.OnItemLongClickListener,
|
FlexibleAdapter.OnItemLongClickListener,
|
||||||
FlexibleAdapter.OnUpdateListener,
|
FlexibleAdapter.OnUpdateListener,
|
||||||
ConfirmDeleteChaptersDialog.Listener,
|
ConfirmDeleteChaptersDialog.Listener,
|
||||||
RecentChaptersAdapter.OnCoverClickListener {
|
UpdatesAdapter.OnCoverClickListener {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Action mode for multiple selection.
|
* Action mode for multiple selection.
|
||||||
@ -55,19 +55,19 @@ class RecentChaptersController : NucleusController<RecentChaptersPresenter>(),
|
|||||||
/**
|
/**
|
||||||
* Adapter containing the recent chapters.
|
* Adapter containing the recent chapters.
|
||||||
*/
|
*/
|
||||||
var adapter: RecentChaptersAdapter? = null
|
var adapter: UpdatesAdapter? = null
|
||||||
private set
|
private set
|
||||||
|
|
||||||
override fun getTitle(): String? {
|
override fun getTitle(): String? {
|
||||||
return resources?.getString(R.string.label_recent_updates)
|
return resources?.getString(R.string.label_recent_updates)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun createPresenter(): RecentChaptersPresenter {
|
override fun createPresenter(): UpdatesPresenter {
|
||||||
return RecentChaptersPresenter()
|
return UpdatesPresenter()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View {
|
override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View {
|
||||||
return inflater.inflate(R.layout.recent_chapters_controller, container, false)
|
return inflater.inflate(R.layout.updates_controller, container, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -82,7 +82,7 @@ class RecentChaptersController : NucleusController<RecentChaptersPresenter>(),
|
|||||||
recycler.layoutManager = layoutManager
|
recycler.layoutManager = layoutManager
|
||||||
recycler.addItemDecoration(DividerItemDecoration(view.context, DividerItemDecoration.VERTICAL))
|
recycler.addItemDecoration(DividerItemDecoration(view.context, DividerItemDecoration.VERTICAL))
|
||||||
recycler.setHasFixedSize(true)
|
recycler.setHasFixedSize(true)
|
||||||
adapter = RecentChaptersAdapter(this@RecentChaptersController)
|
adapter = UpdatesAdapter(this@UpdatesController)
|
||||||
recycler.adapter = adapter
|
recycler.adapter = adapter
|
||||||
|
|
||||||
recycler.scrollStateChanges().subscribeUntilDestroy {
|
recycler.scrollStateChanges().subscribeUntilDestroy {
|
||||||
@ -112,9 +112,9 @@ class RecentChaptersController : NucleusController<RecentChaptersPresenter>(),
|
|||||||
* Returns selected chapters
|
* Returns selected chapters
|
||||||
* @return list of selected chapters
|
* @return list of selected chapters
|
||||||
*/
|
*/
|
||||||
fun getSelectedChapters(): List<RecentChapterItem> {
|
fun getSelectedChapters(): List<UpdatesItem> {
|
||||||
val adapter = adapter ?: return emptyList()
|
val adapter = adapter ?: return emptyList()
|
||||||
return adapter.selectedPositions.mapNotNull { adapter.getItem(it) as? RecentChapterItem }
|
return adapter.selectedPositions.mapNotNull { adapter.getItem(it) as? UpdatesItem }
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -125,7 +125,7 @@ class RecentChaptersController : NucleusController<RecentChaptersPresenter>(),
|
|||||||
val adapter = adapter ?: return false
|
val adapter = adapter ?: return false
|
||||||
|
|
||||||
// Get item from position
|
// Get item from position
|
||||||
val item = adapter.getItem(position) as? RecentChapterItem ?: return false
|
val item = adapter.getItem(position) as? UpdatesItem ?: return false
|
||||||
if (actionMode != null && adapter.mode == SelectableAdapter.Mode.MULTI) {
|
if (actionMode != null && adapter.mode == SelectableAdapter.Mode.MULTI) {
|
||||||
toggleSelection(position)
|
toggleSelection(position)
|
||||||
return true
|
return true
|
||||||
@ -160,7 +160,7 @@ class RecentChaptersController : NucleusController<RecentChaptersPresenter>(),
|
|||||||
* Open chapter in reader
|
* Open chapter in reader
|
||||||
* @param chapter selected chapter
|
* @param chapter selected chapter
|
||||||
*/
|
*/
|
||||||
private fun openChapter(item: RecentChapterItem) {
|
private fun openChapter(item: UpdatesItem) {
|
||||||
val activity = activity ?: return
|
val activity = activity ?: return
|
||||||
val intent = ReaderActivity.newIntent(activity, item.manga, item.chapter)
|
val intent = ReaderActivity.newIntent(activity, item.manga, item.chapter)
|
||||||
startActivity(intent)
|
startActivity(intent)
|
||||||
@ -168,9 +168,9 @@ class RecentChaptersController : NucleusController<RecentChaptersPresenter>(),
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Download selected items
|
* Download selected items
|
||||||
* @param chapters list of selected [RecentChapter]s
|
* @param chapters list of selected [UpdatesItem]s
|
||||||
*/
|
*/
|
||||||
fun downloadChapters(chapters: List<RecentChapterItem>) {
|
fun downloadChapters(chapters: List<UpdatesItem>) {
|
||||||
destroyActionModeIfNeeded()
|
destroyActionModeIfNeeded()
|
||||||
presenter.downloadChapters(chapters)
|
presenter.downloadChapters(chapters)
|
||||||
}
|
}
|
||||||
@ -204,22 +204,22 @@ class RecentChaptersController : NucleusController<RecentChaptersPresenter>(),
|
|||||||
* Returns holder belonging to chapter
|
* Returns holder belonging to chapter
|
||||||
* @param download [Download] object containing download progress.
|
* @param download [Download] object containing download progress.
|
||||||
*/
|
*/
|
||||||
private fun getHolder(download: Download): RecentChapterHolder? {
|
private fun getHolder(download: Download): UpdatesHolder? {
|
||||||
return recycler?.findViewHolderForItemId(download.chapter.id!!) as? RecentChapterHolder
|
return recycler?.findViewHolderForItemId(download.chapter.id!!) as? UpdatesHolder
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mark chapter as read
|
* Mark chapter as read
|
||||||
* @param chapters list of chapters
|
* @param chapters list of chapters
|
||||||
*/
|
*/
|
||||||
fun markAsRead(chapters: List<RecentChapterItem>) {
|
fun markAsRead(chapters: List<UpdatesItem>) {
|
||||||
presenter.markChapterRead(chapters, true)
|
presenter.markChapterRead(chapters, true)
|
||||||
if (presenter.preferences.removeAfterMarkedAsRead()) {
|
if (presenter.preferences.removeAfterMarkedAsRead()) {
|
||||||
deleteChapters(chapters)
|
deleteChapters(chapters)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun deleteChapters(chaptersToDelete: List<RecentChapterItem>) {
|
override fun deleteChapters(chaptersToDelete: List<UpdatesItem>) {
|
||||||
destroyActionModeIfNeeded()
|
destroyActionModeIfNeeded()
|
||||||
DeletingChaptersDialog().showDialog(router)
|
DeletingChaptersDialog().showDialog(router)
|
||||||
presenter.deleteChapters(chaptersToDelete)
|
presenter.deleteChapters(chaptersToDelete)
|
||||||
@ -234,9 +234,9 @@ class RecentChaptersController : NucleusController<RecentChaptersPresenter>(),
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Mark chapter as unread
|
* Mark chapter as unread
|
||||||
* @param chapters list of selected [RecentChapter]
|
* @param chapters list of selected [UpdatesItem]
|
||||||
*/
|
*/
|
||||||
fun markAsUnread(chapters: List<RecentChapterItem>) {
|
fun markAsUnread(chapters: List<UpdatesItem>) {
|
||||||
presenter.markChapterRead(chapters, false)
|
presenter.markChapterRead(chapters, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -244,7 +244,7 @@ class RecentChaptersController : NucleusController<RecentChaptersPresenter>(),
|
|||||||
* Start downloading chapter
|
* Start downloading chapter
|
||||||
* @param chapter selected chapter with manga
|
* @param chapter selected chapter with manga
|
||||||
*/
|
*/
|
||||||
fun downloadChapter(chapter: RecentChapterItem) {
|
fun downloadChapter(chapter: UpdatesItem) {
|
||||||
presenter.downloadChapters(listOf(chapter))
|
presenter.downloadChapters(listOf(chapter))
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -252,17 +252,17 @@ class RecentChaptersController : NucleusController<RecentChaptersPresenter>(),
|
|||||||
* Start deleting chapter
|
* Start deleting chapter
|
||||||
* @param chapter selected chapter with manga
|
* @param chapter selected chapter with manga
|
||||||
*/
|
*/
|
||||||
fun deleteChapter(chapter: RecentChapterItem) {
|
fun deleteChapter(chapter: UpdatesItem) {
|
||||||
DeletingChaptersDialog().showDialog(router)
|
DeletingChaptersDialog().showDialog(router)
|
||||||
presenter.deleteChapters(listOf(chapter))
|
presenter.deleteChapters(listOf(chapter))
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCoverClick(position: Int) {
|
override fun onCoverClick(position: Int) {
|
||||||
val chapterClicked = adapter?.getItem(position) as? RecentChapterItem ?: return
|
val chapterClicked = adapter?.getItem(position) as? UpdatesItem ?: return
|
||||||
openManga(chapterClicked)
|
openManga(chapterClicked)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openManga(chapter: RecentChapterItem) {
|
fun openManga(chapter: UpdatesItem) {
|
||||||
router.pushController(MangaController(chapter.manga).withFadeTransaction())
|
router.pushController(MangaController(chapter.manga).withFadeTransaction())
|
||||||
}
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package eu.kanade.tachiyomi.ui.recent_updates
|
package eu.kanade.tachiyomi.ui.recent.updates
|
||||||
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.widget.PopupMenu
|
import android.widget.PopupMenu
|
||||||
@ -8,11 +8,11 @@ import eu.kanade.tachiyomi.data.download.model.Download
|
|||||||
import eu.kanade.tachiyomi.data.glide.GlideApp
|
import eu.kanade.tachiyomi.data.glide.GlideApp
|
||||||
import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder
|
import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder
|
||||||
import eu.kanade.tachiyomi.util.system.getResourceColor
|
import eu.kanade.tachiyomi.util.system.getResourceColor
|
||||||
import kotlinx.android.synthetic.main.recent_chapters_item.chapter_menu
|
import kotlinx.android.synthetic.main.updates_item.chapter_menu
|
||||||
import kotlinx.android.synthetic.main.recent_chapters_item.chapter_title
|
import kotlinx.android.synthetic.main.updates_item.chapter_title
|
||||||
import kotlinx.android.synthetic.main.recent_chapters_item.download_text
|
import kotlinx.android.synthetic.main.updates_item.download_text
|
||||||
import kotlinx.android.synthetic.main.recent_chapters_item.manga_cover
|
import kotlinx.android.synthetic.main.updates_item.manga_cover
|
||||||
import kotlinx.android.synthetic.main.recent_chapters_item.manga_title
|
import kotlinx.android.synthetic.main.updates_item.manga_title
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holder that contains chapter item
|
* Holder that contains chapter item
|
||||||
@ -24,7 +24,7 @@ import kotlinx.android.synthetic.main.recent_chapters_item.manga_title
|
|||||||
* @param listener a listener to react to single tap and long tap events.
|
* @param listener a listener to react to single tap and long tap events.
|
||||||
* @constructor creates a new recent chapter holder.
|
* @constructor creates a new recent chapter holder.
|
||||||
*/
|
*/
|
||||||
class RecentChapterHolder(private val view: View, private val adapter: RecentChaptersAdapter) :
|
class UpdatesHolder(private val view: View, private val adapter: UpdatesAdapter) :
|
||||||
BaseFlexibleViewHolder(view, adapter) {
|
BaseFlexibleViewHolder(view, adapter) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -40,7 +40,7 @@ class RecentChapterHolder(private val view: View, private val adapter: RecentCha
|
|||||||
/**
|
/**
|
||||||
* Currently bound item.
|
* Currently bound item.
|
||||||
*/
|
*/
|
||||||
private var item: RecentChapterItem? = null
|
private var item: UpdatesItem? = null
|
||||||
|
|
||||||
init {
|
init {
|
||||||
// We need to post a Runnable to show the popup to make sure that the PopupMenu is
|
// We need to post a Runnable to show the popup to make sure that the PopupMenu is
|
||||||
@ -57,7 +57,7 @@ class RecentChapterHolder(private val view: View, private val adapter: RecentCha
|
|||||||
*
|
*
|
||||||
* @param item item containing chapter information
|
* @param item item containing chapter information
|
||||||
*/
|
*/
|
||||||
fun bind(item: RecentChapterItem) {
|
fun bind(item: UpdatesItem) {
|
||||||
this.item = item
|
this.item = item
|
||||||
|
|
||||||
// Set chapter title
|
// Set chapter title
|
@ -1,4 +1,4 @@
|
|||||||
package eu.kanade.tachiyomi.ui.recent_updates
|
package eu.kanade.tachiyomi.ui.recent.updates
|
||||||
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
@ -10,8 +10,8 @@ import eu.kanade.tachiyomi.data.database.models.Chapter
|
|||||||
import eu.kanade.tachiyomi.data.database.models.Manga
|
import eu.kanade.tachiyomi.data.database.models.Manga
|
||||||
import eu.kanade.tachiyomi.data.download.model.Download
|
import eu.kanade.tachiyomi.data.download.model.Download
|
||||||
|
|
||||||
class RecentChapterItem(val chapter: Chapter, val manga: Manga, header: DateItem) :
|
class UpdatesItem(val chapter: Chapter, val manga: Manga, header: DateItem) :
|
||||||
AbstractSectionableItem<RecentChapterHolder, DateItem>(header) {
|
AbstractSectionableItem<UpdatesHolder, DateItem>(header) {
|
||||||
|
|
||||||
private var _status: Int = 0
|
private var _status: Int = 0
|
||||||
|
|
||||||
@ -28,16 +28,16 @@ class RecentChapterItem(val chapter: Chapter, val manga: Manga, header: DateItem
|
|||||||
get() = status == Download.DOWNLOADED
|
get() = status == Download.DOWNLOADED
|
||||||
|
|
||||||
override fun getLayoutRes(): Int {
|
override fun getLayoutRes(): Int {
|
||||||
return R.layout.recent_chapters_item
|
return R.layout.updates_item
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun createViewHolder(view: View, adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>): RecentChapterHolder {
|
override fun createViewHolder(view: View, adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>): UpdatesHolder {
|
||||||
return RecentChapterHolder(view, adapter as RecentChaptersAdapter)
|
return UpdatesHolder(view, adapter as UpdatesAdapter)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun bindViewHolder(
|
override fun bindViewHolder(
|
||||||
adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>,
|
adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>,
|
||||||
holder: RecentChapterHolder,
|
holder: UpdatesHolder,
|
||||||
position: Int,
|
position: Int,
|
||||||
payloads: List<Any?>?
|
payloads: List<Any?>?
|
||||||
) {
|
) {
|
||||||
@ -47,7 +47,7 @@ class RecentChapterItem(val chapter: Chapter, val manga: Manga, header: DateItem
|
|||||||
|
|
||||||
override fun equals(other: Any?): Boolean {
|
override fun equals(other: Any?): Boolean {
|
||||||
if (this === other) return true
|
if (this === other) return true
|
||||||
if (other is RecentChapterItem) {
|
if (other is UpdatesItem) {
|
||||||
return chapter.id!! == other.chapter.id!!
|
return chapter.id!! == other.chapter.id!!
|
||||||
}
|
}
|
||||||
return false
|
return false
|
@ -1,4 +1,4 @@
|
|||||||
package eu.kanade.tachiyomi.ui.recent_updates
|
package eu.kanade.tachiyomi.ui.recent.updates
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import eu.kanade.tachiyomi.data.database.DatabaseHelper
|
import eu.kanade.tachiyomi.data.database.DatabaseHelper
|
||||||
@ -18,27 +18,27 @@ import timber.log.Timber
|
|||||||
import uy.kohesive.injekt.Injekt
|
import uy.kohesive.injekt.Injekt
|
||||||
import uy.kohesive.injekt.api.get
|
import uy.kohesive.injekt.api.get
|
||||||
|
|
||||||
class RecentChaptersPresenter(
|
class UpdatesPresenter(
|
||||||
val preferences: PreferencesHelper = Injekt.get(),
|
val preferences: PreferencesHelper = Injekt.get(),
|
||||||
private val db: DatabaseHelper = Injekt.get(),
|
private val db: DatabaseHelper = Injekt.get(),
|
||||||
private val downloadManager: DownloadManager = Injekt.get(),
|
private val downloadManager: DownloadManager = Injekt.get(),
|
||||||
private val sourceManager: SourceManager = Injekt.get()
|
private val sourceManager: SourceManager = Injekt.get()
|
||||||
) : BasePresenter<RecentChaptersController>() {
|
) : BasePresenter<UpdatesController>() {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* List containing chapter and manga information
|
* List containing chapter and manga information
|
||||||
*/
|
*/
|
||||||
private var chapters: List<RecentChapterItem> = emptyList()
|
private var chapters: List<UpdatesItem> = emptyList()
|
||||||
|
|
||||||
override fun onCreate(savedState: Bundle?) {
|
override fun onCreate(savedState: Bundle?) {
|
||||||
super.onCreate(savedState)
|
super.onCreate(savedState)
|
||||||
|
|
||||||
getRecentChaptersObservable()
|
getUpdatesObservable()
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
.subscribeLatestCache(RecentChaptersController::onNextRecentChapters)
|
.subscribeLatestCache(UpdatesController::onNextRecentChapters)
|
||||||
|
|
||||||
getChapterStatusObservable()
|
getChapterStatusObservable()
|
||||||
.subscribeLatestCache(RecentChaptersController::onChapterStatusChange) { _, error ->
|
.subscribeLatestCache(UpdatesController::onChapterStatusChange) { _, error ->
|
||||||
Timber.e(error)
|
Timber.e(error)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -48,7 +48,7 @@ class RecentChaptersPresenter(
|
|||||||
*
|
*
|
||||||
* @return observable containing recent chapters and date
|
* @return observable containing recent chapters and date
|
||||||
*/
|
*/
|
||||||
fun getRecentChaptersObservable(): Observable<List<RecentChapterItem>> {
|
private fun getUpdatesObservable(): Observable<List<UpdatesItem>> {
|
||||||
// Set date limit for recent chapters
|
// Set date limit for recent chapters
|
||||||
val cal = Calendar.getInstance().apply {
|
val cal = Calendar.getInstance().apply {
|
||||||
time = Date()
|
time = Date()
|
||||||
@ -65,7 +65,7 @@ class RecentChaptersPresenter(
|
|||||||
val dateItem = DateItem(it.key)
|
val dateItem = DateItem(it.key)
|
||||||
it.value
|
it.value
|
||||||
.sortedWith(compareBy({ it.chapter.date_fetch }, { it.chapter.chapter_number })).asReversed()
|
.sortedWith(compareBy({ it.chapter.date_fetch }, { it.chapter.chapter_number })).asReversed()
|
||||||
.map { RecentChapterItem(it.chapter, it.manga, dateItem) }
|
.map { UpdatesItem(it.chapter, it.manga, dateItem) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.doOnNext {
|
.doOnNext {
|
||||||
@ -116,7 +116,7 @@ class RecentChaptersPresenter(
|
|||||||
*
|
*
|
||||||
* @param items the list of chapter from the database.
|
* @param items the list of chapter from the database.
|
||||||
*/
|
*/
|
||||||
private fun setDownloadedChapters(items: List<RecentChapterItem>) {
|
private fun setDownloadedChapters(items: List<UpdatesItem>) {
|
||||||
for (item in items) {
|
for (item in items) {
|
||||||
val manga = item.manga
|
val manga = item.manga
|
||||||
val chapter = item.chapter
|
val chapter = item.chapter
|
||||||
@ -148,7 +148,7 @@ class RecentChaptersPresenter(
|
|||||||
* @param items list of selected chapters
|
* @param items list of selected chapters
|
||||||
* @param read read status
|
* @param read read status
|
||||||
*/
|
*/
|
||||||
fun markChapterRead(items: List<RecentChapterItem>, read: Boolean) {
|
fun markChapterRead(items: List<UpdatesItem>, read: Boolean) {
|
||||||
val chapters = items.map { it.chapter }
|
val chapters = items.map { it.chapter }
|
||||||
chapters.forEach {
|
chapters.forEach {
|
||||||
it.read = read
|
it.read = read
|
||||||
@ -167,21 +167,21 @@ class RecentChaptersPresenter(
|
|||||||
*
|
*
|
||||||
* @param chapters list of chapters
|
* @param chapters list of chapters
|
||||||
*/
|
*/
|
||||||
fun deleteChapters(chapters: List<RecentChapterItem>) {
|
fun deleteChapters(chapters: List<UpdatesItem>) {
|
||||||
Observable.just(chapters)
|
Observable.just(chapters)
|
||||||
.doOnNext { deleteChaptersInternal(it) }
|
.doOnNext { deleteChaptersInternal(it) }
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
.subscribeFirst({ view, _ ->
|
.subscribeFirst({ view, _ ->
|
||||||
view.onChaptersDeleted()
|
view.onChaptersDeleted()
|
||||||
}, RecentChaptersController::onChaptersDeletedError)
|
}, UpdatesController::onChaptersDeletedError)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Download selected chapters
|
* Download selected chapters
|
||||||
* @param items list of recent chapters seleted.
|
* @param items list of recent chapters seleted.
|
||||||
*/
|
*/
|
||||||
fun downloadChapters(items: List<RecentChapterItem>) {
|
fun downloadChapters(items: List<UpdatesItem>) {
|
||||||
items.forEach { downloadManager.downloadChapters(it.manga, listOf(it.chapter)) }
|
items.forEach { downloadManager.downloadChapters(it.manga, listOf(it.chapter)) }
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -190,7 +190,7 @@ class RecentChaptersPresenter(
|
|||||||
*
|
*
|
||||||
* @param items chapters selected
|
* @param items chapters selected
|
||||||
*/
|
*/
|
||||||
private fun deleteChaptersInternal(chapterItems: List<RecentChapterItem>) {
|
private fun deleteChaptersInternal(chapterItems: List<UpdatesItem>) {
|
||||||
val itemsByManga = chapterItems.groupBy { it.manga.id }
|
val itemsByManga = chapterItems.groupBy { it.manga.id }
|
||||||
for ((_, items) in itemsByManga) {
|
for ((_, items) in itemsByManga) {
|
||||||
val manga = items.first().manga
|
val manga = items.first().manga
|
@ -12,7 +12,7 @@
|
|||||||
android:clipToPadding="false"
|
android:clipToPadding="false"
|
||||||
android:paddingTop="4dp"
|
android:paddingTop="4dp"
|
||||||
android:paddingBottom="4dp"
|
android:paddingBottom="4dp"
|
||||||
tools:listitem="@layout/recently_read_item" />
|
tools:listitem="@layout/history_item" />
|
||||||
|
|
||||||
<eu.kanade.tachiyomi.widget.EmptyView
|
<eu.kanade.tachiyomi.widget.EmptyView
|
||||||
android:id="@+id/empty_view"
|
android:id="@+id/empty_view"
|
@ -14,7 +14,7 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:descendantFocusability="blocksDescendants"
|
android:descendantFocusability="blocksDescendants"
|
||||||
tools:listitem="@layout/recent_chapters_item" />
|
tools:listitem="@layout/updates_item" />
|
||||||
|
|
||||||
<eu.kanade.tachiyomi.widget.EmptyView
|
<eu.kanade.tachiyomi.widget.EmptyView
|
||||||
android:id="@+id/empty_view"
|
android:id="@+id/empty_view"
|
Loading…
Reference in New Issue
Block a user