From cad389448ecf0d274cf4eedba2ebcf33c528a089 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 21 Jun 2022 20:29:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B9=98=E5=AE=A2=E8=AF=84=E8=AE=BA=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=96=87=E5=AD=97=E8=AF=84=E8=AE=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OCH/mogo-och-taxi-passenger/build.gradle | 3 +- .../bean/TaxiPassengerAllStarWorld.java | 26 +++ .../TaxiPassengerScoreUpdateOrderReqBean.java | 12 +- .../callback/ITaxiPassengerScoreCallback.java | 4 +- .../passenger/model/TaxiPassengerModel.java | 14 +- .../network/TaxiPassengerServiceApi.java | 22 ++- .../network/TaxiPassengerServiceManager.java | 26 ++- .../presenter/BaseTaxiPassengerPresenter.java | 8 +- .../ui/TaxiPassengerBaseFragment.java | 14 +- .../{ => comment}/TaxiPassengerArrivedView.kt | 156 ++++++++++++++++-- .../ui/comment/adapter/CommentAdapter.kt | 56 +++++++ .../ui/comment/adapter/ItemCommentHolder.java | 25 +++ .../passenger/widget/ResizeAnimation.java | 39 +++++ .../res/drawable/taxi_p_comment_select.xml | 6 + .../res/drawable/taxi_p_comment_selected.xml | 6 + .../res/drawable/taxi_p_comment_submit.xml | 6 + .../src/main/res/layout/list_comment_item.xml | 19 +++ .../res/layout/taxi_p_arrived_end_panel.xml | 40 ++++- 18 files changed, 436 insertions(+), 46 deletions(-) create mode 100644 OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/bean/TaxiPassengerAllStarWorld.java rename OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/{ => comment}/TaxiPassengerArrivedView.kt (66%) create mode 100644 OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/comment/adapter/CommentAdapter.kt create mode 100644 OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/comment/adapter/ItemCommentHolder.java create mode 100644 OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/widget/ResizeAnimation.java create mode 100644 OCH/mogo-och-taxi-passenger/src/main/res/drawable/taxi_p_comment_select.xml create mode 100644 OCH/mogo-och-taxi-passenger/src/main/res/drawable/taxi_p_comment_selected.xml create mode 100644 OCH/mogo-och-taxi-passenger/src/main/res/drawable/taxi_p_comment_submit.xml create mode 100644 OCH/mogo-och-taxi-passenger/src/main/res/layout/list_comment_item.xml diff --git a/OCH/mogo-och-taxi-passenger/build.gradle b/OCH/mogo-och-taxi-passenger/build.gradle index 65642e14a3..f3346cda06 100644 --- a/OCH/mogo-och-taxi-passenger/build.gradle +++ b/OCH/mogo-och-taxi-passenger/build.gradle @@ -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 diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/bean/TaxiPassengerAllStarWorld.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/bean/TaxiPassengerAllStarWorld.java new file mode 100644 index 0000000000..4810e8d06f --- /dev/null +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/bean/TaxiPassengerAllStarWorld.java @@ -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 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; + } +} diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/bean/TaxiPassengerScoreUpdateOrderReqBean.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/bean/TaxiPassengerScoreUpdateOrderReqBean.java index 75234703cf..e5cc00ca24 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/bean/TaxiPassengerScoreUpdateOrderReqBean.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/bean/TaxiPassengerScoreUpdateOrderReqBean.java @@ -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 evalLabeBasicList; - public TaxiPassengerScoreUpdateOrderReqBean(String orderNo, int star) { + public TaxiPassengerScoreUpdateOrderReqBean(String orderNo, int star,List data) { this.orderNo = orderNo; this.star = star; + for (TaxiPassengerAllStarWorld.TaxiPassengerStarWorld datum : data) { + datum.isSelect=null; + datum.sort = null; + datum.star = null; + } + this.evalLabeBasicList = data; } + } diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/ITaxiPassengerScoreCallback.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/ITaxiPassengerScoreCallback.java index 4bb7b6e187..8a726a52d2 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/ITaxiPassengerScoreCallback.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/ITaxiPassengerScoreCallback.java @@ -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); } diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java index 83f21b9e67..b1c0bcc138 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java @@ -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() { @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 commonCallback) { - if (orderNo == null) return; - TaxiPassengerServiceManager.getInstance().arrivedAndScore(mContext,orderNo,score, + public void arrivedAndScore(TaxiPassengerScoreUpdateOrderReqBean taxiPassengerScoreUpdateOrderReqBean , ITaxiPassengerCommonValueCallback commonCallback) { + if (taxiPassengerScoreUpdateOrderReqBean.orderNo == null) return; + TaxiPassengerServiceManager.getInstance().arrivedAndScore(mContext,taxiPassengerScoreUpdateOrderReqBean, new TaxiPassengerServiceCallback() { @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); } diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceApi.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceApi.java index a8e84f6b69..5ac328f3a7 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceApi.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceApi.java @@ -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 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 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 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 getWorldByStar(@Header ("appId") String appId, @Header("ticket") String ticket,@Query("star") String star); + } diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceManager.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceManager.java index c69f939b09..2573bae0ff 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceManager.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceManager.java @@ -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 callback){ + public void arrivedAndScore(Context context,TaxiPassengerScoreUpdateOrderReqBean taxiPassengerScoreUpdateOrderReqBean, TaxiPassengerServiceCallback 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 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 callback){ + mOCHTaxiServiceApi.getWorldByStar( + MoGoAiCloudClientConfig.getInstance().getServiceAppId() + ,MoGoAiCloudClientConfig.getInstance().getToken(),start) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(getSubscribeImpl(context, callback, "checkPhoneAndUpdateOrderStatus")); + } + } diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java index 44d635ab52..008cff94ff 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java @@ -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 mView.showArrivedEndLayout2Thank(aBoolean)); + public void arrivedAndScore(TaxiPassengerScoreUpdateOrderReqBean taxiPassengerScoreUpdateOrderReqBean){ + TaxiPassengerModel.getInstance().arrivedAndScore(taxiPassengerScoreUpdateOrderReqBean,aBoolean -> mView.showArrivedEndLayout2Thank(aBoolean)); } } diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.java index d758efb3bf..fbc12854c8 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.java @@ -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 { - 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(new TaxiPassengerArrivedView(getContext())); - mArrivedEndView.get().setITaxiPassengerScoreCallback((fraction, orderNo) -> getPresenter().arrivedAndScore(fraction,orderNo)); + mArrivedEndView.get().setITaxiPassengerScoreCallback((taxiPassengerScoreUpdateOrderReqBean) -> getPresenter().arrivedAndScore(taxiPassengerScoreUpdateOrderReqBean)); } private void initCheckView() { diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerArrivedView.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/comment/TaxiPassengerArrivedView.kt similarity index 66% rename from OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerArrivedView.kt rename to OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/comment/TaxiPassengerArrivedView.kt index fea4e70c1d..a613475f6e 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerArrivedView.kt +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/comment/TaxiPassengerArrivedView.kt @@ -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() 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(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 { + 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 { + 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" } diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/comment/adapter/CommentAdapter.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/comment/adapter/CommentAdapter.kt new file mode 100644 index 0000000000..bc73f62522 --- /dev/null +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/comment/adapter/CommentAdapter.kt @@ -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) : + RecyclerView.Adapter() { + + fun add(taxiPassengerStarWorld: TaxiPassengerStarWorld) { + itemDataList.add(taxiPassengerStarWorld) + notifyItemInserted(itemDataList.size) + } + + fun addAll(itemDataList: MutableList){ + this.itemDataList.clear() + this.itemDataList.addAll(itemDataList) + this.notifyDataSetChanged() + } + fun getSelectComment(): List { + 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" + } +} \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/comment/adapter/ItemCommentHolder.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/comment/adapter/ItemCommentHolder.java new file mode 100644 index 0000000000..b09b073cde --- /dev/null +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/comment/adapter/ItemCommentHolder.java @@ -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); + } + +} diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/widget/ResizeAnimation.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/widget/ResizeAnimation.java new file mode 100644 index 0000000000..be2442a014 --- /dev/null +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/widget/ResizeAnimation.java @@ -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; + } + +} diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/taxi_p_comment_select.xml b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/taxi_p_comment_select.xml new file mode 100644 index 0000000000..8d229a5867 --- /dev/null +++ b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/taxi_p_comment_select.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/taxi_p_comment_selected.xml b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/taxi_p_comment_selected.xml new file mode 100644 index 0000000000..674638b8d0 --- /dev/null +++ b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/taxi_p_comment_selected.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/taxi_p_comment_submit.xml b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/taxi_p_comment_submit.xml new file mode 100644 index 0000000000..bf91236244 --- /dev/null +++ b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/taxi_p_comment_submit.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/layout/list_comment_item.xml b/OCH/mogo-och-taxi-passenger/src/main/res/layout/list_comment_item.xml new file mode 100644 index 0000000000..d8197e2147 --- /dev/null +++ b/OCH/mogo-och-taxi-passenger/src/main/res/layout/list_comment_item.xml @@ -0,0 +1,19 @@ + + diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_arrived_end_panel.xml b/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_arrived_end_panel.xml index af88f2d3bc..c3963c55ca 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_arrived_end_panel.xml +++ b/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_arrived_end_panel.xml @@ -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"> + + 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" /> + + + +