Selaa lähdekoodia

登录记住密码

codernight 3 viikkoa sitten
vanhempi
commit
5495c4fa58

+ 26 - 1
app/src/main/java/com/example/msdksample/util/ui/loginActivity.kt

@@ -28,10 +28,20 @@ class loginActivity: AppCompatActivity() {
         // 初始化 ViewBinding
         binding = ActivityLoginBinding.inflate(layoutInflater)
         setContentView(binding.getRoot())
-
+        loadUserCredentials()
         initMSDKInfoView()
     }
 
+    private fun saveUserCredentials(username: String, password: String) {
+        val sharedPreferences = getSharedPreferences("user_prefs", MODE_PRIVATE)
+        with(sharedPreferences.edit()) {
+            putString("username", username)
+            putString("password", password)  // 明文存储不安全,可考虑加密
+            apply()
+        }
+    }
+
+
     fun generateRandomString(length: Int = 4): String {
         val characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
         val randomString = StringBuilder()
@@ -44,6 +54,18 @@ class loginActivity: AppCompatActivity() {
         return randomString.toString()
     }
 
+    private fun loadUserCredentials() {
+        val sharedPreferences = getSharedPreferences("user_prefs", MODE_PRIVATE)
+        val savedUsername = sharedPreferences.getString("username", "")
+        val savedPassword = sharedPreferences.getString("password", "")
+
+        if (!savedUsername.isNullOrEmpty() && !savedPassword.isNullOrEmpty()) {
+            binding.username.setText(savedUsername)
+            binding.password.setText(savedPassword)
+        }
+    }
+
+
     private  fun initMSDKInfoView(){
         binding.loginButton.setOnClickListener{
             val username = binding.username.text
@@ -106,6 +128,9 @@ class loginActivity: AppCompatActivity() {
                                     token?.let { nonNullToken ->
                                         TokenManager.saveToken(this@loginActivity, nonNullToken)
                                         ToastUtils.showShortToast("登录成功")
+                                        saveUserCredentials(username.toString(),
+                                            password.toString()
+                                        )
                                         // 检查是否存在需要跳转的目标页面
                                         val lastPageIntent = RedirectManager.getLastPageIntent()
                                         if (lastPageIntent != null) {