[m1]
[1.0.2] [2s禁止开关灯、滚动设置]
This commit is contained in:
@@ -113,7 +113,7 @@ class BusPassengerFunctionSoftPresenter(view: BusPassengerFunctionSoftFragment?)
|
||||
disposeSubscribe(heaterDisposable)
|
||||
heaterDisposable = createSubscribe(2000){
|
||||
if (!OCHM1LightAirconditionDoorStatusManager.heaterStatue.isOpen&&
|
||||
OCHM1LightAirconditionDoorStatusManager.heaterStatue.windSpeed!=windSpeedCmd&&) {
|
||||
OCHM1LightAirconditionDoorStatusManager.heaterStatue.windSpeed!=windSpeedCmd) {
|
||||
ToastUtils.showShort("操作未生效,请稍后重试吧~")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.mogo.och.bus.passenger.ui
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.Color
|
||||
import android.graphics.drawable.ClipDrawable
|
||||
import android.graphics.drawable.LayerDrawable
|
||||
import android.media.AudioManager
|
||||
@@ -17,8 +16,8 @@ import androidx.recyclerview.widget.SnapHelper
|
||||
import com.mogo.commons.mvp.MvpFragment
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr
|
||||
import com.mogo.eagle.core.utilcode.util.ClickUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.och.bus.passenger.R
|
||||
import com.mogo.och.bus.passenger.bean.Temperature
|
||||
@@ -28,8 +27,12 @@ import com.mogo.och.bus.passenger.view.HorizontalDecoration
|
||||
import com.mogo.och.bus.passenger.view.PickerLayoutManager
|
||||
import com.mogo.och.common.module.utils.SoundPoolHelper
|
||||
import com.yangyakun.main.ui.loading.drawable.MineGradientDrawable
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.disposables.Disposable
|
||||
import kotlinx.android.synthetic.m1.bus_p_function_setting_soft_fragment.*
|
||||
import me.jessyan.autosize.utils.AutoSizeUtils
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
/**
|
||||
* @author: yangyakun
|
||||
@@ -44,6 +47,11 @@ class BusPassengerFunctionSoftFragment :
|
||||
|
||||
private var currentTemperature: Temperature? = null
|
||||
|
||||
private var subscribeLightTop1: Disposable? = null
|
||||
private var subscribeLightTop2: Disposable? = null
|
||||
private var subscribeAtmosphere: Disposable? = null
|
||||
|
||||
|
||||
override fun initViews() {
|
||||
rg_select_function.setOnCheckedChangeListener { group, checkedId ->
|
||||
when (checkedId) {
|
||||
@@ -157,12 +165,14 @@ class BusPassengerFunctionSoftFragment :
|
||||
pickerLayoutManager.scaleDownBy = 0.29f
|
||||
pickerLayoutManager.scaleDownDistance = 0.8f
|
||||
|
||||
val adapter = TemperatureAdapter(requireContext(), getData(), rv_aircondition_temperature)
|
||||
val data = getData()
|
||||
val adapter = TemperatureAdapter(requireContext(), data, rv_aircondition_temperature)
|
||||
val snapHelper: SnapHelper = LinearSnapHelper()
|
||||
snapHelper.attachToRecyclerView(rv_aircondition_temperature)
|
||||
rv_aircondition_temperature.layoutManager = pickerLayoutManager
|
||||
rv_aircondition_temperature.adapter = adapter
|
||||
rv_aircondition_temperature.addItemDecoration(HorizontalDecoration(15))
|
||||
HorizontalDecoration.distance = SharedPrefsMgr.getInstance(requireContext()).getInt(HorizontalDecoration.distancekey,0)
|
||||
rv_aircondition_temperature.addItemDecoration(HorizontalDecoration(15,data.size-1))
|
||||
|
||||
pickerLayoutManager.setOnScrollStopListener { view ->
|
||||
if (view is TextView) {
|
||||
@@ -186,6 +196,9 @@ class BusPassengerFunctionSoftFragment :
|
||||
|
||||
}
|
||||
}
|
||||
if(HorizontalDecoration.distance!=0){
|
||||
rv_aircondition_temperature.smoothScrollToPosition(data.size-1)
|
||||
}
|
||||
}
|
||||
|
||||
private fun getData(): MutableList<Temperature> {
|
||||
@@ -361,6 +374,12 @@ class BusPassengerFunctionSoftFragment :
|
||||
if(!buttonView.isPressed){
|
||||
return@setOnCheckedChangeListener
|
||||
}
|
||||
tv_light_top_01.isEnabled = false
|
||||
subscribeLightTop1 = Observable.timer(2000, TimeUnit.MILLISECONDS)
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe {
|
||||
tv_light_top_01.isEnabled = true
|
||||
}
|
||||
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di)
|
||||
mPresenter?.setLightData1(isChecked)
|
||||
setLightView(isChecked, tv_light_top_02.isChecked, tv_light_atmosphere.isChecked)
|
||||
@@ -369,6 +388,12 @@ class BusPassengerFunctionSoftFragment :
|
||||
if(!buttonView.isPressed){
|
||||
return@setOnCheckedChangeListener
|
||||
}
|
||||
tv_light_top_02.isEnabled = false
|
||||
subscribeLightTop2 = Observable.timer(2000, TimeUnit.MILLISECONDS)
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe {
|
||||
tv_light_top_02.isEnabled = true
|
||||
}
|
||||
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di)
|
||||
mPresenter?.setLightData2(isChecked)
|
||||
setLightView(tv_light_top_01.isChecked, isChecked, tv_light_atmosphere.isChecked)
|
||||
@@ -377,6 +402,12 @@ class BusPassengerFunctionSoftFragment :
|
||||
if(!buttonView.isPressed){
|
||||
return@setOnCheckedChangeListener
|
||||
}
|
||||
tv_light_atmosphere.isEnabled = false
|
||||
subscribeAtmosphere = Observable.timer(2000, TimeUnit.MILLISECONDS)
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe {
|
||||
tv_light_atmosphere.isEnabled = true
|
||||
}
|
||||
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di)
|
||||
mPresenter?.setAtmosphereLightData2(isChecked)
|
||||
setLightView(tv_light_top_01.isChecked, tv_light_top_02.isChecked, isChecked)
|
||||
@@ -513,6 +544,13 @@ class BusPassengerFunctionSoftFragment :
|
||||
override fun createPresenter(): BusPassengerFunctionSoftPresenter =
|
||||
BusPassengerFunctionSoftPresenter(this)
|
||||
|
||||
override fun onDestroy() {
|
||||
mPresenter?.disposeSubscribe(subscribeLightTop1)
|
||||
mPresenter?.disposeSubscribe(subscribeLightTop2)
|
||||
mPresenter?.disposeSubscribe(subscribeAtmosphere)
|
||||
super.onDestroy()
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val TAG = "BusPassengerFunctionSoftFragment"
|
||||
const val touchTagKey = 2
|
||||
|
||||
@@ -6,20 +6,26 @@ import android.view.View;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.mogo.commons.AbsMogoApplication;
|
||||
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr;
|
||||
|
||||
public class HorizontalDecoration extends RecyclerView.ItemDecoration {
|
||||
private int space = 0;
|
||||
private int shouldScrollTo = 0;
|
||||
/**
|
||||
* 第一个视图和最后一个视图偏移的距离
|
||||
*/
|
||||
private static int distance = 0;
|
||||
public static int distance = 0;
|
||||
public static String distancekey = "DISTANCEKEY";
|
||||
private static final String TAG = "HorizontalDecoration";
|
||||
|
||||
/**
|
||||
* 设置RecyclerView子视图的边距,本示例仅用于定义两个子视图之间的边距,为space*2
|
||||
* @param space 设置的边距
|
||||
*/
|
||||
public HorizontalDecoration(int space) {
|
||||
public HorizontalDecoration(int space,int shouldScrollTo) {
|
||||
this.space = space;
|
||||
this.shouldScrollTo = shouldScrollTo;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -36,7 +42,7 @@ public class HorizontalDecoration extends RecyclerView.ItemDecoration {
|
||||
* 由于此时View并未完成测量,无法基于测量获取其宽度;思路是在view绘制完成后再进行测量,并设置第一个的左边距
|
||||
*/
|
||||
if(distance <= 0){
|
||||
view.postDelayed(new Runnable() {
|
||||
view.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
distance = dtDistance(parent,view);
|
||||
@@ -46,9 +52,15 @@ public class HorizontalDecoration extends RecyclerView.ItemDecoration {
|
||||
layoutParams.setMargins(distance,0,space,0);
|
||||
childView.setLayoutParams(layoutParams);
|
||||
//打开后默认显示第一个(居中显示)
|
||||
parent.scrollToPosition(0);
|
||||
view.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
parent.smoothScrollToPosition(shouldScrollTo);
|
||||
}
|
||||
}, 500);
|
||||
SharedPrefsMgr.getInstance(AbsMogoApplication.getApp()).putInt(distancekey,distance);
|
||||
}
|
||||
},500);
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 通过设置Item左右边距实现第一个左侧和最后一个右侧设置边距,确保显示的视图位于屏幕中间
|
||||
|
||||
@@ -42,13 +42,14 @@
|
||||
android:background="@drawable/bus_p_car_speed"
|
||||
android:orientation="vertical"
|
||||
android:layout_height="@dimen/dp_152">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_speed"
|
||||
android:text="0"
|
||||
android:textSize="@dimen/dp_60"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/bus_p_m1_f5fbff"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"/>
|
||||
<TextView
|
||||
android:textSize="@dimen/dp_19"
|
||||
|
||||
Reference in New Issue
Block a user