From bb8c0ba89475f6fdebfb0f412a8a6525bb688717 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 29 Apr 2025 18:53:20 +0800 Subject: [PATCH] =?UTF-8?q?[8.0.0]=20[fea]=20[=E5=92=A8=E8=AF=A2=E5=88=97?= =?UTF-8?q?=E8=A1=A8]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/rootview/RootViewConstrainLayout.kt | 10 +- .../passenger/ui/video/InfoVideoView.kt | 187 ++------------- .../ui/video/RecyclerVideoAdapterNew.kt | 80 +++++++ .../ui/video/RoundedViewConstrainLayout.kt | 35 +++ .../ui/video/SpacesItemDecoration.java | 37 +++ .../widget/indicator/IndicatorView.kt | 68 ------ .../annotation/AIndicatorOrientation.kt | 17 -- .../annotation/AIndicatorSlideMode.kt | 19 -- .../indicator/annotation/AIndicatorStyle.kt | 15 -- .../indicator/base/BaseIndicatorView.kt | 203 ---------------- .../widget/indicator/base/IIndicator.kt | 16 -- .../widget/indicator/drawer/BaseDrawer.kt | 93 -------- .../widget/indicator/drawer/CircleDrawer.kt | 156 ------------- .../widget/indicator/drawer/DashDrawer.kt | 20 -- .../widget/indicator/drawer/DrawerFactory.kt | 21 -- .../widget/indicator/drawer/DrawerProxy.kt | 48 ---- .../widget/indicator/drawer/IDrawer.kt | 27 --- .../widget/indicator/drawer/RectDrawer.kt | 219 ------------------ .../indicator/drawer/RoundRectDrawer.kt | 38 --- .../indicator/enums/IndicatorOrientation.kt | 16 -- .../indicator/enums/IndicatorSlideMode.kt | 17 -- .../widget/indicator/enums/IndicatorStyle.kt | 15 -- .../indicator/option/AttrsController.java | 38 --- .../indicator/option/IndicatorOptions.kt | 113 --------- .../widget/indicator/utils/IndicatorUtils.kt | 31 --- .../taxi_p_music_list_playing.png | Bin 872 -> 840 bytes .../res/layout/taxt_u_p_list_video_item.xml | 56 +++++ .../res/layout/taxt_u_p_mogo_video_layout.xml | 26 +-- .../src/main/res/values/colors.xml | 1 + .../com/mogo/launcher/MogoApplication.java | 10 +- 30 files changed, 249 insertions(+), 1383 deletions(-) create mode 100644 OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/RecyclerVideoAdapterNew.kt create mode 100644 OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/RoundedViewConstrainLayout.kt create mode 100644 OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/SpacesItemDecoration.java delete mode 100644 OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/IndicatorView.kt delete mode 100644 OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/annotation/AIndicatorOrientation.kt delete mode 100644 OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/annotation/AIndicatorSlideMode.kt delete mode 100644 OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/annotation/AIndicatorStyle.kt delete mode 100644 OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/base/BaseIndicatorView.kt delete mode 100644 OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/base/IIndicator.kt delete mode 100644 OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/BaseDrawer.kt delete mode 100644 OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/CircleDrawer.kt delete mode 100644 OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/DashDrawer.kt delete mode 100644 OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/DrawerFactory.kt delete mode 100644 OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/DrawerProxy.kt delete mode 100644 OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/IDrawer.kt delete mode 100644 OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/RectDrawer.kt delete mode 100644 OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/RoundRectDrawer.kt delete mode 100644 OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/enums/IndicatorOrientation.kt delete mode 100644 OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/enums/IndicatorSlideMode.kt delete mode 100644 OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/enums/IndicatorStyle.kt delete mode 100644 OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/option/AttrsController.java delete mode 100644 OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/option/IndicatorOptions.kt delete mode 100644 OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/utils/IndicatorUtils.kt create mode 100644 OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_list_video_item.xml diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/rootview/RootViewConstrainLayout.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/rootview/RootViewConstrainLayout.kt index eaa14c13c7..07b13ff122 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/rootview/RootViewConstrainLayout.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/rootview/RootViewConstrainLayout.kt @@ -48,15 +48,18 @@ class RootViewConstrainLayout : ConstraintLayout { event?.let { if (it.action==MotionEvent.ACTION_DOWN) { val needInterceptLight = needIntercept(it, light_setting)// + val needInterceptLightCheckBox = needIntercept(it, cb_setting_light)// - if(needInterceptLight){ + if(needInterceptLight&&needInterceptLightCheckBox){ if(cb_setting_light?.isChecked==true){ cb_setting_light?.isChecked = false } } val needInterceptVoice = needIntercept(it, voice_setting)// - if(needInterceptVoice){ + val pressCbSettingVoice = needIntercept(it, cb_setting_voice)// + + if(needInterceptVoice&&pressCbSettingVoice){ if(cb_setting_voice?.isChecked==true){ cb_setting_voice?.isChecked = false } @@ -68,6 +71,9 @@ class RootViewConstrainLayout : ConstraintLayout { return super.onInterceptTouchEvent(event) } + /** + * event 事件 落在了view 外部 + */ private fun needIntercept(event: MotionEvent,view: View?):Boolean { view?.apply { val location = IntArray(2) diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/InfoVideoView.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/InfoVideoView.kt index 0e7df5a5de..96c11e7844 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/InfoVideoView.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/InfoVideoView.kt @@ -1,10 +1,8 @@ package com.mogo.och.unmanned.passenger.ui.video import android.content.Context -import android.graphics.Color import android.util.AttributeSet import android.view.LayoutInflater -import android.view.View import android.widget.FrameLayout import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.view.isVisible @@ -12,6 +10,7 @@ import androidx.recyclerview.widget.RecyclerView import com.mogo.eagle.core.function.main.MainMoGoApplication import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.och.common.module.wigets.WrapContentLinearLayoutManager import com.mogo.och.common.module.wigets.media.IMediaDataSourceListener import com.mogo.och.common.module.wigets.media.MediaDataSourceManager import com.mogo.och.common.module.wigets.media.MediaFileCacheManager @@ -20,16 +19,9 @@ import com.mogo.och.common.module.wigets.media.MediaPlayLogger import com.mogo.och.unmanned.passenger.bean.TaxiPassengerVideoPlay import com.mogo.och.unmanned.taxi.passenger.R import com.mogo.och.unmanned.passenger.ui.video.layoutmanage.CarouselLayoutManager -import com.mogo.och.unmanned.passenger.ui.video.layoutmanage.CarouselZoomPostLayoutListener -import com.mogo.och.unmanned.passenger.ui.video.layoutmanage.CenterScrollListener import com.mogo.och.unmanned.passenger.widget.ConsultVideoPlayer -import com.mogo.och.unmanned.passenger.widget.indicator.IndicatorView -import com.mogo.och.unmanned.passenger.widget.indicator.enums.IndicatorOrientation -import com.mogo.och.unmanned.passenger.widget.indicator.enums.IndicatorSlideMode -import com.mogo.och.unmanned.passenger.widget.indicator.enums.IndicatorStyle import com.shuyu.gsyvideoplayer.GSYVideoManager -import com.shuyu.gsyvideoplayer.video.base.GSYVideoView -import kotlin.math.floor +import kotlinx.android.synthetic.main.taxt_u_p_mogo_video_layout.view.infoVideoPlaylist /** * @author ChenFufeng @@ -39,7 +31,7 @@ internal class InfoVideoView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 -) : FrameLayout( +) : ConstraintLayout( context, attrs, defStyleAttr @@ -49,33 +41,31 @@ internal class InfoVideoView @JvmOverloads constructor( private const val TAG = "VideoView" } + private val mediaList = mutableListOf() + //新的数据,在view不展示的时候完成新数据更新 + private val mNewMediaList = mutableListOf() + + init { LayoutInflater.from(context).inflate(R.layout.taxt_u_p_mogo_video_layout, this, true) initView() } - private var rvVideoPlaylist: RecyclerView? = null - private lateinit var indicatorView: IndicatorView - private lateinit var clContain: ConstraintLayout - private val mediaList = mutableListOf() - //新的数据,在view不展示的时候完成新数据更新 - private val mNewMediaList = mutableListOf() fun exitFullScreenMode(resetVideoPlayer: Boolean) { - val carouselLayoutManager = rvVideoPlaylist?.layoutManager as CarouselLayoutManager - val (_: Int, player) = getPlayer(carouselLayoutManager) - player?.let { - it.exitFullScreenMode() - it.onVideoPause() - if (resetVideoPlayer) { - it.onVideoReset() - } - } + val carouselLayoutManager = infoVideoPlaylist.layoutManager as CarouselLayoutManager +// val (_: Int, player) = getPlayer(carouselLayoutManager) +// player?.let { +// it.exitFullScreenMode() +// it.onVideoPause() +// if (resetVideoPlayer) { +// it.onVideoReset() +// } +// } } override fun onAttachedToWindow() { super.onAttachedToWindow() - initData() MediaFileCacheManager.createFileCacheDir(MainMoGoApplication.getApp().applicationContext) MediaDataSourceManager.init(TAG, object : IMediaDataSourceListener { override fun onMediaDataSourceChanged(list: List) { @@ -110,138 +100,16 @@ internal class InfoVideoView @JvmOverloads constructor( private fun updateMediaListDataAndView(newList: MutableList) { mediaList.clear() mediaList.addAll(newList) + mediaList.addAll(newList) UiThreadHandler.post { - initData() - } - } - - override fun onVisibilityChanged(changedView: View, visibility: Int) { - super.onVisibilityChanged(changedView, visibility) - if (changedView != this) { - return - } - val carouselLayoutManager = rvVideoPlaylist?.layoutManager as CarouselLayoutManager - val (_: Int, player) = getPlayer(carouselLayoutManager) - when (visibility) { - View.VISIBLE -> { - player?.let { - if (!player.isIfCurrentIsFullscreen) { - when (player.currentState) { - GSYVideoView.CURRENT_STATE_PAUSE -> { - //player.onVideoResume(false) - } - - else -> {} - } - } - } - } - - else -> { - player?.let { - if (!player.isIfCurrentIsFullscreen) { - player.onVideoPause() - } - } - try { - // 在播放完成的时机更新整体数据 - if (mNewMediaList.isNotEmpty()) { - updateMediaListDataAndView(mNewMediaList) - mNewMediaList.clear() - MediaPlayLogger.printInfoLog("onVisibilityChanged, 宣传视频数据已更新") - } - } catch (e: Exception) { - e.printStackTrace() - } - } + initView() } } private fun initView() { - rvVideoPlaylist = findViewById(R.id.infoVideoPlaylist) - indicatorView = findViewById(R.id.infoIndicatorView) - clContain = findViewById(R.id.infoContainer) - } - - private fun initData() { - val carouselLayoutManager = - CarouselLayoutManager( - CarouselLayoutManager.HORIZONTAL, - true - ) - carouselLayoutManager.setPostLayoutListener(CarouselZoomPostLayoutListener()) - carouselLayoutManager.maxVisibleItems = 1 - indicatorView.notifyDataChanged(mediaList.size) - indicatorView.setSlideMode(IndicatorSlideMode.SCALE) - indicatorView.setOrientation(IndicatorOrientation.INDICATOR_HORIZONTAL) - indicatorView.setIndicatorStyle(IndicatorStyle.ROUND_RECT) - indicatorView.setSliderColor( - Color.parseColor("#80FFFFFF"), Color.parseColor("#3FACFD"), - Color.parseColor("#3FACFD") - ) - indicatorView.setSliderWidth(9f, 54f) - indicatorView.setSliderHeight(9f) - indicatorView.setSliderGap(36f) - rvVideoPlaylist?.addOnScrollListener(object : CenterScrollListener() { - var prePlayerPosition = 0 - override fun pageSelect(recyclerView: RecyclerView?, newState: Int) { - //播放视频 - val (centerItemPosition: Int, player) = getPlayer(carouselLayoutManager) - indicatorView.onPageSelected(centerItemPosition) - if (player is ConsultVideoPlayer) { - if (prePlayerPosition != centerItemPosition) { - if (player.currentState == GSYVideoView.CURRENT_STATE_PAUSE) { - player.onVideoReset() - } - val playerHolder = - carouselLayoutManager.findViewByPosition(prePlayerPosition) - val prePlayer = - playerHolder?.findViewById(R.id.video_item_player) - prePlayer?.onVideoReset() - } else { - player.onVideoResume(false) - } - } - prePlayerPosition = centerItemPosition - MediaPlayLogger.printInfoLog("pageSelect, currentPosition=$prePlayerPosition") - } - - override fun pageStop() { - val (_: Int, player) = getPlayer(carouselLayoutManager) - if (player is ConsultVideoPlayer) { - player.onVideoPause() - } - } - }) - carouselLayoutManager.addOnDargAutoDiffListener { adapterPosition, currentPosition -> - val fl = adapterPosition - floor(adapterPosition) - var currentIndex = currentPosition - if (fl > 0.5) { - if (currentPosition == 0) { - currentIndex = rvVideoPlaylist?.adapter!!.itemCount - 1 - } else { - currentIndex -= 1 - } - } - indicatorView.onPageScrolled(currentIndex, fl, 0) - } - val recyclerVideoAdapter = - RecyclerVideoAdapter( - context, - mediaList, - rvVideoPlaylist - ) - recyclerVideoAdapter.setOnThumbImageClilckListener { - val (_: Int, player) = getPlayer(carouselLayoutManager) - if (player is ConsultVideoPlayer) { - player.onVideoReset() - player.thumbImageViewLayout.visibility = View.VISIBLE - } - rvVideoPlaylist?.smoothScrollToPosition(it) - } - rvVideoPlaylist?.layoutManager = carouselLayoutManager - rvVideoPlaylist?.setHasFixedSize(true) - rvVideoPlaylist?.adapter = recyclerVideoAdapter + infoVideoPlaylist.layoutManager = WrapContentLinearLayoutManager(context,RecyclerView.VERTICAL,false) + infoVideoPlaylist.addItemDecoration(SpacesItemDecoration(40, 140)) + infoVideoPlaylist.adapter = RecyclerVideoAdapterNew(context, mediaList) } private fun getPlayer(carouselLayoutManager: CarouselLayoutManager): Pair { @@ -251,17 +119,6 @@ internal class InfoVideoView @JvmOverloads constructor( return Pair(centerItemPosition, player) } - override fun onWindowFocusChanged(hasWindowFocus: Boolean) { - super.onWindowFocusChanged(hasWindowFocus) - val carouselLayoutManager = rvVideoPlaylist?.layoutManager as CarouselLayoutManager - val (_: Int, player) = getPlayer(carouselLayoutManager) - player?.let { - if (it.isInPlayingState && !it.isIfCurrentIsFullscreen && !hasWindowFocus) { - player.onVideoPause() - } - } - } - override fun onDetachedFromWindow() { MediaDataSourceManager.unInit(TAG) GSYVideoManager.releaseAllVideos() diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/RecyclerVideoAdapterNew.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/RecyclerVideoAdapterNew.kt new file mode 100644 index 0000000000..3529ed15eb --- /dev/null +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/RecyclerVideoAdapterNew.kt @@ -0,0 +1,80 @@ +package com.mogo.och.unmanned.passenger.ui.video + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.appcompat.widget.AppCompatImageView +import androidx.appcompat.widget.AppCompatTextView +import androidx.recyclerview.widget.RecyclerView +import com.bumptech.glide.Glide +import com.bumptech.glide.request.RequestOptions +import com.mogo.och.common.module.wigets.media.MediaItem +import com.mogo.och.unmanned.passenger.bean.TaxiPassengerVideoPlay +import com.mogo.och.unmanned.taxi.passenger.R +import com.mogo.skin.utils.SkinResources +import me.jessyan.autosize.AutoSizeCompat + +class RecyclerVideoAdapterNew( + private val context: Context, + private val itemDataList: MutableList +) : RecyclerView.Adapter() { + private var onThumbImageClilckListener: OnThumbImageClilckListener? = null + + + val placeholderDrawable = SkinResources.getInstance().getDrawable(R.drawable.road_video_bg) + + fun setOnThumbImageClilckListener(onThumbImageClilckListener: OnThumbImageClilckListener?) { + this.onThumbImageClilckListener = onThumbImageClilckListener + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SwitchLineViewHolder { + val v = LayoutInflater.from(context).inflate(R.layout.taxt_u_p_list_video_item, parent, false) + return SwitchLineViewHolder(v) + } + + override fun onBindViewHolder(holder: SwitchLineViewHolder, position: Int) { + + AutoSizeCompat.autoConvertDensityOfGlobal(holder.itemView.resources) + + val taxiPassengerVideoPlay = itemDataList[position] + val isVideo = taxiPassengerVideoPlay.type == MediaItem.MEDIA_TYPE_VIDEO + + holder.adName.setText(taxiPassengerVideoPlay.title) + + val imageUrl = if (isVideo) { + taxiPassengerVideoPlay.imageUrl + } else { + taxiPassengerVideoPlay.url + } + + Glide.with(context) + .load(imageUrl) + .apply(RequestOptions().placeholder(placeholderDrawable).centerCrop()) + .into(holder.adHeader); + + } + + override fun getItemCount(): Int { + return itemDataList.size + } + + override fun getItemViewType(position: Int): Int { + return 1 + } + + class SwitchLineViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + val adHeader: AppCompatImageView = itemView.findViewById(R.id.video_item_image)//线路名称 + val adName: AppCompatTextView = itemView.findViewById(R.id.actv_video_head)//线路名称 + val isPlaying: AppCompatImageView = itemView.findViewById(R.id.aciv_playing_bar) //终点 + } + + + interface OnThumbImageClilckListener { + fun onDxChanged(targetPosition: Int) + } + + companion object { + private const val TAG = "RecyclerVideoAdapter" + } +} diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/RoundedViewConstrainLayout.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/RoundedViewConstrainLayout.kt new file mode 100644 index 0000000000..3b992d1a76 --- /dev/null +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/RoundedViewConstrainLayout.kt @@ -0,0 +1,35 @@ +package com.mogo.och.unmanned.passenger.ui.video + +import android.content.Context +import android.util.AttributeSet +import android.view.MotionEvent +import android.view.View +import android.widget.CheckBox +import androidx.constraintlayout.widget.ConstraintLayout +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.widget.media.video.TextureVideoViewOutlineProvider +import com.mogo.och.unmanned.taxi.passenger.R +import me.jessyan.autosize.utils.AutoSizeUtils + +class RoundedViewConstrainLayout : ConstraintLayout { + + private val TAG = "LockView" + + constructor(context: Context) : super(context) + + constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet) + + constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super( + context, + attributeSet, + defStyleAttr + ) + + override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) { + super.onSizeChanged(w, h, oldw, oldh) + this.outlineProvider = TextureVideoViewOutlineProvider(AutoSizeUtils.dp2px(context,36f).toFloat()) + this.clipToOutline = true + } + + +} \ No newline at end of file diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/SpacesItemDecoration.java b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/SpacesItemDecoration.java new file mode 100644 index 0000000000..c06c9baeb8 --- /dev/null +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/video/SpacesItemDecoration.java @@ -0,0 +1,37 @@ +package com.mogo.och.unmanned.passenger.ui.video; + +import android.graphics.Rect; +import android.view.View; + +import androidx.recyclerview.widget.RecyclerView; + +/** + * 这是LinearLayoutManager设置Item间距的的一个辅助类 + * + * @author donghongyu + */ +public class SpacesItemDecoration extends RecyclerView.ItemDecoration { + private final int space; + private final int top; + + public SpacesItemDecoration(int space,int top) { + this.space = space; + this.top = top; + } + + @Override + public void getItemOffsets(Rect outRect, View view, + RecyclerView parent, RecyclerView.State state) { + int pos = parent.getChildAdapterPosition(view); + RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams)view.getLayoutParams(); + if(pos == 0){ + layoutParams.setMargins(0,top,0,space); + }else { + layoutParams.setMargins(0,0,0,space); + } + + view.setLayoutParams(layoutParams); + + super.getItemOffsets(outRect, view, parent, state); + } +} diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/IndicatorView.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/IndicatorView.kt deleted file mode 100644 index 9dcef43d9c..0000000000 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/IndicatorView.kt +++ /dev/null @@ -1,68 +0,0 @@ -package com.mogo.och.unmanned.passenger.widget.indicator - -import android.content.Context -import android.graphics.Canvas -import android.util.AttributeSet -import com.mogo.och.unmanned.passenger.widget.indicator.annotation.AIndicatorOrientation - -import com.mogo.och.unmanned.passenger.widget.indicator.base.BaseIndicatorView -import com.mogo.och.unmanned.passenger.widget.indicator.drawer.DrawerProxy -import com.mogo.och.unmanned.passenger.widget.indicator.enums.IndicatorOrientation -import com.mogo.och.unmanned.passenger.widget.indicator.option.AttrsController -import com.mogo.och.unmanned.passenger.widget.indicator.option.IndicatorOptions - -class IndicatorView @JvmOverloads constructor( - context: Context, - attrs: AttributeSet? = null, - defStyleAttr: Int = 0 -) : BaseIndicatorView(context, attrs, defStyleAttr) { - - private var mDrawerProxy: DrawerProxy - - init { - AttrsController.initAttrs(context, attrs, mIndicatorOptions) - mDrawerProxy = DrawerProxy(mIndicatorOptions) - } - - override fun onLayout(changed: Boolean, left: Int, top: Int, right: Int, bottom: Int) { - super.onLayout(changed, left, top, right, bottom) - mDrawerProxy.onLayout(changed, left, top, right, bottom) - } - - override fun onMeasure( - widthMeasureSpec: Int, - heightMeasureSpec: Int - ) { - super.onMeasure(widthMeasureSpec, heightMeasureSpec) - val measureResult = mDrawerProxy.onMeasure(widthMeasureSpec, heightMeasureSpec) - setMeasuredDimension(measureResult.measureWidth, measureResult.measureHeight) - } - - override fun onDraw(canvas: Canvas) { - super.onDraw(canvas) - rotateCanvas(canvas) - mDrawerProxy.onDraw(canvas) - } - - override fun setIndicatorOptions(options: IndicatorOptions) { - super.setIndicatorOptions(options) - mDrawerProxy.setIndicatorOptions(options) - } - - override fun notifyDataChanged(itemCount:Int) { - mDrawerProxy = DrawerProxy(mIndicatorOptions) - super.notifyDataChanged(itemCount) - } - - private fun rotateCanvas(canvas: Canvas) { - if (mIndicatorOptions.orientation == IndicatorOrientation.INDICATOR_VERTICAL) { - canvas.rotate(90f, width / 2f, width / 2f) - } else if (mIndicatorOptions.orientation == IndicatorOrientation.INDICATOR_RTL) { - canvas.rotate(180f, width / 2f, height / 2f) - } - } - - fun setOrientation(@AIndicatorOrientation orientation: Int) { - mIndicatorOptions.orientation = orientation - } -} diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/annotation/AIndicatorOrientation.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/annotation/AIndicatorOrientation.kt deleted file mode 100644 index fa93f87e08..0000000000 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/annotation/AIndicatorOrientation.kt +++ /dev/null @@ -1,17 +0,0 @@ -package com.mogo.och.unmanned.passenger.widget.indicator.annotation - -import androidx.annotation.IntDef -import com.mogo.och.unmanned.passenger.widget.indicator.enums.IndicatorOrientation - -/** - * - * @author zhangpan - * @date 2021/1/21 - */ -@IntDef( - IndicatorOrientation.INDICATOR_HORIZONTAL, IndicatorOrientation.INDICATOR_VERTICAL, - IndicatorOrientation.INDICATOR_RTL -) -@kotlin.annotation.Retention(AnnotationRetention.SOURCE) -@Target(AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.FIELD) -annotation class AIndicatorOrientation() diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/annotation/AIndicatorSlideMode.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/annotation/AIndicatorSlideMode.kt deleted file mode 100644 index 1d897b30e8..0000000000 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/annotation/AIndicatorSlideMode.kt +++ /dev/null @@ -1,19 +0,0 @@ -package com.mogo.och.unmanned.passenger.widget.indicator.annotation - -import androidx.annotation.IntDef -import com.mogo.och.unmanned.passenger.widget.indicator.enums.IndicatorSlideMode.Companion.NORMAL -import com.mogo.och.unmanned.passenger.widget.indicator.enums.IndicatorSlideMode.Companion.SMOOTH -import com.mogo.och.unmanned.passenger.widget.indicator.enums.IndicatorSlideMode.Companion.WORM -import com.mogo.och.unmanned.passenger.widget.indicator.enums.IndicatorSlideMode.Companion.COLOR -import com.mogo.och.unmanned.passenger.widget.indicator.enums.IndicatorSlideMode.Companion.SCALE - -/** - *
- * Created by zhangpan on 2019-10-18.
- * Description:
-
* - */ -@IntDef(NORMAL, SMOOTH, WORM, COLOR, SCALE) -@kotlin.annotation.Retention(AnnotationRetention.SOURCE) -@Target(AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.FIELD) -annotation class AIndicatorSlideMode diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/annotation/AIndicatorStyle.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/annotation/AIndicatorStyle.kt deleted file mode 100644 index 007c9eca5f..0000000000 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/annotation/AIndicatorStyle.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.mogo.och.unmanned.passenger.widget.indicator.annotation - -import androidx.annotation.IntDef -import com.mogo.och.unmanned.passenger.widget.indicator.enums.IndicatorStyle - -/** - *
- * Created by zhangpan on 2019-10-18.
- * Description:
-
* - */ -@IntDef(IndicatorStyle.CIRCLE, IndicatorStyle.DASH, IndicatorStyle.ROUND_RECT) -@kotlin.annotation.Retention(AnnotationRetention.SOURCE) -@Target(AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.FIELD) -annotation class AIndicatorStyle diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/base/BaseIndicatorView.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/base/BaseIndicatorView.kt deleted file mode 100644 index 2dd118276e..0000000000 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/base/BaseIndicatorView.kt +++ /dev/null @@ -1,203 +0,0 @@ -package com.mogo.och.unmanned.passenger.widget.indicator.base - -import android.content.Context -import android.util.AttributeSet -import android.view.View - -import androidx.annotation.ColorInt -import androidx.recyclerview.widget.RecyclerView -import com.mogo.och.unmanned.passenger.widget.indicator.annotation.AIndicatorSlideMode -import com.mogo.och.unmanned.passenger.widget.indicator.annotation.AIndicatorStyle -import com.mogo.och.unmanned.passenger.widget.indicator.enums.IndicatorSlideMode -import com.mogo.och.unmanned.passenger.widget.indicator.option.IndicatorOptions - -/** - *
- * Created by zhangpan on 2019-09-04.
- * Description:IndicatorView基类,处理了页面滑动。
- * 
- */ -@Suppress("UNUSED") -open class BaseIndicatorView constructor( - context: Context, - attrs: AttributeSet?, - defStyleAttr: Int -) : View(context, attrs, defStyleAttr), IIndicator { - - var mIndicatorOptions: IndicatorOptions - - private var recyclerView: RecyclerView? = null - - init { - mIndicatorOptions = IndicatorOptions() - } - - fun setPageSize(pageSize: Int): BaseIndicatorView { - mIndicatorOptions.pageSize = pageSize - return this - } - - // 页面选定 - fun onPageSelected(position: Int) { - if (getSlideMode() == IndicatorSlideMode.NORMAL) { - setCurrentPosition(position) - setSlideProgress(0f) - invalidate() - } - } - - // 滚动距离 - fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) { - if (getSlideMode() != IndicatorSlideMode.NORMAL && getPageSize() > 1) { - scrollSlider(position, positionOffset) - invalidate() - } - } - - private fun scrollSlider(position: Int, positionOffset: Float) { - if (mIndicatorOptions.slideMode == IndicatorSlideMode.SCALE - || mIndicatorOptions.slideMode == IndicatorSlideMode.COLOR) { - setCurrentPosition(position) - setSlideProgress(positionOffset) - } else { - if (position % getPageSize() == getPageSize() - 1) { // 最后一个页面与第一个页面 - if (positionOffset < 0.5) { - setCurrentPosition(position) - setSlideProgress(0f) - } else { - setCurrentPosition(0) - setSlideProgress(0f) - } - } else { // 中间页面 - setCurrentPosition(position) - setSlideProgress(positionOffset) - } - } - } - - override fun notifyDataChanged(itemCount: Int) { - setPageSize(itemCount) - requestLayout() - invalidate() - } - - private fun setupViewPager() { - - } - - fun getNormalSlideWidth(): Float { - return mIndicatorOptions.normalSliderWidth - } - - fun setNormalSlideWidth(normalSliderWidth: Float) { - mIndicatorOptions.normalSliderWidth = normalSliderWidth - } - - fun getCheckedSlideWidth(): Float { - return mIndicatorOptions.checkedSliderWidth - } - - fun setCheckedSlideWidth(checkedSliderWidth: Float) { - mIndicatorOptions.checkedSliderWidth = checkedSliderWidth - } - - val checkedSliderWidth: Float - get() = mIndicatorOptions.checkedSliderWidth - - fun setCurrentPosition(currentPosition: Int) { - mIndicatorOptions.currentPosition = currentPosition - } - - fun getCurrentPosition(): Int { - return mIndicatorOptions.currentPosition - } - - fun getIndicatorGap(indicatorGap: Float) { - mIndicatorOptions.sliderGap = indicatorGap - } - - fun setIndicatorGap(indicatorGap: Float) { - mIndicatorOptions.sliderGap = indicatorGap - } - - fun setCheckedColor(@ColorInt normalColor: Int) { - mIndicatorOptions.checkedSliderColor = normalColor - } - - fun getCheckedColor(): Int { - return mIndicatorOptions.checkedSliderColor - } - - fun setNormalColor(@ColorInt normalColor: Int) { - mIndicatorOptions.normalSliderColor = normalColor - } - - fun getSlideProgress(): Float { - return mIndicatorOptions.slideProgress - } - - fun setSlideProgress(slideProgress: Float) { - mIndicatorOptions.slideProgress = slideProgress - } - - fun getPageSize(): Int { - return mIndicatorOptions.pageSize - } - - fun setSliderColor( - @ColorInt normalColor: Int, - @ColorInt selectedColor: Int, - @ColorInt selectedEndColor: Int - ): BaseIndicatorView { - mIndicatorOptions.setSliderColor(normalColor, selectedColor,selectedEndColor) - return this - } - - fun setSliderWidth(sliderWidth: Float): BaseIndicatorView { - mIndicatorOptions.setSliderWidth(sliderWidth) - return this - } - - fun setSliderWidth( - normalSliderWidth: Float, - selectedSliderWidth: Float - ): BaseIndicatorView { - mIndicatorOptions.setSliderWidth(normalSliderWidth, selectedSliderWidth) - return this - } - - fun setSliderGap(sliderGap: Float): BaseIndicatorView { - mIndicatorOptions.sliderGap = sliderGap - return this - } - - fun getSlideMode(): Int { - return mIndicatorOptions.slideMode - } - - fun setSlideMode(@AIndicatorSlideMode slideMode: Int): BaseIndicatorView { - mIndicatorOptions.slideMode = slideMode - return this - } - - fun setIndicatorStyle(@AIndicatorStyle indicatorStyle: Int): BaseIndicatorView { - mIndicatorOptions.indicatorStyle = indicatorStyle - return this - } - - fun setSliderHeight(sliderHeight: Float): BaseIndicatorView { - mIndicatorOptions.sliderHeight = sliderHeight - return this - } - - fun showIndicatorWhenOneItem(showIndicatorWhenOneItem: Boolean) { - mIndicatorOptions.showIndicatorOneItem = showIndicatorWhenOneItem - } - - fun onPageScrollStateChanged(state: Int) { - } - - override fun setIndicatorOptions(options: IndicatorOptions) { - mIndicatorOptions = options - } -} diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/base/IIndicator.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/base/IIndicator.kt deleted file mode 100644 index 6ca305bb51..0000000000 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/base/IIndicator.kt +++ /dev/null @@ -1,16 +0,0 @@ -package com.mogo.och.unmanned.passenger.widget.indicator.base - -import com.mogo.och.unmanned.passenger.widget.indicator.option.IndicatorOptions - -/** - *
- * Created by zhangpan on 2019-09-02.
- * Description:
-
* - */ -interface IIndicator { - - fun notifyDataChanged(itemCount:Int) - - fun setIndicatorOptions(options: IndicatorOptions) -} diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/BaseDrawer.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/BaseDrawer.kt deleted file mode 100644 index 8fb291c677..0000000000 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/BaseDrawer.kt +++ /dev/null @@ -1,93 +0,0 @@ -package com.mogo.och.unmanned.passenger.widget.indicator.drawer - -import android.animation.ArgbEvaluator -import android.graphics.Paint -import com.mogo.och.unmanned.passenger.widget.indicator.enums.IndicatorOrientation -import com.mogo.och.unmanned.passenger.widget.indicator.enums.IndicatorSlideMode -import com.mogo.och.unmanned.passenger.widget.indicator.option.IndicatorOptions - -/** - *
- * Created by zhpan on 2019/11/23.
- * Description:
-
* - */ -abstract class BaseDrawer internal constructor(internal var mIndicatorOptions: IndicatorOptions) : - IDrawer { - - private val mMeasureResult: MeasureResult - internal var maxWidth: Float = 0.toFloat() - internal var minWidth: Float = 0.toFloat() - internal var mPaint: Paint = Paint() - internal var argbEvaluator: ArgbEvaluator? = null - - companion object { - const val INDICATOR_PADDING_ADDITION = 6 - const val INDICATOR_PADDING = 3 - } - - protected val isWidthEquals: Boolean - get() = mIndicatorOptions.normalSliderWidth == mIndicatorOptions.checkedSliderWidth - - init { - mPaint.isAntiAlias = true - mMeasureResult = MeasureResult() - if (mIndicatorOptions.slideMode == IndicatorSlideMode.SCALE - || mIndicatorOptions.slideMode == IndicatorSlideMode.COLOR - ) { - argbEvaluator = ArgbEvaluator() - } - } - - override fun onMeasure( - widthMeasureSpec: Int, - heightMeasureSpec: Int - ): MeasureResult { - maxWidth = - mIndicatorOptions.normalSliderWidth.coerceAtLeast(mIndicatorOptions.checkedSliderWidth) - minWidth = - mIndicatorOptions.normalSliderWidth.coerceAtMost(mIndicatorOptions.checkedSliderWidth) - if (mIndicatorOptions.orientation == IndicatorOrientation.INDICATOR_VERTICAL) { - mMeasureResult.setMeasureResult(measureHeight(), measureWidth()) - } else { - mMeasureResult.setMeasureResult(measureWidth(), measureHeight()) - } - return mMeasureResult - } - - protected open fun measureHeight(): Int { - return mIndicatorOptions.sliderHeight.toInt() + INDICATOR_PADDING - } - - private fun measureWidth(): Int { - val pageSize = mIndicatorOptions.pageSize - val indicatorGap = mIndicatorOptions.sliderGap - return ((pageSize - 1) * indicatorGap + maxWidth + (pageSize - 1) * minWidth).toInt() + INDICATOR_PADDING_ADDITION - } - - override fun onLayout( - changed: Boolean, - left: Int, - top: Int, - right: Int, - bottom: Int - ) { - } - - inner class MeasureResult { - - var measureWidth: Int = 0 - internal set - - var measureHeight: Int = 0 - internal set - - internal fun setMeasureResult( - measureWidth: Int, - measureHeight: Int - ) { - this.measureWidth = measureWidth - this.measureHeight = measureHeight - } - } -} diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/CircleDrawer.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/CircleDrawer.kt deleted file mode 100644 index d2c08b10dc..0000000000 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/CircleDrawer.kt +++ /dev/null @@ -1,156 +0,0 @@ -package com.mogo.och.unmanned.passenger.widget.indicator.drawer - -import android.graphics.Canvas -import android.graphics.RectF -import com.mogo.och.unmanned.passenger.widget.indicator.enums.IndicatorSlideMode -import com.mogo.och.unmanned.passenger.widget.indicator.option.IndicatorOptions -import com.mogo.och.unmanned.passenger.widget.indicator.utils.IndicatorUtils - -/** - *
- * Created by zhpan on 2019/11/23.
- * Description: Circle Indicator drawer.
-
* - */ -class CircleDrawer internal constructor(indicatorOptions: IndicatorOptions) : BaseDrawer( - indicatorOptions -) { - - private val rectF = RectF() - - override fun measureHeight(): Int { - return maxWidth.toInt() + INDICATOR_PADDING_ADDITION - } - - override fun onDraw(canvas: Canvas) { - val pageSize = mIndicatorOptions.pageSize - if (pageSize > 1 || mIndicatorOptions.showIndicatorOneItem && pageSize == 1) { - drawNormal(canvas) - drawSlider(canvas) - } - } - - private fun drawNormal(canvas: Canvas) { - val normalIndicatorWidth = mIndicatorOptions.normalSliderWidth - mPaint.color = mIndicatorOptions.normalSliderColor - for (i in 0 until mIndicatorOptions.pageSize) { - val coordinateX = IndicatorUtils.getCoordinateX(mIndicatorOptions, maxWidth, i) - val coordinateY = IndicatorUtils.getCoordinateY(maxWidth) - drawCircle(canvas, coordinateX, coordinateY, normalIndicatorWidth / 2) - } - } - - private fun drawSlider(canvas: Canvas) { - mPaint.color = mIndicatorOptions.checkedSliderColor - when (mIndicatorOptions.slideMode) { - IndicatorSlideMode.NORMAL, IndicatorSlideMode.SMOOTH -> drawCircleSlider(canvas) - IndicatorSlideMode.WORM -> drawWormSlider(canvas) - IndicatorSlideMode.SCALE -> drawScaleSlider(canvas) - IndicatorSlideMode.COLOR -> drawColor(canvas) - } - } - - private fun drawColor(canvas: Canvas) { - val currentPosition = mIndicatorOptions.currentPosition - val slideProgress = mIndicatorOptions.slideProgress - val coordinateX = IndicatorUtils.getCoordinateX(mIndicatorOptions, maxWidth, currentPosition) - val coordinateY = IndicatorUtils.getCoordinateY(maxWidth) - var evaluate = argbEvaluator?.evaluate( - slideProgress, mIndicatorOptions.checkedSliderColor, mIndicatorOptions.normalSliderColor - ) - mPaint.color = (evaluate as Int) - drawCircle(canvas, coordinateX, coordinateY, mIndicatorOptions.normalSliderWidth / 2) - - // 绘制可循环的ViewPager指示器渐变 - evaluate = argbEvaluator?.evaluate( - 1 - slideProgress, mIndicatorOptions.checkedSliderColor, mIndicatorOptions.normalSliderColor - ) - mPaint.color = evaluate as Int - val nextCoordinateX = if (currentPosition == mIndicatorOptions.pageSize - 1) { - IndicatorUtils.getCoordinateX(mIndicatorOptions, maxWidth, 0) - } else { - coordinateX + mIndicatorOptions.sliderGap + mIndicatorOptions.normalSliderWidth - } - drawCircle(canvas, nextCoordinateX, coordinateY, mIndicatorOptions.checkedSliderWidth / 2) - } - - private fun drawScaleSlider(canvas: Canvas) { - val currentPosition = mIndicatorOptions.currentPosition - val slideProgress = mIndicatorOptions.slideProgress - val coordinateX = IndicatorUtils.getCoordinateX(mIndicatorOptions, maxWidth, currentPosition) - val coordinateY = IndicatorUtils.getCoordinateY(maxWidth) - if (slideProgress < 1) { - val evaluate = argbEvaluator?.evaluate( - slideProgress, mIndicatorOptions.checkedSliderColor, mIndicatorOptions.normalSliderColor - ) - mPaint.color = (evaluate as Int) - val radius = - mIndicatorOptions.checkedSliderWidth / 2 - (mIndicatorOptions.checkedSliderWidth / 2 - mIndicatorOptions.normalSliderWidth / 2) * slideProgress - drawCircle(canvas, coordinateX, coordinateY, radius) - } - - if (currentPosition == mIndicatorOptions.pageSize - 1) { - val evaluate = argbEvaluator?.evaluate( - slideProgress, mIndicatorOptions.normalSliderColor, mIndicatorOptions.checkedSliderColor - ) - mPaint.color = evaluate as Int - val nextCoordinateX = maxWidth / 2 - val nextRadius = minWidth / 2 + (maxWidth / 2 - minWidth / 2) * (slideProgress) - drawCircle(canvas, nextCoordinateX, coordinateY, nextRadius) - } else { - if (slideProgress > 0) { - val evaluate = argbEvaluator?.evaluate( - slideProgress, mIndicatorOptions.normalSliderColor, mIndicatorOptions.checkedSliderColor - ) - mPaint.color = evaluate as Int - val nextCoordinateX = - coordinateX + mIndicatorOptions.sliderGap + mIndicatorOptions.normalSliderWidth - val nextRadius = - mIndicatorOptions.normalSliderWidth / 2 + (mIndicatorOptions.checkedSliderWidth / 2 - mIndicatorOptions.normalSliderWidth / 2) * slideProgress - drawCircle(canvas, nextCoordinateX, coordinateY, nextRadius) - } - } - } - - private fun drawCircleSlider(canvas: Canvas) { - val currentPosition = mIndicatorOptions.currentPosition - val startCoordinateX = - IndicatorUtils.getCoordinateX(mIndicatorOptions, maxWidth, currentPosition) - val endCoordinateX = IndicatorUtils.getCoordinateX( - mIndicatorOptions, maxWidth, (currentPosition + 1) % mIndicatorOptions.pageSize - ) - val coordinateX = - startCoordinateX + (endCoordinateX - startCoordinateX) * mIndicatorOptions.slideProgress - val coordinateY = IndicatorUtils.getCoordinateY(maxWidth) - val radius = mIndicatorOptions.checkedSliderWidth / 2 - drawCircle(canvas, coordinateX, coordinateY, radius) - } - - private fun drawWormSlider(canvas: Canvas) { - val sliderHeight = mIndicatorOptions.normalSliderWidth - val slideProgress = mIndicatorOptions.slideProgress - val currentPosition = mIndicatorOptions.currentPosition - val distance = mIndicatorOptions.sliderGap + mIndicatorOptions.normalSliderWidth - val startCoordinateX = - IndicatorUtils.getCoordinateX(mIndicatorOptions, maxWidth, currentPosition) - val left = startCoordinateX + (distance * (slideProgress - 0.5f) * 2.0f).coerceAtLeast( - 0f - ) - mIndicatorOptions.normalSliderWidth / 2 + INDICATOR_PADDING - val right = startCoordinateX + (distance * slideProgress * 2f).coerceAtMost( - distance - ) + mIndicatorOptions.normalSliderWidth / 2 + INDICATOR_PADDING - rectF.set(left, INDICATOR_PADDING.toFloat(), right, sliderHeight + INDICATOR_PADDING) - canvas.drawRoundRect(rectF, sliderHeight, sliderHeight, mPaint) - } - - private fun drawCircle( - canvas: Canvas, - coordinateX: Float, - coordinateY: Float, - radius: Float - ) { - canvas.drawCircle( - coordinateX + INDICATOR_PADDING, coordinateY + INDICATOR_PADDING, radius, mPaint - ) - } -} diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/DashDrawer.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/DashDrawer.kt deleted file mode 100644 index 42450c518d..0000000000 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/DashDrawer.kt +++ /dev/null @@ -1,20 +0,0 @@ -package com.mogo.och.unmanned.passenger.widget.indicator.drawer - -import android.graphics.Canvas - -import com.mogo.och.unmanned.passenger.widget.indicator.option.IndicatorOptions - -/** - *
- * Created by zhpan on 2019/11/23.
- * Description: Dash Indicator Drawer.
-
* - */ -class DashDrawer internal constructor(indicatorOptions: IndicatorOptions) : RectDrawer( - indicatorOptions -) { - - override fun drawDash(canvas: Canvas) { - canvas.drawRect(mRectF, mPaint) - } -} diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/DrawerFactory.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/DrawerFactory.kt deleted file mode 100644 index df41877e28..0000000000 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/DrawerFactory.kt +++ /dev/null @@ -1,21 +0,0 @@ -package com.mogo.och.unmanned.passenger.widget.indicator.drawer - -import com.mogo.och.unmanned.passenger.widget.indicator.enums.IndicatorStyle -import com.mogo.och.unmanned.passenger.widget.indicator.option.IndicatorOptions - - -/** - *
- * Created by zhpan on 2019/11/24.
- * Description: Indicator Drawer Factory.
-
* - */ -internal object DrawerFactory { - fun createDrawer(indicatorOptions: IndicatorOptions): IDrawer { - return when (indicatorOptions.indicatorStyle) { - IndicatorStyle.DASH -> DashDrawer(indicatorOptions) - IndicatorStyle.ROUND_RECT -> RoundRectDrawer(indicatorOptions) - else -> CircleDrawer(indicatorOptions) - } - } -} diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/DrawerProxy.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/DrawerProxy.kt deleted file mode 100644 index 080f6bb6b3..0000000000 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/DrawerProxy.kt +++ /dev/null @@ -1,48 +0,0 @@ -package com.mogo.och.unmanned.passenger.widget.indicator.drawer - -import android.graphics.Canvas - -import com.mogo.och.unmanned.passenger.widget.indicator.option.IndicatorOptions - -/** - *
- * Created by zhpan on 2019/11/23.
- * Description: Indicator Drawer Proxy.
-
* - */ -class DrawerProxy(indicatorOptions: IndicatorOptions) : IDrawer { - - private lateinit var mIDrawer: IDrawer - - init { - init(indicatorOptions) - } - - private fun init(indicatorOptions: IndicatorOptions) { - mIDrawer = DrawerFactory.createDrawer(indicatorOptions) - } - - override fun onLayout( - changed: Boolean, - left: Int, - top: Int, - right: Int, - bottom: Int - ) { - } - - override fun onMeasure( - widthMeasureSpec: Int, - heightMeasureSpec: Int - ): BaseDrawer.MeasureResult { - return mIDrawer.onMeasure(widthMeasureSpec, heightMeasureSpec) - } - - override fun onDraw(canvas: Canvas) { - mIDrawer.onDraw(canvas) - } - - fun setIndicatorOptions(indicatorOptions: IndicatorOptions) { - init(indicatorOptions) - } -} diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/IDrawer.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/IDrawer.kt deleted file mode 100644 index 0a9afbf39b..0000000000 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/IDrawer.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.mogo.och.unmanned.passenger.widget.indicator.drawer - -import android.graphics.Canvas - -/** - *
- * Created by zhpan on 2019/11/23.
- * Description:
-
* - */ -interface IDrawer { - - fun onLayout( - changed: Boolean, - left: Int, - top: Int, - right: Int, - bottom: Int - ) - - fun onMeasure( - widthMeasureSpec: Int, - heightMeasureSpec: Int - ): BaseDrawer.MeasureResult - - fun onDraw(canvas: Canvas) -} diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/RectDrawer.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/RectDrawer.kt deleted file mode 100644 index 3859dc5757..0000000000 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/RectDrawer.kt +++ /dev/null @@ -1,219 +0,0 @@ -package com.mogo.och.unmanned.passenger.widget.indicator.drawer - -import android.graphics.* -import com.mogo.och.unmanned.passenger.widget.indicator.enums.IndicatorSlideMode -import com.mogo.och.unmanned.passenger.widget.indicator.option.IndicatorOptions -import com.mogo.och.unmanned.passenger.widget.indicator.utils.IndicatorUtils - -/** - *
- * Created by zhpan on 2020/1/17.
- * Description:
-
* - */ -open class RectDrawer internal constructor(indicatorOptions: IndicatorOptions) : BaseDrawer( - indicatorOptions -) { - internal var mRectF: RectF = RectF() - - override fun onDraw(canvas: Canvas) { - val pageSize = mIndicatorOptions.pageSize - if (pageSize > 1 || mIndicatorOptions.showIndicatorOneItem && pageSize == 1) { - if (isWidthEquals && mIndicatorOptions.slideMode != IndicatorSlideMode.NORMAL) { - drawUncheckedSlider(canvas, pageSize) - drawCheckedSlider(canvas) - } else { // 单独处理normalWidth与checkedWidth不一致的情况 - if (mIndicatorOptions.slideMode == IndicatorSlideMode.SCALE) { - for (i in 0 until pageSize) { - drawScaleSlider(canvas, i) - } - } else { - drawInequalitySlider(canvas, pageSize) - } - } - } - } - - private fun drawScaleSlider( - canvas: Canvas, - i: Int - ) { - val checkedColor = mIndicatorOptions.checkedSliderColor - val indicatorGap = mIndicatorOptions.sliderGap - val sliderHeight = mIndicatorOptions.sliderHeight - val currentPosition = mIndicatorOptions.currentPosition - val normalWidth = mIndicatorOptions.normalSliderWidth - val checkedWidth = mIndicatorOptions.checkedSliderWidth - when { - i < currentPosition -> { - mPaint.color = mIndicatorOptions.normalSliderColor - val left: Float = if (currentPosition == mIndicatorOptions.pageSize - 1) { - (i * normalWidth + i * indicatorGap) + (checkedWidth - normalWidth) * mIndicatorOptions.slideProgress - } else { - (i * normalWidth + i * indicatorGap) - } - mRectF.set(left, 0f, left + normalWidth, sliderHeight) - drawRoundRect(canvas, sliderHeight, sliderHeight,mRectF.width()>checkedWidth/2) - } - i == currentPosition -> { - mPaint.color = checkedColor - val slideProgress = mIndicatorOptions.slideProgress - if (currentPosition == mIndicatorOptions.pageSize - 1) { - val evaluate = argbEvaluator?.evaluate( - slideProgress, checkedColor, mIndicatorOptions.normalSliderColor - ) - mPaint.color = (evaluate as Int) - val right = - (mIndicatorOptions.pageSize - 1) * (normalWidth + mIndicatorOptions.sliderGap) + checkedWidth - val left = right - checkedWidth + (checkedWidth - normalWidth) * (slideProgress) - mRectF.set(left, 0f, right, sliderHeight) - drawRoundRect(canvas, sliderHeight, sliderHeight,mRectF.width()>checkedWidth/2) - } else { - if (slideProgress < 1) { - val evaluate = argbEvaluator?.evaluate( - slideProgress, checkedColor, mIndicatorOptions.normalSliderColor - ) - mPaint.color = (evaluate as Int) - val left = i * normalWidth + i * indicatorGap - val right = left + normalWidth + (checkedWidth - normalWidth) * (1 - slideProgress) - mRectF.set(left, 0f, right, sliderHeight) - drawRoundRect(canvas, sliderHeight, sliderHeight,mRectF.width()>checkedWidth/2) - } - } - - if (currentPosition == mIndicatorOptions.pageSize - 1) { - if (slideProgress > 0) { - val evaluate = argbEvaluator?.evaluate( - 1 - slideProgress, checkedColor, mIndicatorOptions.normalSliderColor - ) - mPaint.color = evaluate as Int - val left = 0f - val right = left + normalWidth + (checkedWidth - normalWidth) * slideProgress - - mRectF.set(left, 0f, right, sliderHeight) - drawRoundRect(canvas, sliderHeight, sliderHeight,mRectF.width()>checkedWidth/2) - } - } else { - if (slideProgress > 0) { - val evaluate = argbEvaluator?.evaluate( - 1 - slideProgress, checkedColor, mIndicatorOptions.normalSliderColor - ) - mPaint.color = evaluate as Int - val right = - i * normalWidth + i * indicatorGap + normalWidth + (indicatorGap + checkedWidth) - val left = right - (normalWidth) - (checkedWidth - normalWidth) * (slideProgress) - mRectF.set(left, 0f, right, sliderHeight) - drawRoundRect(canvas, sliderHeight, sliderHeight,mRectF.width()>checkedWidth/2) - } - } - } - else -> { - if ((currentPosition + 1 != i || mIndicatorOptions.slideProgress == 0f)) { // 避免多余绘制 - mPaint.color = mIndicatorOptions.normalSliderColor - val left = i * minWidth + i * indicatorGap + (checkedWidth - minWidth) - mRectF.set(left, 0f, left + minWidth, sliderHeight) - drawRoundRect(canvas, sliderHeight, sliderHeight,false) - } - } - } - } - - private fun drawUncheckedSlider( - canvas: Canvas, - pageSize: Int - ) { - for (i in 0 until pageSize) { - mPaint.color = mIndicatorOptions.normalSliderColor - val left = i * maxWidth + i * +mIndicatorOptions.sliderGap + (maxWidth - minWidth) - mRectF.set(left, 0f, left + minWidth, mIndicatorOptions.sliderHeight) - drawRoundRect(canvas, mIndicatorOptions.sliderHeight, mIndicatorOptions.sliderHeight,false) - } - } - - private fun drawInequalitySlider( - canvas: Canvas, - pageSize: Int - ) { - var left = 0f - for (i in 0 until pageSize) { - val sliderWidth = (if (i == mIndicatorOptions.currentPosition) maxWidth else minWidth) - mPaint.color = - if (i == mIndicatorOptions.currentPosition) mIndicatorOptions.checkedSliderColor else mIndicatorOptions.normalSliderColor - mRectF.set(left, 0f, left + sliderWidth, mIndicatorOptions.sliderHeight) - drawRoundRect(canvas, mIndicatorOptions.sliderHeight, mIndicatorOptions.sliderHeight,false) - left += sliderWidth + mIndicatorOptions.sliderGap - } - } - - private fun drawCheckedSlider(canvas: Canvas) { - mPaint.color = mIndicatorOptions.checkedSliderColor - when (mIndicatorOptions.slideMode) { - IndicatorSlideMode.SMOOTH -> drawSmoothSlider(canvas) - IndicatorSlideMode.WORM -> drawWormSlider(canvas) - IndicatorSlideMode.COLOR -> drawColorSlider(canvas) - } - } - - private fun drawColorSlider(canvas: Canvas) { - val currentPosition = mIndicatorOptions.currentPosition - val slideProgress = mIndicatorOptions.slideProgress - val left = currentPosition * minWidth + currentPosition * mIndicatorOptions.sliderGap - if (slideProgress < 0.99) { - val evaluate = argbEvaluator?.evaluate( - slideProgress, mIndicatorOptions.checkedSliderColor, mIndicatorOptions.normalSliderColor - ) - mPaint.color = (evaluate as Int) - mRectF.set(left, 0f, left + minWidth, mIndicatorOptions.sliderHeight) - drawRoundRect(canvas, mIndicatorOptions.sliderHeight, mIndicatorOptions.sliderHeight,false) - } - - var nextSliderLeft = left + mIndicatorOptions.sliderGap + mIndicatorOptions.normalSliderWidth - if (currentPosition == mIndicatorOptions.pageSize - 1) { - nextSliderLeft = 0f - } - val evaluate = argbEvaluator?.evaluate( - 1 - slideProgress, mIndicatorOptions.checkedSliderColor, mIndicatorOptions.normalSliderColor - ) - mPaint.color = evaluate as Int - mRectF.set(nextSliderLeft, 0f, nextSliderLeft + minWidth, mIndicatorOptions.sliderHeight) - drawRoundRect(canvas, mIndicatorOptions.sliderHeight, mIndicatorOptions.sliderHeight,false) - } - - private fun drawWormSlider(canvas: Canvas) { - val sliderHeight = mIndicatorOptions.sliderHeight - val slideProgress = mIndicatorOptions.slideProgress - val currentPosition = mIndicatorOptions.currentPosition - val distance = mIndicatorOptions.sliderGap + mIndicatorOptions.normalSliderWidth - val startCoordinateX = - IndicatorUtils.getCoordinateX(mIndicatorOptions, maxWidth, currentPosition) - val left = startCoordinateX + (distance * (slideProgress - 0.5f) * 2.0f).coerceAtLeast( - 0f - ) - mIndicatorOptions.normalSliderWidth / 2 - val right = startCoordinateX + (distance * slideProgress * 2f).coerceAtMost( - distance - ) + mIndicatorOptions.normalSliderWidth / 2 - mRectF.set(left, 0f, right, sliderHeight) - drawRoundRect(canvas, sliderHeight, sliderHeight,false) - } - - private fun drawSmoothSlider(canvas: Canvas) { - val currentPosition = mIndicatorOptions.currentPosition - val indicatorGap = mIndicatorOptions.sliderGap - val sliderHeight = mIndicatorOptions.sliderHeight - val left = - currentPosition * maxWidth + currentPosition * +indicatorGap + (maxWidth + indicatorGap) * mIndicatorOptions.slideProgress - mRectF.set(left, 0f, left + maxWidth, sliderHeight) - drawRoundRect(canvas, sliderHeight, sliderHeight,false) - } - - protected open fun drawRoundRect( - canvas: Canvas, - rx: Float, - ry: Float, - isWidth:Boolean - ) { - drawDash(canvas) - } - - protected open fun drawDash(canvas: Canvas) {} -} diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/RoundRectDrawer.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/RoundRectDrawer.kt deleted file mode 100644 index a3d801afd2..0000000000 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/drawer/RoundRectDrawer.kt +++ /dev/null @@ -1,38 +0,0 @@ -package com.mogo.och.unmanned.passenger.widget.indicator.drawer - -import android.graphics.Canvas -import android.graphics.LinearGradient -import android.graphics.Shader -import com.mogo.och.unmanned.passenger.widget.indicator.option.IndicatorOptions - - -/** - *
- * Created by zhpan on 2019/11/26.
- * Description:
-
* - */ -class RoundRectDrawer internal constructor(val indicatorOptions: IndicatorOptions) : RectDrawer( - indicatorOptions -) { - - override fun drawRoundRect(canvas: Canvas, rx: Float, ry: Float, isWidth: Boolean) { - if(isWidth) { - val linearGradient = - LinearGradient( - mRectF.left, - (mRectF.bottom - mRectF.top) / 2, - mRectF.right, - (mRectF.bottom - mRectF.top) / 2, - indicatorOptions.checkedSliderColor, - indicatorOptions.checkedEndSliderColor, - Shader.TileMode.CLAMP - ) - mPaint.shader = linearGradient - }else{ - mPaint.color = indicatorOptions.normalSliderColor - mPaint.shader = null - } - canvas.drawRoundRect(mRectF, rx, ry, mPaint) - } -} diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/enums/IndicatorOrientation.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/enums/IndicatorOrientation.kt deleted file mode 100644 index 3738ba418e..0000000000 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/enums/IndicatorOrientation.kt +++ /dev/null @@ -1,16 +0,0 @@ -package com.mogo.och.unmanned.passenger.widget.indicator.enums - -import android.widget.LinearLayout - -/** - * - * @author zhangpan - * @date 2021/1/21 - */ -class IndicatorOrientation { - companion object { - const val INDICATOR_HORIZONTAL = LinearLayout.HORIZONTAL - const val INDICATOR_VERTICAL = LinearLayout.VERTICAL - const val INDICATOR_RTL = 3 - } -} \ No newline at end of file diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/enums/IndicatorSlideMode.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/enums/IndicatorSlideMode.kt deleted file mode 100644 index 5b4b0855e9..0000000000 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/enums/IndicatorSlideMode.kt +++ /dev/null @@ -1,17 +0,0 @@ -package com.mogo.och.unmanned.passenger.widget.indicator.enums - -/** - *
- * Created by zhangpan on 2019-10-18.
- * Description:
-
* - */ -interface IndicatorSlideMode { - companion object { - const val NORMAL = 0 - const val SMOOTH = 2 - const val WORM = 3 - const val SCALE = 4 - const val COLOR = 5 - } -} diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/enums/IndicatorStyle.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/enums/IndicatorStyle.kt deleted file mode 100644 index 13b688241d..0000000000 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/enums/IndicatorStyle.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.mogo.och.unmanned.passenger.widget.indicator.enums - -/** - *
- * Created by zhangpan on 2019-10-18.
- * Description:
-
* - */ -interface IndicatorStyle { - companion object { - const val CIRCLE = 0 - const val DASH = 1 shl 1 - const val ROUND_RECT = 1 shl 2 - } -} diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/option/AttrsController.java b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/option/AttrsController.java deleted file mode 100644 index 029301c199..0000000000 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/option/AttrsController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.mogo.och.unmanned.passenger.widget.indicator.option; - -import android.content.Context; -import android.content.res.TypedArray; -import android.graphics.Color; -import android.util.AttributeSet; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -import com.mogo.och.unmanned.passenger.widget.indicator.utils.IndicatorUtils; -import com.mogo.och.unmanned.taxi.passenger.R; - -public class AttrsController { - - public static void initAttrs(@NonNull Context context, @Nullable AttributeSet attrs, - IndicatorOptions indicatorOptions) { - if (attrs != null) { - TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.IndicatorView); - int indicatorSlideMode = typedArray.getInt(R.styleable.IndicatorView_vpi_slide_mode, 0); - int indicatorStyle = typedArray.getInt(R.styleable.IndicatorView_vpi_style, 0); - int checkedColor = typedArray.getColor(R.styleable.IndicatorView_vpi_slider_checked_color, - Color.parseColor("#6C6D72")); - int normalColor = typedArray.getColor(R.styleable.IndicatorView_vpi_slider_normal_color, - Color.parseColor("#8C18171C")); - int orientation = typedArray.getInt(R.styleable.IndicatorView_vpi_orientation, 0); - float radius = typedArray.getDimension(R.styleable.IndicatorView_vpi_slider_radius, - IndicatorUtils.dp2px(8)); - indicatorOptions.setCheckedColor(checkedColor); - indicatorOptions.setNormalSliderColor(normalColor); - indicatorOptions.setOrientation(orientation); - indicatorOptions.setIndicatorStyle(indicatorStyle); - indicatorOptions.setSlideMode(indicatorSlideMode); - indicatorOptions.setSliderWidth(radius * 2, radius * 2); - typedArray.recycle(); - } - } -} diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/option/IndicatorOptions.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/option/IndicatorOptions.kt deleted file mode 100644 index e68d2fa9c8..0000000000 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/option/IndicatorOptions.kt +++ /dev/null @@ -1,113 +0,0 @@ -package com.mogo.och.unmanned.passenger.widget.indicator.option - -import android.graphics.Color -import com.mogo.och.unmanned.passenger.widget.indicator.annotation.AIndicatorOrientation -import com.mogo.och.unmanned.passenger.widget.indicator.annotation.AIndicatorSlideMode -import com.mogo.och.unmanned.passenger.widget.indicator.annotation.AIndicatorStyle -import com.mogo.och.unmanned.passenger.widget.indicator.enums.IndicatorOrientation -import com.mogo.och.unmanned.passenger.widget.indicator.enums.IndicatorSlideMode -import com.mogo.och.unmanned.passenger.widget.indicator.utils.IndicatorUtils - -/** - *
- * Created by zhpan on 2019/11/20.
- * Description:Indicator的配置参数
-
* - */ -class IndicatorOptions { - - @AIndicatorOrientation - var orientation = IndicatorOrientation.INDICATOR_HORIZONTAL - - @AIndicatorStyle - var indicatorStyle: Int = 0 - - /** - * Indicator滑动模式,目前仅支持两种 - * - * @see IndicatorSlideMode.NORMAL - * - * @see IndicatorSlideMode.SMOOTH - */ - @AIndicatorSlideMode - var slideMode: Int = 0 - - /** - * 页面size - */ - var pageSize: Int = 0 - - /** - * 未选中时Indicator颜色 - */ - var normalSliderColor: Int = 0 - - /** - * 选中时Indicator颜色 - */ - var checkedSliderColor: Int = 0 - /** - * 选中时IndicatorEnd颜色 - */ - var checkedEndSliderColor: Int = 0 - - /** - * Indicator间距 - */ - var sliderGap: Float = 0f - - var sliderHeight: Float = 0f - get() = if (field > 0) field else normalSliderWidth / 2 - - var normalSliderWidth: Float = 0f - - var checkedSliderWidth: Float = 0f - - /** - * 指示器当前位置 - */ - var currentPosition: Int = 0 - - /** - * 从一个点滑动到另一个点的进度 - */ - var slideProgress: Float = 0f - - var showIndicatorOneItem: Boolean = false - - init { - normalSliderWidth = IndicatorUtils.dp2px(8f) - .toFloat() - checkedSliderWidth = normalSliderWidth - sliderGap = normalSliderWidth - normalSliderColor = Color.parseColor("#8C18171C") - checkedSliderColor = Color.parseColor("#8C6C6D72") - slideMode = IndicatorSlideMode.NORMAL - } - - fun setCheckedColor(checkedColor: Int) { - this.checkedSliderColor = checkedColor - } - - fun setSliderWidth( - normalIndicatorWidth: Float, - checkedIndicatorWidth: Float - ) { - this.normalSliderWidth = normalIndicatorWidth - this.checkedSliderWidth = checkedIndicatorWidth - } - - fun setSliderWidth(sliderWidth: Float) { - setSliderWidth(sliderWidth, sliderWidth) - } - - fun setSliderColor( - normalColor: Int, - checkedColor: Int, - selectedEndColor: Int - ) { - this.normalSliderColor = normalColor - this.checkedSliderColor = checkedColor - this.checkedEndSliderColor = selectedEndColor - } -} diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/utils/IndicatorUtils.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/utils/IndicatorUtils.kt deleted file mode 100644 index 51616e8ea0..0000000000 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/widget/indicator/utils/IndicatorUtils.kt +++ /dev/null @@ -1,31 +0,0 @@ -package com.mogo.och.unmanned.passenger.widget.indicator.utils - -import android.content.res.Resources -import com.mogo.och.unmanned.passenger.widget.indicator.option.IndicatorOptions - -/** - *
- * Created by zhangpan on 2020-01-20.
- * Description:
-
* - */ -object IndicatorUtils { - - @JvmStatic - fun dp2px(dpValue: Float): Int { - return (0.5f + dpValue * Resources.getSystem().displayMetrics.density).toInt() - } - - fun getCoordinateX( - indicatorOptions: IndicatorOptions, - maxDiameter: Float, - index: Int - ): Float { - val normalIndicatorWidth = indicatorOptions.normalSliderWidth - return maxDiameter / 2 + (normalIndicatorWidth + indicatorOptions.sliderGap) * index - } - - fun getCoordinateY(maxDiameter: Float): Float { - return maxDiameter / 2 - } -} diff --git a/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/taxi_p_music_list_playing.png b/OCH/taxi/unmanned-passenger/src/main/res/drawable-nodpi/taxi_p_music_list_playing.png index 6a1a124d217e763308abe46ced32bcda69d9135d..5494edc8ce214b8580aa0a809525d5b91ba0f965 100644 GIT binary patch delta 749 zcmV-7d9ks(xn8~^|S0GrKh@Bjb;vPnciR7efAR>8H~ zAP_`~UQVeY4Wxmb{>dpJ6}T=}kQQ|E={N8jNDaQkmQZGp7B6_=^Bsj}o>&-mXO|IH z=XP#C->YbVE7mHTYgy;sSMZk z*uv|%o@$?FsD576f1BIYuN}#l)yTW7z4shIBB~$vf^(f~R=?%kqcZ8sWTEW20cDKp z50DS2-*U->HvL-5)wzKsm2=%*#p;HC_ZI0dyJyTTL939+(&46F)|)zz5wwsJ`c^%NG!WGPsqmeDqJ!7` z@ji0fkup9B@tz3-GMC9b3)8!jZStM+W3%IfPIc4d^!z;CD)9GJwh24S36kju@QA?fIt z=`wAj3a#23s?hv!Q-uoB>HjV$m1J$*Wxp!pgL?5I|Q= zkCg+0=kNhms(7-c^?Qb-g^ZjC$z0)WeKS^J z(tc>T7w))q)x_a@=8BWiZ<>iq;%@$WWO63U(2+gu2PT-nU;de;WoMOG@HBC7b!MjQ ztP*}U&fnwGC*q%be{)A{9MLbxYNTzEng6&WbTgt~@ZCJ#U|YC_{^-ZM3z(Gs0f*0s f5kxMGKg0eDhqaxuINpNm00000NkvXXu0mjfJXH2IvNm7YZE+1^@s6AgR@aks(xn9RL6T0H&=)KmY&&(n&-?R7efAR!eT% zFcf@ZWM|X0_g!^mpvxfVNPt`+_vjgXi2^=H_HEI0)kV=8cvI`wHx!3?l_`o8AAKv&Xz%p8bnUB)Ik$3u z7zWvC6|{XPhf*k3+33b=O^_{hvaA&4ZN)nr7AEB(#+M5~4W_xWGd$w5j5=`dQ!9 zO?Xp(8g6R};ex+88Q0j>Zl2@n8lTM_)()Ck=j4Ff6idiVyk66R81SG#4Ey8A%dg^M zRs(kLogpN55@MFx9s;zYw>%J*+7wtgW3lMt zrB_t&oua24)34ttuJTXA`{`nzndxBS8v9OND;A@R|44sdrN2{rW0pO;h%!1_wh6UYjASXjV*r1mP$%x6QtfB0kZv_S^mxia83U=<#VH5<-H-9AXPG zv^;0OcZNV+%nixIHg&kVg8(khIHR}eB5)+OZOVQ-&pyO39vrLn>pc$U-V6RD!L=o4 zNSJ%7SGw*LUfKj%#}Km!qw`=Nd>*}T;q{XsXe<^PO9E`l~-|l7Kt@8Z_X4uRU$F1XN00000 LNkvXXu0mjf*e8V+ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_list_video_item.xml b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_list_video_item.xml new file mode 100644 index 0000000000..b6a928890c --- /dev/null +++ b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_list_video_item.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + diff --git a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_mogo_video_layout.xml b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_mogo_video_layout.xml index b6de5bb3a8..7ce2094f4a 100644 --- a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_mogo_video_layout.xml +++ b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_mogo_video_layout.xml @@ -10,28 +10,12 @@ - - \ No newline at end of file diff --git a/OCH/taxi/unmanned-passenger/src/main/res/values/colors.xml b/OCH/taxi/unmanned-passenger/src/main/res/values/colors.xml index 09584ba7a9..097c7567c1 100644 --- a/OCH/taxi/unmanned-passenger/src/main/res/values/colors.xml +++ b/OCH/taxi/unmanned-passenger/src/main/res/values/colors.xml @@ -92,6 +92,7 @@ #A3C9EA #394047 + #66000000 diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index 7e9f7fc78e..c946984dca 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -117,11 +117,11 @@ public class MogoApplication extends MainMoGoApplication { countlyConfig.crashes.enableRecordAllThreadsWithCrash(); // 初始化Countly SDK配置 - Countly.sharedInstance().init(countlyConfig); - // java崩溃报告 - Countly.sharedInstance().crashes(); - // C++ 崩溃报告 - CountlyNative.initNative(this); +// Countly.sharedInstance().init(countlyConfig); +// // java崩溃报告 +// Countly.sharedInstance().crashes(); +// // C++ 崩溃报告 +// CountlyNative.initNative(this); } catch (Exception e) { e.printStackTrace(); }