From a8751388c9a86ae95714a15279994d8aa426a26d Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期五, 13 六月 2025 14:59:02 +0800
Subject: [PATCH] feat(generallibrary): 优化充值功能并添加水价获取- 在 activity_recharge_detail.xml 中移除了不必要的 bold 样式- 在 EditText 中添加了金额输入限制(数字和小数点)- 在 BaseApplication 中添加了水价信息存储 - 在 MainActivity 中实现了延时获取水价的功能- 优化了 RechargeDetailActivity 中的水价检查和使用逻辑 - 在 README.md 中添加了金额格式化和水价获取的最佳实践指南

---
 generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt |   52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 52 insertions(+), 0 deletions(-)

diff --git a/generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt b/generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt
index 87af8d5..81b20a0 100644
--- a/generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt
+++ b/generallibrary/src/main/java/com/dayu/general/activity/MainActivity.kt
@@ -2,6 +2,8 @@
 
 import android.content.Intent
 import android.os.Bundle
+import android.os.Handler
+import android.os.Looper
 import android.view.KeyEvent
 import android.view.LayoutInflater
 import android.widget.Toast
@@ -13,6 +15,7 @@
 import com.dayu.general.R
 import com.dayu.general.adapter.TabAdapter
 import com.dayu.general.bean.net.UserInfoResult
+import com.dayu.general.bean.net.WaterPriceResult
 import com.dayu.general.databinding.ActivityMainBinding
 import com.dayu.general.net.ApiManager
 import com.dayu.general.net.BaseResponse
@@ -22,15 +25,33 @@
     var binding: ActivityMainBinding? = null
     private val fragments: ArrayList<Fragment> = ArrayList()
     var mExitTime: Long = 0
+    private val handler = Handler(Looper.getMainLooper())
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         binding = ActivityMainBinding.inflate(LayoutInflater.from(this))
         setContentView(binding?.root)
+        
+        // 娉ㄥ唽MainActivity瀹炰緥鍒癇aseApplication
+        BaseApplication.setMainActivity(this)
+        
         setupFragments()
         initView()
         initTab()
         getUserInfo()
+        
+        // 寤舵椂20绉掑悗鑾峰彇姘翠环
+        handler.postDelayed({
+            getWaterPriceFromActivity()
+        }, 20000) // 20绉掑欢鏃�
+    }
+
+    override fun onDestroy() {
+        super.onDestroy()
+        // 娓呯悊Handler鍥炶皟锛岄槻姝㈠唴瀛樻硠婕�
+        handler.removeCallbacksAndMessages(null)
+        // 娓呯悊BaseApplication涓殑MainActivity寮曠敤
+        BaseApplication.setMainActivity(null)
     }
 
     override fun onNfcBack(intent: Intent) {
@@ -45,6 +66,37 @@
         }
     }
 
+    /**
+     * 鑾峰彇姘翠环淇℃伅 - 鍏紑鏂规硶渚涘叾浠栧湴鏂硅皟鐢�
+     */
+    fun getWaterPriceFromActivity() {
+        // 濡傛灉姘翠环宸插瓨鍦ㄤ笖澶т簬0锛屽垯涓嶉噸澶嶈幏鍙�
+        if (BaseApplication.waterPrice > 0.0) {
+            return
+        }
+        
+        ApiManager.getInstance().requestGetHideLoading(
+            this,
+            "terminal/client/getWaterPrice",
+            WaterPriceResult::class.java,
+            null,
+            object : SubscriberListener<BaseResponse<WaterPriceResult>>() {
+                override fun onNext(response: BaseResponse<WaterPriceResult>) {
+                    if (response.success && response.code == "0001") {
+                        // 鑾峰彇姘翠环鎴愬姛锛屼繚瀛樺埌BaseApplication
+                        response.content?.let { waterPriceResult ->
+                            BaseApplication.waterPrice = waterPriceResult.price
+                        }
+                    }
+                }
+
+                override fun onError(e: Throwable?) {
+                    super.onError(e)
+                    // 缃戠粶寮傚父鏃朵笉鏄剧ず閿欒淇℃伅锛岄伩鍏嶅奖鍝嶇敤鎴蜂綋楠�
+                }
+            }
+        )
+    }
 
     private fun getUserInfo() {
         // 浣跨敤姝g‘鐨勭被鍨嬪弬鏁�

--
Gitblit v1.8.0