[删除代码]
This commit is contained in:
yangyakun
2024-05-16 16:22:47 +08:00
parent b45cb6f72f
commit 94060edcdb
51 changed files with 10 additions and 1693 deletions

View File

@@ -2,14 +2,6 @@
package="com.mogo.och.bus">
<application>
<!--这里是为了测试增加的广播-->
<receiver android:name=".receiver.TestBusBroadcastReceiver">
<intent-filter>
<action android:name="com.bus.test_control" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
<activity android:name=".ui.BusSwitchLineActivity"
android:theme="@style/SwitchLineDialogStyle"
android:launchMode="singleTask"

View File

@@ -1,42 +0,0 @@
package com.mogo.och.bus.bean;
import com.mogo.commons.storage.SharedPrefsMgr;
public
/**
* @author congtaowang
* @since 2021/3/22
*
* 小巴车运营状态请求参数
*/
class BusOperationStatusRequest {
private String sn;
private double lat;
private double lon;
public BusOperationStatusRequest(double lon, double lat) {
this.sn = SharedPrefsMgr.getInstance().getSn();
this.lat = lat;
this.lon = lon;
}
public void setLat(double lat) {
this.lat = lat;
}
public void setLon(double lon) {
this.lon = lon;
}
public String getSn() {
return sn;
}
public double getLat() {
return lat;
}
public double getLon() {
return lon;
}
}

View File

@@ -1,24 +0,0 @@
package com.mogo.och.bus.bean;
import com.mogo.commons.storage.SharedPrefsMgr;
public
/**
* @author congtaowang
* @since 2021/3/22
*
* 小巴车重置路线状态请求参数
*/
class BusResetLineStatusRequest {
private String sn;
public BusResetLineStatusRequest() {
this.sn = SharedPrefsMgr.getInstance().getSn();
}
public String getSn() {
return sn;
}
}

View File

@@ -15,9 +15,6 @@ import androidx.annotation.Nullable;
import com.elegant.network.utils.GsonUtil;
import com.mogo.aicloud.services.socket.IMogoOnMessageListener;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.commons.module.status.IMogoStatusChangedListener;
import com.mogo.commons.module.status.MogoStatusManager;
import com.mogo.commons.module.status.StatusDescriptor;
import com.mogo.eagle.core.data.BaseData;
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters;
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
@@ -27,12 +24,9 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Liste
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager;
import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
import com.mogo.eagle.core.utilcode.util.CoordinateUtils;
import com.mogo.eagle.core.utilcode.util.DrivingDirectionUtils;
import com.mogo.eagle.core.utilcode.util.GsonUtils;
import com.mogo.eagle.core.utilcode.util.NetworkUtils;
import com.mogo.eagle.core.utilcode.util.StringUtils;
import com.mogo.eagle.core.utilcode.util.ToastUtils;

View File

@@ -31,28 +31,6 @@ public class BusModelLoopManager {
}
private Disposable mHeartbeatDisposable; //心跳轮询
// private Disposable mQueryPassengerDisposable; //查询核销乘客
// public void startQueryPassengerWriteOffLoop() {
// if (mQueryPassengerDisposable != null && !mQueryPassengerDisposable.isDisposed()) {
// return;
// }
// CallerLogger.i(M_BUS + TAG, "startQueryPassengerWriteOffLoop()");
// mQueryPassengerDisposable = Observable.interval(LOOP_DELAY_500,
// LOOP_PASSENGER_5S, TimeUnit.MILLISECONDS)
// .map((aLong -> aLong + 1))
// .subscribeOn(Schedulers.io())
// .observeOn(AndroidSchedulers.mainThread())
// .subscribe(aLong -> BusOrderModel.getInstance().queryPassengerWriteOff());
// }
// public void stopQueryPassengerWriteOffLoop() {
// if (mQueryPassengerDisposable != null) {
// CallerLogger.i(M_BUS + TAG, "stopQueryPassengerWriteOffLoop()");
// mQueryPassengerDisposable.dispose();
// mQueryPassengerDisposable = null;
// }
// }
public void startHeartbeatLoop() {
if (mHeartbeatDisposable != null && !mHeartbeatDisposable.isDisposed()) {

View File

@@ -1,42 +0,0 @@
package com.mogo.och.bus.receiver;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.och.bus.constant.BusConst;
/**
* 测试小巴车的场景
*
* @author donghongyu
* @date 4/26/21 12:08 PM
*/
public class TestBusBroadcastReceiver extends BroadcastReceiver {
private static final String TAG = "TestBusBroadcastReceiver";
private Context mContext;
@Override
public void onReceive(Context context, Intent intent) {
try {
this.mContext = context;
int sceneType = intent.getIntExtra(BusConst.BROADCAST_TEST_BUS_CONTROL_TYPE_EXTRA_KEY, 0);
CallerLogger.d(M_BUS + TAG, "sceneType:" + sceneType);
// 分发场景
dispatchSceneTest(sceneType);
} catch (Exception e) {
e.printStackTrace();
}
}
private void dispatchSceneTest(int sceneType) {
}
}

View File

@@ -1,187 +0,0 @@
package com.mogo.och.bus.view;
import android.animation.ValueAnimator;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.view.View;
import androidx.annotation.Nullable;
import com.mogo.och.bus.R;
/**
* created by wujifei on 2021/3/24 16:20
* describe:
*/
public class BusArcView extends View {
//中心的文字描述
private final String mDes = "KM/H";
//根据数据显示的圆弧Paint
private Paint mArcPaint;
//圆弧颜色
private int mArcColor;
//圆弧的画笔的宽度
private final float mStrokeWith = getResources().getDimension(R.dimen.bus_ext_arcView_stroke_with);
//文字描述的paint
private Paint mTextPaint;
//当前进度夹角大小
private float mIncludedAngle = 0;
//当前数据
private int currentValue;
//最大数据
private final int maxValue = 240;
//圆弧背景的开始和结束间的夹角大小
private final float mAngle = 270;
//上次绘制圆弧夹角
private float lastAngle = 0;
public BusArcView(Context context) {
this(context, null);
}
public BusArcView(Context context, @Nullable AttributeSet attrs) {
this(context, attrs, 0);
}
public BusArcView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//初始化paint
initPaint();
//绘制弧度
drawArc(canvas);
//绘制文本
drawText(canvas);
}
private void drawText(Canvas canvas) {
Rect mRect = new Rect();
String mValue = String.valueOf(currentValue);
mTextPaint.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
//绘制中心的数值
mTextPaint.getTextBounds(mValue, 0, mValue.length(), mRect);
canvas.drawText(mValue, getWidth() / 2.0f, getHeight() / 2.0f + mRect.height() / 2.0f - 10, mTextPaint);
mTextPaint.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
//绘制中心文字描述
mTextPaint.setTextSize(getResources().getDimension(R.dimen.bus_ext_arcView_des_text_size));
mTextPaint.getTextBounds(mDes, 0, mDes.length(), mRect);
canvas.drawText(mDes, getWidth() / 2.0f, getHeight() * 17.0f / 20.0f + mRect.height() / 2.0f, mTextPaint);
}
private void drawArc(Canvas canvas) {
//绘制圆弧背景
RectF mRectF = new RectF(mStrokeWith, mStrokeWith, getWidth() - mStrokeWith, getHeight() - mStrokeWith);
canvas.drawArc(mRectF, 135, mAngle, false, mArcPaint);
//绘制当前数值对应的圆弧
mArcPaint.setColor(mArcColor);
//根据当前数据绘制对应的圆弧
canvas.drawArc(mRectF, 135, mIncludedAngle, false, mArcPaint);
}
private void initPaint() {
//圆弧的paint
mArcPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
//抗锯齿
mArcPaint.setAntiAlias(true);
mArcPaint.setColor(Color.parseColor("#151D4C"));
//设置透明度数值为0-255
mArcPaint.setAlpha(100);
//设置画笔的画出的形状
mArcPaint.setStrokeJoin(Paint.Join.ROUND);
mArcPaint.setStrokeCap(Paint.Cap.ROUND);
//设置画笔类型
mArcPaint.setStyle(Paint.Style.STROKE);
//画笔宽度
mArcPaint.setStrokeWidth(mStrokeWith);
//中心文字的paint
mTextPaint = new Paint();
mTextPaint.setAntiAlias(true);
mTextPaint.setColor(Color.parseColor("#FFFFFF"));
//设置文本的对齐方式
mTextPaint.setTextAlign(Paint.Align.CENTER);
//mTextPaint.setTextSize(getResources().getDimensionPixelSize(R.dimen.dp_12));
mTextPaint.setTextSize(getResources().getDimension(R.dimen.bus_ext_arcView_center_text_size));
}
/**
* 为绘制弧度及数据设置动画
*
* @param startAngle 开始的弧度
* @param currentAngle 需要绘制的弧度
* @param time 动画执行的时长
*/
private void setAnimation(float startAngle, float currentAngle, int time) {
//绘制当前数据对应的圆弧的动画效果
ValueAnimator progressAnimator = ValueAnimator.ofFloat(startAngle, currentAngle);
progressAnimator.setDuration(time);
progressAnimator.setTarget(mIncludedAngle);
progressAnimator.addUpdateListener(animation -> {
mIncludedAngle = (float) animation.getAnimatedValue();
//重新绘制,不然不会出现效果
postInvalidate();
});
//开始执行动画
progressAnimator.start();
}
/**
* 设置弧形颜色
*
* @param value 颜色值
*/
public void setArcColor(int value) {
mArcColor = value;
}
/**
* 设置数据
*
* @param value 当前绘制的值
*/
public void setValues(int value) {
//完全覆盖
if (value > maxValue) {
value = maxValue;
}
if (value < 0) {
value = 0;
}
currentValue = value;
//计算弧度比重
float scale = (float) currentValue / maxValue;
//计算弧度
float currentAngle = scale * mAngle;
//开始执行动画
setAnimation(lastAngle, currentAngle, 1000);
lastAngle = currentAngle;
//重新绘制
postInvalidate();
}
private float dp2px(float dp) {
DisplayMetrics metrics = Resources.getSystem().getDisplayMetrics();
return dp * metrics.density;
}
}

View File

@@ -1,37 +0,0 @@
package com.mogo.och.bus.view;
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import androidx.constraintlayout.widget.ConstraintLayout;
import com.mogo.commons.debug.DebugConfig;
/**
* 强制拦截所有touch时间的约束布局
*
* @author tongchenfei
*/
public class NoTouchConstraintLayout extends ConstraintLayout {
public NoTouchConstraintLayout(Context context) {
super(context);
}
public NoTouchConstraintLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
public NoTouchConstraintLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if(DebugConfig.isDebug()){
return super.onInterceptTouchEvent(ev);
}else {
return true;
}
}
}

View File

@@ -1,64 +0,0 @@
package com.mogo.och.bus.view;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.DashPathEffect;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Shader;
import android.util.AttributeSet;
import android.view.View;
import androidx.annotation.Nullable;
/**
* 垂直虚线
*
* @author tongchenfei
*/
public class VerticalDashLineView extends View {
public VerticalDashLineView(Context context) {
this(context,null);
}
public VerticalDashLineView(Context context, @Nullable AttributeSet attrs) {
this(context, attrs,0);
}
public VerticalDashLineView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private final Paint linePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
private final Path dashPath = new Path();
private void init(){
linePaint.setColor(Color.GREEN);
linePaint.setStyle(Paint.Style.STROKE);
linePaint.setStrokeWidth(2);
linePaint.setPathEffect(new DashPathEffect(new float[]{5, 5}, 0));
}
public void setGradient(int startColor, int endColor) {
LinearGradient linearGradient = new LinearGradient(0, 0, getWidth(), getHeight(), startColor, endColor, Shader.TileMode.CLAMP);
linePaint.setShader(linearGradient);
invalidate();
}
public void setColor(int color) {
linePaint.setShader(null);
linePaint.setColor(color);
invalidate();
}
@Override
protected void onDraw(Canvas canvas) {
dashPath.reset();
dashPath.moveTo((float) getWidth()/2, 0);
dashPath.lineTo((float) getWidth()/2,getHeight());
canvas.drawPath(dashPath,linePaint);
}
}

View File

@@ -1,64 +0,0 @@
package com.mogo.och.bus.passenger.utils;
import android.content.Context;
import java.io.IOException;
import java.io.InputStream;
/**
* @author donghongyu
* @date 12/18/20 5:37 PM
*/
public class BusPassengerMapAssetStyleUtil {
public static byte[] getAssetsStyle(Context context,String fileName) {
byte[] buffer1 = null;
InputStream is1 = null;
try {
is1 = context.getResources().getAssets().open(fileName); //eg. over_view_style.data
int lenght1 = is1.available();
buffer1 = new byte[lenght1];
int count = 0;
while ((count = is1.read(buffer1)) > 0) {
is1.read(buffer1);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (is1 != null) {
is1.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return buffer1;
}
public static byte[] getAssetsExtraStyle(Context context, String fileName) {
byte[] buffer1 = null;
InputStream is1 = null;
try {
is1 = context.getResources().getAssets().open(fileName); //eg. over_view_style_extra.data
int lenght1 = is1.available();
buffer1 = new byte[lenght1];
is1.read(buffer1);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (is1 != null) {
is1.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return buffer1;
}
}

View File

@@ -1,13 +0,0 @@
package com.mogo.och.bus.passenger.utils
import android.content.res.Resources
/**
* @author: wangmingjun
* @date: 2022/1/21
*/
object DimenUtil{
fun dp2px(value:Float):Float{
return (0.5f + value * Resources.getSystem().displayMetrics.density)
}
}

View File

@@ -1,9 +0,0 @@
package com.mogo.och.bus.passenger.callback;
/**
* @author: wangmingjun
* @date: 2022/3/10
*/
public interface IBusPassengerMapViewCallback {
void onCameraChange(float bearing);
}

View File

@@ -21,7 +21,6 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener
import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager.addListener
import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager
@@ -66,7 +65,6 @@ import com.mogo.och.common.module.utils.PinYinUtil
import com.mogo.och.data.bean.BusRoutesResult
import com.mogo.och.data.bean.BusStationBean
import io.reactivex.schedulers.Schedulers
import mogo.telematics.pad.MessagePad.ArrivalNotification
import java.util.concurrent.ConcurrentHashMap
/**
@@ -261,12 +259,12 @@ object BusPassengerModel {
return
}
d(M_BUS_P + TAG, "AutopilotControlParameters is update.")
updateAutopilotControlParameters(parameters)
CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(parameters)
}
private fun clearAutopilotControlParameters() {
d(M_BUS_P + TAG, "AutopilotControlParameters is clear.")
updateAutopilotControlParameters(null)
CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(null)
}
private fun initAutopilotControlParameters(

View File

@@ -27,23 +27,11 @@ class PM2BaseFragment :
}
override fun initViews() {
//横竖屏
// setScreenDirection()
tv_bug_b2_p_version.text = "版本:${AppUtils.getAppVersionName()}"
//隐藏小地图
initFragment()
}
// private fun setScreenDirection() {
// var ro = Settings.System.getInt(context?.contentResolver,
// Settings.System.USER_ROTATION,Surface.ROTATION_270)
// if (ro != Surface.ROTATION_270){
// ro = Surface.ROTATION_270
// }
// Settings.System.putInt(context?.contentResolver,
// Settings.System.USER_ROTATION,ro)
// }
/**
* 初始化行程信息,高静地图,宣传 三个fragment
*/

View File

@@ -4,6 +4,4 @@ package com.magic.mogo.och.charter.bean
* @author: wangmingjun
* @date: 2023/2/23
*/
data class Station(var siteId: Int, var siteName: String, var seq: Int)
data class ArriveDestRequest(val sn:String, val lineId:Long,val writeVersion:Long)

View File

@@ -1,13 +0,0 @@
package com.mogo.och.charter.passenger.bean.request;
public
/**
* 根据车机行驶线路站点信息
*/
class BusPassengerQueryLineRequest {
private String sn;
public BusPassengerQueryLineRequest(String sn) {
this.sn = sn;
}
}

View File

@@ -1,13 +0,0 @@
package com.mogo.och.charter.passenger.callback;
import com.mogo.eagle.core.data.map.MogoLocation;
/**
* Created on 2022/3/31
*
* Model->Presenter回调状态控制器监听accOn、adas ui show、voice ui show、push ui show、v2x ui show等等
*/
public interface IBusPassengerControllerStatusCallback {
// 自车定位
void onCarLocationChanged(MogoLocation location);
}

View File

@@ -1,64 +0,0 @@
package com.mogo.och.charter.passenger.utils;
import android.content.Context;
import java.io.IOException;
import java.io.InputStream;
/**
* @author donghongyu
* @date 12/18/20 5:37 PM
*/
public class BusPassengerMapAssetStyleUtil {
public static byte[] getAssetsStyle(Context context,String fileName) {
byte[] buffer1 = null;
InputStream is1 = null;
try {
is1 = context.getResources().getAssets().open(fileName); //eg. over_view_style.data
int lenght1 = is1.available();
buffer1 = new byte[lenght1];
int count = 0;
while ((count = is1.read(buffer1)) > 0) {
is1.read(buffer1);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (is1 != null) {
is1.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return buffer1;
}
public static byte[] getAssetsExtraStyle(Context context, String fileName) {
byte[] buffer1 = null;
InputStream is1 = null;
try {
is1 = context.getResources().getAssets().open(fileName); //eg. over_view_style_extra.data
int lenght1 = is1.available();
buffer1 = new byte[lenght1];
is1.read(buffer1);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (is1 != null) {
is1.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return buffer1;
}
}

View File

@@ -1,7 +1,5 @@
package com.mogo.och.charter.passenger.utils
import android.os.Build
import androidx.annotation.RequiresApi
import com.mogo.commons.voice.IMogoVoiceCmdCallBack
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.shuyu.gsyvideoplayer.GSYVideoManager

View File

@@ -1,21 +0,0 @@
package com.mogo.och.charter.passenger.utils
import android.content.Context
import android.graphics.*
import android.graphics.drawable.BitmapDrawable
import android.graphics.drawable.Drawable
import androidx.annotation.DrawableRes
object ZoomDrawable {
fun zoomDrawableImage(context: Context,@DrawableRes id:Int,scaleX:Float,scaleY:Float):Drawable{
val bitmap: Bitmap = BitmapFactory.decodeResource(context.resources, id)
val bitmapWidth = bitmap.width
val bitmapHeight = bitmap.height
val matrix = Matrix()
matrix.postScale(scaleX, scaleY)
// 产生缩放后的Bitmap对象
val resizeBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmapWidth, bitmapHeight, matrix, true)
return BitmapDrawable(context.resources,resizeBitmap)
}
}

View File

@@ -2,14 +2,6 @@
package="com.mogo.och.shuttle">
<application>
<!--这里是为了测试增加的广播-->
<receiver android:name="com.mogo.och.shuttle.receiver.TestBusBroadcastReceiver">
<intent-filter>
<action android:name="com.bus.test_control" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
<activity android:name="com.mogo.och.shuttle.ui.BusSwitchLineActivity"
android:theme="@style/SwitchLineDialogStyle"
android:launchMode="singleTask"

View File

@@ -1,42 +0,0 @@
package com.mogo.och.shuttle.bean;
import com.mogo.commons.storage.SharedPrefsMgr;
public
/**
* @author congtaowang
* @since 2021/3/22
*
* 小巴车运营状态请求参数
*/
class BusOperationStatusRequest {
private String sn;
private double lat;
private double lon;
public BusOperationStatusRequest(double lon, double lat) {
this.sn = SharedPrefsMgr.getInstance().getSn();
this.lat = lat;
this.lon = lon;
}
public void setLat(double lat) {
this.lat = lat;
}
public void setLon(double lon) {
this.lon = lon;
}
public String getSn() {
return sn;
}
public double getLat() {
return lat;
}
public double getLon() {
return lon;
}
}

View File

@@ -1,13 +0,0 @@
package com.mogo.och.shuttle.bean;
import com.mogo.eagle.core.data.BaseData;
import java.util.List;
/**
* @author: wangmingjun
* @date: 2021/10/19
*/
public class BusQueryWriteOffPassengersResponse extends BaseData {
public List<WriteOffPassenger> data;
}

View File

@@ -1,24 +0,0 @@
package com.mogo.och.shuttle.bean;
import com.mogo.commons.storage.SharedPrefsMgr;
public
/**
* @author congtaowang
* @since 2021/3/22
*
* 小巴车重置路线状态请求参数
*/
class BusResetLineStatusRequest {
private String sn;
public BusResetLineStatusRequest() {
this.sn = SharedPrefsMgr.getInstance().getSn();
}
public String getSn() {
return sn;
}
}

View File

@@ -1,30 +0,0 @@
package com.mogo.och.shuttle.bean;
import java.util.List;
/**
* Created by pangfan on 2021/8/19
*
* 订单状态更新请求数据结构
*/
public class BusRoutePlanningUpdateReqBean {
public String sn;
public int lineId;
public int startSiteId;
public int endSiteId;
public List<Result> points;
public static class Result {
public Double latitude;
public Double longitude;
}
public BusRoutePlanningUpdateReqBean(String sn, int lineId, int startSiteId
, int endSiteId, List<Result> points) {
this.sn = sn;
this.lineId = lineId;
this.startSiteId = startSiteId;
this.endSiteId = endSiteId;
this.points = points;
}
}

View File

@@ -1,24 +0,0 @@
package com.mogo.och.shuttle.bean;
import com.mogo.commons.storage.SharedPrefsMgr;
/**
* 查询核销乘客
*/
public class BusWriteOffPassengersQueryRequest {
private String sn;
private int taskId;
private int siteId;
private long verificationTime;
public BusWriteOffPassengersQueryRequest(int taskId, int siteId,long prePassengerTime) {
this.sn = SharedPrefsMgr.getInstance().getSn();
this.taskId = taskId;
this.siteId = siteId;
this.verificationTime = prePassengerTime;
}
public String getSn() {
return sn;
}
}

View File

@@ -1,27 +0,0 @@
package com.mogo.och.shuttle.bean;
import com.mogo.och.shuttle.constant.BusConst;
import com.mogo.och.shuttle.constant.BusConst;
import java.util.UUID;
/**
* Created on 2021/9/16
*
* 上传车机心跳信息请求数据
*/
public class CarHeartbeatReqBean {
public String sn;
public double lon; //经度
public double lat; //纬度
public String msgId; //心跳信息唯一标识
public int interval; //上报间隔单位秒非必传默认60秒
public CarHeartbeatReqBean(String sn, double lon, double lat) {
this.sn = sn;
this.lon = lon;
this.lat = lat;
this.msgId = UUID.randomUUID().toString();
this.interval = (int) (BusConst.LOOP_PERIOD_60S / 1000);
}
}

View File

@@ -43,17 +43,6 @@ public class BusLinePresenter extends Presenter<BusSwitchLineView> implements IB
BusLineModel.getInstance().setBusLinesCallback(this);
}
private void runOnUIThread( Runnable executor ) {
if ( executor == null ) {
return;
}
if ( Looper.myLooper() != Looper.getMainLooper() ) {
UiThreadHandler.post( executor );
} else {
executor.run();
}
}
@Override
public void onBusLinesChange(BusQueryLinesResponse lines) {
UiThreadHandler.post(new Runnable() {

View File

@@ -1,45 +0,0 @@
package com.mogo.och.shuttle.presenter;
import io.reactivex.disposables.Disposable;
/**
* Created on 2021/11/22
*
* 管理轮询逻辑(订单轮询、新单轮询、新单抢单结果轮询等等)
*/
public class BusModelLoopManager {
private static final String TAG = BusModelLoopManager.class.getSimpleName();
private static final class SingletonHolder {
private static final BusModelLoopManager INSTANCE = new BusModelLoopManager();
}
public static BusModelLoopManager getInstance() {
return SingletonHolder.INSTANCE;
}
private Disposable mHeartbeatDisposable; //心跳轮询
// private Disposable mQueryPassengerDisposable; //查询核销乘客
// public void startQueryPassengerWriteOffLoop() {
// if (mQueryPassengerDisposable != null && !mQueryPassengerDisposable.isDisposed()) {
// return;
// }
// CallerLogger.i(M_BUS + TAG, "startQueryPassengerWriteOffLoop()");
// mQueryPassengerDisposable = Observable.interval(LOOP_DELAY_500,
// LOOP_PASSENGER_5S, TimeUnit.MILLISECONDS)
// .map((aLong -> aLong + 1))
// .subscribeOn(Schedulers.io())
// .observeOn(AndroidSchedulers.mainThread())
// .subscribe(aLong -> BusOrderModel.getInstance().queryPassengerWriteOff());
// }
// public void stopQueryPassengerWriteOffLoop() {
// if (mQueryPassengerDisposable != null) {
// CallerLogger.i(M_BUS + TAG, "stopQueryPassengerWriteOffLoop()");
// mQueryPassengerDisposable.dispose();
// mQueryPassengerDisposable = null;
// }
// }
}

View File

@@ -5,7 +5,6 @@ import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS
import android.os.Looper;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.lifecycle.LifecycleOwner;
import com.mogo.commons.AbsMogoApplication;
@@ -32,16 +31,12 @@ import com.mogo.och.shuttle.util.BusTrajectoryManager;
import com.mogo.och.common.module.biz.login.ILoginCallback;
import com.mogo.och.common.module.biz.login.LoginStatusManager;
import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager;
import com.zhjt.mogo.adas.data.AdasConstants;
import java.util.ArrayList;
import java.util.List;
import mogo.telematics.pad.MessagePad;
import mogo_msg.MogoReportMsg;
import system_master.SsmInfo;
import system_master.SystemStatusInfo;
/**
* 网约车小巴

View File

@@ -1,42 +0,0 @@
package com.mogo.och.shuttle.receiver;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.och.shuttle.constant.BusConst;
/**
* 测试小巴车的场景
*
* @author donghongyu
* @date 4/26/21 12:08 PM
*/
public class TestBusBroadcastReceiver extends BroadcastReceiver {
private static final String TAG = "TestBusBroadcastReceiver";
private Context mContext;
@Override
public void onReceive(Context context, Intent intent) {
try {
this.mContext = context;
int sceneType = intent.getIntExtra(BusConst.BROADCAST_TEST_BUS_CONTROL_TYPE_EXTRA_KEY, 0);
CallerLogger.d(M_BUS + TAG, "sceneType:" + sceneType);
// 分发场景
dispatchSceneTest(sceneType);
} catch (Exception e) {
e.printStackTrace();
}
}
private void dispatchSceneTest(int sceneType) {
}
}

View File

@@ -1,87 +0,0 @@
package com.mogo.och.shuttle.ui;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.ConstraintLayout;
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils;
import com.mogo.och.shuttle.R;
import org.jetbrains.annotations.NotNull;
import chassis.Chassis;
/**
* @author Jing
* @description 方向盘下方的档位
* @since: 4/7/22
*/
public class ShuttleTapPositionView extends ConstraintLayout {
private static final String TAG = "TapPositionView";
private TextView tabP;
private TextView tabR;
private TextView tabN;
private TextView tabD;
private TypedArray typedArray;
public ShuttleTapPositionView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
LayoutInflater.from(context).inflate(R.layout.shuttle_tap_position, this);
tabP = findViewById(R.id.tap_p);
tabR = findViewById(R.id.tap_r);
tabN = findViewById(R.id.tap_n);
tabD = findViewById(R.id.tap_d);
typedArray = context.obtainStyledAttributes(attrs, R.styleable.TapPositionView);
if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)||AppIdentityModeUtils.isSweeper(FunctionBuildConfig.appIdentityMode)){
tabP.setVisibility(View.GONE);
}
}
public void updateWithGear(@NotNull Chassis.GearPosition gear) {
if (tabP != null && tabR != null && tabN != null && tabD != null) {
int defaultColor = typedArray.getColor(R.styleable.TapPositionView_defaultColor, -1);
int selectColor = typedArray.getColor(R.styleable.TapPositionView_selectColor, -1);
switch (gear) {
case GEAR_NONE:
tabP.setTextColor(defaultColor);
tabR.setTextColor(defaultColor);
tabN.setTextColor(defaultColor);
tabD.setTextColor(defaultColor);
break;
case GEAR_P:
tabP.setTextColor(selectColor);
tabR.setTextColor(defaultColor);
tabN.setTextColor(defaultColor);
tabD.setTextColor(defaultColor);
break;
case GEAR_R:
tabR.setTextColor(selectColor);
tabP.setTextColor(defaultColor);
tabN.setTextColor(defaultColor);
tabD.setTextColor(defaultColor);
break;
case GEAR_N:
tabN.setTextColor(selectColor);
tabR.setTextColor(defaultColor);
tabP.setTextColor(defaultColor);
tabD.setTextColor(defaultColor);
break;
case GEAR_D:
tabD.setTextColor(selectColor);
tabN.setTextColor(defaultColor);
tabR.setTextColor(defaultColor);
tabP.setTextColor(defaultColor);
break;
default:
break;
}
}
}
}

View File

@@ -1,187 +0,0 @@
package com.mogo.och.shuttle.view;
import android.animation.ValueAnimator;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.view.View;
import androidx.annotation.Nullable;
import com.mogo.och.shuttle.R;
/**
* created by wujifei on 2021/3/24 16:20
* describe:
*/
public class BusArcView extends View {
//中心的文字描述
private String mDes = "KM/H";
//根据数据显示的圆弧Paint
private Paint mArcPaint;
//圆弧颜色
private int mArcColor;
//圆弧的画笔的宽度
private float mStrokeWith = getResources().getDimension(R.dimen.bus_ext_arcView_stroke_with);
//文字描述的paint
private Paint mTextPaint;
//当前进度夹角大小
private float mIncludedAngle = 0;
//当前数据
private int currentValue;
//最大数据
private int maxValue = 240;
//圆弧背景的开始和结束间的夹角大小
private float mAngle = 270;
//上次绘制圆弧夹角
private float lastAngle = 0;
public BusArcView(Context context) {
this(context, null);
}
public BusArcView(Context context, @Nullable AttributeSet attrs) {
this(context, attrs, 0);
}
public BusArcView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//初始化paint
initPaint();
//绘制弧度
drawArc(canvas);
//绘制文本
drawText(canvas);
}
private void drawText(Canvas canvas) {
Rect mRect = new Rect();
String mValue = String.valueOf(currentValue);
mTextPaint.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
//绘制中心的数值
mTextPaint.getTextBounds(mValue, 0, mValue.length(), mRect);
canvas.drawText(mValue, getWidth() / 2.0f, getHeight() / 2.0f + mRect.height() / 2.0f - 10, mTextPaint);
mTextPaint.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
//绘制中心文字描述
mTextPaint.setTextSize(getResources().getDimension(R.dimen.bus_ext_arcView_des_text_size));
mTextPaint.getTextBounds(mDes, 0, mDes.length(), mRect);
canvas.drawText(mDes, getWidth() / 2.0f, getHeight() * 17.0f / 20.0f + mRect.height() / 2.0f, mTextPaint);
}
private void drawArc(Canvas canvas) {
//绘制圆弧背景
RectF mRectF = new RectF(mStrokeWith, mStrokeWith, getWidth() - mStrokeWith, getHeight() - mStrokeWith);
canvas.drawArc(mRectF, 135, mAngle, false, mArcPaint);
//绘制当前数值对应的圆弧
mArcPaint.setColor(mArcColor);
//根据当前数据绘制对应的圆弧
canvas.drawArc(mRectF, 135, mIncludedAngle, false, mArcPaint);
}
private void initPaint() {
//圆弧的paint
mArcPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
//抗锯齿
mArcPaint.setAntiAlias(true);
mArcPaint.setColor(Color.parseColor("#151D4C"));
//设置透明度数值为0-255
mArcPaint.setAlpha(100);
//设置画笔的画出的形状
mArcPaint.setStrokeJoin(Paint.Join.ROUND);
mArcPaint.setStrokeCap(Paint.Cap.ROUND);
//设置画笔类型
mArcPaint.setStyle(Paint.Style.STROKE);
//画笔宽度
mArcPaint.setStrokeWidth(mStrokeWith);
//中心文字的paint
mTextPaint = new Paint();
mTextPaint.setAntiAlias(true);
mTextPaint.setColor(Color.parseColor("#FFFFFF"));
//设置文本的对齐方式
mTextPaint.setTextAlign(Paint.Align.CENTER);
//mTextPaint.setTextSize(getResources().getDimensionPixelSize(R.dimen.dp_12));
mTextPaint.setTextSize(getResources().getDimension(R.dimen.bus_ext_arcView_center_text_size));
}
/**
* 为绘制弧度及数据设置动画
*
* @param startAngle 开始的弧度
* @param currentAngle 需要绘制的弧度
* @param time 动画执行的时长
*/
private void setAnimation(float startAngle, float currentAngle, int time) {
//绘制当前数据对应的圆弧的动画效果
ValueAnimator progressAnimator = ValueAnimator.ofFloat(startAngle, currentAngle);
progressAnimator.setDuration(time);
progressAnimator.setTarget(mIncludedAngle);
progressAnimator.addUpdateListener(animation -> {
mIncludedAngle = (float) animation.getAnimatedValue();
//重新绘制,不然不会出现效果
postInvalidate();
});
//开始执行动画
progressAnimator.start();
}
/**
* 设置弧形颜色
*
* @param value 颜色值
*/
public void setArcColor(int value) {
mArcColor = value;
}
/**
* 设置数据
*
* @param value 当前绘制的值
*/
public void setValues(int value) {
//完全覆盖
if (value > maxValue) {
value = maxValue;
}
if (value < 0) {
value = 0;
}
currentValue = value;
//计算弧度比重
float scale = (float) currentValue / maxValue;
//计算弧度
float currentAngle = scale * mAngle;
//开始执行动画
setAnimation(lastAngle, currentAngle, 1000);
lastAngle = currentAngle;
//重新绘制
postInvalidate();
}
private float dp2px(float dp) {
DisplayMetrics metrics = Resources.getSystem().getDisplayMetrics();
return dp * metrics.density;
}
}

View File

@@ -1,37 +0,0 @@
package com.mogo.och.shuttle.view;
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import androidx.constraintlayout.widget.ConstraintLayout;
import com.mogo.commons.debug.DebugConfig;
/**
* 强制拦截所有touch时间的约束布局
*
* @author tongchenfei
*/
public class NoTouchConstraintLayout extends ConstraintLayout {
public NoTouchConstraintLayout(Context context) {
super(context);
}
public NoTouchConstraintLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
public NoTouchConstraintLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if(DebugConfig.isDebug()){
return super.onInterceptTouchEvent(ev);
}else {
return true;
}
}
}

View File

@@ -1,64 +0,0 @@
package com.mogo.och.shuttle.passenger.utils;
import android.content.Context;
import java.io.IOException;
import java.io.InputStream;
/**
* @author donghongyu
* @date 12/18/20 5:37 PM
*/
public class BusPassengerMapAssetStyleUtil {
public static byte[] getAssetsStyle(Context context,String fileName) {
byte[] buffer1 = null;
InputStream is1 = null;
try {
is1 = context.getResources().getAssets().open(fileName); //eg. over_view_style.data
int lenght1 = is1.available();
buffer1 = new byte[lenght1];
int count = 0;
while ((count = is1.read(buffer1)) > 0) {
is1.read(buffer1);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (is1 != null) {
is1.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return buffer1;
}
public static byte[] getAssetsExtraStyle(Context context, String fileName) {
byte[] buffer1 = null;
InputStream is1 = null;
try {
is1 = context.getResources().getAssets().open(fileName); //eg. over_view_style_extra.data
int lenght1 = is1.available();
buffer1 = new byte[lenght1];
is1.read(buffer1);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (is1 != null) {
is1.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return buffer1;
}
}

View File

@@ -1,11 +1,5 @@
package com.mogo.och.shuttle.passenger.callback;
import com.amap.api.maps.model.LatLng;
import java.util.List;
import mogo.telematics.pad.MessagePad;
/**
* Created on 2022/3/31
*/

View File

@@ -1,9 +0,0 @@
package com.mogo.och.shuttle.passenger.callback;
/**
* @author: wangmingjun
* @date: 2022/3/10
*/
public interface IBusPassengerMapViewCallback {
void onCameraChange(float bearing);
}

View File

@@ -41,14 +41,6 @@ public abstract class BusPassengerBaseFragment<V extends IView, P extends Presen
mapBizView = findViewById(R.id.mapBizView);
showRouteFragment();
// mCurrentArriveStation.setOnLongClickListener(new View.OnLongClickListener() {
// @Override
// public boolean onLongClick(View v) {
// showOverviewFragment();
// return false;
// }
// });
}
@Override

View File

@@ -1,23 +0,0 @@
package com.mogo.och.shuttle.passenger.ui;
/**
* @author xiaoyuzhou
* @date 2021/6/24 11:33 上午
*/
public interface IBusPassengerMapDirectionView {
/**
* 绘制路径线
*/
void drawablePolyline();
/**
* 清除路径线
*/
void clearPolyline();
/**
* 设置路径中起终点marker
*/
void setLineMarker();
}

View File

@@ -1,11 +0,0 @@
package com.mogo.och.taxi.constant
/**
* Created on 2021/12/7
* 1 运营, 2 测试, 3演示
*/
enum class TaxiDriverRoleEnum(val code: Int) {
OPERATION( 1),
TEST( 2),
DEMO( 3);
}

View File

@@ -1,27 +0,0 @@
package com.mogo.och.taxi.constant
/**
* Created on 2022/08/19
*
*
* 0 初始状态,
* 10 接单状态 可接单,
* 20 暂停接到哪 不可接单,
*/
enum class TaxiOpenOrderStatusEnum(val code: Int) {
None( 0 ),
Ordering( 10),
UnOrdering( 20),;
companion object {
@JvmStatic
fun valueOf(code: Int): TaxiOpenOrderStatusEnum? {
for (value in values()) {
if (value.code == code) {
return value
}
}
return None
}
}
}

View File

@@ -84,7 +84,6 @@ import com.mogo.och.taxi.network.TaxiServiceManager;
import com.mogo.och.taxi.utils.OrderUtil;
import com.mogo.och.taxi.utils.TaxiAnalyticsManager;
import com.mogo.och.taxi.utils.TaxiTrajectoryManager;
import com.zhjt.mogo.adas.data.AdasConstants;
import com.zhjt.service.chain.ChainLog;
import org.jetbrains.annotations.NotNull;
@@ -98,8 +97,6 @@ import io.reactivex.exceptions.UndeliverableException;
import io.reactivex.plugins.RxJavaPlugins;
import mogo.telematics.pad.MessagePad;
import mogo_msg.MogoReportMsg;
import system_master.SsmInfo;
import system_master.SystemStatusInfo;
/**
* Created by pangfan on 2021/8/19

View File

@@ -20,6 +20,7 @@ import com.mogo.och.common.module.biz.login.ILoginCallback;
import com.mogo.och.common.module.biz.login.LoginStatusEnum;
import com.mogo.och.common.module.biz.login.LoginStatusManager;
import com.mogo.och.common.module.biz.login.OpenOrderStatusEnum;
import com.mogo.och.common.module.biz.login.RoleEnum;
import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager;
import com.mogo.och.common.module.voice.VoiceNotice;
import com.mogo.och.taxi.bean.OrderQueryRespBean;
@@ -28,7 +29,6 @@ import com.mogo.och.taxi.callback.ITaxiADASStatusCallback;
import com.mogo.och.taxi.callback.ITaxiControllerStatusCallback;
import com.mogo.och.taxi.callback.ITaxiOrderStatusCallback;
import com.mogo.och.taxi.constant.TaxiConst;
import com.mogo.och.taxi.constant.TaxiDriverRoleEnum;
import com.mogo.och.taxi.constant.TaxiOrderStatusEnum;
import com.mogo.och.taxi.model.TaxiModel;
import com.mogo.och.taxi.ui.TaxiFragment;
@@ -482,10 +482,13 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
TaxiModel.getInstance().startOrStopOrderLoop(LoginStatusManager.isLogin()&&LoginStatusManager.isOpenOrderType());
// 设置当前用户角色
String role = "";
if (TaxiDriverRoleEnum.DEMO.getCode() == LoginStatusManager.getPurpose().getCode()) {
role = TaxiConst.DEMO_USER;
} else if (TaxiDriverRoleEnum.TEST.getCode() == LoginStatusManager.getPurpose().getCode()) {
role = TaxiConst.TEST_USER;
switch (LoginStatusManager.getPurpose()) {
case DEMO:{
role = TaxiConst.DEMO_USER;
}
case TEST:{
role = TaxiConst.TEST_USER;
}
}
String finalRole = role;
UiThreadHandler.post(new Runnable() {

View File

@@ -1,62 +0,0 @@
package com.mogo.och.taxi.ui.speed
import android.content.Context
import android.util.AttributeSet
import android.view.Gravity
import android.view.LayoutInflater
import android.widget.LinearLayout
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.findViewTreeViewModelStoreOwner
import com.mogo.och.taxi.R
import kotlinx.android.synthetic.main.taxi_speed.view.taxi_speed_value
/**
* 剩余时间和结束订单入口
*/
class SpeedView : LinearLayout,SpeedViewModel.ISpeedCallback {
private val TAG = "SpeedView"
constructor(context: Context) : super(context)
constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet)
constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super(
context,
attributeSet,
defStyleAttr
)
private fun initView() {
LayoutInflater.from(context).inflate(R.layout.taxi_speed, this, true)
gravity = Gravity.CENTER_HORIZONTAL
orientation = VERTICAL
}
override fun updateSpeedView(newSpeed: Float) {
val speed = (Math.abs(newSpeed) * 3.6f).toInt() // 倒车时工控机反馈定位信息中speed为负值
taxi_speed_value.text = speed.toString()
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
val viewModel = findViewTreeViewModelStoreOwner()?.let {
ViewModelProvider(it).get(SpeedViewModel::class.java)
}
viewModel?.setAutopilotStatusCallback(this)
}
override fun onDetachedFromWindow() {
super.onDetachedFromWindow()
}
init {
try {
initView()
} catch (e: Exception) {
e.printStackTrace()
}
}
}

View File

@@ -1,51 +0,0 @@
package com.mogo.och.taxi.ui.speed
import androidx.lifecycle.ViewModel
import com.mogo.eagle.core.data.map.MogoLocation
import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import java.util.concurrent.atomic.AtomicBoolean
class SpeedViewModel: ViewModel(), IMoGoChassisLocationGCJ02Listener {
private val TAG = SpeedViewModel::class.java.simpleName
private var viewCallback: ISpeedCallback?=null
private var isAnimateRunning = AtomicBoolean(false)
init {
}
fun setAutopilotStatusCallback(viewCallback: ISpeedCallback){
this.viewCallback = viewCallback
//定位监听, 传false是高德坐标系
CallerChassisLocationGCJ02ListenerManager.addListener(TAG, 3, this)
}
override fun onCleared() {
super.onCleared()
this.viewCallback = null
CallerChassisLocationGCJ02ListenerManager.removeListener(TAG)
}
interface ISpeedCallback{
/**
* 开始动画
*/
fun updateSpeedView(newSpeed: Float)
}
override fun onChassisLocationGCJ02(mogoLocation: MogoLocation?) {
UiThreadHandler.post({
mogoLocation?.let {
viewCallback?.updateSpeedView(it.gnssSpeed)
}
},UiThreadHandler.MODE.QUEUE)
}
}

View File

@@ -1,13 +0,0 @@
package com.mogo.och.taxi.utils
import android.content.res.Resources
/**
* @author: wangmingjun
* @date: 2022/1/21
*/
object DimenUtil{
fun dp2px(value:Float):Float{
return (0.5f + value * Resources.getSystem().displayMetrics.density)
}
}

View File

@@ -1,37 +0,0 @@
package com.mogo.och.taxi.utils;
import android.app.AppOpsManager;
import android.content.Context;
import android.content.pm.PackageManager;
import android.location.LocationManager;
import android.os.Build;
import androidx.core.content.ContextCompat;
/**
* @author: wangmingjun
* @date: 2021/12/7
*/
public class PermissionUtil {
public static boolean checkPermission(Context context,String... permissons) {
for (String permisson : permissons) {
if ((ContextCompat.checkSelfPermission(context,
permisson) != PackageManager.PERMISSION_GRANTED)) {
return false;
}
}
return true;
}
public static boolean isLocServiceEnable(Context context) {
LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (gps || network) {
return true;
}
return false;
}
}

View File

@@ -1,57 +0,0 @@
package com.mogo.och.taxi.passenger.ui.orderstatus
import android.content.Context
import android.util.AttributeSet
import androidx.appcompat.widget.AppCompatImageView
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.findViewTreeViewModelStoreOwner
import com.mogo.och.common.module.R
import com.mogo.och.common.module.wigets.map.orderstatus.OrderStatusViewModel
/**
*
*/
class OrderStatusView : AppCompatImageView, OrderStatusViewModel.IVisualCallback {
private val TAG = "VisualView"
constructor(context: Context) : super(context)
constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet)
constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super(
context,
attributeSet,
defStyleAttr
)
private fun initView() {
setImageResource(R.drawable.common_visual_medium)
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
val viewModel = findViewTreeViewModelStoreOwner()?.let {
ViewModelProvider(it).get(OrderStatusViewModel::class.java)
}
viewModel?.setDistanceCallback(this)
}
init {
try {
initView()
} catch (e: Exception) {
e.printStackTrace()
}
}
override fun setImageViewResource(name: Int) {
setImageResource(name)
}
}

View File

@@ -1,48 +0,0 @@
package com.mogo.och.taxi.passenger.ui.orderstatus
import androidx.annotation.DrawableRes
import androidx.lifecycle.ViewModel
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.common.module.biz.login.ILoginCallback
import com.mogo.och.common.module.biz.login.LoginStatusManager
import com.mogo.och.common.module.biz.login.OpenOrderStatusEnum
import com.mogo.och.common.module.wigets.map.orderstatus.OrderStatusViewModel
import com.mogo.och.taxi.passenger.common.R
class OrderStatusViewModel : ViewModel(), ILoginCallback {
private val TAG = OrderStatusViewModel::class.java.simpleName
private var viewCallback: IVisualCallback? = null
init {
}
override fun onCleared() {
super.onCleared()
LoginStatusManager.removeListener(TAG)
this.viewCallback = null
}
fun setDistanceCallback(viewCallback: IVisualCallback) {
LoginStatusManager.addListener(TAG, this)
this.viewCallback = viewCallback
}
override fun onOpenOrderStatusEnumChange(businessEnum: OpenOrderStatusEnum?) {
UiThreadHandler.post({
if (LoginStatusManager.isOpenOrderType()) {
this.viewCallback?.setImageViewResource(R.drawable.taxi_p_ordering)
} else {
this.viewCallback?.setImageViewResource(R.drawable.taxi_p_unorder)
}
}, UiThreadHandler.MODE.QUEUE)
}
interface IVisualCallback {
fun setImageViewResource(@DrawableRes name: Int)
}
}

View File

@@ -1,27 +0,0 @@
package com.mogo.och.unmanned.taxi.constant
/**
* Created on 2022/08/19
*
*
* 0 初始状态,
* 10 接单状态 可接单,
* 20 暂停接到哪 不可接单,
*/
enum class TaxiOpenOrderStatusEnum(val code: Int) {
None( 0 ),
Ordering( 10),
UnOrdering( 20),;
companion object {
@JvmStatic
fun valueOf(code: Int): TaxiOpenOrderStatusEnum? {
for (value in values()) {
if (value.code == code) {
return value
}
}
return None
}
}
}

View File

@@ -1,11 +0,0 @@
package com.mogo.och.unmanned.taxi.constant
/**
* RoboTaxi订单类型声明
*
* Created on 2021/12/6
*/
enum class TaxiOrderTypeEnum(val type: Int) {
Instant(1), // 即时单
Reserved(2) // 预约单
}