mirror of
https://github.com/null2264/yokai.git
synced 2025-06-21 10:44:42 +00:00
parent
454294e247
commit
7416aa40b1
3 changed files with 35 additions and 7 deletions
|
@ -24,6 +24,7 @@ import android.view.ViewPropertyAnimator
|
||||||
import android.view.ViewTreeObserver
|
import android.view.ViewTreeObserver
|
||||||
import android.view.inputmethod.InputMethodManager
|
import android.view.inputmethod.InputMethodManager
|
||||||
import android.widget.ImageView
|
import android.widget.ImageView
|
||||||
|
import androidx.appcompat.app.AlertDialog
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.appcompat.view.ActionMode
|
import androidx.appcompat.view.ActionMode
|
||||||
import androidx.coordinatorlayout.widget.CoordinatorLayout
|
import androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||||
|
@ -94,6 +95,7 @@ import eu.kanade.tachiyomi.ui.source.globalsearch.GlobalSearchController
|
||||||
import eu.kanade.tachiyomi.util.isLocal
|
import eu.kanade.tachiyomi.util.isLocal
|
||||||
import eu.kanade.tachiyomi.util.moveCategories
|
import eu.kanade.tachiyomi.util.moveCategories
|
||||||
import eu.kanade.tachiyomi.util.system.contextCompatDrawable
|
import eu.kanade.tachiyomi.util.system.contextCompatDrawable
|
||||||
|
import eu.kanade.tachiyomi.util.system.disableItems
|
||||||
import eu.kanade.tachiyomi.util.system.dpToPx
|
import eu.kanade.tachiyomi.util.system.dpToPx
|
||||||
import eu.kanade.tachiyomi.util.system.getResourceColor
|
import eu.kanade.tachiyomi.util.system.getResourceColor
|
||||||
import eu.kanade.tachiyomi.util.system.getResourceDrawable
|
import eu.kanade.tachiyomi.util.system.getResourceDrawable
|
||||||
|
@ -1952,13 +1954,35 @@ class LibraryController(
|
||||||
R.id.action_move_to_category -> showChangeMangaCategoriesSheet()
|
R.id.action_move_to_category -> showChangeMangaCategoriesSheet()
|
||||||
R.id.action_share -> shareManga()
|
R.id.action_share -> shareManga()
|
||||||
R.id.action_delete -> {
|
R.id.action_delete -> {
|
||||||
|
val options = arrayOf(
|
||||||
|
R.string.remove_downloads,
|
||||||
|
R.string.remove_from_library,
|
||||||
|
)
|
||||||
|
.map { activity!!.getString(it) }
|
||||||
activity!!.materialAlertDialog()
|
activity!!.materialAlertDialog()
|
||||||
.setMessage(R.string.remove_from_library_question)
|
.setTitle(R.string.remove)
|
||||||
.setPositiveButton(R.string.remove) { _, _ ->
|
.setMultiChoiceItems(
|
||||||
|
options.toTypedArray(),
|
||||||
|
options.map { true }.toBooleanArray(),
|
||||||
|
) { dialog, position, _ ->
|
||||||
|
if (position == 0) {
|
||||||
|
val listView = (dialog as AlertDialog).listView
|
||||||
|
listView.setItemChecked(position, true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.setPositiveButton(R.string.remove) { dialog, _ ->
|
||||||
|
val listView = (dialog as AlertDialog).listView
|
||||||
|
if (listView.isItemChecked(1)) {
|
||||||
deleteMangasFromLibrary()
|
deleteMangasFromLibrary()
|
||||||
|
} else {
|
||||||
|
val mangas = selectedMangas.toList()
|
||||||
|
presenter.confirmDeletion(mangas, false)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.setNegativeButton(android.R.string.cancel, null)
|
.setNegativeButton(android.R.string.cancel, null)
|
||||||
.show()
|
.show().apply {
|
||||||
|
disableItems(arrayOf(options.first()))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
R.id.action_download_unread -> {
|
R.id.action_download_unread -> {
|
||||||
presenter.downloadUnread(selectedMangas.toList())
|
presenter.downloadUnread(selectedMangas.toList())
|
||||||
|
|
|
@ -920,16 +920,21 @@ class LibraryPresenter(
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Remove manga from the library and delete the downloads */
|
/** Remove manga from the library and delete the downloads */
|
||||||
fun confirmDeletion(mangas: List<Manga>) {
|
fun confirmDeletion(mangas: List<Manga>, coverCacheToo: Boolean = true) {
|
||||||
launchIO {
|
launchIO {
|
||||||
val mangaToDelete = mangas.distinctBy { it.id }
|
val mangaToDelete = mangas.distinctBy { it.id }
|
||||||
mangaToDelete.forEach { manga ->
|
mangaToDelete.forEach { manga ->
|
||||||
|
if (coverCacheToo) {
|
||||||
coverCache.deleteFromCache(manga)
|
coverCache.deleteFromCache(manga)
|
||||||
|
}
|
||||||
val source = sourceManager.get(manga.source) as? HttpSource
|
val source = sourceManager.get(manga.source) as? HttpSource
|
||||||
if (source != null) {
|
if (source != null) {
|
||||||
downloadManager.deleteManga(manga, source)
|
downloadManager.deleteManga(manga, source)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!coverCacheToo) {
|
||||||
|
requestDownloadBadgesUpdate()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -133,7 +133,6 @@
|
||||||
<string name="updating_library">Updating library</string>
|
<string name="updating_library">Updating library</string>
|
||||||
<string name="selected_">Selected: %1$d</string>
|
<string name="selected_">Selected: %1$d</string>
|
||||||
<string name="local">Local</string>
|
<string name="local">Local</string>
|
||||||
<string name="remove_from_library_question">Remove from library?</string>
|
|
||||||
<string name="library_search_hint">Search title, tags, source</string>
|
<string name="library_search_hint">Search title, tags, source</string>
|
||||||
<string name="library_is_empty_add_from_browse">Your library is empty, add series to your
|
<string name="library_is_empty_add_from_browse">Your library is empty, add series to your
|
||||||
library from the browse tab.</string>
|
library from the browse tab.</string>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue