乘客评论添加文字评论
This commit is contained in:
@@ -47,8 +47,9 @@ dependencies {
|
||||
implementation rootProject.ext.dependencies.kotlinstdlibjdk7
|
||||
implementation rootProject.ext.dependencies.androidxappcompat
|
||||
implementation rootProject.ext.dependencies.arouter
|
||||
implementation 'androidx.recyclerview:recyclerview:1.1.0'
|
||||
implementation rootProject.ext.dependencies.androidxrecyclerview
|
||||
implementation 'com.google.android.material:material:1.2.1'
|
||||
implementation rootProject.ext.dependencies.flexbox
|
||||
annotationProcessor rootProject.ext.dependencies.aroutercompiler
|
||||
implementation rootProject.ext.dependencies.rxandroid
|
||||
implementation rootProject.ext.dependencies.androidxconstraintlayout
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.mogo.och.taxi.passenger.bean;
|
||||
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by pangfan on 2021/8/19
|
||||
*
|
||||
* 查询订单返回数据结构
|
||||
*/
|
||||
public class TaxiPassengerAllStarWorld extends BaseData {
|
||||
public List<TaxiPassengerStarWorld> data;
|
||||
|
||||
public static class TaxiPassengerStarWorld {
|
||||
public TaxiPassengerStarWorld(String labelInfo) {
|
||||
this.labelInfo = labelInfo;
|
||||
}
|
||||
|
||||
public String labelNo;
|
||||
public String labelInfo;
|
||||
public String star;
|
||||
public String sort;
|
||||
public Boolean isSelect = false;
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.mogo.och.taxi.passenger.bean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by pangfan on 2021/8/19
|
||||
*
|
||||
@@ -9,9 +11,17 @@ public class TaxiPassengerScoreUpdateOrderReqBean {
|
||||
|
||||
public String orderNo;
|
||||
public int star;
|
||||
public List<TaxiPassengerAllStarWorld.TaxiPassengerStarWorld> evalLabeBasicList;
|
||||
|
||||
public TaxiPassengerScoreUpdateOrderReqBean(String orderNo, int star) {
|
||||
public TaxiPassengerScoreUpdateOrderReqBean(String orderNo, int star,List<TaxiPassengerAllStarWorld.TaxiPassengerStarWorld> data) {
|
||||
this.orderNo = orderNo;
|
||||
this.star = star;
|
||||
for (TaxiPassengerAllStarWorld.TaxiPassengerStarWorld datum : data) {
|
||||
datum.isSelect=null;
|
||||
datum.sort = null;
|
||||
datum.star = null;
|
||||
}
|
||||
this.evalLabeBasicList = data;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.mogo.och.taxi.passenger.callback;
|
||||
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerScoreUpdateOrderReqBean;
|
||||
|
||||
public interface ITaxiPassengerScoreCallback {
|
||||
void onScoreCallback(int fraction,String orderNo);
|
||||
void onScoreCallback(TaxiPassengerScoreUpdateOrderReqBean taxiPassengerScoreUpdateOrderReqBean);
|
||||
}
|
||||
|
||||
@@ -36,6 +36,7 @@ import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRemainingResp;
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean;
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean;
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerQueryOrderRouteResp;
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerScoreUpdateOrderReqBean;
|
||||
import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerADASStatusCallback;
|
||||
import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerAutopilotPlanningCallback;
|
||||
import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerControllerStatusCallback;
|
||||
@@ -682,7 +683,6 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
|
||||
|
||||
public void checkPhoneAndUpdateStatus(String phoneTail,ITaxiPassengerCommonCallback commonCallback) {
|
||||
if (mCurrentOCHOrder == null) return;
|
||||
CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "--route--- checkPhoneAndUpdateStatus");
|
||||
TaxiPassengerServiceManager.getInstance().checkPhoneAndUpdateOrderStatus(mContext, mCurrentOCHOrder.orderNo,
|
||||
phoneTail, new TaxiPassengerServiceCallback<TaxiPassengerBaseRespBean>() {
|
||||
@Override
|
||||
@@ -700,14 +700,14 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
|
||||
@Override
|
||||
public void onFail(int code, String msg) {
|
||||
ToastUtils.showLong("当前网络异常,请重新验证;若始终异常,请您在手机端取消行程,给您带来不便,十分抱歉!");
|
||||
CallerLogger.INSTANCE.e(TAG,"提交用户输入的手机后4位、并进行状态扭转 后台结果错误"+code+msg);
|
||||
CallerLogger.INSTANCE.e(M_TAXI_P + TAG,"提交用户输入的手机后4位、并进行状态扭转 后台结果错误"+code+msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void arrivedAndScore(int score,String orderNo ,ITaxiPassengerCommonValueCallback<Boolean> commonCallback) {
|
||||
if (orderNo == null) return;
|
||||
TaxiPassengerServiceManager.getInstance().arrivedAndScore(mContext,orderNo,score,
|
||||
public void arrivedAndScore(TaxiPassengerScoreUpdateOrderReqBean taxiPassengerScoreUpdateOrderReqBean , ITaxiPassengerCommonValueCallback<Boolean> commonCallback) {
|
||||
if (taxiPassengerScoreUpdateOrderReqBean.orderNo == null) return;
|
||||
TaxiPassengerServiceManager.getInstance().arrivedAndScore(mContext,taxiPassengerScoreUpdateOrderReqBean,
|
||||
new TaxiPassengerServiceCallback<TaxiPassengerBaseRespBean>() {
|
||||
@Override
|
||||
public void onSuccess(TaxiPassengerBaseRespBean data) {
|
||||
@@ -719,7 +719,7 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
|
||||
@Override
|
||||
public void onError() {
|
||||
ToastUtils.showLong("网络错误请稍后再试");
|
||||
CallerLogger.INSTANCE.e(TAG,"对订单进行打分 1-5分 网络错误");
|
||||
CallerLogger.INSTANCE.e(M_TAXI_P + TAG,"对订单进行打分 1-5分 网络错误");
|
||||
if(commonCallback!=null) {
|
||||
commonCallback.onCommonCallback(false);
|
||||
}
|
||||
@@ -727,7 +727,7 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
|
||||
|
||||
@Override
|
||||
public void onFail(int code, String msg) {
|
||||
CallerLogger.INSTANCE.e(TAG,"对订单进行打分 1-5分 后台结果错误"+code+msg);
|
||||
CallerLogger.INSTANCE.e(M_TAXI_P + TAG,"对订单进行打分 1-5分 后台结果错误"+code+msg);
|
||||
if(commonCallback!=null) {
|
||||
commonCallback.onCommonCallback(false);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
package com.mogo.och.taxi.passenger.network;
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerAllStarWorld;
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerBaseRespBean;
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerCheckPhoneUpdateOrderReqBean;
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRemainingResp;
|
||||
@@ -73,16 +74,31 @@ interface TaxiPassengerServiceApi {
|
||||
* @return
|
||||
*/
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
@POST( "/autopilot-car-hailing/order/v2/vehicle/taxi/passenger/verification/phone" )
|
||||
@POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/passenger/verification/phone" )
|
||||
Observable<TaxiPassengerBaseRespBean> checkPhoneAndUpdateOrderStatus(@Header ("appId") String appId, @Header("ticket") String ticket, @Body TaxiPassengerCheckPhoneUpdateOrderReqBean data);
|
||||
|
||||
/**
|
||||
* 对订单进行打分 1-5分
|
||||
* 对订单进行打分 1-5分 加上文案评论
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
@POST( "/autopilot-car-hailing/evaluation/vehicle/taxi/passenger/add" )
|
||||
@POST( "/autopilot-car-hailing/evaluation/info/driver/taxi/submit" )
|
||||
Observable<TaxiPassengerBaseRespBean> arrivedAndScore(@Header ("appId") String appId, @Header("ticket") String ticket, @Body TaxiPassengerScoreUpdateOrderReqBean data);
|
||||
|
||||
/**
|
||||
* 获取星星对应的文案(所有文案)
|
||||
* @return
|
||||
*/
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
@GET( "/autopilot-car-hailing/evaluation/label/driver/taxi/list" )
|
||||
Observable<TaxiPassengerAllStarWorld> getWorldAllStar(@Header ("appId") String appId, @Header("ticket") String ticket);
|
||||
/**
|
||||
* 获取星星对应的文案(和星星一一对应)
|
||||
* @return
|
||||
*/
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
@GET( "/autopilot-car-hailing/evaluation/label/driver/taxi/listByStar" )
|
||||
Observable<TaxiPassengerAllStarWorld> getWorldByStar(@Header ("appId") String appId, @Header("ticket") String ticket,@Query("star") String star);
|
||||
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ import com.mogo.eagle.core.network.MoGoRetrofitFactory;
|
||||
import com.mogo.eagle.core.network.RequestOptions;
|
||||
import com.mogo.eagle.core.network.SubscribeImpl;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.module.common.MogoApisHandler;
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerAllStarWorld;
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerBaseRespBean;
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerCheckPhoneUpdateOrderReqBean;
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRemainingResp;
|
||||
@@ -54,7 +54,7 @@ public class TaxiPassengerServiceManager {
|
||||
*/
|
||||
private String getDriverAppSn(){
|
||||
if(DebugConfig.isDebug()){
|
||||
return "X20202205051RD29W4";
|
||||
return "X20202206092431156";
|
||||
}else {
|
||||
return CallerTelematicManager.INSTANCE.getServerToken();
|
||||
}
|
||||
@@ -160,13 +160,31 @@ public class TaxiPassengerServiceManager {
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(getSubscribeImpl(context, callback, "checkPhoneAndUpdateOrderStatus"));
|
||||
}
|
||||
public void arrivedAndScore(Context context, String orderNo,int star,TaxiPassengerServiceCallback<TaxiPassengerBaseRespBean> callback){
|
||||
public void arrivedAndScore(Context context,TaxiPassengerScoreUpdateOrderReqBean taxiPassengerScoreUpdateOrderReqBean, TaxiPassengerServiceCallback<TaxiPassengerBaseRespBean> callback){
|
||||
mOCHTaxiServiceApi.arrivedAndScore(
|
||||
MoGoAiCloudClientConfig.getInstance().getServiceAppId()
|
||||
,MoGoAiCloudClientConfig.getInstance().getToken()
|
||||
,new TaxiPassengerScoreUpdateOrderReqBean(orderNo,star))
|
||||
,taxiPassengerScoreUpdateOrderReqBean)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(getSubscribeImpl(context, callback, "checkPhoneAndUpdateOrderStatus"));
|
||||
}
|
||||
|
||||
public void getAllScoreWorld(Context context,TaxiPassengerServiceCallback<TaxiPassengerAllStarWorld> callback){
|
||||
mOCHTaxiServiceApi.getWorldAllStar(
|
||||
MoGoAiCloudClientConfig.getInstance().getServiceAppId()
|
||||
,MoGoAiCloudClientConfig.getInstance().getToken())
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(getSubscribeImpl(context, callback, "checkPhoneAndUpdateOrderStatus"));
|
||||
}
|
||||
public void getWorldByStar(Context context,String start,TaxiPassengerServiceCallback<TaxiPassengerAllStarWorld> callback){
|
||||
mOCHTaxiServiceApi.getWorldByStar(
|
||||
MoGoAiCloudClientConfig.getInstance().getServiceAppId()
|
||||
,MoGoAiCloudClientConfig.getInstance().getToken(),start)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(getSubscribeImpl(context, callback, "checkPhoneAndUpdateOrderStatus"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean;
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerScoreUpdateOrderReqBean;
|
||||
import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerADASStatusCallback;
|
||||
import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerControllerStatusCallback;
|
||||
import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback;
|
||||
@@ -214,11 +215,10 @@ public class BaseTaxiPassengerPresenter extends Presenter<TaxiPassengerBaseFragm
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param score 分数
|
||||
* 封装请求
|
||||
*/
|
||||
public void arrivedAndScore(int score,String orderNo){
|
||||
TaxiPassengerModel.getInstance().arrivedAndScore(score,orderNo, aBoolean -> mView.showArrivedEndLayout2Thank(aBoolean));
|
||||
public void arrivedAndScore(TaxiPassengerScoreUpdateOrderReqBean taxiPassengerScoreUpdateOrderReqBean){
|
||||
TaxiPassengerModel.getInstance().arrivedAndScore(taxiPassengerScoreUpdateOrderReqBean,aBoolean -> mView.showArrivedEndLayout2Thank(aBoolean));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -5,7 +5,6 @@ import android.os.Looper;
|
||||
import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
@@ -17,19 +16,16 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager;
|
||||
import com.mogo.eagle.core.function.call.map.CallerSmpManager;
|
||||
import com.mogo.eagle.core.utilcode.util.OverlayViewUtils;
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils;
|
||||
import com.mogo.map.MogoMapUIController;
|
||||
import com.mogo.map.MogoMarkerManager;
|
||||
import com.mogo.map.listener.IMogoMapListener;
|
||||
import com.mogo.map.uicontroller.VisualAngleMode;
|
||||
import com.mogo.module.common.MogoApisHandler;
|
||||
import com.mogo.module.common.constants.DataTypes;
|
||||
import com.mogo.och.common.module.wigets.OCHBorderShadowLayout;
|
||||
import com.mogo.och.taxi.passenger.R;
|
||||
import com.mogo.och.taxi.passenger.callback.ITPClickStartAutopilotCallback;
|
||||
import com.mogo.och.taxi.passenger.presenter.BaseTaxiPassengerPresenter;
|
||||
import com.mogo.och.taxi.passenger.ui.leftmenu.OverlayLeftViewUtils;
|
||||
import com.mogo.och.taxi.passenger.ui.video.TaxiPassengerMogoConsultView;
|
||||
import com.mogo.och.taxi.passenger.ui.comment.TaxiPassengerArrivedView;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
|
||||
@@ -121,13 +117,13 @@ public class TaxiPassengerBaseFragment extends MvpFragment<TaxiPassengerBaseFrag
|
||||
MogoMapUIController.getInstance().changeMapVisualAngle(VisualAngleMode.MODE_LONG_SIGHT, null);
|
||||
mMapswitchBtn.setImageResource(R.drawable.taxi_p_switch_map_long);
|
||||
}
|
||||
OverlayLeftViewUtils.INSTANCE.dismissOverlayView();
|
||||
//OverlayLeftViewUtils.INSTANCE.dismissOverlayView();
|
||||
}
|
||||
});
|
||||
|
||||
findViewById(R.id.iv_temp).setOnClickListener(view -> {
|
||||
OverlayLeftViewUtils.INSTANCE.showOverlayView(getActivity());
|
||||
//showOrHideArrivedEndLayout(true, "北京北京北京", "1527481606997577728");
|
||||
//OverlayLeftViewUtils.INSTANCE.showOverlayView(getActivity());
|
||||
showOrHideArrivedEndLayout(true, "北京北京北京", "1527481606997577728");
|
||||
//showOrHidePressengerCheckPager(true, "开始站点开", "开始站点开始站点开始", "2", "京A888888", "18811539480");
|
||||
//OCHFloatWindowManager.getInstance().ShowFloatWindow(getContext());
|
||||
//OverlayViewUtils.showOverlayView(getActivity(),new TaxiPassengerMogoConsultView(getContext()));
|
||||
@@ -136,7 +132,7 @@ public class TaxiPassengerBaseFragment extends MvpFragment<TaxiPassengerBaseFrag
|
||||
|
||||
private void initArrivedView(){
|
||||
mArrivedEndView = new WeakReference<>(new TaxiPassengerArrivedView(getContext()));
|
||||
mArrivedEndView.get().setITaxiPassengerScoreCallback((fraction, orderNo) -> getPresenter().arrivedAndScore(fraction,orderNo));
|
||||
mArrivedEndView.get().setITaxiPassengerScoreCallback((taxiPassengerScoreUpdateOrderReqBean) -> getPresenter().arrivedAndScore(taxiPassengerScoreUpdateOrderReqBean));
|
||||
}
|
||||
|
||||
private void initCheckView() {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.och.taxi.passenger.ui
|
||||
package com.mogo.och.taxi.passenger.ui.comment
|
||||
|
||||
import android.animation.*
|
||||
import android.content.Context
|
||||
@@ -11,16 +11,29 @@ import android.view.animation.AnimationUtils
|
||||
import android.widget.ImageView
|
||||
import android.widget.RelativeLayout
|
||||
import android.widget.TextView
|
||||
import androidx.appcompat.widget.AppCompatButton
|
||||
import androidx.appcompat.widget.AppCompatImageView
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.amap.api.navi.view.PoiInputSearchWidget
|
||||
import com.google.android.flexbox.FlexWrap
|
||||
import com.google.android.flexbox.FlexboxLayoutManager
|
||||
import com.google.android.flexbox.JustifyContent
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.util.OverlayViewUtils
|
||||
import com.mogo.eagle.core.widget.media.video.SimpleVideoPlayer
|
||||
import com.mogo.och.common.module.wigets.OCHBorderShadowLayout
|
||||
import com.mogo.och.taxi.passenger.R
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerAllStarWorld
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerScoreUpdateOrderReqBean
|
||||
import com.mogo.och.taxi.passenger.callback.ITaxiPassengerCommonCallback
|
||||
import com.mogo.och.taxi.passenger.callback.ITaxiPassengerScoreCallback
|
||||
import com.mogo.och.taxi.passenger.network.TaxiPassengerServiceCallback
|
||||
import com.mogo.och.taxi.passenger.network.TaxiPassengerServiceManager
|
||||
import com.mogo.och.taxi.passenger.ui.comment.adapter.CommentAdapter
|
||||
import com.mogo.och.taxi.passenger.widget.ResizeAnimation
|
||||
import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder
|
||||
import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack
|
||||
import com.shuyu.gsyvideoplayer.utils.GSYVideoType
|
||||
@@ -55,10 +68,14 @@ class TaxiPassengerArrivedView :RelativeLayout, View.OnClickListener {
|
||||
private lateinit var ivStarFourth: ImageView
|
||||
private lateinit var ivStarFifth: ImageView
|
||||
private lateinit var ivAnimalList: ImageView
|
||||
private lateinit var btnSubmit: AppCompatButton
|
||||
private lateinit var rvCommentList: RecyclerView
|
||||
private lateinit var acivClose: AppCompatImageView
|
||||
private lateinit var svpFrame: SimpleVideoPlayer
|
||||
private lateinit var clCommentContain: ConstraintLayout
|
||||
private var subscribe: Disposable?=null
|
||||
private var orderNo = ""
|
||||
private var currentFraction = 1
|
||||
|
||||
private val gsyVideoOptionBuilder = GSYVideoOptionBuilder()
|
||||
|
||||
@@ -79,6 +96,7 @@ class TaxiPassengerArrivedView :RelativeLayout, View.OnClickListener {
|
||||
private var allStartOrdered = mutableListOf<ImageView>()
|
||||
|
||||
var showThanks:Boolean = false
|
||||
var allStarWithWorld: TaxiPassengerAllStarWorld?=null
|
||||
|
||||
private fun initView(context: Context) {
|
||||
d(SceneConstant.M_TAXI_P + TAG, "initView")
|
||||
@@ -90,6 +108,9 @@ class TaxiPassengerArrivedView :RelativeLayout, View.OnClickListener {
|
||||
ivAnimalList = findViewById(R.id.iv_animal_list)
|
||||
acivClose = findViewById(R.id.aciv_close)
|
||||
svpFrame = findViewById(R.id.svp_frame)
|
||||
rvCommentList = findViewById(R.id.rv_comment_list)
|
||||
clCommentContain = findViewById(R.id.cl_comment_contain)
|
||||
btnSubmit = findViewById(R.id.btn_submit)
|
||||
svpFrame.setBackgroundResource(R.drawable.tail_ani_0000)
|
||||
svpFrame.setIsTouchWiget(false)
|
||||
svpFrame.setIsTouchWigetFull(false)
|
||||
@@ -97,15 +118,11 @@ class TaxiPassengerArrivedView :RelativeLayout, View.OnClickListener {
|
||||
svpFrame.enableDoubleClick = false
|
||||
|
||||
allStartOrdered = mutableListOf()
|
||||
initCommentList()
|
||||
initScore()
|
||||
|
||||
findViewById<View>(R.id.tv_please_score).setOnClickListener(this)
|
||||
|
||||
// debug 弹出
|
||||
mArrivedEndStation.setOnLongClickListener {
|
||||
scoreSuccess()
|
||||
false
|
||||
}
|
||||
|
||||
acivClose.setOnClickListener {
|
||||
ochShadowLayout.visibility = View.GONE
|
||||
@@ -125,6 +142,16 @@ class TaxiPassengerArrivedView :RelativeLayout, View.OnClickListener {
|
||||
GSYVideoType.setShowType(GSYVideoType.SCREEN_TYPE_FULL)
|
||||
}
|
||||
|
||||
private fun initCommentList() {
|
||||
val recyclerVideoAdapter = CommentAdapter(context, mutableListOf())
|
||||
rvCommentList.adapter = recyclerVideoAdapter
|
||||
val manager = FlexboxLayoutManager(context)
|
||||
manager.justifyContent = JustifyContent.CENTER
|
||||
manager.flexWrap = FlexWrap.WRAP
|
||||
rvCommentList.layoutManager = manager
|
||||
btnSubmit.setOnClickListener(this)
|
||||
}
|
||||
|
||||
private fun initScore() {
|
||||
ivStarFirst = findViewById(R.id.iv_star_first)
|
||||
ivStarSecond = findViewById(R.id.iv_star_second)
|
||||
@@ -142,11 +169,20 @@ class TaxiPassengerArrivedView :RelativeLayout, View.OnClickListener {
|
||||
allStartOrdered.add(ivStarThird)
|
||||
allStartOrdered.add(ivStarFourth)
|
||||
allStartOrdered.add(ivStarFifth)
|
||||
|
||||
// 请求文案
|
||||
requestStarWord()
|
||||
}
|
||||
|
||||
|
||||
override fun onDetachedFromWindow() {
|
||||
svpFrame.setBackgroundResource(R.drawable.tail_ani_0000)
|
||||
tvFeel.text = ""
|
||||
rvCommentList.visibility = View.INVISIBLE
|
||||
btnSubmit.visibility = View.INVISIBLE
|
||||
|
||||
clCommentContain.getLayoutParams().height = 657
|
||||
clCommentContain.requestLayout()
|
||||
super.onDetachedFromWindow()
|
||||
subscribe?.let {
|
||||
if (!it.isDisposed) {
|
||||
@@ -158,23 +194,45 @@ class TaxiPassengerArrivedView :RelativeLayout, View.OnClickListener {
|
||||
override fun onClick(v: View?) {
|
||||
when (v?.id) {
|
||||
R.id.tv_please_score -> {
|
||||
iTaxiPassengerScoreCallback?.onScoreCallback(2,orderNo)
|
||||
//iTaxiPassengerScoreCallback?.onScoreCallback(2,orderNo)
|
||||
}
|
||||
R.id.iv_star_first -> {commitAndStartAnimation(1,"不满意")}
|
||||
R.id.iv_star_second -> {commitAndStartAnimation(2,"不满意")}
|
||||
R.id.iv_star_third -> {commitAndStartAnimation(3,"一般")}
|
||||
R.id.iv_star_fourth -> {commitAndStartAnimation(4,"舒适")}
|
||||
R.id.iv_star_fifth -> {commitAndStartAnimation(5,"舒适")}
|
||||
R.id.btn_submit -> {submitScore()}
|
||||
else -> {}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 提交到后台
|
||||
*/
|
||||
private fun submitScore() {
|
||||
val commentAdapter = rvCommentList.adapter as CommentAdapter
|
||||
val selectComment = commentAdapter.getSelectComment()
|
||||
iTaxiPassengerScoreCallback?.onScoreCallback(TaxiPassengerScoreUpdateOrderReqBean(orderNo,currentFraction,selectComment))
|
||||
}
|
||||
|
||||
private fun commitAndStartAnimation(fraction: Int,title:String) {
|
||||
resetStar()
|
||||
currentFraction = fraction
|
||||
tvFeel.text = title
|
||||
startStartAnimation(fraction)
|
||||
allStartOrdered.forEach {
|
||||
it.isEnabled = false
|
||||
if(allStarWithWorld!=null&&allStarWithWorld!!.data!=null&&allStarWithWorld!!.data!!.size>0){
|
||||
// 已经请求到总量了
|
||||
val filter = allStarWithWorld!!.data.filter { it.star == fraction.toString() }
|
||||
val commentAdapter = rvCommentList.adapter as CommentAdapter
|
||||
commentAdapter.addAll(filter.toMutableList())
|
||||
startStartAnimation(fraction)
|
||||
}else{
|
||||
// 总量请求失败 单独去取
|
||||
requestStarWordByStar(fraction)
|
||||
}
|
||||
|
||||
// allStartOrdered.forEach {
|
||||
// it.isEnabled = false
|
||||
// }
|
||||
}
|
||||
private var currentAnimarion = 0
|
||||
private var maxIndex = 0
|
||||
@@ -235,13 +293,36 @@ class TaxiPassengerArrivedView :RelativeLayout, View.OnClickListener {
|
||||
set.addListener(object : AnimatorListenerAdapter() {
|
||||
override fun onAnimationEnd(animation: Animator?) {
|
||||
super.onAnimationEnd(animation)
|
||||
iTaxiPassengerScoreCallback?.onScoreCallback(fraction,orderNo)
|
||||
// 启动变高动画
|
||||
startChangeHeightAnimarion()
|
||||
}
|
||||
})
|
||||
}
|
||||
set.start()
|
||||
}
|
||||
|
||||
private fun startChangeHeightAnimarion() {
|
||||
// 815 除了 点评的高度
|
||||
val resizeAnimation = ResizeAnimation(clCommentContain,815+rvCommentList.height, clCommentContain.height)
|
||||
resizeAnimation.duration = 300
|
||||
resizeAnimation.setAnimationListener(object :Animation.AnimationListener{
|
||||
override fun onAnimationStart(animation: Animation?) {
|
||||
rvCommentList.visibility = View.VISIBLE
|
||||
btnSubmit.visibility = View.VISIBLE
|
||||
}
|
||||
|
||||
override fun onAnimationEnd(animation: Animation?) {
|
||||
|
||||
}
|
||||
|
||||
override fun onAnimationRepeat(animation: Animation?) {
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
clCommentContain.startAnimation(resizeAnimation)
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置目的地重置星星状态
|
||||
*/
|
||||
@@ -316,6 +397,59 @@ class TaxiPassengerArrivedView :RelativeLayout, View.OnClickListener {
|
||||
}
|
||||
}
|
||||
|
||||
private fun requestStarWord() {
|
||||
TaxiPassengerServiceManager.getInstance().getAllScoreWorld(context,
|
||||
object : TaxiPassengerServiceCallback<TaxiPassengerAllStarWorld?> {
|
||||
override fun onError() {
|
||||
CallerLogger.e(
|
||||
SceneConstant.M_TAXI_P + TAG,
|
||||
"/autopilot-car-hailing/evaluation/label/driver/taxi/list 接口 onError"
|
||||
)
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, msg: String) {
|
||||
CallerLogger.e(
|
||||
SceneConstant.M_TAXI_P + TAG,
|
||||
"/autopilot-car-hailing/evaluation/label/driver/taxi/list 接口:${code}---${msg}"
|
||||
)
|
||||
}
|
||||
|
||||
override fun onSuccess(data: TaxiPassengerAllStarWorld?) {
|
||||
allStarWithWorld = data
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
private fun requestStarWordByStar(start:Int) {
|
||||
TaxiPassengerServiceManager.getInstance().getWorldByStar(context,start.toString(),
|
||||
object : TaxiPassengerServiceCallback<TaxiPassengerAllStarWorld?> {
|
||||
override fun onError() {
|
||||
CallerLogger.e(
|
||||
SceneConstant.M_TAXI_P + TAG,
|
||||
"/autopilot-car-hailing/evaluation/label/driver/taxi/listByStar 接口 onError"
|
||||
)
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, msg: String) {
|
||||
CallerLogger.e(
|
||||
SceneConstant.M_TAXI_P + TAG,
|
||||
"/autopilot-car-hailing/evaluation/label/driver/taxi/listByStar 接口:${code}---${msg}"
|
||||
)
|
||||
}
|
||||
|
||||
override fun onSuccess(data: TaxiPassengerAllStarWorld?) {
|
||||
if(data?.data != null &&data.data!!.size>0){
|
||||
val commentAdapter = rvCommentList.adapter as CommentAdapter
|
||||
commentAdapter.addAll(data.data.toMutableList())
|
||||
startStartAnimation(start)
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
companion object {
|
||||
const val TAG = "TaxiPassengerArrivedView"
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
package com.mogo.och.taxi.passenger.ui.comment.adapter
|
||||
|
||||
import android.content.Context
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.mogo.och.taxi.passenger.R
|
||||
import com.mogo.och.taxi.passenger.bean.TaxiPassengerAllStarWorld.TaxiPassengerStarWorld
|
||||
|
||||
class CommentAdapter(private val context: Context?,private val itemDataList: MutableList<TaxiPassengerStarWorld>) :
|
||||
RecyclerView.Adapter<ItemCommentHolder>() {
|
||||
|
||||
fun add(taxiPassengerStarWorld: TaxiPassengerStarWorld) {
|
||||
itemDataList.add(taxiPassengerStarWorld)
|
||||
notifyItemInserted(itemDataList.size)
|
||||
}
|
||||
|
||||
fun addAll(itemDataList: MutableList<TaxiPassengerStarWorld>){
|
||||
this.itemDataList.clear()
|
||||
this.itemDataList.addAll(itemDataList)
|
||||
this.notifyDataSetChanged()
|
||||
}
|
||||
fun getSelectComment(): List<TaxiPassengerStarWorld> {
|
||||
return itemDataList.filter { it.isSelect }
|
||||
}
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemCommentHolder {
|
||||
val v = LayoutInflater.from(context).inflate(R.layout.list_comment_item, parent, false)
|
||||
return ItemCommentHolder(context, v)
|
||||
}
|
||||
|
||||
override fun onBindViewHolder(holder: ItemCommentHolder, position: Int) {
|
||||
val taxiPassengerStarWorld = itemDataList[position]
|
||||
holder.commentItem.text = taxiPassengerStarWorld.labelInfo
|
||||
if (taxiPassengerStarWorld.isSelect!=null&&taxiPassengerStarWorld.isSelect) {
|
||||
taxiPassengerStarWorld.isSelect = true
|
||||
holder.commentItem.setBackgroundResource(R.drawable.taxi_p_comment_selected)
|
||||
} else {
|
||||
taxiPassengerStarWorld.isSelect = false
|
||||
holder.commentItem.setBackgroundResource(R.drawable.taxi_p_comment_select)
|
||||
}
|
||||
holder.commentItem.setOnClickListener { v: View? ->
|
||||
taxiPassengerStarWorld.isSelect = !taxiPassengerStarWorld.isSelect
|
||||
notifyItemChanged(holder.bindingAdapterPosition)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getItemCount(): Int {
|
||||
return itemDataList.size
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val TAG = "RecyclerBaseAdapter"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.mogo.och.taxi.passenger.ui.comment.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.View;
|
||||
import android.widget.CheckBox;
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.mogo.och.taxi.passenger.R;
|
||||
|
||||
public class ItemCommentHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
public final static String TAG = "ItemCommentHolder";
|
||||
|
||||
protected Context context;
|
||||
|
||||
public CheckBox commentItem;
|
||||
|
||||
public ItemCommentHolder(Context context, View v) {
|
||||
super(v);
|
||||
this.context = context;
|
||||
commentItem = v.findViewById(R.id.tv_comment);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.mogo.och.taxi.passenger.widget;
|
||||
|
||||
import android.view.View;
|
||||
import android.view.animation.Animation;
|
||||
import android.view.animation.Transformation;
|
||||
|
||||
public class ResizeAnimation extends Animation {
|
||||
|
||||
final int targetHeight;
|
||||
View view;
|
||||
int startHeight;
|
||||
public ResizeAnimation(View view, int targetHeight, int startHeight) {
|
||||
this.view = view;
|
||||
this.targetHeight = targetHeight;
|
||||
this.startHeight = startHeight;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyTransformation(float interpolatedTime, Transformation t) {
|
||||
|
||||
int newHeight = (int) (startHeight + (targetHeight-startHeight) * interpolatedTime);
|
||||
view.getLayoutParams().height = newHeight;
|
||||
|
||||
view.requestLayout();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
public void initialize(int width, int height, int parentWidth, int parentHeight) {
|
||||
super.initialize(width, height, parentWidth, parentHeight);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean willChangeBounds() {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#314F85"/>
|
||||
<corners android:radius="@dimen/dp_46"/>
|
||||
</shape>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#3397FC"/>
|
||||
<corners android:radius="@dimen/dp_46"/>
|
||||
</shape>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<gradient android:startColor="#22e5aa" android:endColor="#038f7e"/>
|
||||
<corners android:radius="@dimen/dp_46"/>
|
||||
</shape>
|
||||
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<CheckBox xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/tv_comment"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="20px"
|
||||
android:layout_marginBottom="20px"
|
||||
android:layout_marginStart="10px"
|
||||
android:layout_marginEnd="10px"
|
||||
android:background="@drawable/taxi_p_comment_select"
|
||||
android:button="@null"
|
||||
android:paddingStart="40px"
|
||||
android:paddingTop="8px"
|
||||
android:paddingEnd="40px"
|
||||
android:paddingBottom="8px"
|
||||
android:textColor="@color/taxi_order_status_textColor"
|
||||
android:textSize="40px"
|
||||
tools:text="非常好" />
|
||||
@@ -37,22 +37,25 @@
|
||||
app:shadowColor="#80000000"
|
||||
app:shadowRadius="60px"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible"
|
||||
app:shadow_position="outer"
|
||||
app:xOffset="0px"
|
||||
app:yOffset="0px">
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/cl_comment_contain"
|
||||
android:layout_width="@dimen/dp_867"
|
||||
android:layout_height="@dimen/dp_657"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:background="@drawable/bg_taxi_p_arrived_info"
|
||||
app:layout_constraintStart_toStartOf="parent">
|
||||
|
||||
<ImageView
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:src="@drawable/taxi_p_arrived_end_light"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"/>
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/taxi_p_arrived_end_light"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
<ImageView
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:src="@drawable/taxi_p_arrived_end_light"
|
||||
@@ -186,6 +189,33 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rv_comment_list"
|
||||
app:layout_constraintTop_toBottomOf="@+id/iv_star_hide"
|
||||
android:layout_marginTop="50px"
|
||||
android:visibility="invisible"
|
||||
android:layout_marginStart="@dimen/dp_53"
|
||||
android:layout_marginEnd="@dimen/dp_53"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/btn_submit"
|
||||
android:text="提交"
|
||||
android:gravity="center"
|
||||
android:visibility="invisible"
|
||||
android:textColor="@color/taxi_order_status_textColor"
|
||||
app:layout_constraintTop_toBottomOf="@+id/rv_comment_list"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:background="@drawable/taxi_p_comment_submit"
|
||||
android:textSize="@dimen/sp_46"
|
||||
android:layout_marginTop="60px"
|
||||
android:layout_width="400px"
|
||||
android:layout_marginBottom="80px"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</com.mogo.och.common.module.wigets.OCHBorderShadowLayout>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user