mirror of
https://github.com/binwiederhier/ntfy-android.git
synced 2024-05-17 11:02:36 +12:00
Unify copyToClipboard
This is motivated by not showing the toast on Android 13 and above. See https://developer.android.com/develop/ui/views/touch-and-input/copy-paste#duplicate-notifications.
This commit is contained in:
parent
c15efff72c
commit
d1015cb50a
|
@ -460,12 +460,7 @@ class DetailActivity : AppCompatActivity(), ActionMode.Callback, NotificationFra
|
|||
Log.d(TAG, "Copying topic URL $url to clipboard ")
|
||||
|
||||
runOnUiThread {
|
||||
val clipboard = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
||||
val clip = ClipData.newPlainText("topic address", url)
|
||||
clipboard.setPrimaryClip(clip)
|
||||
Toast
|
||||
.makeText(this, getString(R.string.detail_copied_to_clipboard_message), Toast.LENGTH_LONG)
|
||||
.show()
|
||||
copyToClipboard(this, "topic address", url)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -639,13 +634,9 @@ class DetailActivity : AppCompatActivity(), ActionMode.Callback, NotificationFra
|
|||
}
|
||||
}
|
||||
} else {
|
||||
copyToClipboard(notification)
|
||||
}
|
||||
}
|
||||
|
||||
private fun copyToClipboard(notification: Notification) {
|
||||
runOnUiThread {
|
||||
copyToClipboard(this, notification)
|
||||
runOnUiThread {
|
||||
copyToClipboard(this, "notification", decodeMessage(notification))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -702,12 +693,7 @@ class DetailActivity : AppCompatActivity(), ActionMode.Callback, NotificationFra
|
|||
}.orEmpty()
|
||||
}
|
||||
runOnUiThread {
|
||||
val clipboard = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
||||
val clip = ClipData.newPlainText("notifications", content)
|
||||
clipboard.setPrimaryClip(clip)
|
||||
Toast
|
||||
.makeText(this@DetailActivity, getString(R.string.detail_copied_to_clipboard_message), Toast.LENGTH_LONG)
|
||||
.show()
|
||||
copyToClipboard(this@DetailActivity, "notifications", content)
|
||||
finishActionMode()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -281,12 +281,14 @@ class DetailAdapter(private val activity: Activity, private val lifecycleScope:
|
|||
openItem.setOnMenuItemClickListener { openFile(context, attachment) }
|
||||
saveFileItem.setOnMenuItemClickListener { saveFile(context, attachment) }
|
||||
deleteItem.setOnMenuItemClickListener { deleteFile(context, notification, attachment) }
|
||||
copyUrlItem.setOnMenuItemClickListener { copyUrl(context, attachment) }
|
||||
copyUrlItem.setOnMenuItemClickListener { copyToClipboard(context, "attachment url", attachment.url); true }
|
||||
downloadItem.setOnMenuItemClickListener { downloadFile(context, notification) }
|
||||
cancelItem.setOnMenuItemClickListener { cancelDownload(context, notification) }
|
||||
}
|
||||
if (hasClickLink) {
|
||||
copyContentsItem.setOnMenuItemClickListener { copyContents(context, notification) }
|
||||
copyContentsItem.setOnMenuItemClickListener {
|
||||
copyToClipboard(context, "notification", decodeMessage(notification)); true
|
||||
}
|
||||
}
|
||||
openItem.isVisible = hasAttachment && attachmentExists
|
||||
downloadItem.isVisible = hasAttachment && !attachmentExists && !expired && !inProgress
|
||||
|
@ -480,21 +482,6 @@ class DetailAdapter(private val activity: Activity, private val lifecycleScope:
|
|||
return true
|
||||
}
|
||||
|
||||
private fun copyUrl(context: Context, attachment: Attachment): Boolean {
|
||||
val clipboard = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
||||
val clip = ClipData.newPlainText("attachment url", attachment.url)
|
||||
clipboard.setPrimaryClip(clip)
|
||||
Toast
|
||||
.makeText(context, context.getString(R.string.detail_item_menu_copy_url_copied), Toast.LENGTH_LONG)
|
||||
.show()
|
||||
return true
|
||||
}
|
||||
|
||||
private fun copyContents(context: Context, notification: Notification): Boolean {
|
||||
copyToClipboard(context, notification)
|
||||
return true
|
||||
}
|
||||
|
||||
private fun runAction(context: Context, notification: Notification, action: Action): Boolean {
|
||||
when (action.action) {
|
||||
ACTION_VIEW -> runViewAction(context, action)
|
||||
|
|
|
@ -412,12 +412,7 @@ class DetailSettingsActivity : AppCompatActivity() {
|
|||
topicUrlPref?.summary = topicUrl
|
||||
topicUrlPref?.onPreferenceClickListener = OnPreferenceClickListener {
|
||||
val context = context ?: return@OnPreferenceClickListener false
|
||||
val clipboard = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
||||
val clip = ClipData.newPlainText("topic url", topicUrl)
|
||||
clipboard.setPrimaryClip(clip)
|
||||
Toast
|
||||
.makeText(context, getString(R.string.detail_settings_about_topic_url_copied_to_clipboard_message), Toast.LENGTH_LONG)
|
||||
.show()
|
||||
copyToClipboard(context, "topic url", topicUrl)
|
||||
true
|
||||
}
|
||||
}
|
||||
|
|
|
@ -552,12 +552,7 @@ class SettingsActivity : AppCompatActivity(), PreferenceFragmentCompat.OnPrefere
|
|||
versionPref?.summary = version
|
||||
versionPref?.onPreferenceClickListener = OnPreferenceClickListener {
|
||||
val context = context ?: return@OnPreferenceClickListener false
|
||||
val clipboard = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
||||
val clip = ClipData.newPlainText("ntfy version", version)
|
||||
clipboard.setPrimaryClip(clip)
|
||||
Toast
|
||||
.makeText(context, getString(R.string.settings_about_version_copied_to_clipboard_message), Toast.LENGTH_LONG)
|
||||
.show()
|
||||
copyToClipboard(context, "ntfy version", version)
|
||||
true
|
||||
}
|
||||
}
|
||||
|
|
|
@ -481,14 +481,14 @@ fun ensureSafeNewFile(dir: File, name: String): File {
|
|||
throw Exception("Cannot find safe file")
|
||||
}
|
||||
|
||||
fun copyToClipboard(context: Context, notification: Notification) {
|
||||
val message = decodeMessage(notification)
|
||||
fun copyToClipboard(context: Context, label: String, message: String) {
|
||||
val clipboard = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
||||
val clip = ClipData.newPlainText("notification message", message)
|
||||
val clip = ClipData.newPlainText(label, message)
|
||||
clipboard.setPrimaryClip(clip)
|
||||
Toast
|
||||
.makeText(context, context.getString(R.string.detail_copied_to_clipboard_message), Toast.LENGTH_LONG)
|
||||
.show()
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.S_V2) {
|
||||
val copied = context.getString(R.string.detail_copied_to_clipboard_message)
|
||||
Toast.makeText(context, copied, Toast.LENGTH_LONG).show()
|
||||
}
|
||||
}
|
||||
|
||||
fun String.sha256(): String {
|
||||
|
|
Loading…
Reference in a new issue