diff --git a/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt b/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt index 4f31ad4..ca9329f 100644 --- a/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt +++ b/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt @@ -438,7 +438,9 @@ class TasksFragment : AppViewsFragment(), OnTab HighlightPro.with(this@TasksFragment) .setHighlightParameter { HighlightParameter.Builder() - .setHighlightView(binding!!.goldContainer) + .setHighlightView(binding!!.goldContainer, { + val temp = 111 + }) .setTipsViewId(R.layout.guide_step_gold) .setHighlightShape(RectShape(10.dp, 10.dp, 10.dp)) .setHighlightHorizontalPadding(0.dp) @@ -448,7 +450,9 @@ class TasksFragment : AppViewsFragment(), OnTab } .setHighlightParameter { HighlightParameter.Builder() - .setHighlightView(binding!!.cashContainer) + .setHighlightView(binding!!.cashContainer, { + val temp = 111 + }) .setTipsViewId(R.layout.guide_step_cash) .setHighlightShape(RectShape(10.dp, 10.dp, 10.dp)) .setHighlightHorizontalPadding(0.dp) diff --git a/core/architecture/src/main/java/com/ama/core/architecture/highlightpro/HighlightProImpl.kt b/core/architecture/src/main/java/com/ama/core/architecture/highlightpro/HighlightProImpl.kt index 8f3a24b..11ef751 100644 --- a/core/architecture/src/main/java/com/ama/core/architecture/highlightpro/HighlightProImpl.kt +++ b/core/architecture/src/main/java/com/ama/core/architecture/highlightpro/HighlightProImpl.kt @@ -1,7 +1,10 @@ package com.ama.core.architecture.highlightpro +import android.annotation.SuppressLint import android.app.Activity +import android.graphics.RectF import android.view.LayoutInflater +import android.view.MotionEvent import android.view.View import android.view.ViewGroup import androidx.core.view.doOnPreDraw @@ -64,14 +67,37 @@ internal class HighlightProImpl : HighlightViewInteractiveAction { } + @SuppressLint("ClickableViewAccessibility") override fun show() { if (released) return println("$TAG show") //todo give user access to intercept click event // if (!intercept) { - maskContainer.setOnClickListener(onClickListener) + //maskContainer.setOnClickListener(onClickListener) // } + maskContainer.setOnTouchListener { v, event -> + when (event?.action) { + MotionEvent.ACTION_DOWN -> { + val highlightRect: RectF? = maskContainer.highLightViewParameters[0].rect + highlightRect?.let { + if (it.contains(event.x, event.y)) { + showNextHighLightView() + } + } + } + + MotionEvent.ACTION_DOWN -> { + + } + + MotionEvent.ACTION_UP -> { + + } + } + true + } + //if constructor's param is activity or view we care about rootView's attachedToWindow //if constructor's param is fragment we care about [fragmentRootView]'s width is not 0 if ((isFragmentRoot.not() && rootView.isAttachToWindow()) || diff --git a/core/architecture/src/main/java/com/ama/core/architecture/highlightpro/parameter/HighlightParameter.kt b/core/architecture/src/main/java/com/ama/core/architecture/highlightpro/parameter/HighlightParameter.kt index 11ffb63..20c2cf6 100644 --- a/core/architecture/src/main/java/com/ama/core/architecture/highlightpro/parameter/HighlightParameter.kt +++ b/core/architecture/src/main/java/com/ama/core/architecture/highlightpro/parameter/HighlightParameter.kt @@ -62,8 +62,11 @@ class HighlightParameter { * [highLightView] is the view which you want to make it highLight * And it will make [setHighlightViewId] useless. */ - fun setHighlightView(highLightView: View): Builder { + fun setHighlightView(highLightView: View, onHighViewClicked: ()->Unit): Builder { highlightParameter.highLightView = highLightView + highlightParameter.highLightView?.setOnClickListener { + onHighViewClicked.invoke() + } return this } diff --git a/core/architecture/src/main/java/com/ama/core/architecture/highlightpro/shape/HighlightShape.kt b/core/architecture/src/main/java/com/ama/core/architecture/highlightpro/shape/HighlightShape.kt index 81ff828..cf5d6f2 100644 --- a/core/architecture/src/main/java/com/ama/core/architecture/highlightpro/shape/HighlightShape.kt +++ b/core/architecture/src/main/java/com/ama/core/architecture/highlightpro/shape/HighlightShape.kt @@ -24,7 +24,7 @@ open class HighlightShape(val blurRadius: Float = 0.0f) { } } - protected var rect: RectF? = null + var rect: RectF? = null /** * init rect child should override initRect and init path @@ -33,6 +33,8 @@ open class HighlightShape(val blurRadius: Float = 0.0f) { this.rect = rectF } + + /** * draw our path */ diff --git a/core/architecture/src/main/java/com/ama/core/architecture/highlightpro/view/MaskContainer.kt b/core/architecture/src/main/java/com/ama/core/architecture/highlightpro/view/MaskContainer.kt index f0e6fd2..ba6b16d 100644 --- a/core/architecture/src/main/java/com/ama/core/architecture/highlightpro/view/MaskContainer.kt +++ b/core/architecture/src/main/java/com/ama/core/architecture/highlightpro/view/MaskContainer.kt @@ -24,7 +24,7 @@ internal class MaskContainer constructor(context: Context, attributeSet: Attribu private var rootWidth: Int = 0 private var rootHeight: Int = 0 private var bgColor: Int = -1 - private val highLightViewParameters = mutableListOf() + val highLightViewParameters = mutableListOf() private val defaultHighlightBgColor: Int get() = "#80000000".toColorInt()