.idea/runConfigurations.xml
File was deleted app/src/main/java/com/dollearn/student/network/Apis.kt
@@ -3,8 +3,8 @@ object Apis { private var isTest = true private const val TEST_URL = "http://vwpmxwbhv59i.guyubao.com/" //周帅内网 // private const val TEST_URL = "https://dollearn.com/api/" //外网 // private const val TEST_URL = "http://vwpmxwbhv59i.guyubao.com/" //周帅内网 private const val TEST_URL = "https://dollearn.com/api/" //外网 private const val LINE_URL = "http://8.137.22.229:56666/" //正式服 val BASE_URL = if (isTest) TEST_URL else LINE_URL app/src/main/java/com/dollearn/student/ui/home/QAActivity.kt
@@ -48,6 +48,9 @@ val indexList = arrayListOf<SortBean>() private val indexAdapter = IndexAdapter(indexList) val vp by lazy { view_pager } var recoverd = false //true已经恢复了进度,后续语音可以自动播放 override fun initClick() { tv_last.setOnClickListener { val tipDialog = TipDialog() @@ -62,8 +65,8 @@ indexList.forEach { it.status = 1 } indexAdapter.notifyDataSetChanged() data?.accuracy = 0.0 (fragments[0] as QAFragment).recover() view_pager.setCurrentItem(0,false) (fragments[0] as QAFragment).recover() } } @@ -80,8 +83,8 @@ indexAdapter.setOnItemClickListener { view, position -> val sortBean = indexList[position] if (position!=view_pager.currentItem&&(sortBean.status!=1||position == indexList.indexOf(indexList.first { it.status == 1 }))){ (fragments[position] as QAFragment).recover() view_pager.setCurrentItem(position,false) (fragments[position] as QAFragment).recover() } } } @@ -100,8 +103,8 @@ ResultActivity.startResult(this,day,week,season,4,totalCount,rightCount,data!!.data.integral,time,data!!.data.id) finish() }else{ (fragments[view_pager.currentItem+1] as QAFragment).recover() view_pager.setCurrentItem(view_pager.currentItem+1,true) (fragments[view_pager.currentItem+1] as QAFragment).recover() tv_last.visible() indexAdapter.notifyDataSetChanged() } @@ -169,6 +172,8 @@ tv_last.visible() totalCount = data?.answerNumber?:0 rightCount = data?.correctNumber?:0 EventBus.getDefault().post(EmptyEvent(Const.EventCode.RECOVERD)) recoverd = true } } app/src/main/java/com/dollearn/student/ui/home/QAFragment.kt
@@ -21,8 +21,11 @@ import com.dollearn.student.R import com.dollearn.student.utils.AudioUtils import com.dollearn.student.utils.Const import com.dollearn.student.utils.event.EmptyEvent import com.dollearn.student.utils.extention.clickDelay import kotlinx.android.synthetic.main.fragment_q_a.* import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe import org.jetbrains.anko.support.v4.dip class QAFragment:BaseFragment(), AudioUtils.OnAudioStatusUpdateListener { @@ -77,6 +80,7 @@ override fun onFirstVisibleToUser() { EventBus.getDefault().register(this) player.setOnAudioStatusUpdateListener(this) player.stopPlayMusic() handler = object : Handler(Looper.getMainLooper()){ @@ -208,14 +212,20 @@ },2000) } } } @Subscribe fun onEvent(e: EmptyEvent){ if (e.code == Const.EventCode.RECOVERD){ if (act.fragments[act.vp.currentItem] == this){ //自动播放 isAutoPlaying = 1 voiceViews.filterIndexed { index, constraintLayout -> val subject = list[index] constraintLayout.isEnabled&&subject.isQuestion == 1 }.firstOrNull()?.callOnClick() } } } /** * 恢复答案和题目ui @@ -225,6 +235,13 @@ showVoiceUi() list.forEach { it.completed = false } recoverAnswer() if (act.fragments[act.vp.currentItem] == this&&act.recoverd) { //自动播放 isAutoPlaying = 1 voiceViews.filterIndexed { index, constraintLayout -> val subject = list[index] constraintLayout.isEnabled&&subject.isQuestion == 1 }.firstOrNull()?.callOnClick() } } /** @@ -444,5 +461,6 @@ override fun onDestroy() { super.onDestroy() handler?.removeCallbacksAndMessages(null) EventBus.getDefault().unregister(this) } } app/src/main/java/com/dollearn/student/ui/home/adapter/IndexAdapter.kt
@@ -1,17 +1,37 @@ package com.dollearn.student.ui.home.adapter import android.view.View import android.widget.TextView import cn.sinata.xldutils.adapter.HFRecyclerAdapter import cn.sinata.xldutils.adapter.util.ViewHolder import cn.sinata.xldutils.gone import cn.sinata.xldutils.visible import com.dollearn.student.R import com.dollearn.student.network.entity.SortBean import org.jetbrains.anko.backgroundColorResource import org.jetbrains.anko.backgroundResource import org.jetbrains.anko.textColorResource import java.util.ArrayList class IndexAdapter(indexList: ArrayList<SortBean>):HFRecyclerAdapter<SortBean>(indexList, R.layout.item_index) { override fun onBind(holder: ViewHolder, position: Int, data: SortBean) { val tv_sort = holder.bind<TextView>(R.id.tv_sort) val bg = holder.bind<View>(R.id.bg) tv_sort.text = (position+1).toString() tv_sort.textColorResource = if (data.status == 2) R.color.textColorGreen else if (data.status == 3) R.color.colorOrange else R.color.textColor99 when(data.status){ 2->{ tv_sort.textColorResource = R.color.textColorGreen bg.backgroundResource = R.drawable.bg_white_green_line_1 } 3->{ tv_sort.textColorResource = R.color.colorOrange bg.backgroundResource = R.drawable.bg_white_orange_line_1 } else->{ tv_sort.textColorResource = R.color.textColor99 bg.backgroundResource = R.drawable.bg_white_grey_line_1 } } } } app/src/main/res/drawable/bg_orange_8dp.xml
@@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="8dp"/> <gradient android:startColor="@color/colorDeepGreen" android:endColor="@color/colorDeepGreen" android:angle="270"/> <gradient android:startColor="#FFA224" android:endColor="#F7802E" android:angle="270"/> </shape> app/src/main/res/drawable/bg_white_1dp.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="1dp"/> <solid android:color="@color/white"/> </shape> app/src/main/res/drawable/bg_white_8dp_padding.xml
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:top="4dp" android:bottom="4dp" android:left="4dp" android:right="4dp"> <item android:top="6dp" android:bottom="6dp" android:left="6dp" android:right="6dp"> <shape> <solid android:color="@color/white"/> <corners android:radius="8dp"/> app/src/main/res/drawable/bg_white_green_line_1.xml
New file @@ -0,0 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="1dp"/> <solid android:color="@color/white"/> <stroke android:color="@color/textColorGreen" android:width="1dp"/> </shape> app/src/main/res/drawable/bg_white_grey_line_1.xml
New file @@ -0,0 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="1dp"/> <solid android:color="@color/white"/> <stroke android:color="@color/textColor99" android:width="1dp"/> </shape> app/src/main/res/drawable/bg_white_orange_line_1.xml
New file @@ -0,0 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="1dp"/> <solid android:color="@color/white"/> <stroke android:color="@color/colorOrange" android:width="1dp"/> </shape> app/src/main/res/layout/activity_listen.xml
@@ -46,13 +46,11 @@ android:textStyle="bold" /> <androidx.recyclerview.widget.RecyclerView android:layout_width="wrap_content" android:layout_height="25dp" android:layout_height="29dp" android:id="@+id/rv_index" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" android:layout_marginBottom="10dp" android:background="@color/white" android:elevation="2dp" app:layout_constraintBottom_toTopOf="@id/tv_progress"/> <com.dollearn.student.views.NoScrollViewPager android:layout_width="match_parent" app/src/main/res/layout/fragment_choose_voice.xml
@@ -17,7 +17,7 @@ android:id="@+id/cl_1" android:layout_width="0dp" android:layout_height="0dp" android:padding="8dp" android:padding="10dp" app:layout_constraintDimensionRatio="333:259" android:layout_marginTop="96dp" app:layout_constraintHorizontal_chainStyle="packed" @@ -25,7 +25,7 @@ app:layout_constraintTop_toTopOf="parent" app:layout_constraintEnd_toStartOf="@id/center" android:layout_marginEnd="11dp" android:layout_marginBottom="4dp" android:layout_marginBottom="2dp" app:layout_constraintBottom_toTopOf="@id/cl_3"> <TextView android:layout_width="match_parent" @@ -94,7 +94,7 @@ android:layout_width="0dp" android:layout_height="0dp" app:layout_constraintDimensionRatio="333:259" android:padding="8dp" android:padding="10dp" app:layout_constraintStart_toEndOf="@id/center" android:layout_marginStart="8dp" android:background="@drawable/bg_white_8dp_padding" @@ -167,8 +167,8 @@ android:id="@+id/cl_3" android:layout_width="0dp" android:layout_height="0dp" android:padding="8dp" android:layout_marginBottom="10dp" android:padding="10dp" android:layout_marginBottom="8dp" app:layout_constraintStart_toStartOf="@id/cl_1" app:layout_constraintEnd_toEndOf="@id/cl_1" android:background="@drawable/bg_white_8dp_padding" @@ -241,7 +241,7 @@ android:id="@+id/cl_4" android:layout_width="0dp" android:layout_height="0dp" android:padding="8dp" android:padding="10dp" app:layout_constraintStart_toStartOf="@id/cl_2" app:layout_constraintEnd_toEndOf="@id/cl_2" android:background="@drawable/bg_white_8dp_padding" app/src/main/res/layout/item_index.xml
@@ -1,9 +1,18 @@ <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" xmlns:app="http://schemas.android.com/apk/res-auto"> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="28dp" android:layout_height="25dp" xmlns:app="http://schemas.android.com/apk/res-auto" android:background="@color/white"> android:layout_height="28dp" android:id="@+id/bg" app:layout_constraintTop_toTopOf="parent" android:background="@color/white" app:layout_constraintStart_toStartOf="parent" android:layout_marginHorizontal="2dp" android:elevation="2dp" app:layout_constraintEnd_toEndOf="parent"> <TextView android:id="@+id/tv_sort" android:layout_width="match_parent" @@ -12,10 +21,6 @@ android:gravity="center" android:textSize="14sp" android:textStyle="bold" /> <View android:layout_width="1dp" android:layout_height="match_parent" app:layout_constraintEnd_toEndOf="parent" android:id="@+id/line" android:background="@color/textColor66"/> </androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout> app/src/main/res/xml/scene_fragment_choose_voice.xml
@@ -45,9 +45,9 @@ motion:layout_constraintStart_toStartOf="@+id/cl_1" motion:layout_constraintEnd_toEndOf="@+id/cl_1" motion:layout_constraintTop_toTopOf="@+id/cl_1" android:layout_marginTop="8dp" android:layout_marginStart="4dp" android:layout_marginEnd="4dp" android:layout_marginTop="10dp" android:layout_marginStart="10dp" android:layout_marginEnd="10dp" android:layout_width="0dp" android:layout_height="40dp"/> </ConstraintSet> @@ -58,9 +58,9 @@ motion:layout_constraintEnd_toEndOf="@+id/cl_2" motion:layout_constraintTop_toTopOf="@+id/cl_2" android:layout_width="0dp" android:layout_marginTop="8dp" android:layout_marginStart="4dp" android:layout_marginEnd="4dp" android:layout_marginTop="10dp" android:layout_marginStart="10dp" android:layout_marginEnd="10dp" android:layout_height="40dp"/> </ConstraintSet> @@ -70,9 +70,9 @@ motion:layout_constraintEnd_toEndOf="@+id/cl_3" motion:layout_constraintTop_toTopOf="@+id/cl_3" android:layout_width="0dp" android:layout_marginTop="8dp" android:layout_marginStart="4dp" android:layout_marginEnd="4dp" android:layout_marginTop="10dp" android:layout_marginStart="10dp" android:layout_marginEnd="10dp" android:layout_height="40dp"/> </ConstraintSet> @@ -82,9 +82,9 @@ motion:layout_constraintEnd_toEndOf="@+id/cl_4" motion:layout_constraintTop_toTopOf="@+id/cl_4" android:layout_width="0dp" android:layout_marginTop="8dp" android:layout_marginStart="4dp" android:layout_marginEnd="4dp" android:layout_marginTop="10dp" android:layout_marginStart="10dp" android:layout_marginEnd="10dp" android:layout_height="40dp"/> </ConstraintSet> @@ -93,9 +93,9 @@ motion:layout_constraintStart_toStartOf="@+id/cl_1" motion:layout_constraintEnd_toEndOf="@+id/cl_1" motion:layout_constraintTop_toTopOf="@+id/cl_1" android:layout_marginTop="8dp" android:layout_marginStart="4dp" android:layout_marginEnd="4dp" android:layout_marginTop="10dp" android:layout_marginStart="10dp" android:layout_marginEnd="10dp" android:layout_width="0dp" android:layout_height="40dp"/> </ConstraintSet> @@ -106,9 +106,9 @@ motion:layout_constraintEnd_toEndOf="@+id/cl_2" motion:layout_constraintTop_toTopOf="@+id/cl_2" android:layout_width="0dp" android:layout_marginTop="8dp" android:layout_marginStart="4dp" android:layout_marginEnd="4dp" android:layout_marginTop="10dp" android:layout_marginStart="10dp" android:layout_marginEnd="10dp" android:layout_height="40dp"/> </ConstraintSet> @@ -118,9 +118,9 @@ motion:layout_constraintEnd_toEndOf="@+id/cl_3" motion:layout_constraintTop_toTopOf="@+id/cl_3" android:layout_width="0dp" android:layout_marginTop="8dp" android:layout_marginStart="4dp" android:layout_marginEnd="4dp" android:layout_marginTop="10dp" android:layout_marginStart="10dp" android:layout_marginEnd="10dp" android:layout_height="40dp"/> </ConstraintSet> @@ -130,9 +130,9 @@ motion:layout_constraintEnd_toEndOf="@+id/cl_4" motion:layout_constraintTop_toTopOf="@+id/cl_4" android:layout_width="0dp" android:layout_marginTop="8dp" android:layout_marginStart="4dp" android:layout_marginEnd="4dp" android:layout_marginTop="10dp" android:layout_marginStart="10dp" android:layout_marginEnd="10dp" android:layout_height="40dp"/> </ConstraintSet> @@ -141,9 +141,9 @@ motion:layout_constraintStart_toStartOf="@+id/cl_1" motion:layout_constraintEnd_toEndOf="@+id/cl_1" motion:layout_constraintTop_toTopOf="@+id/cl_1" android:layout_marginTop="8dp" android:layout_marginStart="4dp" android:layout_marginEnd="4dp" android:layout_marginTop="10dp" android:layout_marginStart="10dp" android:layout_marginEnd="10dp" android:layout_width="0dp" android:layout_height="40dp"/> </ConstraintSet> @@ -154,9 +154,9 @@ motion:layout_constraintEnd_toEndOf="@+id/cl_2" motion:layout_constraintTop_toTopOf="@+id/cl_2" android:layout_width="0dp" android:layout_marginTop="8dp" android:layout_marginStart="4dp" android:layout_marginEnd="4dp" android:layout_marginTop="10dp" android:layout_marginStart="10dp" android:layout_marginEnd="10dp" android:layout_height="40dp"/> </ConstraintSet> @@ -166,9 +166,9 @@ motion:layout_constraintEnd_toEndOf="@+id/cl_3" motion:layout_constraintTop_toTopOf="@+id/cl_3" android:layout_width="0dp" android:layout_marginTop="8dp" android:layout_marginStart="4dp" android:layout_marginEnd="4dp" android:layout_marginTop="10dp" android:layout_marginStart="10dp" android:layout_marginEnd="10dp" android:layout_height="40dp"/> </ConstraintSet> @@ -178,9 +178,9 @@ motion:layout_constraintEnd_toEndOf="@+id/cl_4" motion:layout_constraintTop_toTopOf="@+id/cl_4" android:layout_width="0dp" android:layout_marginTop="8dp" android:layout_marginStart="4dp" android:layout_marginEnd="4dp" android:layout_marginTop="10dp" android:layout_marginStart="10dp" android:layout_marginEnd="10dp" android:layout_height="40dp"/> </ConstraintSet>