Browse Source

1.添加测评module

王鹏鹏 2 years ago
parent
commit
78420cca3b

+ 9 - 3
baselib/schemas/com.yingyangfly.baselib.db.AppDataBase/1.json

@@ -2,7 +2,7 @@
   "formatVersion": 1,
   "database": {
     "version": 1,
-    "identityHash": "94d32106376dc4df10a097bf99e02f6e",
+    "identityHash": "91169e52f7775bb05c4306aeaf2e616d",
     "entities": [
       {
         "tableName": "Questions",
@@ -350,7 +350,7 @@
       },
       {
         "tableName": "QuestionRecords",
-        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` REAL NOT NULL, `correctOptionId` TEXT, `correctOptionName` TEXT, `examinationId` TEXT, `examinationTitle` TEXT, `manualHelp` TEXT, `orgCode` TEXT, `orgName` TEXT, `score` TEXT, `status` TEXT, `title` TEXT, `usedTime` TEXT, PRIMARY KEY(`id`))",
+        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` REAL NOT NULL, `correctOptionId` TEXT, `correctOptionName` TEXT, `examinationId` TEXT, `examinationTitle` TEXT, `manualHelp` TEXT, `orgCode` TEXT, `orgName` TEXT, `score` TEXT, `status` TEXT, `title` TEXT, `usedTime` TEXT, `selectedItemId` REAL NOT NULL, PRIMARY KEY(`id`))",
         "fields": [
           {
             "fieldPath": "id",
@@ -423,6 +423,12 @@
             "columnName": "usedTime",
             "affinity": "TEXT",
             "notNull": false
+          },
+          {
+            "fieldPath": "selectedItemId",
+            "columnName": "selectedItemId",
+            "affinity": "REAL",
+            "notNull": true
           }
         ],
         "primaryKey": {
@@ -438,7 +444,7 @@
     "views": [],
     "setupQueries": [
       "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
-      "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '94d32106376dc4df10a097bf99e02f6e')"
+      "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '91169e52f7775bb05c4306aeaf2e616d')"
     ]
   }
 }

+ 11 - 1
baselib/src/main/java/com/yingyangfly/baselib/db/QuestionRecordsBean.java

@@ -32,6 +32,8 @@ public class QuestionRecordsBean {
     private String title;
     private String usedTime;
 
+    private double selectedItemId;
+
     @Ignore
     private String createBy;
     @Ignore
@@ -252,4 +254,12 @@ public class QuestionRecordsBean {
     public void setUsedTime(String usedTime) {
         this.usedTime = usedTime;
     }
-}
+
+    public double getSelectedItemId() {
+        return selectedItemId;
+    }
+
+    public void setSelectedItemId(double selectedItemId) {
+        this.selectedItemId = selectedItemId;
+    }
+}

+ 2 - 2
baselib/src/main/java/com/yingyangfly/baselib/net/OkHttpHelper.kt

@@ -18,8 +18,8 @@ class OkHttpHelper private constructor() {
     lateinit var okHttpClient: OkHttpClient
     private val timeUnit: TimeUnit = TimeUnit.SECONDS
     private val connectTimeOut: Long = 10
-    private val readTimeOut: Long = 30
-    private val writeTimeOut: Long = 30
+    private val readTimeOut: Long = 5
+    private val writeTimeOut: Long = 5
 
     init {
         initHttpClient()

+ 11 - 10
evaluation/src/main/java/com/yingyangfly/evaluation/adapter/QuestionListAdapter.kt

@@ -1,9 +1,10 @@
 package com.yingyangfly.evaluation.adapter
 
-import android.text.TextUtils
+import android.annotation.SuppressLint
 import com.yingyangfly.baselib.adapter.BaseDataBindingAdapter
 import com.yingyangfly.baselib.db.QuestionOptionBean
 import com.yingyangfly.baselib.ext.setOnSingleClickListener
+import com.yingyangfly.baselib.ext.setTextColorResource
 import com.yingyangfly.evaluation.R
 import com.yingyangfly.evaluation.databinding.ItemQuestionListBinding
 
@@ -13,27 +14,27 @@ import com.yingyangfly.evaluation.databinding.ItemQuestionListBinding
 class QuestionListAdapter(override val layoutId: Int = R.layout.item_question_list) :
     BaseDataBindingAdapter<QuestionOptionBean, ItemQuestionListBinding>() {
 
-    private var selectedType = ""
+    private var selectedItemId: Double = 0.0
 
     var onClickListener: ((bean: QuestionOptionBean) -> Unit)? = null
 
-    fun setContent(selectedType: String) {
-        this.selectedType = selectedType
+    fun setContent(selectedItemId: Double) {
+        this.selectedItemId = selectedItemId
     }
 
+    @SuppressLint("NotifyDataSetChanged")
     override fun onBindViewHolder(
         binding: ItemQuestionListBinding, item: QuestionOptionBean, position: Int
     ) {
         binding.data = item
-        if (TextUtils.isEmpty(selectedType).not() && TextUtils.equals(
-                selectedType, item.optionVal
-            )
-        ) {
-
+        if (selectedItemId == item.id) {
+            binding.tvTitle.setTextColorResource(R.color.color_4A76FF)
         } else {
-
+            binding.tvTitle.setTextColorResource(R.color.color_FF222222)
         }
         binding.tvTitle.setOnSingleClickListener {
+            selectedItemId = item.id
+            notifyDataSetChanged()
             onClickListener?.invoke(item)
         }
     }

+ 7 - 17
evaluation/src/main/java/com/yingyangfly/evaluation/questionlist/QuestionListActivity.kt

@@ -1,11 +1,9 @@
 package com.yingyangfly.evaluation.questionlist
 
 import android.annotation.SuppressLint
-import android.util.Log
 import android.view.MotionEvent
 import android.view.View
 import com.alibaba.android.arouter.facade.annotation.Route
-import com.yingyangfly.baselib.base.BaseActivity
 import com.yingyangfly.baselib.db.QuestionOptionBean
 import com.yingyangfly.baselib.db.QuestionRecordsBean
 import com.yingyangfly.baselib.dialog.TipsDialog
@@ -15,7 +13,6 @@ import com.yingyangfly.baselib.ext.show
 import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.router.RouterUrlCommon
-import com.yingyangfly.baselib.utils.GsonUtil
 import com.yingyangfly.baselib.utils.RxTimer
 import com.yingyangfly.evaluation.R
 import com.yingyangfly.evaluation.adapter.QuestionListAdapter
@@ -32,6 +29,7 @@ class QuestionListActivity : BaseMVVMActivity<ActivityQuestionListBinding, Quest
     private var time: Long = 0
     private var questionIndex = 0
 
+    private var questionRecordsBean: QuestionRecordsBean? = null
     private var questionRecordsBeans = mutableListOf<QuestionRecordsBean>()
 
     private var questionOptionBeans = mutableListOf<QuestionOptionBean>()
@@ -43,6 +41,9 @@ class QuestionListActivity : BaseMVVMActivity<ActivityQuestionListBinding, Quest
         binding {
             rvSelectedItem.adapter = questionListAdapter
         }
+        questionListAdapter.onClickListener = {
+
+        }
     }
 
     @SuppressLint("ClickableViewAccessibility")
@@ -73,10 +74,6 @@ class QuestionListActivity : BaseMVVMActivity<ActivityQuestionListBinding, Quest
             if (data.isNullOrEmpty().not()) {
                 questionRecordsBeans.addAll(data!!)
             }
-            Log.e(
-                "wpp",
-                "1-------------->" + GsonUtil.GsonString(questionRecordsDao?.getAllQuestionRecordsBeanBean())
-            )
             setOptionList()
         }
     }
@@ -142,26 +139,19 @@ class QuestionListActivity : BaseMVVMActivity<ActivityQuestionListBinding, Quest
         binding {
             btnPrevious.show(questionIndex > 0)
         }
-        val questionRecordsBean = questionRecordsBeans[questionIndex]
+        questionRecordsBean = questionRecordsBeans[questionIndex]
         if (questionRecordsBean != null) {
             binding.data = questionRecordsBean
             questionOptionBeans.clear()
             if (questionOptionDao != null) {
                 val data =
-                    questionOptionDao?.getQuestionOptionBeanByQuestionId(questionRecordsBean.id)
+                    questionOptionDao?.getQuestionOptionBeanByQuestionId(questionRecordsBean?.id!!)
                 if (data.isNullOrEmpty().not()) {
-                    Log.e("wpp", "2-------------->" + GsonUtil.GsonString(data))
+                    questionListAdapter.setContent(questionRecordsBean?.selectedItemId!!)
                     questionOptionBeans.addAll(data!!)
-                } else {
-                    Log.e("wpp", "2----------------信息错误")
                 }
-            } else {
-                Log.e("wpp", "1----------------信息错误")
             }
             questionListAdapter.setData(questionOptionBeans)
-        } else {
-            Log.e("wpp", "信息错误")
         }
-
     }
 }

+ 10 - 0
evaluation/src/main/res/drawable/bg_choice_item.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+    <stroke
+        android:width="@dimen/divider_1px"
+        android:color="@color/color_FF979797" />
+    <corners android:radius="@dimen/divider_8px" />
+    <solid android:color="@color/color_FFF6F4F4" />
+</shape>

+ 21 - 10
evaluation/src/main/res/layout/activity_question_list.xml

@@ -77,18 +77,29 @@
                     app:layout_constraintStart_toStartOf="parent"
                     app:layout_constraintTop_toTopOf="parent" />
 
-                <androidx.recyclerview.widget.RecyclerView
-                    android:id="@+id/rvSelectedItem"
-                    android:layout_width="match_parent"
-                    android:layout_height="0dp"
-                    android:layout_marginStart="@dimen/divider_128px"
-                    android:layout_marginTop="@dimen/divider_82px"
-                    android:layout_marginEnd="@dimen/divider_128px"
-                    app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
-                    app:layout_constraintBottom_toTopOf="@+id/btnNext"
+                <com.google.android.material.card.MaterialCardView
+                    android:id="@+id/contentLayout"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/divider_32px"
+                    android:minWidth="@dimen/divider_834px"
+                    android:minHeight="@dimen/divider_264px"
+                    android:theme="@style/Theme.MaterialComponents.NoActionBar"
+                    app:cardBackgroundColor="@android:color/white"
+                    app:cardCornerRadius="@dimen/divider_20px"
                     app:layout_constraintEnd_toEndOf="parent"
                     app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toBottomOf="@+id/tvTopic" />
+                    app:layout_constraintTop_toBottomOf="@+id/tvTopic"
+                    app:strokeColor="@color/color_FF979797"
+                    app:strokeWidth="@dimen/divider_1px">
+
+                    <androidx.recyclerview.widget.RecyclerView
+                        android:id="@+id/rvSelectedItem"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:layout_marginBottom="@dimen/divider_23px"
+                        app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
+                </com.google.android.material.card.MaterialCardView>
 
                 <androidx.appcompat.widget.AppCompatButton
                     android:id="@+id/btnPrevious"

+ 13 - 7
evaluation/src/main/res/layout/item_question_list.xml

@@ -5,26 +5,32 @@
     tools:ignore="ResourceName">
 
     <data>
+
         <variable
             name="data"
             type="com.yingyangfly.baselib.db.QuestionOptionBean" />
     </data>
 
-    <androidx.constraintlayout.widget.ConstraintLayout
+    <LinearLayout
         android:layout_width="match_parent"
-        android:layout_height="wrap_content">
+        android:layout_height="wrap_content"
+        android:orientation="vertical">
 
         <androidx.appcompat.widget.AppCompatTextView
             android:id="@+id/tvTitle"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/divider_24px"
+            android:layout_marginTop="@dimen/divider_15px"
+            android:layout_marginEnd="@dimen/divider_24px"
+            android:background="@drawable/bg_choice_item"
+            android:gravity="center"
+            android:padding="@dimen/divider_24px"
+            android:text="@{data.getOptionVal()}"
             android:textColor="@color/color_FF222222"
             android:textSize="@dimen/divider_34px"
-            android:textStyle="bold"
-            android:text="@{data.getOptionVal()}"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent" />
+            android:textStyle="bold" />
 
-    </androidx.constraintlayout.widget.ConstraintLayout>
+    </LinearLayout>
 
 </layout>

+ 2 - 0
evaluation/src/main/res/values/colors.xml

@@ -89,4 +89,6 @@
     <color name="color_FF15C6FF" tools:ignore="ResourceName">#FF15C6FF</color>
     <color name="color_FF2B9DFF" tools:ignore="ResourceName">#FF2B9DFF</color>
     <color name="color_FFFFFFFF" tools:ignore="ResourceName">#FFFFFFFF</color>
+    <color name="color_FF222222" tools:ignore="ResourceName">#FF222222</color>
+    <color name="color_FFF6F4F4" tools:ignore="ResourceName">#FFF6F4F4</color>
 </resources>

+ 3 - 0
evaluation/src/main/res/values/dimens.xml

@@ -3,6 +3,7 @@
     <dimen name="divider_1194px" tools:ignore="ResourceName">1194px</dimen>
     <dimen name="divider_834px" tools:ignore="ResourceName">834px</dimen>
     <dimen name="divider_689px" tools:ignore="ResourceName">689px</dimen>
+    <dimen name="divider_620px" tools:ignore="ResourceName">620px</dimen>
     <dimen name="divider_616px" tools:ignore="ResourceName">616px</dimen>
     <dimen name="divider_607px" tools:ignore="ResourceName">607px</dimen>
     <dimen name="divider_606px" tools:ignore="ResourceName">606px</dimen>
@@ -83,6 +84,7 @@
     <dimen name="divider_201px" tools:ignore="ResourceName">201px</dimen>
     <dimen name="divider_200px" tools:ignore="ResourceName">200px</dimen>
     <dimen name="divider_195px" tools:ignore="ResourceName">195px</dimen>
+    <dimen name="divider_191px" tools:ignore="ResourceName">191px</dimen>
     <dimen name="divider_190px" tools:ignore="ResourceName">190px</dimen>
     <dimen name="divider_188px" tools:ignore="ResourceName">188px</dimen>
     <dimen name="divider_185px" tools:ignore="ResourceName">185px</dimen>
@@ -131,6 +133,7 @@
     <dimen name="divider_89px" tools:ignore="ResourceName">89px</dimen>
     <dimen name="divider_88px" tools:ignore="ResourceName">88px</dimen>
     <dimen name="divider_87px" tools:ignore="ResourceName">87px</dimen>
+    <dimen name="divider_86px" tools:ignore="ResourceName">86px</dimen>
     <dimen name="divider_83px" tools:ignore="ResourceName">83px</dimen>
     <dimen name="divider_82px" tools:ignore="ResourceName">82px</dimen>
     <dimen name="divider_81px" tools:ignore="ResourceName">81px</dimen>