From 989cbacaad3201012f8a0d94cd2d92fb45790db8 Mon Sep 17 00:00:00 2001 From: notsatria Date: Tue, 31 Dec 2024 14:55:01 +0700 Subject: [PATCH] feat: added padding bottom customization --- .../ui/CoordinatorLayoutAct.kt | 16 ++++++- .../custom_snackbar/ui/CustomViewAct.kt | 2 +- .../example/custom_snackbar/ui/DrawableAct.kt | 16 ++++++- .../example/custom_snackbar/ui/SimpleAct.kt | 16 ++++++- .../main/res/layout/activity_custom_view.xml | 2 +- app/src/main/res/layout/activity_drawable.xml | 42 ++++++++++++++++++- app/src/main/res/layout/content_app.xml | 41 +++++++++++++++++- app/src/main/res/values/strings.xml | 3 +- .../com/kishandonga/csbx/CustomSnackbar.kt | 21 +++++++--- 9 files changed, 145 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/example/custom_snackbar/ui/CoordinatorLayoutAct.kt b/app/src/main/java/com/example/custom_snackbar/ui/CoordinatorLayoutAct.kt index 15e66c1..f4a1c79 100644 --- a/app/src/main/java/com/example/custom_snackbar/ui/CoordinatorLayoutAct.kt +++ b/app/src/main/java/com/example/custom_snackbar/ui/CoordinatorLayoutAct.kt @@ -107,6 +107,19 @@ class CoordinatorLayoutAct : AppCompatActivity() { } }) + binding.content.sbPaddingBottom.setOnSeekBarChangeListener(object : + SeekBar.OnSeekBarChangeListener { + override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) { + binding.content.tvPaddingBottomIndicator.text = p0?.progress.toString() + } + + override fun onStartTrackingTouch(p0: SeekBar?) { + } + + override fun onStopTrackingTouch(p0: SeekBar?) { + } + }) + binding.content.sbCornerRadius.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener { override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) { @@ -162,7 +175,8 @@ class CoordinatorLayoutAct : AppCompatActivity() { textColor(textColor) backgroundColor(bgColor) border(binding.content.sbBorderWidth.progress, borderColor) - padding(binding.content.sbPadding.progress) + paddingHorizontal(binding.content.sbPadding.progress) + paddingBottom(binding.content.sbPaddingBottom.progress) cornerRadius(binding.content.sbCornerRadius.progress.toFloat()) duration(timeDuration) actionTextColor(actionTxtColor) diff --git a/app/src/main/java/com/example/custom_snackbar/ui/CustomViewAct.kt b/app/src/main/java/com/example/custom_snackbar/ui/CustomViewAct.kt index 9c5eb65..f8cef27 100644 --- a/app/src/main/java/com/example/custom_snackbar/ui/CustomViewAct.kt +++ b/app/src/main/java/com/example/custom_snackbar/ui/CustomViewAct.kt @@ -47,7 +47,7 @@ class CustomViewAct : AppCompatActivity() { snackbar = CustomSnackbar(this).show { customView(R.layout.snack_layout) - padding(binding.sbPadding.progress) + paddingHorizontal(binding.sbPadding.progress) duration(timeDuration) withCustomView { it.findViewById(R.id.btnUndo).setOnClickListener { diff --git a/app/src/main/java/com/example/custom_snackbar/ui/DrawableAct.kt b/app/src/main/java/com/example/custom_snackbar/ui/DrawableAct.kt index 2b419bd..0667698 100644 --- a/app/src/main/java/com/example/custom_snackbar/ui/DrawableAct.kt +++ b/app/src/main/java/com/example/custom_snackbar/ui/DrawableAct.kt @@ -73,6 +73,19 @@ class DrawableAct : AppCompatActivity() { } }) + binding.sbPaddingBottom.setOnSeekBarChangeListener(object : + SeekBar.OnSeekBarChangeListener { + override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) { + binding.tvPaddingBottomIndicator.text = p0?.progress.toString() + } + + override fun onStartTrackingTouch(p0: SeekBar?) { + } + + override fun onStopTrackingTouch(p0: SeekBar?) { + } + }) + var snackbar: CustomSnackbar? = null binding.btnShow.setOnClickListener { @@ -96,7 +109,8 @@ class DrawableAct : AppCompatActivity() { actionTextColor(actionTxtColor) textTypeface(typeface) actionTypeface(typeface) - padding(binding.sbPadding.progress) + paddingHorizontal(binding.sbPadding.progress) + paddingBottom(binding.sbPaddingBottom.progress) duration(timeDuration) message("Testing Message...") if (binding.rbWithAction.isChecked) { diff --git a/app/src/main/java/com/example/custom_snackbar/ui/SimpleAct.kt b/app/src/main/java/com/example/custom_snackbar/ui/SimpleAct.kt index 90d08d1..31f3417 100644 --- a/app/src/main/java/com/example/custom_snackbar/ui/SimpleAct.kt +++ b/app/src/main/java/com/example/custom_snackbar/ui/SimpleAct.kt @@ -95,6 +95,19 @@ class SimpleAct : AppCompatActivity() { } }) + binding.content.sbPaddingBottom.setOnSeekBarChangeListener(object : + SeekBar.OnSeekBarChangeListener { + override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) { + binding.content.tvPaddingBottomIndicator.text = p0?.progress.toString() + } + + override fun onStartTrackingTouch(p0: SeekBar?) { + } + + override fun onStopTrackingTouch(p0: SeekBar?) { + } + }) + binding.content.sbCornerRadius.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener { override fun onProgressChanged(p0: SeekBar?, p1: Int, p2: Boolean) { @@ -150,7 +163,8 @@ class SimpleAct : AppCompatActivity() { textColor(textColor) backgroundColor(bgColor) border(binding.content.sbBorderWidth.progress, borderColor) - padding(binding.content.sbPadding.progress) + paddingHorizontal(binding.content.sbPadding.progress) + paddingBottom(binding.content.sbPaddingBottom.progress) cornerRadius(binding.content.sbCornerRadius.progress.toFloat()) duration(timeDuration) actionTextColor(actionTxtColor) diff --git a/app/src/main/res/layout/activity_custom_view.xml b/app/src/main/res/layout/activity_custom_view.xml index d6c7d7f..258eed4 100644 --- a/app/src/main/res/layout/activity_custom_view.xml +++ b/app/src/main/res/layout/activity_custom_view.xml @@ -62,7 +62,7 @@ + android:text="@string/lbl_padding_horizontal" /> + android:text="@string/lbl_padding_horizontal" /> + + + + + + + + + + + + + + + + + + android:text="@string/lbl_padding_horizontal" /> + + + + + + + + + + + + + + + + With Custom View Action Button Text Color With Drawable - Padding + Padding Horizontal + Padding Bottom UNDO Are you sure? do you want to undo this operation? diff --git a/csbx/src/main/java/com/kishandonga/csbx/CustomSnackbar.kt b/csbx/src/main/java/com/kishandonga/csbx/CustomSnackbar.kt index 471befb..7ba0cf2 100644 --- a/csbx/src/main/java/com/kishandonga/csbx/CustomSnackbar.kt +++ b/csbx/src/main/java/com/kishandonga/csbx/CustomSnackbar.kt @@ -30,7 +30,8 @@ class CustomSnackbar(private val context: Context) { private var duration: Int = Snackbar.LENGTH_SHORT private var drawable = GradientDrawable() private var message: String = "" - private var padding: Int = 0.toPx(context).toInt() + private var paddingHorizontal: Int = 0.toPx(context).toInt() + private var paddingBottom: Int = 0.toPx(context).toInt() private var customView: View? = null private var action: ((Snackbar) -> Unit)? = null private var customViewAction: ((View) -> Unit)? = null @@ -83,11 +84,15 @@ class CustomSnackbar(private val context: Context) { } fun paddingRes(@DimenRes dimenId: Int) { - padding(context.resources.getDimension(dimenId).toInt()) + paddingHorizontal(context.resources.getDimension(dimenId).toInt()) } - fun padding(padding: Int) { - this.padding = padding + fun paddingHorizontal(padding: Int) { + this.paddingHorizontal = padding + } + + fun paddingBottom(padding: Int) { + this.paddingBottom = padding } fun duration(duration: Int) { @@ -195,8 +200,12 @@ class CustomSnackbar(private val context: Context) { snackContentLayout.setPadding(pLeft, 0, pRight, 0) snackContentLayout.background = drawable - if (padding > 0) { - snackbarLayout.setPadding(padding, 0, padding, padding) + if (paddingHorizontal > 0) { + snackbarLayout.setPadding(paddingHorizontal, 0, paddingHorizontal, 0) + } + + if (paddingBottom > 0) { + snackbarLayout.setPadding(snackbarLayout.paddingLeft, 0, snackbarLayout.paddingRight, paddingBottom) } if (customView == null) {