Skip to content

Commit

Permalink
Merge pull request #702 from skydoves/feature/overlaypadding-shader
Browse files Browse the repository at this point in the history
Implement setOverlayPaddingShader builder method
  • Loading branch information
skydoves committed Sep 17, 2024
2 parents 8c09eb6 + d7b1f69 commit bfed2cd
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 0 deletions.
5 changes: 5 additions & 0 deletions balloon/api/balloon.api
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@ public final class com/skydoves/balloon/Balloon$Builder {
public final fun getOverlayGravity ()I
public final fun getOverlayPadding ()F
public final fun getOverlayPaddingColor ()I
public final fun getOverlayPaddingShader ()Landroid/graphics/Shader;
public final fun getOverlayPosition ()Landroid/graphics/Point;
public final fun getOverlayShape ()Lcom/skydoves/balloon/overlay/BalloonOverlayShape;
public final fun getPaddingBottom ()I
Expand Down Expand Up @@ -526,6 +527,8 @@ public final class com/skydoves/balloon/Balloon$Builder {
public final synthetic fun setOverlayPaddingColor (I)V
public final fun setOverlayPaddingColorResource (I)Lcom/skydoves/balloon/Balloon$Builder;
public final fun setOverlayPaddingResource (I)Lcom/skydoves/balloon/Balloon$Builder;
public final fun setOverlayPaddingShader (Landroid/graphics/Shader;)Lcom/skydoves/balloon/Balloon$Builder;
public final synthetic fun setOverlayPaddingShader (Landroid/graphics/Shader;)V
public final fun setOverlayPosition (Landroid/graphics/Point;)Lcom/skydoves/balloon/Balloon$Builder;
public final synthetic fun setOverlayPosition (Landroid/graphics/Point;)V
public final fun setOverlayShape (Lcom/skydoves/balloon/overlay/BalloonOverlayShape;)Lcom/skydoves/balloon/Balloon$Builder;
Expand Down Expand Up @@ -969,13 +972,15 @@ public final class com/skydoves/balloon/overlay/BalloonAnchorOverlayView : andro
public final fun getOverlayColor ()I
public final fun getOverlayPadding ()F
public final fun getOverlayPaddingColor ()I
public final fun getOverlayPaddingShader ()Landroid/graphics/Shader;
public final fun getOverlayPosition ()Landroid/graphics/Point;
public final fun setAnchorView (Landroid/view/View;)V
public final fun setAnchorViewList (Ljava/util/List;)V
public final fun setBalloonOverlayShape (Lcom/skydoves/balloon/overlay/BalloonOverlayShape;)V
public final fun setOverlayColor (I)V
public final fun setOverlayPadding (F)V
public final fun setOverlayPaddingColor (I)V
public final fun setOverlayPaddingShader (Landroid/graphics/Shader;)V
public final fun setOverlayPosition (Landroid/graphics/Point;)V
}

Expand Down
9 changes: 9 additions & 0 deletions balloon/src/main/kotlin/com/skydoves/balloon/Balloon.kt
Original file line number Diff line number Diff line change
Expand Up @@ -680,6 +680,7 @@ public class Balloon private constructor(
overlayPosition = builder.overlayPosition
balloonOverlayShape = builder.overlayShape
overlayPaddingColor = builder.overlayPaddingColor
overlayPaddingShader = builder.overlayPaddingShader
overlayWindow.isClippingEnabled = false
}
}
Expand Down Expand Up @@ -2218,6 +2219,9 @@ public class Balloon private constructor(
@set:JvmSynthetic
public var overlayPaddingColor: Int = Color.TRANSPARENT

@set:JvmSynthetic
public var overlayPaddingShader: Shader? = null

@set:JvmSynthetic
public var overlayPosition: Point? = null

Expand Down Expand Up @@ -2959,6 +2963,11 @@ public class Balloon private constructor(
this.overlayPaddingColor = context.contextColor(value)
}

/** sets shader of the overlay padding that will be used by an internal painter. */
public fun setOverlayPaddingShader(shader: Shader): Builder = apply {
this.overlayPaddingShader = shader
}

/** sets a specific position of the overlay shape. */
public fun setOverlayPosition(value: Point): Builder = apply { this.overlayPosition = value }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import android.graphics.PorterDuff
import android.graphics.PorterDuffXfermode
import android.graphics.Rect
import android.graphics.RectF
import android.graphics.Shader
import android.util.AttributeSet
import android.view.View
import androidx.annotation.ColorInt
Expand Down Expand Up @@ -58,6 +59,9 @@ public class BalloonAnchorOverlayView @JvmOverloads constructor(
@get:ColorInt
public var overlayPaddingColor: Int by viewProperty(Color.TRANSPARENT)

/** shader of the overlay padding's painter. */
public var overlayPaddingShader: Shader? by viewProperty(null)

/** padding value of the internal overlay shape. */
@get:Px
public var overlayPadding: Float by viewProperty(0f)
Expand Down Expand Up @@ -130,6 +134,7 @@ public class BalloonAnchorOverlayView @JvmOverloads constructor(
color = overlayPaddingColor
style = Paint.Style.STROKE
strokeWidth = overlayPadding
shader = overlayPaddingShader
}

if (anchorViewList.isNullOrEmpty()) {
Expand Down

0 comments on commit bfed2cd

Please sign in to comment.