aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebContextMenu.kt
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2017-07-07 03:26:55 -0400
committerGitHub <noreply@github.com>2017-07-07 03:26:55 -0400
commit6adfc496374eb88919f70a240eb15a726d2c18e0 (patch)
tree7cba34515bde7d840d37c50c397e948407776cc9 /app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebContextMenu.kt
parentbb70ed737d98abbd6164b66ac5bd667553b312bd (diff)
downloadfrost-6adfc496374eb88919f70a240eb15a726d2c18e0.tar.gz
frost-6adfc496374eb88919f70a240eb15a726d2c18e0.tar.bz2
frost-6adfc496374eb88919f70a240eb15a726d2c18e0.zip
Dev 1.1.6 (#33) - Fix play store listing, add sharing options, update css & jsv1.1.6
* Remove play store listing updates * Fix up listing * Combine url getters for overlay activity * Begin building context menu programmatically * Update css and js
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebContextMenu.kt')
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebContextMenu.kt100
1 files changed, 100 insertions, 0 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebContextMenu.kt b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebContextMenu.kt
new file mode 100644
index 00000000..e0aa5ebd
--- /dev/null
+++ b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebContextMenu.kt
@@ -0,0 +1,100 @@
+package com.pitchedapps.frost.web
+
+import android.content.Context
+import android.support.constraint.ConstraintLayout
+import android.support.constraint.ConstraintSet
+import android.text.method.ScrollingMovementMethod
+import android.util.AttributeSet
+import android.widget.TextView
+import ca.allanwang.kau.logging.KL
+import ca.allanwang.kau.utils.*
+import com.pitchedapps.frost.R
+import com.pitchedapps.frost.utils.Prefs
+
+/**
+ * Created by Allan Wang on 2017-07-06.
+ */
+class FrostWebContextMenu @JvmOverloads constructor(
+ context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
+) : ConstraintLayout(context, attrs, defStyleAttr) {
+
+ var url = ""
+
+ val urlHolder = TextView(context, attrs, defStyleAttr)
+
+ init {
+ layoutParams = LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)
+ elevation = 20f
+ setBackgroundColor(0x80000000.toInt())
+ gone()
+
+ val tc = Prefs.textColor
+ val bg = Prefs.bgColor.colorToForeground(0.1f).withAlpha(255)
+
+ urlHolder.apply {
+ isVerticalScrollBarEnabled = true
+ movementMethod = ScrollingMovementMethod()
+ maxHeight = 60.dpToPx
+ }
+ addView(urlHolder)
+
+ //collection of items in our menu and their click event
+ val data = arrayOf(
+ R.string.copy_link to { context.copyToClipboard(url) }
+ )
+
+ //add views and extract ids
+ val views = data.map {
+ (textId, onClick) ->
+ val tv = TextView(context).apply {
+ text = context.string(textId)
+ setOnClickListener({ onClick(); close() })
+ }
+ addView(tv)
+ tv
+ }.toMutableList()
+
+ views.add(0, urlHolder)
+
+ val ids = views.mapIndexed { index, textView ->
+ textView.apply {
+ id = 74329 + index //totally arbitrary
+ setTextColor(tc)
+ setBackgroundColor(bg)
+ }
+ KL.d("ID ${textView.text}")
+ textView.id
+ }
+
+ //clone to set only after ids are set
+ val set = ConstraintSet()
+ set.clone(this)
+
+ ids.forEach {
+ set.connect(it, ConstraintSet.START, ConstraintSet.PARENT_ID, ConstraintSet.START, 16)
+ set.connect(it, ConstraintSet.END, ConstraintSet.PARENT_ID, ConstraintSet.END, 16)
+ }
+
+
+ set.createVerticalChain(ConstraintSet.PARENT_ID, ConstraintSet.TOP, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM,
+ ids.toIntArray(), null, ConstraintSet.CHAIN_PACKED)
+
+ set.applyTo(this)
+ setOnClickListener {
+ close()
+ }
+ }
+
+ fun close() {
+ transitionAuto()
+ gone()
+ }
+
+ fun show(url: String) {
+ this.url = url
+ urlHolder.text = this.url
+ transitionAuto()
+ visible()
+ }
+
+} \ No newline at end of file