Implement dialogState.confirmRemoveDownload
This commit is contained in:
1 parent
cb67a51686
commit
ac7fed649a
3 files changed
+16
-28
No files matched your search
@@ -27,6 +27,8 @@ import androidx.compose.material.icons.filled.DriveFileMove
|
||||
import androidx.compose.material.icons.filled.Favorite
|
||||
import androidx.compose.material.icons.filled.HeartBroken
|
||||
import androidx.compose.material.icons.filled.MenuBook
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.hippo.ehviewer.EhApplication.Companion.favouriteStatusRouter
|
||||
import com.hippo.ehviewer.EhDB
|
||||
@@ -277,3 +279,10 @@ suspend fun DialogState.selectGalleryInfoAction(info: GalleryInfo): Int {
|
||||
}
|
||||
return selected
|
||||
}
|
||||
|
||||
suspend fun DialogState.confirmRemoveDownload(info: GalleryInfo): Boolean = show(
|
||||
confirmText = android.R.string.ok,
|
||||
dismissText = android.R.string.cancel,
|
||||
title = R.string.download_remove_dialog_title,
|
||||
text = { Text(text = stringResource(id = R.string.download_remove_dialog_message, info.title.orEmpty())) },
|
||||
)
|
||||
@@ -84,6 +84,7 @@ import com.hippo.ehviewer.ui.MainActivity
|
||||
import com.hippo.ehviewer.ui.addToFavorites
|
||||
import com.hippo.ehviewer.ui.compose.DialogState
|
||||
import com.hippo.ehviewer.ui.compose.setMD3Content
|
||||
import com.hippo.ehviewer.ui.confirmRemoveDownload
|
||||
import com.hippo.ehviewer.ui.legacy.AddDeleteDrawable
|
||||
import com.hippo.ehviewer.ui.legacy.BaseDialogBuilder
|
||||
import com.hippo.ehviewer.ui.legacy.BringOutTransition
|
||||
@@ -727,20 +728,7 @@ class GalleryListScene : SearchBarScene(), OnDragHandlerListener, SearchLayout.H
|
||||
when (selected) {
|
||||
0 -> context.navToReader(info)
|
||||
1 -> if (downloaded) {
|
||||
BaseDialogBuilder(context)
|
||||
.setTitle(R.string.download_remove_dialog_title)
|
||||
.setMessage(
|
||||
getString(
|
||||
R.string.download_remove_dialog_message,
|
||||
info.title,
|
||||
),
|
||||
)
|
||||
.setPositiveButton(android.R.string.ok) { _: DialogInterface?, _: Int ->
|
||||
mDownloadManager.deleteDownload(
|
||||
info.gid,
|
||||
)
|
||||
}
|
||||
.show()
|
||||
if (dialogState.confirmRemoveDownload(info)) mDownloadManager.deleteDownload(info.gid)
|
||||
} else {
|
||||
CommonOperations.startDownload(activity as MainActivity, info, false)
|
||||
}
|
||||
|
||||
@@ -72,9 +72,11 @@ import com.hippo.ehviewer.ui.CommonOperations
|
||||
import com.hippo.ehviewer.ui.MainActivity
|
||||
import com.hippo.ehviewer.ui.addToFavorites
|
||||
import com.hippo.ehviewer.ui.compose.Deferred
|
||||
import com.hippo.ehviewer.ui.compose.DialogState
|
||||
import com.hippo.ehviewer.ui.compose.data.GalleryInfoListItem
|
||||
import com.hippo.ehviewer.ui.compose.rememberDialogState
|
||||
import com.hippo.ehviewer.ui.compose.setMD3Content
|
||||
import com.hippo.ehviewer.ui.confirmRemoveDownload
|
||||
import com.hippo.ehviewer.ui.legacy.BaseDialogBuilder
|
||||
import com.hippo.ehviewer.ui.navToReader
|
||||
import com.hippo.ehviewer.ui.removeFromFavorites
|
||||
@@ -162,7 +164,7 @@ class HistoryScene : BaseScene() {
|
||||
onLongClick = {
|
||||
coroutineScope.launchIO {
|
||||
val selected = dialogState.selectGalleryInfoAction(info)
|
||||
withUIContext { handleLongClick(selected, info) }
|
||||
withUIContext { handleLongClick(selected, info, dialogState) }
|
||||
}
|
||||
},
|
||||
info = it,
|
||||
@@ -217,24 +219,13 @@ class HistoryScene : BaseScene() {
|
||||
navigate(R.id.galleryDetailScene, args)
|
||||
}
|
||||
|
||||
private fun handleLongClick(which: Int, gi: GalleryInfo) {
|
||||
private suspend fun handleLongClick(which: Int, gi: GalleryInfo, dialogState: DialogState) {
|
||||
val downloaded = DownloadManager.getDownloadState(gi.gid) != DownloadInfo.STATE_INVALID
|
||||
val favourite = gi.favoriteSlot != -2
|
||||
when (which) {
|
||||
0 -> context?.navToReader(gi)
|
||||
1 -> if (downloaded) {
|
||||
BaseDialogBuilder(requireContext())
|
||||
.setTitle(R.string.download_remove_dialog_title)
|
||||
.setMessage(
|
||||
getString(
|
||||
R.string.download_remove_dialog_message,
|
||||
gi.title,
|
||||
),
|
||||
)
|
||||
.setPositiveButton(android.R.string.ok) { _: DialogInterface?, _: Int ->
|
||||
DownloadManager.deleteDownload(gi.gid)
|
||||
}
|
||||
.show()
|
||||
if (dialogState.confirmRemoveDownload(gi)) DownloadManager.deleteDownload(gi.gid)
|
||||
} else {
|
||||
CommonOperations.startDownload(activity as MainActivity, gi, false)
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user