diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/OCHGradientTextView.java b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/OCHGradientTextView.java
index 914736a270..9edc1391a5 100644
--- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/OCHGradientTextView.java
+++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/OCHGradientTextView.java
@@ -1,6 +1,7 @@
package com.mogo.och.common.module.wigets;
import android.content.Context;
+import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.LinearGradient;
import android.graphics.Paint;
@@ -10,6 +11,8 @@ import android.util.AttributeSet;
import androidx.appcompat.widget.AppCompatTextView;
+import com.mogo.och.common.module.R;
+
/**
* 通用渐变文字
* @author: wangmingjun
@@ -30,6 +33,8 @@ public class OCHGradientTextView extends AppCompatTextView {
private float mdy;
private int mColor;
+ private int ochgravity = 1;
+
public OCHGradientTextView(Context context) {
this(context, null);
}
@@ -39,6 +44,11 @@ public class OCHGradientTextView extends AppCompatTextView {
super(context, attrs);
//设置默认的颜色
mColorList = new int[]{0xFFFFFFFF, 0xFFFFFFF};
+
+ TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.OCHGradientTextView);
+
+ ochgravity = array.getInt(R.styleable.OCHGradientTextView_ochgravity, 1);
+ array.recycle();
}
@@ -60,7 +70,11 @@ public class OCHGradientTextView extends AppCompatTextView {
mPaint.setShadowLayer(mRadius, mdx, mdy, mColor);
//画出文字
- canvas.drawText(mTipText, getMeasuredWidth() / 2.0f - mTextBound.width() / 2.0f, getMeasuredHeight() / 2.0f + mTextBound.height() / 2.0f, mPaint);
+ if(ochgravity==1) {
+ canvas.drawText(mTipText, getMeasuredWidth() / 2.0f - mTextBound.width() / 2.0f, getMeasuredHeight() / 2.0f + mTextBound.height() / 2.0f, mPaint);
+ }else if(ochgravity==0){
+ canvas.drawText(mTipText, 0f, getMeasuredHeight() / 2.0f + mTextBound.height() / 2.0f-mTextBound.bottom, mPaint);
+ }
}
/**
diff --git a/OCH/common/common/src/main/res/values/attrs.xml b/OCH/common/common/src/main/res/values/attrs.xml
index 5b122d83ed..50c372ffe9 100644
--- a/OCH/common/common/src/main/res/values/attrs.xml
+++ b/OCH/common/common/src/main/res/values/attrs.xml
@@ -14,6 +14,10 @@
+
+
+
+
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/LineView.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/LineView.kt
index d5056cdc90..10894dc80b 100644
--- a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/LineView.kt
+++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/LineView.kt
@@ -8,11 +8,14 @@ import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.findViewTreeViewModelStoreOwner
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
+import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
+import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.common.module.wigets.WrapContentLinearLayoutManager
import com.mogo.och.data.bean.BusStationBean
import com.mogo.och.shuttle.weaknet.passenger.R
import com.mogo.och.shuttle.weaknet.passenger.ui.line.lineinfo.item.StationAdapter
+import kotlinx.android.synthetic.main.m2_line_view.view.autoplit_info
import kotlinx.android.synthetic.main.m2_line_view.view.ll_station_container
class LineView : ConstraintLayout, LineViewModel.LineViewCallback {
@@ -46,7 +49,15 @@ class LineView : ConstraintLayout, LineViewModel.LineViewCallback {
// AutoSizeUtils.dp2px(context,20f)
// )
// )
+ autoplit_info.onClick {
+ updateRemainMt("12公里","25分钟")
+ }
ll_station_container.setAdapter(mAdapter)
+
+ ll_station_container.itemAnimator?.addDuration = 0;
+ ll_station_container.itemAnimator?.changeDuration = 0;
+ ll_station_container.itemAnimator?.moveDuration = 0;
+ ll_station_container.itemAnimator?.removeDuration = 0;
}
override fun onAttachedToWindow() {
@@ -74,5 +85,11 @@ class LineView : ConstraintLayout, LineViewModel.LineViewCallback {
mAdapter.submitList(stations)
}
+ override fun updateRemainMt(distance: String, time: String) {
+ BizLoopManager.runInMainThread{
+ mAdapter.notifyDistanceAndTime(distance,time)
+ }
+ }
+
}
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/LineViewModel.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/LineViewModel.kt
index db5c8369c0..334d7d5ab4 100644
--- a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/LineViewModel.kt
+++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/LineViewModel.kt
@@ -4,10 +4,13 @@ import androidx.lifecycle.ViewModel
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
import com.mogo.och.common.module.manager.loop.BizLoopManager
+import com.mogo.och.common.module.utils.NumberFormatUtil
import com.mogo.och.data.bean.BusStationBean
import com.mogo.och.shuttle.weaknet.passenger.callback.ICommonCallback
import com.mogo.och.shuttle.weaknet.passenger.model.CommonModel
import io.reactivex.disposables.Disposable
+import kotlin.math.ceil
+import kotlin.math.roundToInt
/**
* @author XuXinChao
@@ -39,8 +42,32 @@ class LineViewModel : ViewModel(), ICommonCallback {
}
}
+ override fun updateRemainMT(meters: Long, timeInSecond: Long) {
+ super.updateRemainMT(meters, timeInSecond)
+ var disUnit = "公里"
+ var remainDis: String? = "0"
+
+ if (meters > 0) {
+ if (meters / 1000 < 1) {
+ disUnit = "米"
+ remainDis = meters.toFloat().roundToInt().toString()
+ } else {
+ disUnit = "公里"
+ remainDis = NumberFormatUtil.formatLong(meters.toDouble() / 1000)
+ }
+ }
+
+ val time = ceil(timeInSecond / 60f).toInt()
+
+// "$remainDis$disUnit".also { tv_distance.text = it }
+// "${time}分钟".also { tv_left_time.text = it }
+
+ this.viewCallback?.updateRemainMt("$remainDis$disUnit","${time}分钟")
+ }
+
interface LineViewCallback{
fun updateLineStations(stations: MutableList?)
+ fun updateRemainMt(distance: String, time: String)
}
}
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/item/StationAdapter.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/item/StationAdapter.kt
index b8b98736d1..961da95497 100644
--- a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/item/StationAdapter.kt
+++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/item/StationAdapter.kt
@@ -13,6 +13,8 @@ class StationAdapter : ListAdapter(MessageDif
var showPassOmit = false
var showFuluterOmit = false
+ var distanceAndTime = ""
+
override fun submitList(list: MutableList?) {
val newDataList = mutableListOf()
list?.let {
@@ -80,13 +82,13 @@ class StationAdapter : ListAdapter(MessageDif
}
}
}
-
+ distanceAndTime = ""
super.submitList(newDataList)
}
override fun onBindViewHolder(holder: StationViewHolder, position: Int) {
getItem(position)?.let {
- holder.bind(it)
+ holder.bind(it,distanceAndTime)
}
}
@@ -168,4 +170,9 @@ class StationAdapter : ListAdapter(MessageDif
super.onViewRecycled(holder)
holder.viewRecycled(holder)
}
+
+ fun notifyDistanceAndTime(distance: String, time: String) {
+ distanceAndTime = "${distance}·${time}"
+ notifyItemChanged(currentIndex)
+ }
}
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/item/StationViewHolder.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/item/StationViewHolder.kt
index 55b7d6f6f0..5c987951d6 100644
--- a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/item/StationViewHolder.kt
+++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/item/StationViewHolder.kt
@@ -12,7 +12,7 @@ import java.util.Locale
abstract class StationViewHolder(view: View) : RecyclerView.ViewHolder(view) {
- abstract fun bind(item: BusStationBean)
+ abstract fun bind(item: BusStationBean,distanceAndView:String)
open fun viewRecycled(holder: StationViewHolder){}
private val sampleDateFormat = SimpleDateFormat("HH:mm", Locale.CHINA)
protected val TAG = javaClass.simpleName
@@ -34,45 +34,51 @@ abstract class StationViewHolder(view: View) : RecyclerView.ViewHolder(view) {
class NormalStationStartViewHolder(binding: View) : StationViewHolder(binding) {
private var startStaionName: AppCompatTextView = binding.findViewById(R.id.actv_normal_station_start)
- override fun bind(item: BusStationBean) {
+ override fun bind(item: BusStationBean,distanceAndView:String) {
startStaionName.text = item.name
}
}
class NormalStationEndViewHolder(binding: View) : StationViewHolder(binding) {
private var endStaionName: AppCompatTextView = binding.findViewById(R.id.actv_normal_station_end)
- override fun bind(item: BusStationBean) {
+ override fun bind(item: BusStationBean,distanceAndView:String) {
endStaionName.text = item.name
}
}
class NormalStationPassViewHolder(binding: View) : StationViewHolder(binding) {
private var passStaionName: AppCompatTextView = binding.findViewById(R.id.actv_normal_station_pass)
- override fun bind(item: BusStationBean) {
+ override fun bind(item: BusStationBean,distanceAndView:String) {
passStaionName.text = item.name
}
}
class NormalStationFutureViewHolder(binding: View) : StationViewHolder(binding) {
private var futureStaionName: AppCompatTextView = binding.findViewById(R.id.actv_normal_station_future)
- override fun bind(item: BusStationBean) {
+ override fun bind(item: BusStationBean,distanceAndView:String) {
futureStaionName.text = item.name
}
}
-class CurrentStationViewHolder(val binding: View) : StationViewHolder(binding) {
+class CurrentStationViewHolder(binding: View) : StationViewHolder(binding) {
private var currentStaionName: OCHGradientTextView = binding.findViewById(R.id.och_current_station_name)
- override fun bind(item: BusStationBean) {
- currentStaionName.text = item.name
+ private var actv_distance: AppCompatTextView = binding.findViewById(R.id.actv_distance)
+ override fun bind(item: BusStationBean,distanceAndView:String) {
+ var text = item.name
+ if(text.length>12){
+ text = text.slice(0..10)+"…"
+ }
+ currentStaionName.text = text
currentStaionName.setVertrial(true)
val intArrayOf = intArrayOf(
ResourcesUtils.getColor(R.color.shuttle_p_m2_color_43cefe),
ResourcesUtils.getColor(R.color.shuttle_p_m2_color_1466fb),
)
currentStaionName.setmColorList(intArrayOf)
+ actv_distance.text = distanceAndView
}
}
class CurrentStationStartViewHolder(binding: View) : StationViewHolder(binding) {
private var currentStaionStartName: OCHGradientTextView = binding.findViewById(R.id.och_current_station_start_name)
- override fun bind(item: BusStationBean) {
+ override fun bind(item: BusStationBean,distanceAndView:String) {
currentStaionStartName.text = item.name
val intArrayOf = intArrayOf(
ResourcesUtils.getColor(R.color.shuttle_p_m2_color_43cefe),
@@ -83,19 +89,25 @@ class CurrentStationStartViewHolder(binding: View) : StationViewHolder(binding)
}
class CurrentStationEndViewHolder(binding: View) : StationViewHolder(binding) {
private var currentStaionEndName: OCHGradientTextView = binding.findViewById(R.id.och_current_station_end_name)
- override fun bind(item: BusStationBean) {
- currentStaionEndName.text = item.name
+ private var actv_distance_end: AppCompatTextView = binding.findViewById(R.id.actv_distance_end)
+ override fun bind(item: BusStationBean,distanceAndView:String) {
+ var text = item.name
+ if(text.length>12){
+ text = text.slice(0..10)+"…"
+ }
+ currentStaionEndName.text = text
val intArrayOf = intArrayOf(
ResourcesUtils.getColor(R.color.shuttle_p_m2_color_43cefe),
ResourcesUtils.getColor(R.color.shuttle_p_m2_color_1466fb),
)
currentStaionEndName.setmColorList(intArrayOf)
+ actv_distance_end.text = distanceAndView
}
}
-class OmitPassViewHolder(val binding: View) : StationViewHolder(binding) {
+class OmitPassViewHolder(binding: View) : StationViewHolder(binding) {
private var omitCout: AppCompatTextView = binding.findViewById(R.id.actv_pass_omit_cout)
- override fun bind(item: BusStationBean) {
+ override fun bind(item: BusStationBean,distanceAndView:String) {
if(item is StationBeanOmit){
omitCout.text = "${item.coutOmit}站"
}
@@ -103,7 +115,7 @@ class OmitPassViewHolder(val binding: View) : StationViewHolder(binding) {
}
class OmitFutureViewHolder(binding: View) : StationViewHolder(binding) {
private var omitCout: AppCompatTextView = binding.findViewById(R.id.actv_future_omit_count)
- override fun bind(item: BusStationBean) {
+ override fun bind(item: BusStationBean,distanceAndView:String) {
if(item is StationBeanOmit){
omitCout.text = "${item.coutOmit}站"
}
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_line_view.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_line_view.xml
index b1a14204db..a9907a41c1 100644
--- a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_line_view.xml
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_line_view.xml
@@ -12,11 +12,14 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
- android:layout_width="@dimen/dp_762"
+ app:layout_constraintEnd_toStartOf="@+id/autoplit_info"
+ android:layout_marginEnd="@dimen/dp_41"
+ android:layout_width="0dp"
android:layout_height="wrap_content"/>
@@ -42,14 +42,32 @@
+
+
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_current_start_view.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_current_start_view.xml
index 509027636f..8746348e8b 100644
--- a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_current_start_view.xml
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_current_start_view.xml
@@ -3,7 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:background="@color/b2_95B1D6"
- android:layout_width="@dimen/dp_764"
+ android:layout_width="match_parent"
android:layout_height="@dimen/dp_68"
tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout">
@@ -37,7 +37,6 @@
android:layout_height="@dimen/dp_60"/>
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_current_view.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_current_view.xml
index d57c2778c9..5cf12a4f24 100644
--- a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_current_view.xml
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_current_view.xml
@@ -3,7 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:background="@color/b2_95B1D6"
- android:layout_width="@dimen/dp_764"
+ android:layout_width="match_parent"
android:layout_height="@dimen/dp_68"
tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout">
@@ -49,14 +49,30 @@
+
+
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_normal_end_view.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_normal_end_view.xml
index 8068a83515..e0b8e26ede 100644
--- a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_normal_end_view.xml
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_normal_end_view.xml
@@ -3,7 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"
- android:layout_width="@dimen/dp_764"
+ android:layout_width="match_parent"
android:layout_height="@dimen/dp_68">
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_omit_view_pass.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_omit_view_pass.xml
index e5a972d76e..723b492859 100644
--- a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_omit_view_pass.xml
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_omit_view_pass.xml
@@ -3,7 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"
- android:layout_width="@dimen/dp_764"
+ android:layout_width="match_parent"
android:layout_height="@dimen/dp_68">