From b6a22ac20c4155bb6f3df928cf5d88502079406c Mon Sep 17 00:00:00 2001
From: lmw <125975490@qq.com>
Date: 星期一, 22 七月 2024 15:28:13 +0800
Subject: [PATCH] save

---
 app/src/main/java/com/dollearn/student/ui/home/WeekSelectActivity.kt  |    4 +-
 xldutils-kotlin/build.gradle                                          |    2 -
 app/src/main/java/com/dollearn/student/ui/home/ScheduleActivity.kt    |   15 ++++---
 app/src/main/java/com/dollearn/student/network/Functions.kt           |    6 +--
 app/src/main/res/mipmap-xxhdpi/home_stu.png                           |    0 
 app/src/main/java/com/dollearn/student/ui/login/LoginActivity.kt      |    4 ++
 app/src/main/java/com/dollearn/student/ui/home/SuperListenActivity.kt |    2 
 app/src/main/java/com/dollearn/student/ui/home/DailyFragment.kt       |   10 +++--
 app/src/main/res/layout/fragment_home.xml                             |   12 +++---
 app/src/main/java/com/dollearn/student/ui/home/ListenActivity.kt      |   10 +++--
 app/src/main/java/com/dollearn/student/ui/home/adapter/GameAdapter.kt |    2 -
 11 files changed, 36 insertions(+), 31 deletions(-)

diff --git a/app/src/main/java/com/dollearn/student/network/Functions.kt b/app/src/main/java/com/dollearn/student/network/Functions.kt
index beb1119..d60bb24 100644
--- a/app/src/main/java/com/dollearn/student/network/Functions.kt
+++ b/app/src/main/java/com/dollearn/student/network/Functions.kt
@@ -30,8 +30,7 @@
             if (code == 700||code == 600||code == 505||code == 401){//token无效
                 SPUtils.instance().remove(Const.User.TOKEN).remove(Const.User.USER_ID).apply()
                 (activity.application as DollearnApplication).exit()
-                activity.startActivity<LoginActivity>()
-                activity.myToast("登录失效,请重新登录")
+                activity.startActivity<LoginActivity>("offline" to true)
             }else{
                 super.onError(code, msg)
                 error(code,msg)
@@ -54,10 +53,9 @@
 
         override fun onError(code: Int, msg: String) {
             if (code == 700||code == 600||code == 505||code == 401){//token无效
-                fragment.myToast("登录失效,请重新登录")
                 SPUtils.instance().remove(Const.User.TOKEN).remove(Const.User.USER_ID).apply()
                 (fragment.activity!!.application as DollearnApplication).exit()
-                fragment.startActivity<LoginActivity>()
+                fragment.startActivity<LoginActivity>("offline" to true)
             }else{
                 super.onError(code, msg)
                 error(code,msg)
diff --git a/app/src/main/java/com/dollearn/student/ui/home/DailyFragment.kt b/app/src/main/java/com/dollearn/student/ui/home/DailyFragment.kt
index 844eee2..7d53594 100644
--- a/app/src/main/java/com/dollearn/student/ui/home/DailyFragment.kt
+++ b/app/src/main/java/com/dollearn/student/ui/home/DailyFragment.kt
@@ -35,9 +35,7 @@
     private val week by lazy {
         (requireActivity() as ScheduleActivity).week
     }
-    private val current by lazy {
-        (requireActivity() as ScheduleActivity).currentDay
-    }
+
 
     override fun onFirstVisibleToUser() {
         getProgress()
@@ -113,13 +111,17 @@
     private fun getProgress(){
         HttpManager.studySchedule(week,day).requestByF(this){ _, data->
             data?.apply {
+                val scheduleActivity = activity as ScheduleActivity
+                if (day != scheduleActivity.currentDay){ //解锁了后一天
+                    scheduleActivity.unLockNext(day)
+                }
                 tv_current.text = "当前周目:${week.formatToChinese()}周目"
                 tv_progress.text = "${computeSchedule}%"
                 tv_total.text = "${totalStudy}小时"
                 tv_today.text = "${todayStudy}小时"
                 progress_bar.progress = computeSchedule
 
-                if (this@DailyFragment.day == current){
+                if (this@DailyFragment.day == scheduleActivity.currentDay){
                     formatProgress(listen,tv_state)
                     formatProgress(look,tv_state_2)
                     formatProgress(induction,tv_state_3)
diff --git a/app/src/main/java/com/dollearn/student/ui/home/ListenActivity.kt b/app/src/main/java/com/dollearn/student/ui/home/ListenActivity.kt
index 00ce1be..3c4197e 100644
--- a/app/src/main/java/com/dollearn/student/ui/home/ListenActivity.kt
+++ b/app/src/main/java/com/dollearn/student/ui/home/ListenActivity.kt
@@ -45,8 +45,9 @@
 
     override fun initClick() {
         tv_last.setOnClickListener {
-            (fragments[view_pager.currentItem-1] as ListenFragment).recover()
-            view_pager.setCurrentItem(view_pager.currentItem-1,true)
+            val i = view_pager.currentItem - 1
+            (fragments[i] as ListenFragment).recover()
+            view_pager.setCurrentItem(i,i%4 == 0)
             if (view_pager.currentItem == 0)
                 tv_last.gone()
         }
@@ -62,8 +63,9 @@
             ResultActivity.startResult(this,day,week,season,1,totalCount,rightCount,data!!.data.integral,time,data!!.data.id)
             finish()
         }else{
-            (fragments[view_pager.currentItem+1] as ListenFragment).recover()
-            view_pager.setCurrentItem(view_pager.currentItem+1,true)
+            val i = view_pager.currentItem + 1
+            (fragments[i] as ListenFragment).recover()
+            view_pager.setCurrentItem(i,i%4 == 0)
             tv_last.visible()
         }
     }
diff --git a/app/src/main/java/com/dollearn/student/ui/home/ScheduleActivity.kt b/app/src/main/java/com/dollearn/student/ui/home/ScheduleActivity.kt
index d956c5b..a9cadcf 100644
--- a/app/src/main/java/com/dollearn/student/ui/home/ScheduleActivity.kt
+++ b/app/src/main/java/com/dollearn/student/ui/home/ScheduleActivity.kt
@@ -1,18 +1,15 @@
 package com.dollearn.student.ui.home
 
-import androidx.constraintlayout.widget.ConstraintLayout
 import androidx.fragment.app.Fragment
 import com.dollearn.student.R
 import com.dollearn.student.network.HttpManager
 import com.dollearn.student.network.request
 import com.dollearn.student.ui.TransparentStatusBarActivity
 import com.dollearn.student.utils.Const
-import com.dollearn.student.utils.event.EmptyEvent
 import com.dollearn.student.utils.event.IntEvent
 import kotlinx.android.synthetic.main.activity_schedul.*
 import org.greenrobot.eventbus.EventBus
 import org.greenrobot.eventbus.Subscribe
-import org.jetbrains.anko.browse
 
 class ScheduleActivity :TransparentStatusBarActivity(){
     override fun setContentView() = R.layout.activity_schedul
@@ -54,13 +51,19 @@
         tab_bar.currentTab = currentDay-1
         view_pager.offscreenPageLimit = day
         //设置不可点击的day
-        (day until 6).forEach {
-            tab_bar.getTitleView(it).isEnabled = false
-        }
+//        (day until 6).forEach {
+//            tab_bar.getTitleView(it).isEnabled = false
+//        }
         if (tab_bar.currentTab == 0)
             tab_bar.updateTabStyles()
     }
 
+    fun unLockNext(day: Int){
+        currentDay = day
+        tab_bar.getTitleView(day - 1).isEnabled = true
+        tab_bar.currentTab = currentDay-1
+    }
+
     @Subscribe
     fun nextSubject(e: IntEvent){
         if (e.code == Const.EventCode.NEXT_SUBJECT){
diff --git a/app/src/main/java/com/dollearn/student/ui/home/SuperListenActivity.kt b/app/src/main/java/com/dollearn/student/ui/home/SuperListenActivity.kt
index 2cfe8e6..24e172b 100644
--- a/app/src/main/java/com/dollearn/student/ui/home/SuperListenActivity.kt
+++ b/app/src/main/java/com/dollearn/student/ui/home/SuperListenActivity.kt
@@ -252,7 +252,7 @@
             countTime = TIME //重置答题时间
             tv_tip.text = "准备听题"
             state = 0
-            handler?.sendEmptyMessageDelayed(PLAY_VOICE, if (playNow) 200 else 3000)
+            handler?.sendEmptyMessageDelayed(PLAY_VOICE, if (playNow) 200 else 1000)
         }else{
             tv_sort.visibility = View.INVISIBLE
             cl_voice.visibility = View.INVISIBLE
diff --git a/app/src/main/java/com/dollearn/student/ui/home/WeekSelectActivity.kt b/app/src/main/java/com/dollearn/student/ui/home/WeekSelectActivity.kt
index 0a64796..fc273e8 100644
--- a/app/src/main/java/com/dollearn/student/ui/home/WeekSelectActivity.kt
+++ b/app/src/main/java/com/dollearn/student/ui/home/WeekSelectActivity.kt
@@ -34,8 +34,9 @@
             if (weeks[position].canStudy)
                 startActivity<ScheduleActivity>("week" to weeks[position].week,"season" to seasonAdapter.checked+1)
             else{
+                val msg = if (seasonAdapter.checked == 0||weeks[0].canStudy) "请先完成上一周目学习后再试" else "请先完成上一季度学习后再试"
                 val tipDialog = TipDialog()
-                tipDialog.arguments = bundleOf("msg" to "请先完成上一周练习","isAlert" to true)
+                tipDialog.arguments = bundleOf("msg" to msg,"isAlert" to true)
                 tipDialog.showAllowingStateLoss(supportFragmentManager,"noStart")
             }
         }
@@ -44,7 +45,6 @@
     override fun initView() {
         rv_season.layoutManager = LinearLayoutManager(this)
         rv_season.adapter = seasonAdapter
-
         rv_week.layoutManager = GridLayoutManager(this,3)
         rv_week.adapter = weekAdapter
     }
diff --git a/app/src/main/java/com/dollearn/student/ui/home/adapter/GameAdapter.kt b/app/src/main/java/com/dollearn/student/ui/home/adapter/GameAdapter.kt
index dab56a0..d6c77ef 100644
--- a/app/src/main/java/com/dollearn/student/ui/home/adapter/GameAdapter.kt
+++ b/app/src/main/java/com/dollearn/student/ui/home/adapter/GameAdapter.kt
@@ -67,8 +67,6 @@
                 ivResult.setImageResource(R.mipmap.zhifushibai)
                 subject.completed = true
                 subject.right = false
-                act.index++
-                act.startGame()
             }
             motion.transitionToEnd()
             motion.setTransitionListener(object :MotionLayout.TransitionListener{
diff --git a/app/src/main/java/com/dollearn/student/ui/login/LoginActivity.kt b/app/src/main/java/com/dollearn/student/ui/login/LoginActivity.kt
index a8d4591..11efdba 100644
--- a/app/src/main/java/com/dollearn/student/ui/login/LoginActivity.kt
+++ b/app/src/main/java/com/dollearn/student/ui/login/LoginActivity.kt
@@ -25,6 +25,7 @@
     override fun setContentView() = R.layout.activity_login
 
     private lateinit var timer: CountDownTimer
+    private val offline by lazy { intent.getBooleanExtra("offline",false) }
 
     @SuppressLint("CheckResult")
     override fun initClick() {
@@ -88,6 +89,9 @@
                 tv_code.text = "${millisUntilFinished / 1000}s"
             }
         }
+
+        if (offline)
+            myToast("登录失效,请重新登录")
     }
 
     private fun loginByCode() {
diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml
index ef9c287..16c5ee2 100644
--- a/app/src/main/res/layout/fragment_home.xml
+++ b/app/src/main/res/layout/fragment_home.xml
@@ -17,7 +17,7 @@
         android:layout_height="wrap_content"
         android:id="@+id/guide2"
         android:orientation="vertical"
-        app:layout_constraintGuide_percent="0.7"/>
+        app:layout_constraintGuide_percent="1"/>
     <View
         android:layout_width="0dp"
         android:layout_height="match_parent"
@@ -62,6 +62,7 @@
         android:layout_width="0dp"
         android:layout_height="match_parent"
         android:orientation="vertical"
+        android:visibility="gone"
         app:layout_constraintStart_toEndOf="@id/guide2"
         app:layout_constraintEnd_toEndOf="parent"
         android:layout_marginTop="48dp"
@@ -92,16 +93,14 @@
         android:scaleType="center"
         app:layout_constraintEnd_toStartOf="@id/guide2"/>
     <LinearLayout
-        android:layout_width="0dp"
+        android:layout_width="380dp"
         android:layout_height="88dp"
         android:id="@+id/cl_listen"
         app:layout_constraintStart_toEndOf="@id/guide1"
         app:layout_constraintTop_toTopOf="parent"
         app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintVertical_bias="0.45"
-        android:layout_marginStart="33dp"
-        android:layout_marginEnd="55dp"
-        app:layout_constraintEnd_toStartOf="@id/guide2">
+        app:layout_constraintVertical_bias="0.3"
+        android:layout_marginStart="33dp">
         <RelativeLayout
             android:layout_width="99dp"
             android:orientation="vertical"
@@ -133,6 +132,7 @@
         android:id="@+id/iv_2"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
+        android:layout_marginEnd="30dp"
         android:src="@mipmap/home_stu"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toStartOf="@id/guide2"/>
diff --git a/app/src/main/res/mipmap-xxhdpi/home_stu.png b/app/src/main/res/mipmap-xxhdpi/home_stu.png
index 921423b..678d2de 100644
--- a/app/src/main/res/mipmap-xxhdpi/home_stu.png
+++ b/app/src/main/res/mipmap-xxhdpi/home_stu.png
Binary files differ
diff --git a/xldutils-kotlin/build.gradle b/xldutils-kotlin/build.gradle
index 5fc4aad..b597cc9 100644
--- a/xldutils-kotlin/build.gradle
+++ b/xldutils-kotlin/build.gradle
@@ -48,11 +48,9 @@
     //fresco
     api 'com.facebook.fresco:fresco:1.13.0'
     api 'com.facebook.fresco:animated-gif:1.13.0'
-
     api 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.5@aar'
     api 'com.google.code.gson:gson:2.8.5'
     api 'com.github.zackratos.ultimatebar:ultimatebar3:3.1.1' //状态栏工具
     api 'com.flyco.tablayout:FlycoTabLayout_Lib:2.1.2@aar'
     api 'org.greenrobot:eventbus:3.1.1'
-
 }
\ No newline at end of file

--
Gitblit v1.7.1