mirror of
https://github.com/libre-tube/LibreTube.git
synced 2024-12-14 22:30:30 +05:30
copy comments on long press
This commit is contained in:
parent
0dbe63f35f
commit
ca82121d19
@ -15,6 +15,7 @@ import com.github.libretube.databinding.CommentsRowBinding
|
|||||||
import com.github.libretube.extensions.TAG
|
import com.github.libretube.extensions.TAG
|
||||||
import com.github.libretube.extensions.formatShort
|
import com.github.libretube.extensions.formatShort
|
||||||
import com.github.libretube.ui.viewholders.CommentsViewHolder
|
import com.github.libretube.ui.viewholders.CommentsViewHolder
|
||||||
|
import com.github.libretube.util.ClipboardHelper
|
||||||
import com.github.libretube.util.ImageHelper
|
import com.github.libretube.util.ImageHelper
|
||||||
import com.github.libretube.util.NavigationHelper
|
import com.github.libretube.util.NavigationHelper
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
@ -30,7 +31,7 @@ class CommentsAdapter(
|
|||||||
|
|
||||||
private var isLoading = false
|
private var isLoading = false
|
||||||
private var nextpage = ""
|
private var nextpage = ""
|
||||||
private var repliesPage = com.github.libretube.api.obj.CommentsPage()
|
private var repliesPage = CommentsPage()
|
||||||
|
|
||||||
fun updateItems(newItems: List<com.github.libretube.api.obj.Comment>) {
|
fun updateItems(newItems: List<com.github.libretube.api.obj.Comment>) {
|
||||||
val commentsSize = comments.size
|
val commentsSize = comments.size
|
||||||
@ -88,6 +89,12 @@ class CommentsAdapter(
|
|||||||
else -> repliesAdapter.clear()
|
else -> repliesAdapter.clear()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
root.setOnLongClickListener {
|
||||||
|
ClipboardHelper(root.context).save(comment.commentText.toString())
|
||||||
|
Toast.makeText(root.context, R.string.copied, Toast.LENGTH_SHORT).show()
|
||||||
|
true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
package com.github.libretube.ui.dialogs
|
package com.github.libretube.ui.dialogs
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint
|
||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.content.ClipData
|
|
||||||
import android.content.ClipboardManager
|
|
||||||
import android.content.Context
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import com.github.libretube.R
|
import com.github.libretube.R
|
||||||
|
import com.github.libretube.util.ClipboardHelper
|
||||||
import com.github.libretube.util.PreferenceHelper
|
import com.github.libretube.util.PreferenceHelper
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
|
|
||||||
class ErrorDialog : DialogFragment() {
|
class ErrorDialog : DialogFragment() {
|
||||||
|
@SuppressLint("PrivateResource")
|
||||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||||
val errorLog = PreferenceHelper.getErrorLog()
|
val errorLog = PreferenceHelper.getErrorLog()
|
||||||
// reset the error log
|
// reset the error log
|
||||||
@ -22,13 +22,7 @@ class ErrorDialog : DialogFragment() {
|
|||||||
.setMessage(errorLog)
|
.setMessage(errorLog)
|
||||||
.setNegativeButton(R.string.okay, null)
|
.setNegativeButton(R.string.okay, null)
|
||||||
.setPositiveButton(R.string.copy) { _, _ ->
|
.setPositiveButton(R.string.copy) { _, _ ->
|
||||||
/**
|
ClipboardHelper(requireContext()).save(errorLog)
|
||||||
* copy the error log to the clipboard
|
|
||||||
*/
|
|
||||||
val clipboard: ClipboardManager =
|
|
||||||
context?.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
|
||||||
val clip = ClipData.newPlainText(context?.getString(R.string.copied), errorLog)
|
|
||||||
clipboard.setPrimaryClip(clip)
|
|
||||||
Toast.makeText(context, R.string.copied, Toast.LENGTH_SHORT).show()
|
Toast.makeText(context, R.string.copied, Toast.LENGTH_SHORT).show()
|
||||||
}
|
}
|
||||||
.show()
|
.show()
|
||||||
|
@ -0,0 +1,17 @@
|
|||||||
|
package com.github.libretube.util
|
||||||
|
|
||||||
|
import android.content.ClipData
|
||||||
|
import android.content.ClipboardManager
|
||||||
|
import android.content.Context
|
||||||
|
import com.github.libretube.R
|
||||||
|
|
||||||
|
class ClipboardHelper(
|
||||||
|
private val context: Context
|
||||||
|
) {
|
||||||
|
fun save(text: String) {
|
||||||
|
val clipboard: ClipboardManager =
|
||||||
|
context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
||||||
|
val clip = ClipData.newPlainText(context.getString(R.string.copied), text)
|
||||||
|
clipboard.setPrimaryClip(clip)
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user