diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 8c1d637..3dac209 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,7 +43,7 @@
android:name=".personal.RetrievePasswordActivity"
android:exported="false" />
+ android:configChanges="orientation|screenSize|keyboardHidden"
+ android:exported="false" />
@@ -105,7 +105,7 @@
android:exported="false" />
+ android:exported="false" />
diff --git a/app/src/main/java/com/example/defenseapplication/liveVideo/AddLinkedUserActivity.kt b/app/src/main/java/com/example/defenseapplication/liveVideo/AddLinkedUserActivity.kt
index 8642e0a..72c8636 100644
--- a/app/src/main/java/com/example/defenseapplication/liveVideo/AddLinkedUserActivity.kt
+++ b/app/src/main/java/com/example/defenseapplication/liveVideo/AddLinkedUserActivity.kt
@@ -21,7 +21,7 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import androidx.recyclerview.widget.RecyclerView
-//添加关联用户
+//添加关联用户-删除和解除关联
class AddLinkedUserActivity : AppCompatActivity() {
private lateinit var binding: AddLinkedUserActivityBinding
private val selectedPhoneSet = mutableSetOf()
diff --git a/app/src/main/java/com/example/defenseapplication/liveVideo/AutoModeActivity.kt b/app/src/main/java/com/example/defenseapplication/liveVideo/AutoModeActivity.kt
index 730cd4b..23da731 100644
--- a/app/src/main/java/com/example/defenseapplication/liveVideo/AutoModeActivity.kt
+++ b/app/src/main/java/com/example/defenseapplication/liveVideo/AutoModeActivity.kt
@@ -194,7 +194,7 @@ class AutoModeActivity : AppCompatActivity() {
Toast.makeText(this@AutoModeActivity, "修改成功", Toast.LENGTH_SHORT).show()
DeviceUpdateEvent.notifyDeviceUpdated(deviceId)
} else {
- Toast.makeText(this@AutoModeActivity, response.msg, Toast.LENGTH_SHORT).show()
+ Toast.makeText(this@AutoModeActivity, "修改失败", Toast.LENGTH_SHORT).show()
}
finish()
}
diff --git a/app/src/main/java/com/example/defenseapplication/liveVideo/LinkedUserActivity.kt b/app/src/main/java/com/example/defenseapplication/liveVideo/LinkedUserActivity.kt
index 790d7d6..64860f3 100644
--- a/app/src/main/java/com/example/defenseapplication/liveVideo/LinkedUserActivity.kt
+++ b/app/src/main/java/com/example/defenseapplication/liveVideo/LinkedUserActivity.kt
@@ -17,7 +17,9 @@ import com.example.defenseapplication.adapter.LinkedUserAdapter
import com.example.defenseapplication.bean.DeleteDeviceUserRequest
import com.example.defenseapplication.bean.DeviceUserBean
import com.example.defenseapplication.bean.FamilyMembersBean
+import com.example.defenseapplication.bean.VerifyOptionPasswordRequest
import com.example.defenseapplication.databinding.LinkedUserActivityBinding
+import com.example.defenseapplication.personal.PasswordInputDialog
import com.example.defenseapplication.utils.DeviceIdEvent
import com.example.defenseapplication.utils.DeviceUserUpdateEvent
import com.example.defenseapplication.utils.RetrofitNetwork
@@ -25,6 +27,7 @@ import com.example.defenseapplication.view.CustomDialogFragmentText
import com.gyf.immersionbar.ImmersionBar
import com.yanzhenjie.recyclerview.SwipeMenuItem
import com.yanzhenjie.recyclerview.SwipeRecyclerView
+import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
@@ -36,6 +39,8 @@ class LinkedUserActivity : AppCompatActivity() {
private val fullUserList = mutableListOf()
private val userList = mutableListOf()
private var mode: Int = MODE_SETTINGS
+ private var isPasswordVerified: Boolean = false
+ private lateinit var passwordDialog: PasswordInputDialog
companion object {
const val EXTRA_MODE = "extra_mode"
@@ -71,6 +76,9 @@ class LinkedUserActivity : AppCompatActivity() {
override fun onDestroy() {
super.onDestroy()
DeviceUserUpdateEvent.removeListener(deviceUserUpdateListener)
+ if (::passwordDialog.isInitialized) {
+ passwordDialog.dismiss()
+ }
}
private fun initView() {
@@ -135,11 +143,55 @@ class LinkedUserActivity : AppCompatActivity() {
}
dialog.setShowInput(false)
dialog.setOnConfirmListener {
- deleteDeviceUser(user, position)
+ if (!isPasswordVerified) {
+ showPasswordDialog {
+ isPasswordVerified = true
+ deleteDeviceUser(user, position)
+ }
+ } else {
+ deleteDeviceUser(user, position)
+ }
}
dialog.show(supportFragmentManager, "DeleteDialog")
}
+ private fun showPasswordDialog(onVerified: () -> Unit) {
+ passwordDialog = PasswordInputDialog(this).apply {
+ setOnConfirmListener { inputPassword ->
+ CoroutineScope(Dispatchers.IO).launch {
+ try {
+ val response = RetrofitNetwork.getNetworkService()
+ .verifyOptionPassword(VerifyOptionPasswordRequest(inputPassword))
+ withContext(Dispatchers.Main) {
+ if (response.code == 200) {
+ dismiss()
+ onVerified()
+ } else {
+ Toast.makeText(
+ this@LinkedUserActivity,
+ response.msg ?: getString(R.string.password_error),
+ Toast.LENGTH_SHORT
+ ).show()
+ showError(getString(R.string.password_error))
+ clearPassword()
+ }
+ }
+ } catch (e: Exception) {
+ withContext(Dispatchers.Main) {
+ Toast.makeText(this@LinkedUserActivity, "网络请求失败", Toast.LENGTH_SHORT).show()
+ showError(getString(R.string.password_error))
+ clearPassword()
+ }
+ }
+ }
+ }
+ setOnDismissListener {
+ // Dialog dismissed
+ }
+ }
+ passwordDialog.show()
+ }
+
private fun deleteDeviceUser(user: LinkedUser, position: Int) {
val deviceId = DeviceIdEvent.getDeviceId()
if (deviceId.isNullOrEmpty() || user.userId.isEmpty()) {
diff --git a/app/src/main/java/com/example/defenseapplication/liveVideo/SettingsActivity.kt b/app/src/main/java/com/example/defenseapplication/liveVideo/SettingsActivity.kt
index 178a311..0109fd9 100644
--- a/app/src/main/java/com/example/defenseapplication/liveVideo/SettingsActivity.kt
+++ b/app/src/main/java/com/example/defenseapplication/liveVideo/SettingsActivity.kt
@@ -7,13 +7,13 @@ import android.widget.Toast
import androidx.lifecycle.lifecycleScope
import com.example.defenseapplication.R
import com.example.defenseapplication.base.BaseActivity
-import com.example.defenseapplication.bean.DeviceUserBean
import com.example.defenseapplication.databinding.SettingsActivityBinding
import com.example.defenseapplication.utils.DeviceIdEvent
-import com.example.defenseapplication.utils.LanguageUtil
import com.example.defenseapplication.utils.RetrofitNetwork
import com.example.defenseapplication.view.CustomDialogFragmentText
import com.example.defenseapplication.view.RecognitionModeDialog
+import com.example.defenseapplication.bean.VerifyOptionPasswordRequest
+import com.example.defenseapplication.personal.PasswordInputDialog
import com.gyf.immersionbar.ImmersionBar
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
@@ -23,8 +23,10 @@ import kotlinx.coroutines.withContext
class SettingsActivity : BaseActivity() {
private lateinit var binding: SettingsActivityBinding
+ private lateinit var passwordDialog: PasswordInputDialog
private var alertAudio: String? = null
private var audioContent: String? = null
+ private var isPasswordVerified = false
override fun onResume() {
super.onResume()
@@ -50,11 +52,22 @@ class SettingsActivity : BaseActivity() {
}
binding.itemRecognitionMode.setOnClickListener {
- val dialog = RecognitionModeDialog(this)
- dialog.setOnConfirmListener { mode ->
- updateRecognitionMode(mode)
+ if (isPasswordVerified) {
+ val dialog = RecognitionModeDialog(this)
+ dialog.setOnConfirmListener { mode ->
+ updateRecognitionMode(mode)
+ }
+ dialog.show()
+ } else {
+ showPasswordDialog {
+ isPasswordVerified = true
+ val dialog = RecognitionModeDialog(this)
+ dialog.setOnConfirmListener { mode ->
+ updateRecognitionMode(mode)
+ }
+ dialog.show()
+ }
}
- dialog.show()
}
binding.itemDeviceName.setOnClickListener {
@@ -80,48 +93,26 @@ class SettingsActivity : BaseActivity() {
dialog.show(supportFragmentManager, "CustomDialogFragment")
}
binding.itemWaterGunSetting.setOnClickListener {
- val intent = Intent(this, WaterGunSettingsActivity::class.java)
- // 传递水枪设置参数
- val deviceId = DeviceIdEvent.getDeviceId()
- if (!deviceId.isNullOrEmpty()) {
- CoroutineScope(Dispatchers.IO).launch {
- try {
- val response = RetrofitNetwork.getNetworkService().getDeviceInfo(deviceId)
- withContext(Dispatchers.Main) {
- if (response.code == 200 && response.data != null) {
- val device = response.data
- intent.putExtra("strikeRange", device.strikeRange ?: "7")
- intent.putExtra("strikeInterval", device.strikeInterval ?: "3")
- intent.putExtra("container", device.container ?: "容器4")
- startActivity(intent)
- } else {
- // 如果获取失败,使用默认值
- intent.putExtra("strikeRange", "7")
- intent.putExtra("strikeInterval", "3")
- intent.putExtra("container", "容器4")
- startActivity(intent)
- }
- }
- } catch (e: Exception) {
- e.printStackTrace()
- withContext(Dispatchers.Main) {
- intent.putExtra("strikeRange", "7")
- intent.putExtra("strikeInterval", "3")
- intent.putExtra("container", "容器4")
- startActivity(intent)
- }
- }
- }
+ if (isPasswordVerified) {
+ navigateToWaterGunSettings()
} else {
- intent.putExtra("strikeRange", "7")
- intent.putExtra("strikeInterval", "3")
- intent.putExtra("container", "容器4")
- startActivity(intent)
+ showPasswordDialog {
+ isPasswordVerified = true
+ navigateToWaterGunSettings()
+ }
}
}
binding.itemAutoMode.setOnClickListener {
- val intent = Intent(this, AutoModeActivity::class.java)
- startActivity(intent)
+ if (isPasswordVerified) {
+ val intent = Intent(this, AutoModeActivity::class.java)
+ startActivity(intent)
+ } else {
+ showPasswordDialog {
+ isPasswordVerified = true
+ val intent = Intent(this, AutoModeActivity::class.java)
+ startActivity(intent)
+ }
+ }
}
binding.itemDeviceInfo.setOnClickListener {
val intent = Intent(this, DeviceInfoActivity::class.java)
@@ -337,4 +328,87 @@ class SettingsActivity : BaseActivity() {
}
}
+ private fun showPasswordDialog(onVerified: () -> Unit) {
+ passwordDialog = PasswordInputDialog(this).apply {
+ setOnConfirmListener { inputPassword ->
+ CoroutineScope(Dispatchers.IO).launch {
+ try {
+ val response = RetrofitNetwork.getNetworkService()
+ .verifyOptionPassword(VerifyOptionPasswordRequest(inputPassword))
+ withContext(Dispatchers.Main) {
+ if (response.code == 200) {
+ dismiss()
+ onVerified()
+ } else {
+ Toast.makeText(
+ this@SettingsActivity,
+ response.msg ?: getString(R.string.password_error),
+ Toast.LENGTH_SHORT
+ ).show()
+ showError(getString(R.string.password_error))
+ clearPassword()
+ }
+ }
+ } catch (e: Exception) {
+ withContext(Dispatchers.Main) {
+ Toast.makeText(this@SettingsActivity, "网络请求失败", Toast.LENGTH_SHORT).show()
+ showError(getString(R.string.password_error))
+ clearPassword()
+ }
+ }
+ }
+ }
+ setOnDismissListener {
+ // Dialog dismissed
+ }
+ }
+ passwordDialog.show()
+ }
+
+ private fun navigateToWaterGunSettings() {
+ val intent = Intent(this, WaterGunSettingsActivity::class.java)
+ val deviceId = DeviceIdEvent.getDeviceId()
+ if (!deviceId.isNullOrEmpty()) {
+ CoroutineScope(Dispatchers.IO).launch {
+ try {
+ val response = RetrofitNetwork.getNetworkService().getDeviceInfo(deviceId)
+ withContext(Dispatchers.Main) {
+ if (response.code == 200 && response.data != null) {
+ val device = response.data
+ intent.putExtra("strikeRange", device.strikeRange ?: "7")
+ intent.putExtra("strikeInterval", device.strikeInterval ?: "3")
+ intent.putExtra("container", device.container ?: "容器4")
+ startActivity(intent)
+ } else {
+ intent.putExtra("strikeRange", "7")
+ intent.putExtra("strikeInterval", "3")
+ intent.putExtra("container", "容器4")
+ startActivity(intent)
+ }
+ }
+ } catch (e: Exception) {
+ e.printStackTrace()
+ withContext(Dispatchers.Main) {
+ intent.putExtra("strikeRange", "7")
+ intent.putExtra("strikeInterval", "3")
+ intent.putExtra("container", "容器4")
+ startActivity(intent)
+ }
+ }
+ }
+ } else {
+ intent.putExtra("strikeRange", "7")
+ intent.putExtra("strikeInterval", "3")
+ intent.putExtra("container", "容器4")
+ startActivity(intent)
+ }
+ }
+
+ override fun onDestroy() {
+ if (::passwordDialog.isInitialized) {
+ passwordDialog.dismiss()
+ }
+ super.onDestroy()
+ }
+
}
diff --git a/app/src/main/java/com/example/defenseapplication/liveVideo/UserDetailsActivity.kt b/app/src/main/java/com/example/defenseapplication/liveVideo/UserDetailsActivity.kt
index ae98bca..11cb40d 100644
--- a/app/src/main/java/com/example/defenseapplication/liveVideo/UserDetailsActivity.kt
+++ b/app/src/main/java/com/example/defenseapplication/liveVideo/UserDetailsActivity.kt
@@ -8,6 +8,8 @@ import androidx.lifecycle.lifecycleScope
import com.example.defenseapplication.R
import com.example.defenseapplication.bean.DeleteDeviceUserRequest
import com.example.defenseapplication.bean.ObtainInviterInformationRequest
+import com.example.defenseapplication.bean.VerifyOptionPasswordRequest
+import com.example.defenseapplication.personal.PasswordInputDialog
import com.example.defenseapplication.utils.DeviceIdEvent
import com.example.defenseapplication.utils.DeviceUserUpdateEvent
import com.example.defenseapplication.databinding.UserDetailsActivityBinding
@@ -23,6 +25,8 @@ class UserDetailsActivity : AppCompatActivity() {
private lateinit var binding: UserDetailsActivityBinding
private var userId: String = ""
+ private var isPasswordVerified: Boolean = false
+ private lateinit var passwordDialog: PasswordInputDialog
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -82,12 +86,11 @@ class UserDetailsActivity : AppCompatActivity() {
}
binding.swUserStatus.setOnCheckedChangeListener { _, isChecked ->
- when (isChecked) {
- true -> {
- // 打开开关业务逻辑
- }
- false -> {
- // 关闭开关业务逻辑
+ if (!isPasswordVerified) {
+ binding.swUserStatus.isChecked = !isChecked
+ showPasswordDialog {
+ isPasswordVerified = true
+ binding.swUserStatus.isChecked = isChecked
}
}
}
@@ -97,6 +100,41 @@ class UserDetailsActivity : AppCompatActivity() {
}
}
+ private fun showPasswordDialog(onVerified: () -> Unit) {
+ passwordDialog = PasswordInputDialog(this).apply {
+ setOnConfirmListener { inputPassword ->
+ lifecycleScope.launch {
+ try {
+ val response = RetrofitNetwork.getNetworkService()
+ .verifyOptionPassword(VerifyOptionPasswordRequest(inputPassword))
+ withContext(Dispatchers.Main) {
+ if (response.code == 200) {
+ dismiss()
+ onVerified()
+ } else {
+ Toast.makeText(
+ this@UserDetailsActivity,
+ response.msg ?: getString(R.string.password_error),
+ Toast.LENGTH_SHORT
+ ).show()
+ showError(getString(R.string.password_error))
+ clearPassword()
+ }
+ }
+ } catch (e: Exception) {
+ withContext(Dispatchers.Main) {
+ Toast.makeText(this@UserDetailsActivity, "网络请求失败", Toast.LENGTH_SHORT).show()
+ showError(getString(R.string.password_error))
+ clearPassword()
+ }
+ }
+ }
+ }
+ setOnDismissListener {}
+ }
+ passwordDialog.show()
+ }
+
private fun showDeleteDialog() {
val dialog = CustomDialogFragmentText()
@@ -106,7 +144,14 @@ class UserDetailsActivity : AppCompatActivity() {
dialog.setPositiveText(getString(R.string.confirm))
dialog.setNegativeText(getString(R.string.cancel))
dialog.setOnConfirmListener {
- deleteDeviceUser()
+ if (isPasswordVerified) {
+ deleteDeviceUser()
+ } else {
+ showPasswordDialog {
+ isPasswordVerified = true
+ deleteDeviceUser()
+ }
+ }
}
dialog.show(supportFragmentManager, "DeleteUserDialog")
}
diff --git a/app/src/main/java/com/example/defenseapplication/personal/ChangePasswordActivity.kt b/app/src/main/java/com/example/defenseapplication/personal/ChangePasswordActivity.kt
new file mode 100644
index 0000000..871bfb4
--- /dev/null
+++ b/app/src/main/java/com/example/defenseapplication/personal/ChangePasswordActivity.kt
@@ -0,0 +1,74 @@
+package com.example.defenseapplication.personal
+
+import android.os.Bundle
+import android.widget.Toast
+import androidx.appcompat.app.AppCompatActivity
+import com.example.defenseapplication.R
+import com.example.defenseapplication.bean.UpdatePassword
+import com.example.defenseapplication.databinding.ChangePasswordActivityBinding
+import com.example.defenseapplication.utils.RetrofitNetwork
+import com.gyf.immersionbar.ImmersionBar
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+
+//登录密码修改
+class ChangePasswordActivity : AppCompatActivity() {
+ private lateinit var binding: ChangePasswordActivityBinding
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ binding = ChangePasswordActivityBinding.inflate(layoutInflater)
+ setContentView(binding.root)
+
+ ImmersionBar.with(this)
+ .statusBarDarkFont(true)
+ .titleBar(binding.topBar)
+ .init()
+
+ binding.ivBack.setOnClickListener {
+ finish()
+ }
+
+ binding.btnConfirm.setOnClickListener {
+ val oldPassword = binding.etOldPassword.text.toString().trim()
+ val newPassword = binding.etNewPassword.text.toString().trim()
+ val confirmPassword = binding.etConfirmPassword.text.toString().trim()
+
+ if (oldPassword.isEmpty()) {
+ Toast.makeText(this, getString(R.string.enter_old_password), Toast.LENGTH_SHORT).show()
+ return@setOnClickListener
+ }
+
+ if (newPassword.isEmpty()) {
+ Toast.makeText(this, getString(R.string.enter_new_password), Toast.LENGTH_SHORT).show()
+ return@setOnClickListener
+ }
+
+ if (newPassword != confirmPassword) {
+ Toast.makeText(this, getString(R.string.password_not_match), Toast.LENGTH_SHORT).show()
+ return@setOnClickListener
+ }
+
+ CoroutineScope(Dispatchers.IO).launch {
+ try {
+ val result = RetrofitNetwork.getNetworkService().updatePassword(UpdatePassword(oldPassword, newPassword))
+ withContext(Dispatchers.Main) {
+ if (result.code == 200) {
+ Toast.makeText(this@ChangePasswordActivity, getString(R.string.password_reset_success), Toast.LENGTH_SHORT).show()
+ finish()
+ } else {
+ Toast.makeText(this@ChangePasswordActivity, result.msg ?: getString(R.string.password_reset_failed), Toast.LENGTH_SHORT).show()
+ }
+ }
+ } catch (e: Exception) {
+ withContext(Dispatchers.Main) {
+ Toast.makeText(this@ChangePasswordActivity, getString(R.string.network_error), Toast.LENGTH_SHORT).show()
+ }
+ }
+ }
+ }
+
+ }
+}
diff --git a/app/src/main/java/com/example/defenseapplication/personal/LoginPasswordActivity.kt b/app/src/main/java/com/example/defenseapplication/personal/LoginPasswordActivity.kt
index 5e07ae0..5ff35d8 100644
--- a/app/src/main/java/com/example/defenseapplication/personal/LoginPasswordActivity.kt
+++ b/app/src/main/java/com/example/defenseapplication/personal/LoginPasswordActivity.kt
@@ -1,24 +1,20 @@
package com.example.defenseapplication.personal
+import android.content.Intent
import android.os.Bundle
-import android.widget.Toast
+import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
-import bean.LoginRequest
+import androidx.core.view.ViewCompat
+import androidx.core.view.WindowInsetsCompat
import com.example.defenseapplication.R
-import com.example.defenseapplication.bean.UpdatePassword
-import com.example.defenseapplication.bean.UserInfoBean
import com.example.defenseapplication.databinding.LoginPasswordActivityBinding
-import com.example.defenseapplication.utils.RetrofitNetwork
+import com.example.defenseapplication.databinding.PasswordManagementActivityBinding
import com.gyf.immersionbar.ImmersionBar
-import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.launch
-import kotlinx.coroutines.withContext
-//登录密码修改
+//登录密码
class LoginPasswordActivity : AppCompatActivity() {
- private lateinit var binding: LoginPasswordActivityBinding
+ private lateinit var binding: LoginPasswordActivityBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = LoginPasswordActivityBinding.inflate(layoutInflater)
@@ -33,44 +29,13 @@ class LoginPasswordActivity : AppCompatActivity() {
finish()
}
- binding.btnConfirm.setOnClickListener {
- val oldPassword = binding.etOldPassword.text.toString().trim()
- val newPassword = binding.etNewPassword.text.toString().trim()
- val confirmPassword = binding.etConfirmPassword.text.toString().trim()
-
- if (oldPassword.isEmpty()) {
- Toast.makeText(this, getString(R.string.enter_old_password), Toast.LENGTH_SHORT).show()
- return@setOnClickListener
- }
-
- if (newPassword.isEmpty()) {
- Toast.makeText(this, getString(R.string.enter_new_password), Toast.LENGTH_SHORT).show()
- return@setOnClickListener
- }
-
- if (newPassword != confirmPassword) {
- Toast.makeText(this, getString(R.string.password_not_match), Toast.LENGTH_SHORT).show()
- return@setOnClickListener
- }
-
- CoroutineScope(Dispatchers.IO).launch {
- try {
- val result = RetrofitNetwork.getNetworkService().updatePassword(UpdatePassword(oldPassword, newPassword))
- withContext(Dispatchers.Main) {
- if (result.code == 200) {
- Toast.makeText(this@LoginPasswordActivity, getString(R.string.password_reset_success), Toast.LENGTH_SHORT).show()
- finish()
- } else {
- Toast.makeText(this@LoginPasswordActivity, result.msg ?: getString(R.string.password_reset_failed), Toast.LENGTH_SHORT).show()
- }
- }
- } catch (e: Exception) {
- withContext(Dispatchers.Main) {
- Toast.makeText(this@LoginPasswordActivity, getString(R.string.network_error), Toast.LENGTH_SHORT).show()
- }
- }
- }
+ binding.changePassword.setOnClickListener {
+ startActivity(Intent(this, ChangePasswordActivity::class.java))
+ }
+ binding.retrievePassword.setOnClickListener {
+ startActivity(Intent(this, RetrievePasswordActivity::class.java))
}
+
}
-}
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/defenseapplication/personal/PasswordManagementActivity.kt b/app/src/main/java/com/example/defenseapplication/personal/PasswordManagementActivity.kt
index 84f77e7..0de2230 100644
--- a/app/src/main/java/com/example/defenseapplication/personal/PasswordManagementActivity.kt
+++ b/app/src/main/java/com/example/defenseapplication/personal/PasswordManagementActivity.kt
@@ -34,11 +34,7 @@ class PasswordManagementActivity : AppCompatActivity() {
}
binding.loginPassword.setOnClickListener {
- startActivity(Intent(this, LoginPasswordActivity::class.java))
- }
-
- binding.retrievePassword.setOnClickListener {
- startActivity(Intent(this, RetrievePasswordActivity::class.java))
+ startActivity(Intent(this, ChangePasswordActivity::class.java))
}
binding.operationPassword.setOnClickListener {
diff --git a/app/src/main/res/layout/change_password_activity.xml b/app/src/main/res/layout/change_password_activity.xml
new file mode 100644
index 0000000..d61e0fd
--- /dev/null
+++ b/app/src/main/res/layout/change_password_activity.xml
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/login_password_activity.xml b/app/src/main/res/layout/login_password_activity.xml
index 55183da..f210303 100644
--- a/app/src/main/res/layout/login_password_activity.xml
+++ b/app/src/main/res/layout/login_password_activity.xml
@@ -1,23 +1,20 @@
-
+ android:paddingHorizontal="16dp">
+
+
+
-
-
+
+
+
+
-
-
+
-
-
-
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/password_management_activity.xml b/app/src/main/res/layout/password_management_activity.xml
index caf31bf..804e609 100644
--- a/app/src/main/res/layout/password_management_activity.xml
+++ b/app/src/main/res/layout/password_management_activity.xml
@@ -55,28 +55,7 @@
android:src="@drawable/right_back" />
-
-
-
-
Network request failed
Verification code sent successfully
Failed to send verification code
-
+
Processing...
Old password is incorrect