From c36922bd39a2bb31b7820495fd9db91197c511a9 Mon Sep 17 00:00:00 2001 From: soopeach Date: Wed, 10 May 2023 12:28:25 +0900 Subject: [PATCH 01/11] =?UTF-8?q?[feature/common/royal=5Fflush=5Fedit=5Fte?= =?UTF-8?q?xt]:=20#9=20chore:=20feautre-common=20=EB=AA=A8=EB=93=88?= =?UTF-8?q?=EC=97=90=20viewBinding=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- feature/feature-common/build.gradle.kts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/feature/feature-common/build.gradle.kts b/feature/feature-common/build.gradle.kts index c74772a..0fbf81f 100644 --- a/feature/feature-common/build.gradle.kts +++ b/feature/feature-common/build.gradle.kts @@ -1,3 +1,5 @@ +@file:Suppress("UnstableApiUsage") + @Suppress("DSL_SCOPE_VIOLATION") plugins { @@ -6,6 +8,9 @@ plugins { android { namespace = "com.ggne.feature_common" + buildFeatures { + viewBinding = true + } } dependencies { From 00f40ba9fed254293974cbed1625c12bb614f7ca Mon Sep 17 00:00:00 2001 From: soopeach Date: Wed, 10 May 2023 12:30:05 +0900 Subject: [PATCH 02/11] =?UTF-8?q?[feature/common/royal=5Fflush=5Fedit=5Fte?= =?UTF-8?q?xt]:=20#9=20feat:=20=EA=B8=B0=EB=B3=B8=20Royal=20Flush=20Edit?= =?UTF-8?q?=20Text=20=ED=8B=80=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../custom/RoyalFlushEditText.kt | 17 +++++++++++++ .../royal_flush_edit_text_background.xml | 9 +++++++ .../main/res/layout/royal_flush_edit_text.xml | 25 +++++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushEditText.kt create mode 100644 feature/feature-common/src/main/res/drawable/royal_flush_edit_text_background.xml create mode 100644 feature/feature-common/src/main/res/layout/royal_flush_edit_text.xml diff --git a/feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushEditText.kt b/feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushEditText.kt new file mode 100644 index 0000000..d8f9501 --- /dev/null +++ b/feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushEditText.kt @@ -0,0 +1,17 @@ +package com.ggne.feature_common.custom + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import androidx.constraintlayout.widget.ConstraintLayout +import com.ggne.feature_common.databinding.RoyalFlushEditTextBinding + +class RoyalFlushEditText(context: Context, attrs: AttributeSet): ConstraintLayout(context, attrs) { + + private val binding = RoyalFlushEditTextBinding.inflate(LayoutInflater.from(context), this, true) + + init { + removeAllViews() + addView(binding.root) + } +} \ No newline at end of file diff --git a/feature/feature-common/src/main/res/drawable/royal_flush_edit_text_background.xml b/feature/feature-common/src/main/res/drawable/royal_flush_edit_text_background.xml new file mode 100644 index 0000000..944a018 --- /dev/null +++ b/feature/feature-common/src/main/res/drawable/royal_flush_edit_text_background.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/feature/feature-common/src/main/res/layout/royal_flush_edit_text.xml b/feature/feature-common/src/main/res/layout/royal_flush_edit_text.xml new file mode 100644 index 0000000..c75443f --- /dev/null +++ b/feature/feature-common/src/main/res/layout/royal_flush_edit_text.xml @@ -0,0 +1,25 @@ + + + + + + \ No newline at end of file From 84c314b03e3b8c36920b48e535f25b807339b59a Mon Sep 17 00:00:00 2001 From: soopeach Date: Wed, 10 May 2023 12:47:53 +0900 Subject: [PATCH 03/11] =?UTF-8?q?[feature/common/royal=5Fflush=5Fedit=5Fte?= =?UTF-8?q?xt]:=20#9=20feat:=20Royal=20Flush=20Edit=20Text=20Start=20Icon?= =?UTF-8?q?=20=EC=86=8D=EC=84=B1=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../custom/RoyalFlushEditText.kt | 24 +++++++++++++++++++ .../main/res/layout/royal_flush_edit_text.xml | 18 +++++++++++--- .../src/main/res/values/attrs.xml | 6 +++++ .../src/main/res/values/strings.xml | 4 ++++ 4 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 feature/feature-common/src/main/res/values/attrs.xml create mode 100644 feature/feature-common/src/main/res/values/strings.xml diff --git a/feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushEditText.kt b/feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushEditText.kt index d8f9501..a7122a5 100644 --- a/feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushEditText.kt +++ b/feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushEditText.kt @@ -4,6 +4,7 @@ import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater import androidx.constraintlayout.widget.ConstraintLayout +import com.ggne.feature_common.R import com.ggne.feature_common.databinding.RoyalFlushEditTextBinding class RoyalFlushEditText(context: Context, attrs: AttributeSet): ConstraintLayout(context, attrs) { @@ -11,7 +12,30 @@ class RoyalFlushEditText(context: Context, attrs: AttributeSet): ConstraintLayou private val binding = RoyalFlushEditTextBinding.inflate(LayoutInflater.from(context), this, true) init { + + context.theme.obtainStyledAttributes( + attrs, + R.styleable.RoyalFlushEditText, + 0, 0 + ).apply { + try { + getResourceId(R.styleable.RoyalFlushEditText_StartIcon, EMPTY_RESOURCE).let { resource -> + if (resource == EMPTY_RESOURCE) { + binding.startIc.visibility = GONE + } else { + binding.startIc.setImageResource(resource) + } + } + } finally { + recycle() + } + } + removeAllViews() addView(binding.root) } + + companion object { + private const val EMPTY_RESOURCE = -1 + } } \ No newline at end of file diff --git a/feature/feature-common/src/main/res/layout/royal_flush_edit_text.xml b/feature/feature-common/src/main/res/layout/royal_flush_edit_text.xml index c75443f..631ec6e 100644 --- a/feature/feature-common/src/main/res/layout/royal_flush_edit_text.xml +++ b/feature/feature-common/src/main/res/layout/royal_flush_edit_text.xml @@ -2,23 +2,35 @@ + + diff --git a/feature/feature-common/src/main/res/values/attrs.xml b/feature/feature-common/src/main/res/values/attrs.xml new file mode 100644 index 0000000..66cc0b0 --- /dev/null +++ b/feature/feature-common/src/main/res/values/attrs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/feature/feature-common/src/main/res/values/strings.xml b/feature/feature-common/src/main/res/values/strings.xml new file mode 100644 index 0000000..89eef1f --- /dev/null +++ b/feature/feature-common/src/main/res/values/strings.xml @@ -0,0 +1,4 @@ + + + 시작 아이콘 + \ No newline at end of file From 8a11ff65ee1015f851503ab7b6b24002c4f40e08 Mon Sep 17 00:00:00 2001 From: soopeach Date: Wed, 10 May 2023 13:00:15 +0900 Subject: [PATCH 04/11] =?UTF-8?q?[feature/common/royal=5Fflush=5Fedit=5Fte?= =?UTF-8?q?xt]:=20#9=20feat:=20Royal=20Flush=20Edit=20Text=20End=20Icon=20?= =?UTF-8?q?=EC=86=8D=EC=84=B1=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feature_common/custom/RoyalFlushEditText.kt | 11 ++++++++++- .../src/main/res/layout/royal_flush_edit_text.xml | 13 ++++++++++++- .../feature-common/src/main/res/values/attrs.xml | 1 + .../feature-common/src/main/res/values/strings.xml | 1 + 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushEditText.kt b/feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushEditText.kt index a7122a5..8d1e344 100644 --- a/feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushEditText.kt +++ b/feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushEditText.kt @@ -19,13 +19,22 @@ class RoyalFlushEditText(context: Context, attrs: AttributeSet): ConstraintLayou 0, 0 ).apply { try { - getResourceId(R.styleable.RoyalFlushEditText_StartIcon, EMPTY_RESOURCE).let { resource -> + getResourceId(R.styleable.RoyalFlushEditText_startIcon, EMPTY_RESOURCE).let { resource -> if (resource == EMPTY_RESOURCE) { binding.startIc.visibility = GONE } else { binding.startIc.setImageResource(resource) } } + + getResourceId(R.styleable.RoyalFlushEditText_endIcon, EMPTY_RESOURCE).let { resource -> + if (resource == EMPTY_RESOURCE) { + binding.endIc.visibility = GONE + } else { + binding.endIc.setImageResource(resource) + } + } + } finally { recycle() } diff --git a/feature/feature-common/src/main/res/layout/royal_flush_edit_text.xml b/feature/feature-common/src/main/res/layout/royal_flush_edit_text.xml index 631ec6e..9b99e9a 100644 --- a/feature/feature-common/src/main/res/layout/royal_flush_edit_text.xml +++ b/feature/feature-common/src/main/res/layout/royal_flush_edit_text.xml @@ -28,10 +28,21 @@ android:maxLines="1" android:inputType="text" app:layout_constraintStart_toEndOf="@id/start_ic" - app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintEnd_toStartOf="@id/end_ic" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" android:autofillHints="yes" tools:ignore="LabelFor" /> + + \ No newline at end of file diff --git a/feature/feature-common/src/main/res/values/attrs.xml b/feature/feature-common/src/main/res/values/attrs.xml index 66cc0b0..0d12435 100644 --- a/feature/feature-common/src/main/res/values/attrs.xml +++ b/feature/feature-common/src/main/res/values/attrs.xml @@ -2,5 +2,6 @@ + \ No newline at end of file diff --git a/feature/feature-common/src/main/res/values/strings.xml b/feature/feature-common/src/main/res/values/strings.xml index 89eef1f..f66188e 100644 --- a/feature/feature-common/src/main/res/values/strings.xml +++ b/feature/feature-common/src/main/res/values/strings.xml @@ -1,4 +1,5 @@ 시작 아이콘 + 끝 아이콘 \ No newline at end of file From f085da70f0c8db08ae7af2ff7bc72e3ef1c994b3 Mon Sep 17 00:00:00 2001 From: soopeach Date: Wed, 10 May 2023 14:02:47 +0900 Subject: [PATCH 05/11] =?UTF-8?q?[feature/common/royal=5Fflush=5Fedit=5Fte?= =?UTF-8?q?xt]:=20#9=20feat:=20Royal=20Flush=20Edit=20Text=20Hint=20?= =?UTF-8?q?=EC=86=8D=EC=84=B1=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../custom/RoyalFlushEditText.kt | 25 ++++++++++++++----- .../main/res/layout/royal_flush_edit_text.xml | 23 +++++++++-------- .../src/main/res/values/attrs.xml | 5 ++-- 3 files changed, 34 insertions(+), 19 deletions(-) diff --git a/feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushEditText.kt b/feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushEditText.kt index 8d1e344..962e1f7 100644 --- a/feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushEditText.kt +++ b/feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushEditText.kt @@ -7,19 +7,25 @@ import androidx.constraintlayout.widget.ConstraintLayout import com.ggne.feature_common.R import com.ggne.feature_common.databinding.RoyalFlushEditTextBinding -class RoyalFlushEditText(context: Context, attrs: AttributeSet): ConstraintLayout(context, attrs) { +class RoyalFlushEditText(context: Context, attrs: AttributeSet) : ConstraintLayout(context, attrs) { - private val binding = RoyalFlushEditTextBinding.inflate(LayoutInflater.from(context), this, true) + private val binding = + RoyalFlushEditTextBinding.inflate(LayoutInflater.from(context), this, true) init { context.theme.obtainStyledAttributes( attrs, R.styleable.RoyalFlushEditText, - 0, 0 + 0, + 0, ).apply { try { - getResourceId(R.styleable.RoyalFlushEditText_startIcon, EMPTY_RESOURCE).let { resource -> + + getResourceId( + R.styleable.RoyalFlushEditText_startIcon, + EMPTY_RESOURCE, + ).let { resource -> if (resource == EMPTY_RESOURCE) { binding.startIc.visibility = GONE } else { @@ -27,7 +33,10 @@ class RoyalFlushEditText(context: Context, attrs: AttributeSet): ConstraintLayou } } - getResourceId(R.styleable.RoyalFlushEditText_endIcon, EMPTY_RESOURCE).let { resource -> + getResourceId( + R.styleable.RoyalFlushEditText_endIcon, + EMPTY_RESOURCE, + ).let { resource -> if (resource == EMPTY_RESOURCE) { binding.endIc.visibility = GONE } else { @@ -35,6 +44,10 @@ class RoyalFlushEditText(context: Context, attrs: AttributeSet): ConstraintLayou } } + getString(R.styleable.RoyalFlushEditText_royalFlushEditTextHint).let { hint -> + binding.et.hint = hint + } + } finally { recycle() } @@ -47,4 +60,4 @@ class RoyalFlushEditText(context: Context, attrs: AttributeSet): ConstraintLayou companion object { private const val EMPTY_RESOURCE = -1 } -} \ No newline at end of file +} diff --git a/feature/feature-common/src/main/res/layout/royal_flush_edit_text.xml b/feature/feature-common/src/main/res/layout/royal_flush_edit_text.xml index 9b99e9a..6fc5124 100644 --- a/feature/feature-common/src/main/res/layout/royal_flush_edit_text.xml +++ b/feature/feature-common/src/main/res/layout/royal_flush_edit_text.xml @@ -1,11 +1,11 @@ + android:contentDescription="@string/start_ic"/> + android:contentDescription="@string/end_ic"/> \ No newline at end of file diff --git a/feature/feature-common/src/main/res/values/attrs.xml b/feature/feature-common/src/main/res/values/attrs.xml index 0d12435..81ef04a 100644 --- a/feature/feature-common/src/main/res/values/attrs.xml +++ b/feature/feature-common/src/main/res/values/attrs.xml @@ -1,7 +1,8 @@ - - + + + \ No newline at end of file From be6c6971c4ee6a95daa51258cbe95ce99c9766a2 Mon Sep 17 00:00:00 2001 From: soopeach Date: Sun, 14 May 2023 17:10:26 +0900 Subject: [PATCH 06/11] =?UTF-8?q?[feature/common/royal=5Fflush=5Fedit=5Fte?= =?UTF-8?q?xt]:=20#9=20style:=20Royal=20Flush=20Edit=20Text=20=EB=B0=B0?= =?UTF-8?q?=EA=B2=BD=20=EA=B3=A1=EB=A5=A0=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/res/drawable/royal_flush_edit_text_background.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/feature/feature-common/src/main/res/drawable/royal_flush_edit_text_background.xml b/feature/feature-common/src/main/res/drawable/royal_flush_edit_text_background.xml index 944a018..bdb680f 100644 --- a/feature/feature-common/src/main/res/drawable/royal_flush_edit_text_background.xml +++ b/feature/feature-common/src/main/res/drawable/royal_flush_edit_text_background.xml @@ -3,7 +3,7 @@ - + \ No newline at end of file From 40c171779350de7b52cc891b70909df6713f9c28 Mon Sep 17 00:00:00 2001 From: soopeach Date: Mon, 15 May 2023 01:09:04 +0900 Subject: [PATCH 07/11] =?UTF-8?q?[feature/common/royal=5Fflush=5Fedit=5Fte?= =?UTF-8?q?xt]:=20#9=20rename:=20Royal=20Flush=20Edit=20Text=20->=20Royal?= =?UTF-8?q?=20Flush=20Icon=20Edit=20Text=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...lushEditText.kt => RoyalFlushIconEditText.kt} | 16 ++++++++-------- ...t_text.xml => royal_flush_icon_edit_text.xml} | 0 .../feature-common/src/main/res/values/attrs.xml | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) rename feature/feature-common/src/main/java/com/ggne/feature_common/custom/{RoyalFlushEditText.kt => RoyalFlushIconEditText.kt} (71%) rename feature/feature-common/src/main/res/layout/{royal_flush_edit_text.xml => royal_flush_icon_edit_text.xml} (100%) diff --git a/feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushEditText.kt b/feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushIconEditText.kt similarity index 71% rename from feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushEditText.kt rename to feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushIconEditText.kt index 962e1f7..865ddd6 100644 --- a/feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushEditText.kt +++ b/feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushIconEditText.kt @@ -5,25 +5,26 @@ import android.util.AttributeSet import android.view.LayoutInflater import androidx.constraintlayout.widget.ConstraintLayout import com.ggne.feature_common.R -import com.ggne.feature_common.databinding.RoyalFlushEditTextBinding +import com.ggne.feature_common.databinding.RoyalFlushIconEditTextBinding -class RoyalFlushEditText(context: Context, attrs: AttributeSet) : ConstraintLayout(context, attrs) { +class RoyalFlushIconEditText(context: Context, attrs: AttributeSet) : + ConstraintLayout(context, attrs) { private val binding = - RoyalFlushEditTextBinding.inflate(LayoutInflater.from(context), this, true) + RoyalFlushIconEditTextBinding.inflate(LayoutInflater.from(context), this, true) init { context.theme.obtainStyledAttributes( attrs, - R.styleable.RoyalFlushEditText, + R.styleable.RoyalFlushIconEditText, 0, 0, ).apply { try { getResourceId( - R.styleable.RoyalFlushEditText_startIcon, + R.styleable.RoyalFlushIconEditText_startIcon, EMPTY_RESOURCE, ).let { resource -> if (resource == EMPTY_RESOURCE) { @@ -34,7 +35,7 @@ class RoyalFlushEditText(context: Context, attrs: AttributeSet) : ConstraintLayo } getResourceId( - R.styleable.RoyalFlushEditText_endIcon, + R.styleable.RoyalFlushIconEditText_endIcon, EMPTY_RESOURCE, ).let { resource -> if (resource == EMPTY_RESOURCE) { @@ -44,10 +45,9 @@ class RoyalFlushEditText(context: Context, attrs: AttributeSet) : ConstraintLayo } } - getString(R.styleable.RoyalFlushEditText_royalFlushEditTextHint).let { hint -> + getString(R.styleable.RoyalFlushIconEditText_royalFlushIconEditTextHint).let { hint -> binding.et.hint = hint } - } finally { recycle() } diff --git a/feature/feature-common/src/main/res/layout/royal_flush_edit_text.xml b/feature/feature-common/src/main/res/layout/royal_flush_icon_edit_text.xml similarity index 100% rename from feature/feature-common/src/main/res/layout/royal_flush_edit_text.xml rename to feature/feature-common/src/main/res/layout/royal_flush_icon_edit_text.xml diff --git a/feature/feature-common/src/main/res/values/attrs.xml b/feature/feature-common/src/main/res/values/attrs.xml index 81ef04a..adfb641 100644 --- a/feature/feature-common/src/main/res/values/attrs.xml +++ b/feature/feature-common/src/main/res/values/attrs.xml @@ -1,8 +1,8 @@ - + - + \ No newline at end of file From 9b857109e9d0a3d7d5f8c3bdd8ac3ad42d7f92c1 Mon Sep 17 00:00:00 2001 From: soopeach Date: Mon, 15 May 2023 02:06:33 +0900 Subject: [PATCH 08/11] =?UTF-8?q?[feature/common/royal=5Fflush=5Fedit=5Fte?= =?UTF-8?q?xt]:=20#9=20feat:=20Edit=20Text=EC=97=90=20=ED=85=8D=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=9E=85=EB=A0=A5=20=ED=9B=84=20=EB=8F=99=EC=9E=91?= =?UTF-8?q?=EC=9D=84=20=EC=A7=80=EC=A0=95=ED=95=98=EB=8A=94=20=ED=99=95?= =?UTF-8?q?=EC=9E=A5=20=ED=95=A8=EC=88=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extensions/viewExtensions.kt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 feature/feature-common/src/main/java/com/ggne/feature_common/extensions/viewExtensions.kt diff --git a/feature/feature-common/src/main/java/com/ggne/feature_common/extensions/viewExtensions.kt b/feature/feature-common/src/main/java/com/ggne/feature_common/extensions/viewExtensions.kt new file mode 100644 index 0000000..0fd30ce --- /dev/null +++ b/feature/feature-common/src/main/java/com/ggne/feature_common/extensions/viewExtensions.kt @@ -0,0 +1,19 @@ +package com.ggne.feature_common.extensions + +import android.text.Editable +import android.text.TextWatcher +import android.widget.EditText + +fun EditText.addAfterTextChangedListener(block: (String) -> Unit) { + this.addTextChangedListener(object : TextWatcher { + override fun afterTextChanged(s: Editable?) { + block(s.toString()) + } + + override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) { + } + + override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { + } + }) +} \ No newline at end of file From 6d9b401c5f8217df9bfd64fb4ed13077c826596d Mon Sep 17 00:00:00 2001 From: soopeach Date: Wed, 17 May 2023 00:05:18 +0900 Subject: [PATCH 09/11] =?UTF-8?q?[feature/common/royal=5Fflush=5Fedit=5Fte?= =?UTF-8?q?xt]:=20#9=20feat:=20=EB=B9=88=20=EB=AC=B8=EC=9E=90=EC=97=B4?= =?UTF-8?q?=EC=9D=84=20=EB=B0=98=ED=99=98=ED=95=98=EB=8A=94=20=ED=99=95?= =?UTF-8?q?=EC=9E=A5=20=ED=94=84=EB=A1=9C=ED=8D=BC=ED=8B=B0=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ggne/feature_common/extensions/utils.kt | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 feature/feature-common/src/main/java/com/ggne/feature_common/extensions/utils.kt diff --git a/feature/feature-common/src/main/java/com/ggne/feature_common/extensions/utils.kt b/feature/feature-common/src/main/java/com/ggne/feature_common/extensions/utils.kt new file mode 100644 index 0000000..cf6d88b --- /dev/null +++ b/feature/feature-common/src/main/java/com/ggne/feature_common/extensions/utils.kt @@ -0,0 +1,4 @@ +package com.ggne.feature_common.extensions + +val String.Companion.EMPTY: String + get() = "" \ No newline at end of file From 43ad8d1d374e018532f6f3ddc37a7db3925f8528 Mon Sep 17 00:00:00 2001 From: soopeach Date: Wed, 17 May 2023 00:16:12 +0900 Subject: [PATCH 10/11] =?UTF-8?q?[feature/common/royal=5Fflush=5Fedit=5Fte?= =?UTF-8?q?xt]:=20#9=20feat:=20RoyalFlushVerificationEditText=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../custom/RoyalFlushVerificationEditText.kt | 107 ++++++++++++++++++ .../royal_flush_verification_edit_text.xml | 54 +++++++++ .../src/main/res/values/attrs.xml | 8 ++ .../src/main/res/values/strings.xml | 2 + 4 files changed, 171 insertions(+) create mode 100644 feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushVerificationEditText.kt create mode 100644 feature/feature-common/src/main/res/layout/royal_flush_verification_edit_text.xml diff --git a/feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushVerificationEditText.kt b/feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushVerificationEditText.kt new file mode 100644 index 0000000..576d595 --- /dev/null +++ b/feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushVerificationEditText.kt @@ -0,0 +1,107 @@ +package com.ggne.feature_common.custom + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import androidx.constraintlayout.widget.ConstraintLayout +import com.ggne.feature_common.extensions.EMPTY +import com.ggne.feature_common.R +import com.ggne.feature_common.extensions.addAfterTextChangedListener +import com.ggne.feature_common.databinding.RoyalFlushVerificationEditTextBinding + +class RoyalFlushVerificationEditText(context: Context, attrs: AttributeSet) : + ConstraintLayout(context, attrs) { + + private var maxLength: Int + private var verificationText: String = String.EMPTY + + val text + get() = binding.et.text.toString() + + val editText + get() = binding.et + + private val binding = + RoyalFlushVerificationEditTextBinding.inflate(LayoutInflater.from(context), this, true) + + init { + + context.theme.obtainStyledAttributes( + attrs, + R.styleable.RoyalFlushVerificationEditText, + 0, + 0, + ).apply { + try { + + getString(R.styleable.RoyalFlushVerificationEditText_royalFlushVerificationEditTextHint).let { hint -> + binding.et.hint = hint + } + + getInt(R.styleable.RoyalFlushVerificationEditText_maxLength, Int.MAX_VALUE).let { inputtedMaxLength -> + maxLength = inputtedMaxLength + } + + getBoolean(R.styleable.RoyalFlushVerificationEditText_isCounterVisible, true).let { isVisible -> + if (isVisible) { + + with(binding.counterTv) { + visibility = VISIBLE + text = context.getString(R.string.text_counter_format, 0, maxLength) + } + + binding.et.addAfterTextChangedListener { text -> + if (text.length <= maxLength) { + binding.counterTv.text = context.getString(R.string.text_counter_format, text.length, maxLength) + } else { + with(binding.et) { + setText(text.substring(0, maxLength)) + setSelection(maxLength) + } + } + } + + } else { + binding.counterTv.visibility = GONE + maxLength = Int.MAX_VALUE + } + + } + + getBoolean(R.styleable.RoyalFlushVerificationEditText_isVerificationVisible, false).let { isVisible -> + if (isVisible) { + getString(R.styleable.RoyalFlushVerificationEditText_verificationText).let { inputtedVerificationText -> + verificationText = inputtedVerificationText ?: String.EMPTY + } + setVerification(true) + } else { + setVerification(false) + } + } + + + } finally { + recycle() + } + } + + removeAllViews() + addView(binding.root) + + } + + fun setVerificationText(text: String) { + verificationText = text + } + + fun setVerification(isVerified: Boolean) { + if (isVerified) { + binding.verificationTv.visibility = VISIBLE + binding.verificationTv.text = verificationText + } else { + binding.verificationTv.visibility = GONE + } + } + + +} \ No newline at end of file diff --git a/feature/feature-common/src/main/res/layout/royal_flush_verification_edit_text.xml b/feature/feature-common/src/main/res/layout/royal_flush_verification_edit_text.xml new file mode 100644 index 0000000..636ad81 --- /dev/null +++ b/feature/feature-common/src/main/res/layout/royal_flush_verification_edit_text.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/feature/feature-common/src/main/res/values/attrs.xml b/feature/feature-common/src/main/res/values/attrs.xml index adfb641..c1490e2 100644 --- a/feature/feature-common/src/main/res/values/attrs.xml +++ b/feature/feature-common/src/main/res/values/attrs.xml @@ -5,4 +5,12 @@ + + + + + + + + \ No newline at end of file diff --git a/feature/feature-common/src/main/res/values/strings.xml b/feature/feature-common/src/main/res/values/strings.xml index f66188e..7429d64 100644 --- a/feature/feature-common/src/main/res/values/strings.xml +++ b/feature/feature-common/src/main/res/values/strings.xml @@ -2,4 +2,6 @@ 시작 아이콘 끝 아이콘 + %d/%d + 사용 가능한 닉네임입니다. \ No newline at end of file From cd5b180c0164e352be3b5df8e2e4a3234aa5e802 Mon Sep 17 00:00:00 2001 From: soopeach Date: Tue, 26 Mar 2024 14:00:51 +0900 Subject: [PATCH 11/11] =?UTF-8?q?[feature/common/royal=5Fflush=5Fedit=5Fte?= =?UTF-8?q?xt]:=20#9=20rename:=20=EC=BB=A8=EB=B2=A4=EC=85=98=EC=97=90=20?= =?UTF-8?q?=EB=A7=9E=EA=B2=8C=20=EB=A6=AC=EC=86=8C=EC=8A=A4=20=EC=95=84?= =?UTF-8?q?=EC=9D=B4=EB=94=94=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../custom/RoyalFlushIconEditText.kt | 8 ++++---- .../res/layout/royal_flush_icon_edit_text.xml | 20 +++++++++---------- .../royal_flush_verification_edit_text.xml | 18 ++++++++--------- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushIconEditText.kt b/feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushIconEditText.kt index 865ddd6..36ad3f6 100644 --- a/feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushIconEditText.kt +++ b/feature/feature-common/src/main/java/com/ggne/feature_common/custom/RoyalFlushIconEditText.kt @@ -28,9 +28,9 @@ class RoyalFlushIconEditText(context: Context, attrs: AttributeSet) : EMPTY_RESOURCE, ).let { resource -> if (resource == EMPTY_RESOURCE) { - binding.startIc.visibility = GONE + binding.ivStartIcon.visibility = GONE } else { - binding.startIc.setImageResource(resource) + binding.ivStartIcon.setImageResource(resource) } } @@ -39,9 +39,9 @@ class RoyalFlushIconEditText(context: Context, attrs: AttributeSet) : EMPTY_RESOURCE, ).let { resource -> if (resource == EMPTY_RESOURCE) { - binding.endIc.visibility = GONE + binding.ivEndIcon.visibility = GONE } else { - binding.endIc.setImageResource(resource) + binding.ivEndIcon.setImageResource(resource) } } diff --git a/feature/feature-common/src/main/res/layout/royal_flush_icon_edit_text.xml b/feature/feature-common/src/main/res/layout/royal_flush_icon_edit_text.xml index 6fc5124..81e50d3 100644 --- a/feature/feature-common/src/main/res/layout/royal_flush_icon_edit_text.xml +++ b/feature/feature-common/src/main/res/layout/royal_flush_icon_edit_text.xml @@ -4,20 +4,20 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="60dp" + android:background="@drawable/royal_flush_edit_text_background" android:paddingHorizontal="18dp" - android:paddingVertical="14dp" - android:background="@drawable/royal_flush_edit_text_background"> + android:paddingVertical="14dp"> + app:layout_constraintTop_toTopOf="@id/et" /> + app:layout_constraintTop_toTopOf="@id/et" /> \ No newline at end of file diff --git a/feature/feature-common/src/main/res/layout/royal_flush_verification_edit_text.xml b/feature/feature-common/src/main/res/layout/royal_flush_verification_edit_text.xml index 636ad81..f7c5249 100644 --- a/feature/feature-common/src/main/res/layout/royal_flush_verification_edit_text.xml +++ b/feature/feature-common/src/main/res/layout/royal_flush_verification_edit_text.xml @@ -9,12 +9,12 @@ android:id="@+id/et_container" android:layout_width="match_parent" android:layout_height="60dp" + android:background="@drawable/royal_flush_edit_text_background" android:paddingHorizontal="18dp" android:paddingVertical="14dp" - app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintTop_toTopOf="parent" - android:background="@drawable/royal_flush_edit_text_background"> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintTop_toBottomOf="@id/et_container" /> \ No newline at end of file