diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..b86273d
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml
new file mode 100644
index 0000000..82d64ee
--- /dev/null
+++ b/.idea/deploymentTargetSelector.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 89c5b06..f4bbb0d 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -4,11 +4,10 @@
diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml
new file mode 100644
index 0000000..6d0ee1c
--- /dev/null
+++ b/.idea/kotlinc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/migrations.xml b/.idea/migrations.xml
new file mode 100644
index 0000000..f8051a6
--- /dev/null
+++ b/.idea/migrations.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index f67c054..2524228 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -9,7 +9,7 @@
-
+
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
index 7f68460..16660f1 100644
--- a/.idea/runConfigurations.xml
+++ b/.idea/runConfigurations.xml
@@ -3,9 +3,14 @@
-
-
-
+
+
+
+
+
+
+
+
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SplitEditTextView/build.gradle b/SplitEditTextView/build.gradle
index 8f01009..28dba0a 100644
--- a/SplitEditTextView/build.gradle
+++ b/SplitEditTextView/build.gradle
@@ -1,12 +1,11 @@
apply plugin: 'com.android.library'
android {
- compileSdkVersion 29
- buildToolsVersion "29.0.3"
-
+ compileSdk = rootProject.ext.compileSdk
+ namespace = "com.al.open"
defaultConfig {
- minSdkVersion 21
- targetSdkVersion 29
+ minSdk = rootProject.ext.minSdk
+ targetSdk = rootProject.ext.targetSdk
versionCode 1
versionName "1.0"
@@ -24,28 +23,8 @@ android {
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
- implementation 'androidx.appcompat:appcompat:1.1.0'
- testImplementation 'junit:junit:4.12'
- androidTestImplementation 'androidx.test.ext:junit:1.1.1'
- androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
+ implementation 'androidx.appcompat:appcompat:1.7.0'
+ testImplementation 'junit:junit:4.13.2'
+ androidTestImplementation 'androidx.test.ext:junit:1.2.1'
+ androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1'
}
-
-apply plugin: 'com.novoda.bintray-release'
-
-buildscript {
- repositories {
- jcenter()
- }
- dependencies {
- classpath 'com.novoda:bintray-release:0.9.1'
- }
-}
-
-publish {
- userOrg = 'keeplearn'
- groupId = 'com.open.keeplearn'
- artifactId = 'SplitEditTextView'
- publishVersion = '1.2.3'
- desc = 'A Library Of Android UI.'
- website = 'https://github.com/Chen-keeplearn/SplitEditTextView'
-}
\ No newline at end of file
diff --git a/SplitEditTextView/src/main/AndroidManifest.xml b/SplitEditTextView/src/main/AndroidManifest.xml
index e3256dc..97330b7 100644
--- a/SplitEditTextView/src/main/AndroidManifest.xml
+++ b/SplitEditTextView/src/main/AndroidManifest.xml
@@ -1,5 +1 @@
-
-
- /
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/SplitEditTextView/src/main/java/com/al/open/SplitEditTextView.java b/SplitEditTextView/src/main/java/com/al/open/SplitEditTextView.java
index 4ad4d62..a3a330e 100644
--- a/SplitEditTextView/src/main/java/com/al/open/SplitEditTextView.java
+++ b/SplitEditTextView/src/main/java/com/al/open/SplitEditTextView.java
@@ -3,10 +3,14 @@
import android.content.Context;
import android.content.res.Resources;
import android.content.res.TypedArray;
+import android.graphics.Bitmap;
+import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
+import android.graphics.Shader;
+import android.graphics.drawable.Drawable;
import android.os.Build;
import android.text.InputFilter;
import android.util.AttributeSet;
@@ -18,7 +22,7 @@
import java.lang.reflect.Field;
-public class SplitEditTextView extends AppCompatEditText{
+public class SplitEditTextView extends AppCompatEditText {
//密码显示模式:隐藏密码,显示圆形
public static final int CONTENT_SHOW_MODE_PASSWORD = 1;
//密码显示模式:显示密码
@@ -36,6 +40,7 @@ public class SplitEditTextView extends AppCompatEditText{
private Paint mPaintContent;
private Paint mPaintBorder;
private Paint mPaintUnderline;
+ private Paint inputBackgroundPaint;
//边框大小
private Float mBorderSize;
//边框颜色
@@ -56,6 +61,8 @@ public class SplitEditTextView extends AppCompatEditText{
private float mSpaceSize;
//输入框样式
private int mInputBoxStyle;
+ private Drawable mInputBoxBackground;
+ private Drawable[] mInputBoxBackgroundDrawables;
//字体大小
private float mTextSize;
//字体颜色
@@ -74,6 +81,7 @@ public class SplitEditTextView extends AppCompatEditText{
private int mUnderlineFocusColor;//下划线输入样式下,输入框获取焦点时下划线颜色
private int mUnderlineNormalColor;//下划线输入样式下,下划线颜色
+
public SplitEditTextView(Context context) {
this(context, null);
}
@@ -103,6 +111,7 @@ private void initAttrs(Context c, AttributeSet attrs) {
mContentNumber = array.getInt(R.styleable.SplitEditTextView_contentNumber, 6);
mContentShowMode = array.getInteger(R.styleable.SplitEditTextView_contentShowMode, CONTENT_SHOW_MODE_PASSWORD);
mInputBoxStyle = array.getInteger(R.styleable.SplitEditTextView_inputBoxStyle, INPUT_BOX_STYLE_CONNECT);
+ mInputBoxBackground = array.getDrawable(R.styleable.SplitEditTextView_inputBoxBackground);
mSpaceSize = array.getDimension(R.styleable.SplitEditTextView_spaceSize, dp2px(10f));
mTextSize = array.getDimension(R.styleable.SplitEditTextView_android_textSize, sp2px(16f));
mTextColor = array.getColor(R.styleable.SplitEditTextView_android_textColor, Color.BLACK);
@@ -139,6 +148,12 @@ private void init() {
mPaintUnderline.setStrokeWidth(mBorderSize);
mPaintUnderline.setColor(mUnderlineNormalColor);
+ if (mInputBoxBackground != null && mInputBoxBackground.getConstantState() != null) {
+ mInputBoxBackgroundDrawables = new Drawable[mContentNumber];
+ for (int i = 0; i < mContentNumber; i++) {
+ mInputBoxBackgroundDrawables[i] = mInputBoxBackground.getConstantState().newDrawable().mutate();
+ }
+ }
//避免onDraw里面重复创建RectF对象,先初始化RectF对象,在绘制时调用set()方法
//单个输入框样式的RectF
@@ -365,12 +380,25 @@ private void drawUnderlineStyle(Canvas canvas) {
* 所以算上边框 +(i+1)*2*mBorderSize
*/
private void drawSingleStyle(Canvas canvas) {
+ float contentItemWidth = getContentItemWidth();
for (int i = 0; i < mContentNumber; i++) {
mRectFSingleBox.setEmpty();
- float left = i * getContentItemWidth() + i * mSpaceSize + i * mBorderSize * 2 + mBorderSize / 2;
- float right = i * mSpaceSize + (i + 1) * getContentItemWidth() + (i + 1) * 2 * mBorderSize - mBorderSize / 2;
+ float left = i * contentItemWidth + i * mSpaceSize + i * mBorderSize * 2 + mBorderSize / 2;
+ float right = left + contentItemWidth;
//为避免在onDraw里面创建RectF对象,这里使用rectF.set()方法
mRectFSingleBox.set(left, mBorderSize / 2, right, getHeight() - mBorderSize / 2);
+ if (mInputBoxBackgroundDrawables != null
+ && mInputBoxBackgroundDrawables.length == mContentNumber
+ && mInputBoxBackgroundDrawables[i] != null) {
+ // draw background image
+ // Draw the rounded rectangle with the background image
+ mInputBoxBackgroundDrawables[i].setBounds(
+ (int) mRectFSingleBox.left,
+ (int) mRectFSingleBox.top,
+ (int) mRectFSingleBox.right,
+ (int) mRectFSingleBox.bottom);
+ mInputBoxBackgroundDrawables[i].draw(canvas);
+ }
canvas.drawRoundRect(mRectFSingleBox, mCornerSize, mCornerSize, mPaintBorder);
}
}
diff --git a/SplitEditTextView/src/main/res/values/attrs.xml b/SplitEditTextView/src/main/res/values/attrs.xml
index 3c64cc6..0f37628 100644
--- a/SplitEditTextView/src/main/res/values/attrs.xml
+++ b/SplitEditTextView/src/main/res/values/attrs.xml
@@ -35,6 +35,7 @@
+
diff --git a/build.gradle b/build.gradle
index 944f87c..d1da8f5 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,13 +1,16 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
- ext.kotlin_version = "1.3.72"
+ ext.kotlin_version = '2.0.0'
+ ext.compileSdk = 35
+ ext.minSdk = 21
+ ext.targetSdk = 34
repositories {
google()
- jcenter()
+ mavenCentral()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.5.3'
+ classpath 'com.android.tools.build:gradle:8.7.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
@@ -18,7 +21,7 @@ buildscript {
allprojects {
repositories {
google()
- jcenter()
+ mavenCentral()
}
}
diff --git a/demo/build.gradle b/demo/build.gradle
index 0918519..3f52907 100644
--- a/demo/build.gradle
+++ b/demo/build.gradle
@@ -1,15 +1,13 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
android {
- compileSdkVersion 29
- buildToolsVersion "29.0.3"
-
+ compileSdk = rootProject.ext.compileSdk
+ namespace = "com.al.split_edit_text_view"
defaultConfig {
+ minSdk = rootProject.ext.minSdk
+ targetSdk = rootProject.ext.targetSdk
applicationId "com.al.split_edit_text_view"
- minSdkVersion 21
- targetSdkVersion 29
versionCode 1
versionName "1.0"
@@ -22,19 +20,26 @@ android {
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
+
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+ kotlinOptions {
+ jvmTarget = '1.8'
+ }
}
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
- implementation 'androidx.core:core-ktx:1.3.0'
- implementation 'androidx.appcompat:appcompat:1.1.0'
- implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
- //implementation project(path: ':SplitEditTextView')
- implementation 'com.open.keeplearn:SplitEditTextView:1.2.3'
- testImplementation 'junit:junit:4.12'
- androidTestImplementation 'androidx.test.ext:junit:1.1.1'
- androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
- implementation 'com.google.android.material:material:1.1.0'
+ implementation 'androidx.core:core-ktx:1.15.0'
+ implementation 'androidx.appcompat:appcompat:1.7.0'
+ implementation 'androidx.constraintlayout:constraintlayout:2.2.1'
+ implementation project(path: ':SplitEditTextView')
+ testImplementation 'junit:junit:4.13.2'
+ androidTestImplementation 'androidx.test.ext:junit:1.2.1'
+ androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1'
+ implementation 'com.google.android.material:material:1.12.0'
}
\ No newline at end of file
diff --git a/demo/src/main/AndroidManifest.xml b/demo/src/main/AndroidManifest.xml
index 3e333a3..639e01d 100644
--- a/demo/src/main/AndroidManifest.xml
+++ b/demo/src/main/AndroidManifest.xml
@@ -1,6 +1,5 @@
-
+
-
+
diff --git a/demo/src/main/java/com/al/split_edit_text_view/MainActivity.kt b/demo/src/main/java/com/al/split_edit_text_view/MainActivity.kt
index ae13e09..07e9a73 100644
--- a/demo/src/main/java/com/al/split_edit_text_view/MainActivity.kt
+++ b/demo/src/main/java/com/al/split_edit_text_view/MainActivity.kt
@@ -2,96 +2,92 @@ package com.al.split_edit_text_view
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
-import android.widget.Toast
-import com.al.open.OnInputListener
-import com.al.open.SplitEditTextView
-import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
-
- btnChangeStyle.setOnClickListener {
- when (splitEdit1.inputBoxStyle) {
- SplitEditTextView.INPUT_BOX_STYLE_SINGLE -> {
- splitEdit1.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_CONNECT
- }
- SplitEditTextView.INPUT_BOX_STYLE_CONNECT -> {
- splitEdit1.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_UNDERLINE
- }
- SplitEditTextView.INPUT_BOX_STYLE_UNDERLINE -> {
- splitEdit1.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_SINGLE
- }
- }
-
- when (splitEdit2.inputBoxStyle) {
- SplitEditTextView.INPUT_BOX_STYLE_SINGLE -> {
- splitEdit2.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_CONNECT
- }
- SplitEditTextView.INPUT_BOX_STYLE_CONNECT -> {
- splitEdit2.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_UNDERLINE
- }
- SplitEditTextView.INPUT_BOX_STYLE_UNDERLINE -> {
- splitEdit2.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_SINGLE
- }
- }
-
- when (splitEdit3.inputBoxStyle) {
- SplitEditTextView.INPUT_BOX_STYLE_SINGLE -> {
- splitEdit3.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_CONNECT
- }
- SplitEditTextView.INPUT_BOX_STYLE_CONNECT -> {
- splitEdit3.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_UNDERLINE
- }
- SplitEditTextView.INPUT_BOX_STYLE_UNDERLINE -> {
- splitEdit3.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_SINGLE
- }
- }
-
- }
-
- btnChangeMode.setOnClickListener {
- if (splitEdit1.contentShowMode == SplitEditTextView.CONTENT_SHOW_MODE_PASSWORD) {
- splitEdit1.contentShowMode = SplitEditTextView.CONTENT_SHOW_MODE_TEXT
- } else {
- splitEdit1.contentShowMode = SplitEditTextView.CONTENT_SHOW_MODE_PASSWORD
- }
- if (splitEdit2.contentShowMode == SplitEditTextView.CONTENT_SHOW_MODE_PASSWORD) {
- splitEdit2.contentShowMode = SplitEditTextView.CONTENT_SHOW_MODE_TEXT
- } else {
- splitEdit2.contentShowMode = SplitEditTextView.CONTENT_SHOW_MODE_PASSWORD
- }
- if (splitEdit3.contentShowMode == SplitEditTextView.CONTENT_SHOW_MODE_PASSWORD) {
- splitEdit3.contentShowMode = SplitEditTextView.CONTENT_SHOW_MODE_TEXT
- } else {
- splitEdit3.contentShowMode = SplitEditTextView.CONTENT_SHOW_MODE_PASSWORD
- }
- }
-
-
- splitEdit1.setOnInputListener(object : OnInputListener() {
- override fun onInputFinished(content: String?) {
- Toast.makeText(this@MainActivity,content,Toast.LENGTH_SHORT).show()
- }
-
- override fun onInputChanged(text: String?) {
- //Toast.makeText(this@MainActivity,text,Toast.LENGTH_SHORT).show()
- }
- })
-
- splitEdit2.setOnInputListener(object : OnInputListener() {
- override fun onInputFinished(content: String?) {
- Toast.makeText(this@MainActivity,content,Toast.LENGTH_SHORT).show()
- }
-
- })
-
- splitEdit3.setOnInputListener(object : OnInputListener() {
- override fun onInputFinished(content: String?) {
- Toast.makeText(this@MainActivity,content,Toast.LENGTH_SHORT).show()
- }
- })
+//
+// btnChangeStyle.setOnClickListener {
+// when (splitEdit1.inputBoxStyle) {
+// SplitEditTextView.INPUT_BOX_STYLE_SINGLE -> {
+// splitEdit1.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_CONNECT
+// }
+// SplitEditTextView.INPUT_BOX_STYLE_CONNECT -> {
+// splitEdit1.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_UNDERLINE
+// }
+// SplitEditTextView.INPUT_BOX_STYLE_UNDERLINE -> {
+// splitEdit1.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_SINGLE
+// }
+// }
+//
+// when (splitEdit2.inputBoxStyle) {
+// SplitEditTextView.INPUT_BOX_STYLE_SINGLE -> {
+// splitEdit2.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_CONNECT
+// }
+// SplitEditTextView.INPUT_BOX_STYLE_CONNECT -> {
+// splitEdit2.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_UNDERLINE
+// }
+// SplitEditTextView.INPUT_BOX_STYLE_UNDERLINE -> {
+// splitEdit2.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_SINGLE
+// }
+// }
+//
+// when (splitEdit3.inputBoxStyle) {
+// SplitEditTextView.INPUT_BOX_STYLE_SINGLE -> {
+// splitEdit3.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_CONNECT
+// }
+// SplitEditTextView.INPUT_BOX_STYLE_CONNECT -> {
+// splitEdit3.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_UNDERLINE
+// }
+// SplitEditTextView.INPUT_BOX_STYLE_UNDERLINE -> {
+// splitEdit3.inputBoxStyle = SplitEditTextView.INPUT_BOX_STYLE_SINGLE
+// }
+// }
+//
+// }
+//
+// btnChangeMode.setOnClickListener {
+// if (splitEdit1.contentShowMode == SplitEditTextView.CONTENT_SHOW_MODE_PASSWORD) {
+// splitEdit1.contentShowMode = SplitEditTextView.CONTENT_SHOW_MODE_TEXT
+// } else {
+// splitEdit1.contentShowMode = SplitEditTextView.CONTENT_SHOW_MODE_PASSWORD
+// }
+// if (splitEdit2.contentShowMode == SplitEditTextView.CONTENT_SHOW_MODE_PASSWORD) {
+// splitEdit2.contentShowMode = SplitEditTextView.CONTENT_SHOW_MODE_TEXT
+// } else {
+// splitEdit2.contentShowMode = SplitEditTextView.CONTENT_SHOW_MODE_PASSWORD
+// }
+// if (splitEdit3.contentShowMode == SplitEditTextView.CONTENT_SHOW_MODE_PASSWORD) {
+// splitEdit3.contentShowMode = SplitEditTextView.CONTENT_SHOW_MODE_TEXT
+// } else {
+// splitEdit3.contentShowMode = SplitEditTextView.CONTENT_SHOW_MODE_PASSWORD
+// }
+// }
+//
+//
+// splitEdit1.setOnInputListener(object : OnInputListener() {
+// override fun onInputFinished(content: String?) {
+// Toast.makeText(this@MainActivity,content,Toast.LENGTH_SHORT).show()
+// }
+//
+// override fun onInputChanged(text: String?) {
+// //Toast.makeText(this@MainActivity,text,Toast.LENGTH_SHORT).show()
+// }
+// })
+//
+// splitEdit2.setOnInputListener(object : OnInputListener() {
+// override fun onInputFinished(content: String?) {
+// Toast.makeText(this@MainActivity,content,Toast.LENGTH_SHORT).show()
+// }
+//
+// })
+//
+// splitEdit3.setOnInputListener(object : OnInputListener() {
+// override fun onInputFinished(content: String?) {
+// Toast.makeText(this@MainActivity,content,Toast.LENGTH_SHORT).show()
+// }
+// })
}
}
\ No newline at end of file
diff --git a/demo/src/main/java/com/al/split_edit_text_view/TestActivity.java b/demo/src/main/java/com/al/split_edit_text_view/TestActivity.java
index 24c3ea4..99e5a7a 100644
--- a/demo/src/main/java/com/al/split_edit_text_view/TestActivity.java
+++ b/demo/src/main/java/com/al/split_edit_text_view/TestActivity.java
@@ -15,18 +15,18 @@ class TestActivity extends AppCompatActivity {
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
- splitEditTextView = findViewById(R.id.splitTextViewTest);
-
- splitEditTextView.setOnInputListener(new OnInputListener() {
- @Override
- public void onInputFinished(String content) {
-
- }
-
- @Override
- public void onInputChanged(String text) {
- super.onInputChanged(text);
- }
- });
+// splitEditTextView = findViewById(R.id.splitTextViewTest);
+//
+// splitEditTextView.setOnInputListener(new OnInputListener() {
+// @Override
+// public void onInputFinished(String content) {
+//
+// }
+//
+// @Override
+// public void onInputChanged(String text) {
+// super.onInputChanged(text);
+// }
+// });
}
}
diff --git a/demo/src/main/res/drawable/custom_edit_dev_name_normal.xml b/demo/src/main/res/drawable/custom_edit_dev_name_normal.xml
new file mode 100644
index 0000000..27fd344
--- /dev/null
+++ b/demo/src/main/res/drawable/custom_edit_dev_name_normal.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/demo/src/main/res/layout/activity_main.xml b/demo/src/main/res/layout/activity_main.xml
index 723138a..11a7bc2 100644
--- a/demo/src/main/res/layout/activity_main.xml
+++ b/demo/src/main/res/layout/activity_main.xml
@@ -44,8 +44,8 @@
android:layout_marginTop="20dp"
android:textColor="@color/colorPrimary"
android:textSize="30sp"
- app:borderColor="@color/colorPrimary"
- app:borderSize="2dp"
+ app:borderColor="@android:color/transparent"
+ app:borderSize="0dp"
app:contentNumber="4"
app:contentShowMode="password"
app:corner_size="10dp"
@@ -53,6 +53,7 @@
app:cursorWidth="6dp"
app:inputBoxSquare="true"
app:inputBoxStyle="singleBox"
+ app:inputBoxBackground="@drawable/custom_edit_dev_name_normal"
app:spaceSize="20dp"
app:underlineFocusColor="@android:color/black"
app:underlineNormalColor="#A8A8A8" />
@@ -70,7 +71,8 @@
app:cursorHeight="20dp"
app:divisionLineColor="@color/colorAccent"
app:divisionLineSize="2dp"
- app:inputBoxStyle="connectBox" />
+ app:inputBoxStyle="connectBox"
+ android:visibility="invisible"/>
+ app:underlineNormalColor="@color/colorPrimary"
+ android:visibility="invisible"/>
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index c23e0a5..8609875 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Sat Jul 25 18:34:35 CST 2020
+#Thu Mar 06 21:11:46 CST 2025
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
diff --git a/gradlew b/gradlew
old mode 100644
new mode 100755