diff --git a/app/src/main/java/com/gamedog/vididin/main/fragments/MineFragment.kt b/app/src/main/java/com/gamedog/vididin/main/fragments/MineFragment.kt index e746c77..b9251eb 100644 --- a/app/src/main/java/com/gamedog/vididin/main/fragments/MineFragment.kt +++ b/app/src/main/java/com/gamedog/vididin/main/fragments/MineFragment.kt @@ -2,12 +2,15 @@ package com.gamedog.vididin.main.fragments +import android.text.Editable +import android.text.TextWatcher import android.view.LayoutInflater import android.view.ViewGroup import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import androidx.core.view.isVisible import androidx.core.view.updatePadding +import androidx.core.widget.addTextChangedListener import androidx.fragment.app.viewModels import com.ama.core.architecture.appBase.AppViewsFragment import com.ama.core.architecture.appBase.OnFragmentBackgroundListener @@ -48,7 +51,7 @@ class MineFragment : AppViewsFragment(), } override fun ViewBinding.initViews() { - setOnClickBatch(rlPrivacy, rlVersion, rlFeedback, ivEditName) { + setOnClickBatch(rlPrivacy, rlVersion, rlFeedback, ivEditName, ivSaveName) { when (this) { rlPrivacy -> { Router.Privacy.startActivity(requireActivity()) @@ -61,20 +64,47 @@ class MineFragment : AppViewsFragment(), } ivEditName -> { - switchNameEditState(!etAccountName.isVisible) + switchNameEditState(true) + } + + ivSaveName -> { + switchNameEditState(false) } } } - + nameEditRoot.isVisible = false + nameNormalRoot.isVisible = true tvAccountName.text = AccountManager.getAccount().userName + + etAccountName.addTextChangedListener(object : TextWatcher { + override fun afterTextChanged(s: Editable?) { + tvNameCharactCount.setText("(${s?.length}/15)") + } + + override fun beforeTextChanged( + s: CharSequence?, + start: Int, + count: Int, + after: Int + ) { + } + + override fun onTextChanged( + s: CharSequence?, + start: Int, + before: Int, + count: Int + ) { + } + }) } private fun switchNameEditState(isEnterEdit: Boolean) { - - binding?.let { with(it) { + nameEditRoot.isVisible = isEnterEdit + nameNormalRoot.isVisible = !isEnterEdit if (isEnterEdit) { etAccountName.setText(tvAccountName.text.toString().trim()) } else { @@ -84,10 +114,6 @@ class MineFragment : AppViewsFragment(), AccountManager.updateUserName(newName) } } - - etAccountName.isVisible = isEnterEdit - tvAccountName.isVisible = !isEnterEdit - ivEditName.setImageResource(if (isEnterEdit) R.mipmap.task_gold else R.mipmap.task_gold) } } } diff --git a/app/src/main/res/layout/vididinapp_feature_mine_fragment_mine.xml b/app/src/main/res/layout/vididinapp_feature_mine_fragment_mine.xml index 3e69e85..cfc2ba9 100644 --- a/app/src/main/res/layout/vididinapp_feature_mine_fragment_mine.xml +++ b/app/src/main/res/layout/vididinapp_feature_mine_fragment_mine.xml @@ -46,6 +46,8 @@ android:layout_height="wrap_content" android:layout_marginTop="10dp"> - - + + + + + + + + + + + + + diff --git a/app/src/main/res/mipmap-xxhdpi/my_confirm.png b/app/src/main/res/mipmap-xxhdpi/my_confirm.png new file mode 100644 index 0000000..3a67b34 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/my_confirm.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/my_edit.png b/app/src/main/res/mipmap-xxhdpi/my_edit.png new file mode 100644 index 0000000..25267cb Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/my_edit.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/my_edit_bg.png b/app/src/main/res/mipmap-xxhdpi/my_edit_bg.png new file mode 100644 index 0000000..73ee822 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/my_edit_bg.png differ