lmw
5 小时以前 b6d14ec6c19cddb1c8caf1d024e77d250a203929
save
1个文件已删除
10个文件已修改
4个文件已添加
231 ■■■■■ 已修改文件
.idea/runConfigurations.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dollearn/student/network/Apis.kt 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dollearn/student/ui/home/QAActivity.kt 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dollearn/student/ui/home/QAFragment.kt 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dollearn/student/ui/home/adapter/IndexAdapter.kt 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/bg_orange_8dp.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/bg_white_1dp.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/bg_white_8dp_padding.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/bg_white_green_line_1.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/bg_white_grey_line_1.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/bg_white_orange_line_1.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_listen.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/fragment_choose_voice.xml 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/item_index.xml 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/xml/scene_fragment_choose_voice.xml 72 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.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)
            }
        }
        isAutoPlaying = 1
        voiceViews.filterIndexed { index, constraintLayout ->
            val subject = list[index]
            constraintLayout.isEnabled&&subject.isQuestion == 1
        }.firstOrNull()?.callOnClick()
    }
    @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,21 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="28dp"
    android:layout_height="25dp"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:background="@color/white">
    <TextView
        android:id="@+id/tv_sort"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="1"
        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"/>
    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="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"
            android:layout_height="match_parent"
            android:text="1"
            android:gravity="center"
            android:textSize="14sp"
            android:textStyle="bold" />
    </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>