diff --git a/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt b/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt index d6fde81..003e40f 100644 --- a/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt @@ -2,9 +2,19 @@ import com.casic.br.R import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.qmuiteam.qmui.widget.QMUISlider +import kotlinx.android.synthetic.main.fragment_device_waterheater_control.* +import kotlin.math.abs class ControlPageFragment : KotlinBaseFragment() { + private val kTag = "ControlPageFragment" + private val minTemp = 36 + private var maxTemp = 60 + private var currentProgress = 0 + private val timeScope = intArrayOf(30, 60, 120, 180) + private var currentTimeProgress = 0 + override fun initLayoutView(): Int = R.layout.fragment_device_waterheater_control override fun setupTopBarLayout() { @@ -12,7 +22,46 @@ } override fun initData() { + //默认选中 + modeRadioGroup.check(R.id.kitchenRadioButton) + setTemperatureScope() + setTimeScope() + modeRadioGroup.setOnCheckedChangeListener { group, checkedId -> + when (checkedId) { + R.id.kitchenRadioButton -> { + maxTemp = 60 + } + R.id.showerRadioButton -> { + maxTemp = 60 + } + R.id.tempRadioButton -> { + maxTemp = 48 + } + } + setTemperatureScope() + } + } + /** + * 设置温度范围 + * */ + private fun setTemperatureScope() { + temperatureSlider.tickCount = abs(maxTemp - minTemp) + temperatureSlider.currentProgress = currentProgress + currentTempView.text = String.format("${minTemp + currentProgress}") + minTempView.text = minTemp.toString() + maxTempView.text = maxTemp.toString() + } + + /** + * 设置定时范围 + * */ + private fun setTimeScope() { + timeSeekBar.tickCount = timeScope.size - 1 + timeSeekBar.currentProgress = currentTimeProgress + currentTimeView.text = timeScope[currentTimeProgress].toString() + minTimeView.text = "${timeScope.first()}" + maxTimeView.text = "${timeScope.last()}" } override fun observeRequestState() { @@ -20,6 +69,59 @@ } override fun initEvent() { + temperatureSlider.setCallback(object : QMUISlider.Callback { + override fun onProgressChange( + slider: QMUISlider?, progress: Int, tickCount: Int, fromUser: Boolean + ) { + currentProgress = progress + currentTempView.text = String.format("${minTemp + progress}") + } + override fun onTouchDown( + slider: QMUISlider?, progress: Int, tickCount: Int, hitThumb: Boolean + ) { + + } + + override fun onTouchUp(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } + + override fun onStartMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } + + override fun onStopMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } + }) + + timeSeekBar.setCallback(object : QMUISlider.Callback { + override fun onProgressChange( + slider: QMUISlider?, progress: Int, tickCount: Int, fromUser: Boolean + ) { + currentTimeProgress = progress + currentTimeView.text = timeScope[currentTimeProgress].toString() + } + + override fun onTouchDown( + slider: QMUISlider?, progress: Int, tickCount: Int, hitThumb: Boolean + ) { + + } + + override fun onTouchUp(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } + + override fun onStartMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } + + override fun onStopMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } + + }) } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt b/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt index d6fde81..003e40f 100644 --- a/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt +++ b/app/src/main/java/com/casic/br/fragment/waterheater/ControlPageFragment.kt @@ -2,9 +2,19 @@ import com.casic.br.R import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.qmuiteam.qmui.widget.QMUISlider +import kotlinx.android.synthetic.main.fragment_device_waterheater_control.* +import kotlin.math.abs class ControlPageFragment : KotlinBaseFragment() { + private val kTag = "ControlPageFragment" + private val minTemp = 36 + private var maxTemp = 60 + private var currentProgress = 0 + private val timeScope = intArrayOf(30, 60, 120, 180) + private var currentTimeProgress = 0 + override fun initLayoutView(): Int = R.layout.fragment_device_waterheater_control override fun setupTopBarLayout() { @@ -12,7 +22,46 @@ } override fun initData() { + //默认选中 + modeRadioGroup.check(R.id.kitchenRadioButton) + setTemperatureScope() + setTimeScope() + modeRadioGroup.setOnCheckedChangeListener { group, checkedId -> + when (checkedId) { + R.id.kitchenRadioButton -> { + maxTemp = 60 + } + R.id.showerRadioButton -> { + maxTemp = 60 + } + R.id.tempRadioButton -> { + maxTemp = 48 + } + } + setTemperatureScope() + } + } + /** + * 设置温度范围 + * */ + private fun setTemperatureScope() { + temperatureSlider.tickCount = abs(maxTemp - minTemp) + temperatureSlider.currentProgress = currentProgress + currentTempView.text = String.format("${minTemp + currentProgress}") + minTempView.text = minTemp.toString() + maxTempView.text = maxTemp.toString() + } + + /** + * 设置定时范围 + * */ + private fun setTimeScope() { + timeSeekBar.tickCount = timeScope.size - 1 + timeSeekBar.currentProgress = currentTimeProgress + currentTimeView.text = timeScope[currentTimeProgress].toString() + minTimeView.text = "${timeScope.first()}" + maxTimeView.text = "${timeScope.last()}" } override fun observeRequestState() { @@ -20,6 +69,59 @@ } override fun initEvent() { + temperatureSlider.setCallback(object : QMUISlider.Callback { + override fun onProgressChange( + slider: QMUISlider?, progress: Int, tickCount: Int, fromUser: Boolean + ) { + currentProgress = progress + currentTempView.text = String.format("${minTemp + progress}") + } + override fun onTouchDown( + slider: QMUISlider?, progress: Int, tickCount: Int, hitThumb: Boolean + ) { + + } + + override fun onTouchUp(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } + + override fun onStartMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } + + override fun onStopMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } + }) + + timeSeekBar.setCallback(object : QMUISlider.Callback { + override fun onProgressChange( + slider: QMUISlider?, progress: Int, tickCount: Int, fromUser: Boolean + ) { + currentTimeProgress = progress + currentTimeView.text = timeScope[currentTimeProgress].toString() + } + + override fun onTouchDown( + slider: QMUISlider?, progress: Int, tickCount: Int, hitThumb: Boolean + ) { + + } + + override fun onTouchUp(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } + + override fun onStartMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } + + override fun onStopMoving(slider: QMUISlider?, progress: Int, tickCount: Int) { + + } + + }) } } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_device_waterheater_control.xml b/app/src/main/res/layout/fragment_device_waterheater_control.xml index 958bc4b..285a9b2 100644 --- a/app/src/main/res/layout/fragment_device_waterheater_control.xml +++ b/app/src/main/res/layout/fragment_device_waterheater_control.xml @@ -52,6 +52,7 @@ android:textSize="@dimen/sp_14" /> + + + app:qmui_slider_bar_thumb_style_attr="QMUISliderThumbStyle" /> - + android:layout_height="wrap_content" + android:orientation="horizontal"> + + + + + + - - - + android:text="°C" /> + + + + app:qmui_slider_bar_thumb_size="@dimen/dp_25" /> - + android:text="30" + android:textColor="@color/subMainThemeColor" /> + + + + - + android:text="min" /> +