浏览代码

1.添加获取moca试题库module

王鹏鹏 2 年之前
父节点
当前提交
67a3df4b3e

+ 5 - 0
baselib/src/main/java/com/yingyangfly/baselib/base/BaseActivity.kt

@@ -20,6 +20,7 @@ import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener
 import com.yingyangfly.baselib.R
 import com.yingyangfly.baselib.databinding.ActivityBaseBinding
 import com.yingyangfly.baselib.db.AppDataBase
+import com.yingyangfly.baselib.db.QuestionsDao
 import com.yingyangfly.baselib.dialog.LoadingDialog
 import com.yingyangfly.baselib.ext.getDbClass
 import com.yingyangfly.baselib.ext.initBar
@@ -63,6 +64,7 @@ abstract class BaseActivity<DB : ViewDataBinding> : AppCompatActivity(),
     private var logoutDialog: AlertDialog? = null
 
     var db: AppDataBase? = null
+    var dao: QuestionsDao? = null
 
     @SuppressLint("SourceLockedOrientationActivity")
     override fun onCreate(savedInstanceState: Bundle?) {
@@ -84,6 +86,9 @@ abstract class BaseActivity<DB : ViewDataBinding> : AppCompatActivity(),
         setContentView(ViewTool.inflateLayoutPixels(this, bindingBase.root, 1194, 834))
         requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE // 竖屏
         db = AppDataBase.getInstance(mContext)
+        if (db != null) {
+            dao = db?.getQuestionsDao()
+        }
         initMVVM()
         initViews()
         initListener()

+ 29 - 3
moca/src/main/java/com/yingyangfly/moca/activity/MocaActivity.kt

@@ -1,13 +1,17 @@
 package com.yingyangfly.moca.activity
 
+import android.text.TextUtils
 import com.alibaba.android.arouter.facade.annotation.Route
 import com.yingyang.moca.databinding.ActivityMocaBinding
 import com.yingyangfly.baselib.base.BaseActivity
 import com.yingyangfly.baselib.ext.setOnSingleClickListener
+import com.yingyangfly.baselib.ext.toast
+import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.router.RouterUrlCommon
 import com.yingyangfly.baselib.utils.LiveEventBusUtil
 import com.yingyangfly.baselib.utils.RxBusCodes
 import com.yingyangfly.baselib.utils.RxTimer
+import gorden.rxbus2.RxBus
 import gorden.rxbus2.Subscribe
 import gorden.rxbus2.ThreadMode
 
@@ -15,9 +19,10 @@ import gorden.rxbus2.ThreadMode
  * moca试题库
  */
 @Route(path = RouterUrlCommon.mocaEvaluation)
-class MocaActivity : BaseActivity<ActivityMocaBinding>() {
+class MocaActivity : BaseMVVMActivity<ActivityMocaBinding, MocaViewModel>() {
 
     lateinit var rxTimer: RxTimer
+    var time: Long = 0
 
     override fun initViews() {
         rxTimer = RxTimer()
@@ -32,7 +37,7 @@ class MocaActivity : BaseActivity<ActivityMocaBinding>() {
     override fun initData() {
         val m: Long = 1000
         rxTimer.interval(m) {
-            val time = it + 1
+            time = it + 1
             val minutes = time / 60
             val seconds = time % 60
             binding.tvTimes.text = if (minutes > 0) {
@@ -48,7 +53,28 @@ class MocaActivity : BaseActivity<ActivityMocaBinding>() {
      */
     @Subscribe(code = RxBusCodes.EndMOCAQuestion, threadMode = ThreadMode.MAIN)
     fun loadData() {
-        finish()
+        if (dao != null) {
+            val questionsBeans = dao?.getAllQuestions()
+            if (questionsBeans.isNullOrEmpty().not()) {
+                questionsBeans?.forEach {
+                    it.usedTime = time.toString()
+                    it.reviewId = it.id
+                    if (TextUtils.equals("0", it.correct)) {
+                        it.score = "0"
+                    } else {
+                        it.score = it.reviewScore
+                    }
+                }
+            }
+            viewModel.submitQuestions(questionsBeans!!, fail = {
+                it.toast()
+            }, success = {
+                "提交成功".toast()
+                RxBus.get().send(RxBusCodes.EndMOCAQuestion)
+            })
+        }
+
+
     }
 
 }

+ 2 - 2
moca/src/main/java/com/yingyangfly/moca/singlechoice/SingleChoiceViewModel.kt → moca/src/main/java/com/yingyangfly/moca/activity/MocaViewModel.kt

@@ -1,4 +1,4 @@
-package com.yingyangfly.moca.singlechoice
+package com.yingyangfly.moca.activity
 
 import android.util.Log
 import com.alibaba.fastjson.JSON
@@ -7,7 +7,7 @@ import com.yingyangfly.baselib.mvvm.BaseViewModel
 import com.yingyangfly.baselib.net.XUtils
 import com.yingyangfly.moca.net.MOCA_API
 
-class SingleChoiceViewModel : BaseViewModel() {
+class MocaViewModel : BaseViewModel() {
 
     /**
      * 获取游戏列表

+ 2 - 33
moca/src/main/java/com/yingyangfly/moca/singlechoice/SingleChoiceFragment.kt

@@ -1,28 +1,22 @@
 package com.yingyangfly.moca.singlechoice
 
 import android.os.Bundle
-import android.text.TextUtils
-import android.util.Log
 import androidx.core.os.bundleOf
 import androidx.navigation.Navigation
-import com.alibaba.fastjson.JSON
 import com.yingyang.moca.R
 import com.yingyang.moca.databinding.FragmentSingleChoiceBinding
 import com.yingyangfly.baselib.base.BaseFragment
 import com.yingyangfly.baselib.db.QuestionsBean
 import com.yingyangfly.baselib.ext.setOnSingleClickListener
 import com.yingyangfly.baselib.ext.toast
-import com.yingyangfly.baselib.mvvm.BaseMVVMFragment
 import com.yingyangfly.baselib.utils.RxBusCodes
-import com.yingyangfly.moca.adapter.ChoiceAdapter
 import com.yingyangfly.moca.adapter.SpeakResultAdapter
 import gorden.rxbus2.RxBus
 
 /**
  * 单选
  */
-class SingleChoiceFragment :
-    BaseMVVMFragment<FragmentSingleChoiceBinding, SingleChoiceViewModel>() {
+class SingleChoiceFragment : BaseFragment<FragmentSingleChoiceBinding>() {
 
     /**
      * 问题id
@@ -91,7 +85,7 @@ class SingleChoiceFragment :
                             loadData()
                         }
                         76 -> {
-                            submit()
+                            RxBus.get().send(RxBusCodes.EndMOCAQuestion)
                         }
                         else -> {
                             val controller = Navigation.findNavController(it)
@@ -158,29 +152,4 @@ class SingleChoiceFragment :
         }
         return true
     }
-
-    /**
-     * 提交测试
-     */
-    private fun submit() {
-        if (dao != null) {
-            val questionsBeans = dao?.getAllQuestions()
-            if (questionsBeans.isNullOrEmpty().not()) {
-                questionsBeans?.forEach {
-                    it.reviewId = it.id
-                    if (TextUtils.equals("0", it.correct)) {
-                        it.score = "0"
-                    } else {
-                        it.score = it.reviewScore
-                    }
-                }
-            }
-            viewModel.submitQuestions(questionsBeans!!, fail = {
-                it.toast()
-            }, success = {
-                "提交成功".toast()
-                RxBus.get().send(RxBusCodes.EndMOCAQuestion)
-            })
-        }
-    }
 }