From c303346ae803dc2a89ec0f025192773211861915 Mon Sep 17 00:00:00 2001
From: lmw <125975490@qq.com>
Date: 星期二, 16 七月 2024 14:46:28 +0800
Subject: [PATCH] fix bug

---
 app/src/main/java/com/dollearn/student/MainActivity.kt |   74 ++++++++++++++++++------------------
 1 files changed, 37 insertions(+), 37 deletions(-)

diff --git a/app/src/main/java/com/dollearn/student/MainActivity.kt b/app/src/main/java/com/dollearn/student/MainActivity.kt
index df759cc..feaf6fe 100644
--- a/app/src/main/java/com/dollearn/student/MainActivity.kt
+++ b/app/src/main/java/com/dollearn/student/MainActivity.kt
@@ -33,6 +33,7 @@
     var homeData: UserBean? = null //个人信息
     var score = 0
     private var handler: Handler? = null
+    var mins = 0
 
     override fun initClick() {
     }
@@ -51,36 +52,36 @@
     }
 
     private fun getScoreConfig() {
-        HttpManager.onlineDuration().request(this,false,{_,data->
-            SPUtils.instance().put(Const.SCORE_DURATION,(data?:"0").toInt()).apply()
-            startTimer()
-        }){_,_->
-            startTimer()
+        HttpManager.onlineDuration().request(this,false) { _, data ->
+            SPUtils.instance().put(Const.SCORE_DURATION, (data ?: "0").toInt()).apply()
         }
     }
 
     private fun startTimer() {
         val duration = SPUtils.instance().getInt(Const.SCORE_DURATION,30)//单位分钟
-        var mins = 0
-        handler = object :Handler(Looper.myLooper()!!){
-            override fun handleMessage(msg: Message) {
-                super.handleMessage(msg)
-                if (msg.what == 0){
-                    mins++
-                    Log.e("mmp","当前已在线${mins}分钟")
-                    if (mins > duration){
-                        HttpManager.giveIntegral().request(this@MainActivity,false,{_,_->
-                            mins = 0
+        if (handler == null)
+            handler = object :Handler(Looper.myLooper()!!){
+                override fun handleMessage(msg: Message) {
+                    super.handleMessage(msg)
+                    if (msg.what == 0){
+                        mins++
+                        Log.e("mmp","当前已听${mins}分钟")
+                        if (mins >= duration){
+                            HttpManager.giveIntegral().request(this@MainActivity,false,{_,_->
+                                mins = 0
+                                handler?.sendEmptyMessageDelayed(0,1000*60)
+                            }){_,_->
+                                handler?.sendEmptyMessageDelayed(0,1000*60)
+                            }
+                        }else
                             handler?.sendEmptyMessageDelayed(0,1000*60)
-                        }){_,_->
-                            handler?.sendEmptyMessageDelayed(0,1000*60)
-                        }
-                    }else
-                        handler?.sendEmptyMessageDelayed(0,1000*60)
+                    }
                 }
             }
+        if (handler?.hasMessages(0) == false){
+            mins = 0
+            handler?.sendEmptyMessageDelayed(0,1000*60)
         }
-        handler?.sendEmptyMessageDelayed(0,1000*60)
     }
 
     private fun getVoiceUrl() {
@@ -145,23 +146,22 @@
 
     @Subscribe
     fun onSwitch(e:EmptyEvent){
-        if (e.code == Const.EventCode.CLICK_GAME_ITEM){
-            switchHome()
-        }else if(e.code == Const.EventCode.CHANGE_WELFARE){
-            tab_bar.currentTab = 2
-            onTabSelect(2)
-        }else if(e.code == Const.EventCode.CHANGE_EXPLORE){
-            tab_bar.currentTab = 3
-            onTabSelect(3)
+        when (e.code) {
+            Const.EventCode.CLICK_GAME_ITEM -> {
+                switchHome()
+            }
+            Const.EventCode.REFRESH_USER -> getData()
+            Const.EventCode.SCORE_CHANGED -> getScore()
+            Const.EventCode.START_TIMER ->{
+                Log.e("mmp","开始学习")
+                startTimer()
+            }
+            Const.EventCode.STOP_TIMER ->{
+                Log.e("mmp","结束学习")
+                handler?.removeMessages(0)
+                mins = 0
+            }
         }
-    }
-
-    @Subscribe
-    fun refreshUser(e:EmptyEvent){
-        if (e.code == Const.EventCode.REFRESH_USER)
-            getData()
-        if (e.code == Const.EventCode.SCORE_CHANGED)
-            getScore()
     }
 
     private fun getData() {

--
Gitblit v1.7.1