Skip to content
Snippets Groups Projects
Verified Commit c3d170b8 authored by Janne Mareike Koschinski's avatar Janne Mareike Koschinski
Browse files

Make links in core info clickable

parent 3e603782
No related branches found
No related tags found
No related merge requests found
Pipeline #
...@@ -20,6 +20,8 @@ import de.kuschku.quasseldroid.util.helper.getVectorDrawableCompat ...@@ -20,6 +20,8 @@ import de.kuschku.quasseldroid.util.helper.getVectorDrawableCompat
import de.kuschku.quasseldroid.util.helper.styledAttributes import de.kuschku.quasseldroid.util.helper.styledAttributes
import de.kuschku.quasseldroid.util.helper.tint import de.kuschku.quasseldroid.util.helper.tint
import de.kuschku.quasseldroid.util.helper.visibleIf import de.kuschku.quasseldroid.util.helper.visibleIf
import de.kuschku.quasseldroid.util.ui.BetterLinkMovementMethod
import de.kuschku.quasseldroid.util.ui.LinkLongClickMenuHelper
import org.threeten.bp.ZoneId import org.threeten.bp.ZoneId
import org.threeten.bp.format.DateTimeFormatter import org.threeten.bp.format.DateTimeFormatter
import org.threeten.bp.format.FormatStyle import org.threeten.bp.format.FormatStyle
...@@ -33,6 +35,12 @@ class ClientAdapter : ListAdapter<CoreInfo.ConnectedClientData, ClientAdapter.Cl ...@@ -33,6 +35,12 @@ class ClientAdapter : ListAdapter<CoreInfo.ConnectedClientData, ClientAdapter.Cl
newItem: CoreInfo.ConnectedClientData) = oldItem == newItem newItem: CoreInfo.ConnectedClientData) = oldItem == newItem
} }
) { ) {
private val movementMethod = BetterLinkMovementMethod.newInstance()
init {
movementMethod.setOnLinkLongClickListener(LinkLongClickMenuHelper())
}
private var disconnectListener: ((Int) -> Unit)? = null private var disconnectListener: ((Int) -> Unit)? = null
fun setDisconnectListener(listener: ((Int) -> Unit)?) { fun setDisconnectListener(listener: ((Int) -> Unit)?) {
this.disconnectListener = listener this.disconnectListener = listener
...@@ -45,7 +53,8 @@ class ClientAdapter : ListAdapter<CoreInfo.ConnectedClientData, ClientAdapter.Cl ...@@ -45,7 +53,8 @@ class ClientAdapter : ListAdapter<CoreInfo.ConnectedClientData, ClientAdapter.Cl
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ClientViewHolder( override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ClientViewHolder(
LayoutInflater.from(parent.context).inflate(R.layout.widget_client, parent, false), LayoutInflater.from(parent.context).inflate(R.layout.widget_client, parent, false),
dateTimeFormatter, dateTimeFormatter,
::disconnect ::disconnect,
movementMethod
) )
private val dateTimeFormatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM) private val dateTimeFormatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM)
...@@ -56,7 +65,8 @@ class ClientAdapter : ListAdapter<CoreInfo.ConnectedClientData, ClientAdapter.Cl ...@@ -56,7 +65,8 @@ class ClientAdapter : ListAdapter<CoreInfo.ConnectedClientData, ClientAdapter.Cl
class ClientViewHolder( class ClientViewHolder(
itemView: View, itemView: View,
private val dateTimeFormatter: DateTimeFormatter, private val dateTimeFormatter: DateTimeFormatter,
private val disconnectListener: (Int) -> Unit private val disconnectListener: (Int) -> Unit,
movementMethod: BetterLinkMovementMethod
) : RecyclerView.ViewHolder(itemView) { ) : RecyclerView.ViewHolder(itemView) {
@BindView(R.id.ip) @BindView(R.id.ip)
...@@ -84,6 +94,7 @@ class ClientAdapter : ListAdapter<CoreInfo.ConnectedClientData, ClientAdapter.Cl ...@@ -84,6 +94,7 @@ class ClientAdapter : ListAdapter<CoreInfo.ConnectedClientData, ClientAdapter.Cl
init { init {
ButterKnife.bind(this, itemView) ButterKnife.bind(this, itemView)
version.movementMethod = movementMethod
disconnect.setOnClickListener { disconnect.setOnClickListener {
id?.let(disconnectListener::invoke) id?.let(disconnectListener::invoke)
} }
......
...@@ -41,6 +41,8 @@ import de.kuschku.quasseldroid.util.missingfeatures.MissingFeature ...@@ -41,6 +41,8 @@ import de.kuschku.quasseldroid.util.missingfeatures.MissingFeature
import de.kuschku.quasseldroid.util.missingfeatures.MissingFeaturesDialog import de.kuschku.quasseldroid.util.missingfeatures.MissingFeaturesDialog
import de.kuschku.quasseldroid.util.missingfeatures.RequiredFeatures import de.kuschku.quasseldroid.util.missingfeatures.RequiredFeatures
import de.kuschku.quasseldroid.util.service.ServiceBoundFragment import de.kuschku.quasseldroid.util.service.ServiceBoundFragment
import de.kuschku.quasseldroid.util.ui.BetterLinkMovementMethod
import de.kuschku.quasseldroid.util.ui.LinkLongClickMenuHelper
import org.threeten.bp.ZoneId import org.threeten.bp.ZoneId
import org.threeten.bp.format.DateTimeFormatter import org.threeten.bp.format.DateTimeFormatter
import org.threeten.bp.format.FormatStyle import org.threeten.bp.format.FormatStyle
...@@ -76,6 +78,12 @@ class CoreInfoFragment : ServiceBoundFragment() { ...@@ -76,6 +78,12 @@ class CoreInfoFragment : ServiceBoundFragment() {
private val dateTimeFormatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM) private val dateTimeFormatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM)
private val movementMethod = BetterLinkMovementMethod.newInstance()
init {
movementMethod.setOnLinkLongClickListener(LinkLongClickMenuHelper())
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? { savedInstanceState: Bundle?): View? {
val view = inflater.inflate(R.layout.fragment_info_core, container, false) val view = inflater.inflate(R.layout.fragment_info_core, container, false)
...@@ -106,6 +114,8 @@ class CoreInfoFragment : ServiceBoundFragment() { ...@@ -106,6 +114,8 @@ class CoreInfoFragment : ServiceBoundFragment() {
.readOnly(true) .readOnly(true)
.show() .show()
} }
version.movementMethod = movementMethod
versionDate.movementMethod = movementMethod
val secure = requireContext().getVectorDrawableCompat(R.drawable.ic_lock)?.mutate() val secure = requireContext().getVectorDrawableCompat(R.drawable.ic_lock)?.mutate()
val partiallySecure = requireContext().getVectorDrawableCompat(R.drawable.ic_lock)?.mutate() val partiallySecure = requireContext().getVectorDrawableCompat(R.drawable.ic_lock)?.mutate()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment