Fix crash when copying cookies

This commit is contained in:
FooIbar committed 2023-10-28 02:10:13 +08:00
1 parent 1021efb239
commit 7a3a641a07
6 files changed
+14 -21

No files matched your search

@@ -32,7 +32,7 @@ import com.hippo.ehviewer.client.data.GalleryInfo.Companion.LOCAL_FAVORITED
import com.hippo.ehviewer.client.thumbUrl
import com.hippo.ehviewer.databinding.InfoSheetBinding
import com.hippo.ehviewer.ui.scene.navWithUrl
import com.hippo.ehviewer.util.tellClipboardWithToast
import com.hippo.ehviewer.util.addTextToClipboard
private const val INDEX_URL = 2
private const val INDEX_PARENT = 9
@@ -83,7 +83,7 @@ class GalleryInfoBottomSheet(private val detail: GalleryDetail) : BottomSheetDia
navController.navWithUrl(content)
}
} else {
context tellClipboardWithToast content
context.addTextToClipboard(content, true)
if (index == INDEX_URL) {
// Save it to avoid detect the gallery
Settings.clipboardTextHashCode = data[index].hashCode()
@@ -151,11 +151,8 @@ class MainActivity : EhActivity() {
val url = intent.data.toString()
EditTextDialogBuilder(this@MainActivity, url, "")
.setTitle(R.string.error_cannot_parse_the_url)
.setPositiveButton(android.R.string.copy) { _: DialogInterface?, _: Int ->
this@MainActivity.addTextToClipboard(
url,
false,
)
.setPositiveButton(android.R.string.copy) { _, _ ->
this@MainActivity.addTextToClipboard(url)
}
.show()
}
@@ -437,7 +437,7 @@ class GalleryCommentsScene : BaseToolbarScene(), View.OnClickListener, OnRefresh
return@setItems
}
when (menuId[which]) {
R.id.copy -> requireActivity().addTextToClipboard(text, false)
R.id.copy -> requireActivity().addTextToClipboard(text)
R.id.block_commenter -> showFilterCommenterDialog(comment.user, position)
R.id.vote_up -> voteComment(comment.id, 1)
R.id.vote_down -> voteComment(comment.id, -1)
@@ -1209,11 +1209,11 @@ class GalleryDetailScene : BaseScene() {
}
R.id.copy -> {
requireActivity().addTextToClipboard(tag, false)
requireActivity().addTextToClipboard(tag)
}
R.id.copy_trans -> {
requireActivity().addTextToClipboard(translated, false)
requireActivity().addTextToClipboard(translated)
}
}
}.show()
@@ -53,7 +53,7 @@ import com.hippo.ehviewer.ui.tools.TimePickerDialog
import com.hippo.ehviewer.ui.tools.observed
import com.hippo.ehviewer.ui.tools.rememberDialogState
import com.hippo.ehviewer.ui.tools.rememberedAccessor
import com.hippo.ehviewer.util.whisperClipboard
import com.hippo.ehviewer.util.copyTextToClipboard
import eu.kanade.tachiyomi.util.lang.withUIContext
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.async
@@ -111,7 +111,7 @@ fun EhScreen() {
val spanned = context.getString(R.string.settings_eh_identity_cookies_signed, str).parseAsHtml()
setMessage(spanned)
setNeutralButton(R.string.settings_eh_identity_cookies_copy) { _, _ ->
context whisperClipboard str.replace("<br>", "\n")
copyTextToClipboard(str.replace("<br>", "\n"), true)
// Avoid double notify user since system have done that on Tiramisu above
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) launchSnackBar(copiedToClipboard)
}
@@ -29,15 +29,7 @@ import com.hippo.ehviewer.ui.MainActivity
import com.hippo.ehviewer.ui.scene.BaseScene
import splitties.systemservices.clipboardManager
infix fun Context.tellClipboardWithToast(text: String?) {
addTextToClipboard(text, false, true)
}
infix fun Context.whisperClipboard(text: String?) {
addTextToClipboard(text, true, false)
}
fun Context.addTextToClipboard(text: CharSequence?, isSensitive: Boolean, useToast: Boolean = false) {
fun copyTextToClipboard(text: CharSequence?, isSensitive: Boolean) {
clipboardManager.apply {
setPrimaryClip(
ClipData.newPlainText(null, text).apply {
@@ -47,6 +39,10 @@ fun Context.addTextToClipboard(text: CharSequence?, isSensitive: Boolean, useToa
},
)
}
}
fun Context.addTextToClipboard(text: CharSequence?, useToast: Boolean = false) {
copyTextToClipboard(text, false)
// Avoid double notify user since system have done that on Tiramisu above
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
val activity = findActivity<MainActivity>()