From cd0fb02d8f0bff20d2394ba66abb4f018262e0a7 Mon Sep 17 00:00:00 2001
From: wangxiang <1827945911@qq.com>
Date: Tue, 9 Jan 2024 10:18:44 +0800
Subject: [PATCH] 111
---
app/src/main/AndroidManifest.xml | 30 --
.../push/entity/RoutePlanLatPoint.java | 59 ---
.../listener/MapGpsSensorEventListener.java | 157 --------
.../ui/activity/DriveRouteDetailActivity.java | 55 ---
.../DriveSingleRouteCalculateActivity.java | 94 -----
.../push/ui/activity/PushTypeActivity.java | 5 -
.../activity/RideRouteCalculateActivity.java | 54 ---
.../ui/activity/RideRouteDetailActivity.java | 56 ---
.../push/ui/activity/RoutePlanActivity.java | 345 -----------------
.../push/ui/activity/SplashActivity.java | 5 -
.../push/ui/adapter/DriveListAdapter.java | 105 -----
.../push/ui/adapter/RideListAdapter.java | 103 -----
.../push/ui/fragment/DemoMapFragment.java | 360 ------------------
.../push/ui/fragment/HomeFragment.java | 30 +-
.../kanglai/push/ui/vm/InstantViewModel.java | 11 -
.../com/kanglai/push/ui/vm/MapViewModel.java | 29 --
.../main/res/layout/activity_basic_navi.xml | 13 -
.../main/res/layout/activity_route_plan.xml | 118 ------
.../res/layout/activity_route_plan_detail.xml | 56 ---
app/src/main/res/layout/fragment_map.xml | 24 --
app/src/main/res/layout/item_route_plan.xml | 61 ---
.../com/dolphin/core/util/AMapCommonUtil.java | 224 -----------
.../java/com/dolphin/core/util/ToastUtil.java | 119 ------
.../icon_custtexture_driving.png | Bin 971 -> 0 bytes
.../drawable-xxhdpi/icon_custtexture_ride.png | Bin 1496 -> 0 bytes
.../res/drawable-xxhdpi/icon_destination.png | Bin 4660 -> 0 bytes
.../res/drawable-xxhdpi/icon_driving1.png | Bin 702 -> 0 bytes
.../res/drawable-xxhdpi/icon_driving10.png | Bin 910 -> 0 bytes
.../res/drawable-xxhdpi/icon_driving11.png | Bin 941 -> 0 bytes
.../res/drawable-xxhdpi/icon_driving13.png | Bin 883 -> 0 bytes
.../res/drawable-xxhdpi/icon_driving2.png | Bin 699 -> 0 bytes
.../res/drawable-xxhdpi/icon_driving3.png | Bin 712 -> 0 bytes
.../res/drawable-xxhdpi/icon_driving4.png | Bin 711 -> 0 bytes
.../res/drawable-xxhdpi/icon_driving5.png | Bin 838 -> 0 bytes
.../res/drawable-xxhdpi/icon_driving6.png | Bin 832 -> 0 bytes
.../res/drawable-xxhdpi/icon_driving7.png | Bin 791 -> 0 bytes
.../res/drawable-xxhdpi/icon_driving8.png | Bin 824 -> 0 bytes
.../res/drawable-xxhdpi/icon_driving9.png | Bin 942 -> 0 bytes
.../main/res/drawable-xxhdpi/icon_orgin.png | Bin 4347 -> 0 bytes
.../main/res/drawable-xxhdpi/icon_pathway.png | Bin 4509 -> 0 bytes
.../java/com/dolphin/umeng/UmengClient.java | 3 -
41 files changed, 1 insertion(+), 2115 deletions(-)
delete mode 100644 app/src/main/java/com/kanglai/push/entity/RoutePlanLatPoint.java
delete mode 100644 app/src/main/java/com/kanglai/push/listener/MapGpsSensorEventListener.java
delete mode 100644 app/src/main/java/com/kanglai/push/ui/activity/DriveRouteDetailActivity.java
delete mode 100644 app/src/main/java/com/kanglai/push/ui/activity/DriveSingleRouteCalculateActivity.java
delete mode 100644 app/src/main/java/com/kanglai/push/ui/activity/RideRouteCalculateActivity.java
delete mode 100644 app/src/main/java/com/kanglai/push/ui/activity/RideRouteDetailActivity.java
delete mode 100644 app/src/main/java/com/kanglai/push/ui/activity/RoutePlanActivity.java
delete mode 100644 app/src/main/java/com/kanglai/push/ui/adapter/DriveListAdapter.java
delete mode 100644 app/src/main/java/com/kanglai/push/ui/adapter/RideListAdapter.java
delete mode 100644 app/src/main/java/com/kanglai/push/ui/fragment/DemoMapFragment.java
delete mode 100644 app/src/main/java/com/kanglai/push/ui/vm/MapViewModel.java
delete mode 100644 app/src/main/res/layout/activity_basic_navi.xml
delete mode 100644 app/src/main/res/layout/activity_route_plan.xml
delete mode 100644 app/src/main/res/layout/activity_route_plan_detail.xml
delete mode 100644 app/src/main/res/layout/fragment_map.xml
delete mode 100644 app/src/main/res/layout/item_route_plan.xml
delete mode 100644 library/core/src/main/java/com/dolphin/core/util/AMapCommonUtil.java
delete mode 100644 library/core/src/main/res/drawable-xxhdpi/icon_custtexture_driving.png
delete mode 100644 library/core/src/main/res/drawable-xxhdpi/icon_custtexture_ride.png
delete mode 100644 library/core/src/main/res/drawable-xxhdpi/icon_destination.png
delete mode 100644 library/core/src/main/res/drawable-xxhdpi/icon_driving1.png
delete mode 100644 library/core/src/main/res/drawable-xxhdpi/icon_driving10.png
delete mode 100644 library/core/src/main/res/drawable-xxhdpi/icon_driving11.png
delete mode 100644 library/core/src/main/res/drawable-xxhdpi/icon_driving13.png
delete mode 100644 library/core/src/main/res/drawable-xxhdpi/icon_driving2.png
delete mode 100644 library/core/src/main/res/drawable-xxhdpi/icon_driving3.png
delete mode 100644 library/core/src/main/res/drawable-xxhdpi/icon_driving4.png
delete mode 100644 library/core/src/main/res/drawable-xxhdpi/icon_driving5.png
delete mode 100644 library/core/src/main/res/drawable-xxhdpi/icon_driving6.png
delete mode 100644 library/core/src/main/res/drawable-xxhdpi/icon_driving7.png
delete mode 100644 library/core/src/main/res/drawable-xxhdpi/icon_driving8.png
delete mode 100644 library/core/src/main/res/drawable-xxhdpi/icon_driving9.png
delete mode 100644 library/core/src/main/res/drawable-xxhdpi/icon_orgin.png
delete mode 100644 library/core/src/main/res/drawable-xxhdpi/icon_pathway.png
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6912ae7..35668a3 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -116,36 +116,6 @@
android:launchMode="standard"
android:screenOrientation="portrait" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- * 路线规划活动传输点
- *
- *
- * @Author: entfrm开发团队-王翔
- * @since: 2022/11/11
- */
-@Data
-@Accessors
-public class RoutePlanLatPoint implements Parcelable {
-
- /** 起点 */
- private LatLonPoint originPoint;
-
- /** 终点 */
- private LatLonPoint destinationPoint;
-
- public RoutePlanLatPoint() {
- }
-
- public RoutePlanLatPoint(Parcel in) {
- originPoint = in.readTypedObject(LatLonPoint.CREATOR);
- destinationPoint = in.readTypedObject(LatLonPoint.CREATOR);
- }
-
- @Override
- public int describeContents() {
- return 0;
- }
-
- @Override
- public void writeToParcel(Parcel dest, int flags) {
- dest.writeTypedObject(originPoint, flags);
- dest.writeTypedObject(destinationPoint, flags);
- }
-
- public static final Creator CREATOR = new Creator() {
- @Override
- public RoutePlanLatPoint createFromParcel(Parcel in) {
- return new RoutePlanLatPoint(in);
- }
-
- @Override
- public RoutePlanLatPoint[] newArray(int size) {
- return new RoutePlanLatPoint[size];
- }
- };
-}
diff --git a/app/src/main/java/com/kanglai/push/listener/MapGpsSensorEventListener.java b/app/src/main/java/com/kanglai/push/listener/MapGpsSensorEventListener.java
deleted file mode 100644
index e373c5e..0000000
--- a/app/src/main/java/com/kanglai/push/listener/MapGpsSensorEventListener.java
+++ /dev/null
@@ -1,157 +0,0 @@
-package com.kanglai.push.listener;
-
-import android.content.Context;
-import android.hardware.Sensor;
-import android.hardware.SensorEvent;
-import android.hardware.SensorEventListener;
-import android.hardware.SensorManager;
-import android.view.Display;
-import android.view.Surface;
-import android.view.WindowManager;
-
-import com.amap.api.maps.AMap;
-import com.amap.api.maps.CameraUpdateFactory;
-import com.amap.api.maps.model.Marker;
-import com.kanglai.push.ui.fragment.DemoMapFragment;
-
-/**
- *
- * 地图gps方位旋转传感器监听
- * 参考:
- * https://blog.csdn.net/bob_fly1984/article/details/80717335?spm=1001.2014.3001.5506
- * https://blog.csdn.net/liu857279611/article/details/50606484?spm=1001.2014.3001.5506
- * https://github.com/amap-demo/android-location-rotation-effect/blob/master/app/src/main/java/com/amap/location/rotation/MainActivity.java
- *
- *
- * @Author: entfrm开发团队-王翔
- * @since: 2022/10/31
- */
-public class MapGpsSensorEventListener implements SensorEventListener {
-
- /** 上次方向旋转传感器时间 */
- private long lastTime = 0;
-
- /** 传感器时间精度,控制旋转间隔 */
- private final int TIME_SENSOR = 100;
-
- /** gps位置标记 */
- private Marker mMarker;
-
- /** 当前活动上下文 */
- private Context mContext;
-
- /** 传感器管理 */
- private SensorManager mSensorManager;
-
- /** 传感器 */
- private Sensor magneticSensor, accelerometerSensor;
-
- /** 磁场传器数据 */
- private float[] gravity = new float[3];
-
- /** 加速传感器数据 */
- private float[] geomagnetic= new float[3];
-
- /** 手机旋转角度 */
- private float mAngle;
-
- /** 高德地图组件 */
- private AMap aMap;
-
- public MapGpsSensorEventListener(Context context) {
- this.mContext = context;
- // 初始化传感器
- mSensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
- // 计算手机方位根据加速度传感器和地磁场传感器计算获取
- magneticSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
- accelerometerSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
- }
-
- public void registerSensorListener() {
- mSensorManager.registerListener(this, magneticSensor, SensorManager.SENSOR_DELAY_NORMAL);
- mSensorManager.registerListener(this, accelerometerSensor, SensorManager.SENSOR_DELAY_NORMAL);
- }
-
- public void unRegisterSensorListener() {
- mSensorManager.unregisterListener(this);
- }
-
- public void setGpsMarker(Marker marker) {
- mMarker = marker;
- }
-
- public void setAMap(AMap aMap) {
- this.aMap = aMap;
- }
-
- @Override
- /** 当有新的传感器事件时(手机方向改变时调用)调用 */
- public void onSensorChanged(SensorEvent event) {
- if (System.currentTimeMillis() - lastTime < TIME_SENSOR) return;
- if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) {
- geomagnetic = event.values;
- }
- if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
- gravity = event.values;
- }
- if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD || event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
- // 用来保存手机的旋转弧度
- float[] values = new float[3];
- // 被填充的旋转矩阵
- float[] r = new float[9];
- // 传入gravity和geomagnetic,通过计算它们得到旋转矩阵R
- // 而第二个参数倾斜矩阵I是用于将磁场数据转换进实际的重力坐标系中的,一般默认设置为NULL即可
- SensorManager.getRotationMatrix(r, null, gravity, geomagnetic);
- // 根据旋转矩阵R计算设备的方向,将结果存储在values中
- // values[0]记录着手机围绕 Z 轴的旋转弧度
- // values[1]记录着手机围绕 X 轴的旋转弧度
- // values[2]记录着手机围绕 Y 轴的旋转弧度
- SensorManager.getOrientation(r, values);
-
- // 地心旋转弧度转为角度
- float x = (float) Math.toDegrees(values[0]);
- x += getScreenRotationOnPhone(mContext);
- x %= 360.0F;
- if (x > 180.0F)
- x -= 360.0F;
- else if (x < -180.0F)
- x += 360.0F;
- if (Math.abs(mAngle - x) < 3.0f) return;
- mAngle = Float.isNaN(x) ? 0 : x;
- x = (360 - mAngle);
- if (mMarker != null) mMarker.setRotateAngle(x);
- if (aMap != null && !DemoMapFragment.userMoveToLocationMark) aMap.moveCamera(CameraUpdateFactory.changeBearing(360 - mAngle));
- lastTime = System.currentTimeMillis();
- }
- }
-
- @Override
- /** 当注册传感器的精度发生变化时调用 */
- public void onAccuracyChanged(Sensor sensor, int accuracy) {
- }
-
- /**
- * 获取当前屏幕旋转角度
- * @param context 当前活动上下文
- * @return 0表示是竖屏; 90表示是左横屏; 180表示是反向竖屏; 270表示是右横屏
- */
- public static int getScreenRotationOnPhone(Context context) {
- final Display display = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
-
- switch (display.getRotation()) {
- case Surface.ROTATION_0:
- return 0;
-
- case Surface.ROTATION_90:
- return 90;
-
- case Surface.ROTATION_180:
- return 180;
-
- case Surface.ROTATION_270:
- return -90;
- }
- return 0;
- }
-
-}
diff --git a/app/src/main/java/com/kanglai/push/ui/activity/DriveRouteDetailActivity.java b/app/src/main/java/com/kanglai/push/ui/activity/DriveRouteDetailActivity.java
deleted file mode 100644
index 3382ecd..0000000
--- a/app/src/main/java/com/kanglai/push/ui/activity/DriveRouteDetailActivity.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package com.kanglai.push.ui.activity;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.widget.ListView;
-import android.widget.TextView;
-
-import com.amap.api.services.route.DrivePath;
-import com.dolphin.core.base.BaseActivity;
-import com.dolphin.core.util.AMapCommonUtil;
-import com.kanglai.push.BR;
-import com.kanglai.push.R;
-import com.kanglai.push.databinding.ActivityRoutePlanDetailBinding;
-import com.kanglai.push.ui.adapter.DriveListAdapter;
-import com.kanglai.push.ui.vm.ToolbarViewModel;
-
-/**
- *
- * 驾车路线详情活动
- *
- *
- * @Author: entfrm开发团队-王翔
- * @since: 2022/11/11
- */
-public class DriveRouteDetailActivity extends BaseActivity {
-
- @Override
- public int setContentView(Bundle savedInstanceState) {
- return R.layout.activity_route_plan_detail;
- }
-
- @Override
- public int setVariableId() {
- return BR.viewModel;
- }
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- Intent intent = getIntent();
- if (intent == null) return;
- DrivePath mDrivePath = intent.getParcelableExtra("drive_path");
- mViewModel.setTitleText("驾车路线详情");
- TextView mRouteTime = findViewById(R.id.route_time);
- int distance = (int) mDrivePath.getDistance();
- int duration = (int) mDrivePath.getDuration();
- String routeDetail = AMapCommonUtil.getPlanTime(duration) + "(" + AMapCommonUtil.getPlanKilometer(distance) + ")";
- mRouteTime.setText(routeDetail);
- // 配置列表视图数据
- ListView mDriveList = findViewById(R.id.route_list);
- DriveListAdapter mDriveListAdapter = new DriveListAdapter(this.getApplicationContext(), mDrivePath.getSteps());
- mDriveList.setAdapter(mDriveListAdapter);
- }
-
-}
diff --git a/app/src/main/java/com/kanglai/push/ui/activity/DriveSingleRouteCalculateActivity.java b/app/src/main/java/com/kanglai/push/ui/activity/DriveSingleRouteCalculateActivity.java
deleted file mode 100644
index 5af4318..0000000
--- a/app/src/main/java/com/kanglai/push/ui/activity/DriveSingleRouteCalculateActivity.java
+++ /dev/null
@@ -1,94 +0,0 @@
-package com.kanglai.push.ui.activity;
-
-import android.content.Intent;
-import android.os.Bundle;
-
-import com.amap.api.navi.AMapNaviViewOptions;
-import com.amap.api.navi.enums.NaviType;
-import com.amap.api.navi.model.AMapCalcRouteResult;
-import com.amap.api.navi.model.NaviLatLng;
-import com.amap.api.services.core.LatLonPoint;
-import com.dolphin.core.amap.NaviBaseActivity;
-import com.kanglai.push.R;
-import com.kanglai.push.constant.CommonConstant;
-import com.kanglai.push.entity.RoutePlanLatPoint;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- *
- * 驾车导航单路线计算活动
- *
- *
- * @Author: wangxiang4
- * @since: 2023/2/8
- */
-public class DriveSingleRouteCalculateActivity extends NaviBaseActivity {
-
- private LatLonPoint mOriginPoint;
- private LatLonPoint mDestinationPoint;
- // 起点
- private List sList = new ArrayList();
- // 终点
- private List eList = new ArrayList();
- // 途经点
- private List mWayPointList = new ArrayList();
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_basic_navi);
- // 获取传递参数
- RoutePlanLatPoint routePlanLatPoint = getIntent().getParcelableExtra(CommonConstant.ROUTE_PLAN_LAT_POINT);
- mOriginPoint = routePlanLatPoint.getOriginPoint();
- mDestinationPoint = routePlanLatPoint.getDestinationPoint();
- mAMapNaviView = findViewById(R.id.navi_view);
- mAMapNaviView.onCreate(savedInstanceState);
- mAMapNaviView.setAMapNaviViewListener(this);
- AMapNaviViewOptions options = new AMapNaviViewOptions();
- options.setTilt(0);
- mAMapNaviView.setViewOptions(options);
-
- setResult(RESULT_CANCELED, new Intent().putExtra(RoutePlanActivity.DEMO_RESULT_LAUNCHER_RESULT_KEY, "驾车导航失败!"));
- }
-
- @Override
- public void onInitNaviSuccess() {
- super.onInitNaviSuccess();
- sList.add(new NaviLatLng(mOriginPoint.getLatitude(), mOriginPoint.getLongitude()));
- eList.add(new NaviLatLng(mDestinationPoint .getLatitude(), mDestinationPoint.getLongitude()));
-
- /**
- * 方法: int strategy=mAMapNavi.strategyConvert(congestion, avoidhightspeed, cost, hightspeed, multipleroute); 参数:
- *
- * @congestion 躲避拥堵
- * @avoidhightspeed 不走高速
- * @cost 避免收费
- * @hightspeed 高速优先
- * @multipleroute 多路径
- *
- * 说明: 以上参数都是boolean类型,其中multipleroute参数表示是否多条路线,如果为true则此策略会算出多条路线。
- * 注意: 不走高速与高速优先不能同时为true 高速优先与避免收费不能同时为true
- */
- int strategy = 0;
- try {
- // 再次强调,最后一个参数为true时代表多路径,否则代表单路径
- strategy = mAMapNavi.strategyConvert(true, false, false, false, false);
- } catch (Exception e) {
- e.printStackTrace();
- }
- // mAMapNavi.calculateDriveRoute(sList, eList, mWayPointList, strategy);
- mAMapNavi.calculateDriveRoute(sList, eList, null, strategy);
-
- // 设置回调结果
- setResult(RESULT_OK, new Intent().putExtra(RoutePlanActivity.DEMO_RESULT_LAUNCHER_RESULT_KEY, "驾车导航成功!"));
- }
-
- @Override
- public void onCalculateRouteSuccess(AMapCalcRouteResult aMapCalcRouteResult) {
- super.onCalculateRouteSuccess(aMapCalcRouteResult);
- mAMapNavi.startNavi(NaviType.EMULATOR);
- }
-
-}
diff --git a/app/src/main/java/com/kanglai/push/ui/activity/PushTypeActivity.java b/app/src/main/java/com/kanglai/push/ui/activity/PushTypeActivity.java
index a0f012b..6b96f79 100644
--- a/app/src/main/java/com/kanglai/push/ui/activity/PushTypeActivity.java
+++ b/app/src/main/java/com/kanglai/push/ui/activity/PushTypeActivity.java
@@ -1,7 +1,5 @@
package com.kanglai.push.ui.activity;
-import android.app.Dialog;
-import android.content.DialogInterface;
import android.os.Bundle;
import android.text.Editable;
import android.text.InputFilter;
@@ -13,7 +11,6 @@ import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
-import androidx.core.content.ContextCompat;
import androidx.databinding.library.baseAdapters.BR;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -22,8 +19,6 @@ import com.blankj.utilcode.util.CacheDiskUtils;
import com.blankj.utilcode.util.CollectionUtils;
import com.blankj.utilcode.util.LogUtils;
import com.dolphin.core.base.BaseActivity;
-import com.dolphin.core.util.ToastUtil;
-import com.dolphin.core.widget.DefaultItemDecoration;
import com.kanglai.push.R;
import com.kanglai.push.constant.CacheConstant;
import com.kanglai.push.databinding.ActivityPushTypeBinding;
diff --git a/app/src/main/java/com/kanglai/push/ui/activity/RideRouteCalculateActivity.java b/app/src/main/java/com/kanglai/push/ui/activity/RideRouteCalculateActivity.java
deleted file mode 100644
index 36bc892..0000000
--- a/app/src/main/java/com/kanglai/push/ui/activity/RideRouteCalculateActivity.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package com.kanglai.push.ui.activity;
-
-import android.content.Intent;
-import android.os.Bundle;
-
-import com.amap.api.navi.enums.NaviType;
-import com.amap.api.navi.model.AMapCalcRouteResult;
-import com.amap.api.navi.model.NaviLatLng;
-import com.amap.api.services.core.LatLonPoint;
-import com.dolphin.core.amap.NaviBaseActivity;
-import com.kanglai.push.R;
-import com.kanglai.push.constant.CommonConstant;
-import com.kanglai.push.entity.RoutePlanLatPoint;
-
-/**
- *
- * 骑行导航路线计算活动
- *
- *
- * @Author: wangxiang4
- * @since: 2023/2/8
- */
-public class RideRouteCalculateActivity extends NaviBaseActivity {
-
- private LatLonPoint mOriginPoint;
- private LatLonPoint mDestinationPoint;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_basic_navi);
- // 获取传递参数
- RoutePlanLatPoint routePlanLatPoint = getIntent().getParcelableExtra(CommonConstant.ROUTE_PLAN_LAT_POINT);
- mOriginPoint = routePlanLatPoint.getOriginPoint();
- mDestinationPoint = routePlanLatPoint.getDestinationPoint();
- mAMapNaviView = findViewById(R.id.navi_view);
- mAMapNaviView.onCreate(savedInstanceState);
- mAMapNaviView.setAMapNaviViewListener(this);
- setResult(RESULT_CANCELED, new Intent().putExtra(RoutePlanActivity.DEMO_RESULT_LAUNCHER_RESULT_KEY, "骑行导航失败!"));
- }
-
- @Override
- public void onInitNaviSuccess() {
- super.onInitNaviSuccess();
- mAMapNavi.calculateRideRoute(new NaviLatLng(mOriginPoint.getLatitude(), mOriginPoint.getLongitude()), new NaviLatLng(mDestinationPoint.getLatitude(), mDestinationPoint.getLongitude()));
- setResult(RESULT_OK, new Intent().putExtra(RoutePlanActivity.DEMO_RESULT_LAUNCHER_RESULT_KEY, "骑行导航成功!"));
- }
-
- @Override
- public void onCalculateRouteSuccess(AMapCalcRouteResult aMapCalcRouteResult) {
- super.onCalculateRouteSuccess(aMapCalcRouteResult);
- mAMapNavi.startNavi(NaviType.EMULATOR);
- }
-}
diff --git a/app/src/main/java/com/kanglai/push/ui/activity/RideRouteDetailActivity.java b/app/src/main/java/com/kanglai/push/ui/activity/RideRouteDetailActivity.java
deleted file mode 100644
index d88808d..0000000
--- a/app/src/main/java/com/kanglai/push/ui/activity/RideRouteDetailActivity.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package com.kanglai.push.ui.activity;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.widget.ListView;
-import android.widget.TextView;
-
-import com.amap.api.services.route.RidePath;
-import com.dolphin.core.base.BaseActivity;
-import com.dolphin.core.util.AMapCommonUtil;
-import com.kanglai.push.BR;
-import com.kanglai.push.R;
-import com.kanglai.push.databinding.ActivityRoutePlanDetailBinding;
-import com.kanglai.push.ui.adapter.RideListAdapter;
-import com.kanglai.push.ui.vm.ToolbarViewModel;
-
-/**
- *
- * 骑行路线详情活动
- *
- *
- * @Author: entfrm开发团队-王翔
- * @since: 2022/11/11
- */
-public class RideRouteDetailActivity extends BaseActivity {
-
- @Override
- public int setContentView(Bundle savedInstanceState) {
- return R.layout.activity_route_plan_detail;
- }
-
- @Override
- public int setVariableId() {
- return BR.viewModel;
- }
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- Intent intent = getIntent();
- if (intent == null) return;
- RidePath mRidePath = intent.getParcelableExtra("ride_path");
- mViewModel.setTitleText("骑行路线详情");
- TextView mRouteTime = findViewById(R.id.route_time);
- int distance = (int) mRidePath.getDistance();
- int duration = (int) mRidePath.getDuration();
- String routeDetail = AMapCommonUtil.getPlanTime(duration) + "(" + AMapCommonUtil.getPlanKilometer(distance) + ")";
- mRouteTime.setText(routeDetail);
- // 配置列表视图数据
- ListView mDriveList = findViewById(R.id.route_list);
- RideListAdapter mRideListAdapter = new RideListAdapter(this.getApplicationContext(), mRidePath.getSteps());
- mDriveList.setAdapter(mRideListAdapter);
- }
-
-
-}
diff --git a/app/src/main/java/com/kanglai/push/ui/activity/RoutePlanActivity.java b/app/src/main/java/com/kanglai/push/ui/activity/RoutePlanActivity.java
deleted file mode 100644
index a9b5cac..0000000
--- a/app/src/main/java/com/kanglai/push/ui/activity/RoutePlanActivity.java
+++ /dev/null
@@ -1,345 +0,0 @@
-package com.kanglai.push.ui.activity;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.Button;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-
-import androidx.activity.result.ActivityResultLauncher;
-import androidx.activity.result.contract.ActivityResultContract;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.afollestad.materialdialogs.MaterialDialog;
-import com.amap.api.maps.AMap;
-import com.amap.api.maps.CameraUpdateFactory;
-import com.amap.api.maps.MapView;
-import com.amap.api.maps.model.CameraPosition;
-import com.amap.api.maps.model.LatLng;
-import com.amap.api.services.core.AMapException;
-import com.amap.api.services.core.LatLonPoint;
-import com.amap.api.services.route.BusRouteResult;
-import com.amap.api.services.route.DrivePath;
-import com.amap.api.services.route.DriveRouteResult;
-import com.amap.api.services.route.RidePath;
-import com.amap.api.services.route.RideRouteResult;
-import com.amap.api.services.route.RouteSearch;
-import com.amap.api.services.route.RouteSearch.DriveRouteQuery;
-import com.amap.api.services.route.RouteSearch.OnRouteSearchListener;
-import com.amap.api.services.route.RouteSearch.RideRouteQuery;
-import com.amap.api.services.route.WalkRouteResult;
-import com.dolphin.core.amap.overlay.DrivingRouteOverlay;
-import com.dolphin.core.amap.overlay.RideRouteOverlay;
-import com.dolphin.core.base.BaseActivity;
-import com.dolphin.core.util.AMapCommonUtil;
-import com.dolphin.core.util.ToastUtil;
-import com.kanglai.push.BR;
-import com.kanglai.push.R;
-import com.kanglai.push.constant.CommonConstant;
-import com.kanglai.push.databinding.ActivityRoutePlanBinding;
-import com.kanglai.push.entity.RoutePlanLatPoint;
-import com.kanglai.push.ui.vm.RoutePlanViewModel;
-
-/**
- *
- * 导航路线规划
- *
- *
- * @Author: entfrm开发团队-王翔
- * @since: 2022/11/9
- */
-public class RoutePlanActivity extends BaseActivity implements OnRouteSearchListener {
-
-
- private AMap aMap;
- private MapView mapView;
- private RouteSearch mRouteSearch;
- private final int ROUTE_TYPE_DRIVE = 1;
- private final int ROUTE_TYPE_RIDE = 2;
-
- private Button mBtnStartNavi;
- private RelativeLayout mRouteDriveLayout;
- private TextView mRouteTime;
- private ImageView mDrive;
- private ImageView mRide;
- private LinearLayout mRouteDetail;
- private LatLonPoint mOriginPoint;
- private LatLonPoint mDestinationPoint;
- private MaterialDialog mMaterialDialog;
-
- private ActivityResultLauncher driveNaviLauncherResult;
- private ActivityResultLauncher rideNaviLauncherResult;
-
- public static final String DEMO_RESULT_LAUNCHER_RESULT_KEY = "DEMO_RESULT_LAUNCHER_RESULT_KEY";
- interface DefaultConfig {
-
- // 默认中心点长沙望城区域砂之船奥莱
- double mapCentreLat = 28.288623;
- double mapCentreLng = 112.919043;
- // 地图缩放级别
- float zoom = 17f;
- // 3D地图倾斜度
- float tilt = 55f;
- // 正视前方可视区域方向
- float bearing = 300;
-
- }
-
- @Override
- public int setContentView(Bundle savedInstanceState) {
- return R.layout.activity_route_plan;
- }
-
- @Override
- public int setVariableId() {
- return BR.viewModel;
- }
-
- public RoutePlanActivity getActivityContext(){
- return this;
- }
-
- @Override
- protected void onCreate(Bundle bundle) {
- super.onCreate(bundle);
- // 获取传递参数
- RoutePlanLatPoint routePlanLatPoint = getIntent().getParcelableExtra(CommonConstant.ROUTE_PLAN_LAT_POINT);
- mOriginPoint = routePlanLatPoint.getOriginPoint();
- mDestinationPoint = routePlanLatPoint.getDestinationPoint();
- // 初始化高德地图
- mapView = findViewById(R.id.route_map);
- mapView.onCreate(bundle);
- aMap = mapView.getMap();
- aMap.getUiSettings().setLogoBottomMargin(-100);
- aMap.getUiSettings().setZoomControlsEnabled(false);
- try {
- mRouteSearch = new RouteSearch(this);
- mRouteSearch.setRouteSearchListener(this);
- } catch (AMapException e) {
- e.printStackTrace();
- }
- LatLng latLng = new LatLng(DefaultConfig.mapCentreLat, DefaultConfig.mapCentreLng);
- // 首次定位移动到地图中心点并修改一些默认属性
- aMap.moveCamera(CameraUpdateFactory.newCameraPosition(new CameraPosition(latLng, DefaultConfig.zoom, DefaultConfig.tilt, DefaultConfig.bearing)));
- mBtnStartNavi = findViewById(R.id.btn_start_navi);
- mRouteDriveLayout = findViewById(R.id.layout_route_drive);
- mRouteTime = findViewById(R.id.route_time);
- mRouteDetail = findViewById(R.id.route_detail);
- mDrive = findViewById(R.id.route_drive);
- mRide = findViewById(R.id.route_ride);
- mRouteDriveLayout.performClick();
-
- // 注册驾车导航活动结果
- driveNaviLauncherResult = registerForActivityResult(new ActivityResultContract() {
- @Override
- public String parseResult(int resultCode, @Nullable Intent intent) {
- if (intent == null) {
- return null;
- }
- if (resultCode == RESULT_OK) {
- return intent.getStringExtra(DEMO_RESULT_LAUNCHER_RESULT_KEY);
- } else {
- return intent.getStringExtra(DEMO_RESULT_LAUNCHER_RESULT_KEY) + "ð";
- }
- }
- @Override
- public Intent createIntent(@NonNull Context context, RoutePlanLatPoint routePlanLatPoint) {
- Intent intent = new Intent(getActivityContext(), DriveSingleRouteCalculateActivity.class);
- intent.putExtra(CommonConstant.ROUTE_PLAN_LAT_POINT, routePlanLatPoint);
- return intent;
- }
- }, result -> ToastUtil.show(result));
-
- // 注册骑行导航活动结果
- rideNaviLauncherResult = registerForActivityResult(new ActivityResultContract() {
- @Override
- public String parseResult(int resultCode, @Nullable Intent intent) {
- if (intent == null) {
- return null;
- }
- if (resultCode == RESULT_OK) {
- return intent.getStringExtra(DEMO_RESULT_LAUNCHER_RESULT_KEY);
- } else {
- return intent.getStringExtra(DEMO_RESULT_LAUNCHER_RESULT_KEY) + "ð";
- }
- }
- @Override
- public Intent createIntent(@NonNull Context context, RoutePlanLatPoint routePlanLatPoint) {
- Intent intent = new Intent(getActivityContext(), RideRouteCalculateActivity.class);
- intent.putExtra(CommonConstant.ROUTE_PLAN_LAT_POINT, routePlanLatPoint);
- return intent;
- }
- }, result -> ToastUtil.show(result));
- }
-
- public void onDriveClick(View view) {
- searchRouteResult(ROUTE_TYPE_DRIVE, RouteSearch.DRIVING_SINGLE_DEFAULT);
- mDrive.setImageResource(R.drawable.icon_route_drive_select);
- mRide.setImageResource(R.drawable.icon_route_ride_normal);
- }
-
- public void onRideClick(View view) {
- searchRouteResult(ROUTE_TYPE_RIDE, RouteSearch.DRIVING_SINGLE_DEFAULT);
- mDrive.setImageResource(R.drawable.icon_route_drive_normal);
- mRide.setImageResource(R.drawable.icon_route_ride_select);
- }
-
- public void searchRouteResult(int routeType, int mode) {
- if (mOriginPoint == null) {
- ToastUtil.show("起点未设置");
- return;
- }
- if (mDestinationPoint == null) {
- ToastUtil.show("终点未设置");
- return;
- }
- showProgressDialog();
- final RouteSearch.FromAndTo fromAndTo = new RouteSearch.FromAndTo(mOriginPoint, mDestinationPoint);
- if (routeType == ROUTE_TYPE_DRIVE) {
- DriveRouteQuery query = new DriveRouteQuery(fromAndTo, mode, null, null, "");
- mRouteSearch.calculateDriveRouteAsyn(query);
- } else if (routeType == ROUTE_TYPE_RIDE) {
- RideRouteQuery query = new RideRouteQuery(fromAndTo, mode);
- mRouteSearch.calculateRideRouteAsyn(query);
- }
- }
-
- @Override
- public void onBusRouteSearched(BusRouteResult result, int errorCode) {}
-
- @Override
- public void onDriveRouteSearched(DriveRouteResult result, int errorCode) {
- closeProgressDialog();
- aMap.clear();
- if (errorCode != AMapException.CODE_AMAP_SUCCESS) {
- ToastUtil.showAmapError(errorCode);
- return;
- }
- if (result == null && result.getPaths() == null) {
- ToastUtil.show("对不起,没有搜索到相关数据!");
- return;
- }
- if (result.getPaths().size() > 0) {
- final DrivePath drivePath = result.getPaths().get(0);
- if (drivePath == null) return;
- DrivingRouteOverlay drivingRouteOverlay = new DrivingRouteOverlay(
- this,
- aMap,
- drivePath,
- result.getStartPos(),
- result.getTargetPos(),
- null
- );
- drivingRouteOverlay.removeFromMap();
- drivingRouteOverlay.drawDrivingRoute();
- drivingRouteOverlay.zoomToRouteBounds();
-
- int distance = (int) drivePath.getDistance();
- int duration = (int) drivePath.getDuration();
-
- String routeDetail = AMapCommonUtil.getPlanTime(duration) + "(" + AMapCommonUtil.getPlanKilometer(distance) + ")";
- mRouteTime.setText(routeDetail);
- mRouteDetail.setOnClickListener(view -> {
- Intent intent = new Intent(this, DriveRouteDetailActivity.class);
- intent.putExtra("drive_path", drivePath);
- startActivity(intent);
- });
- mBtnStartNavi.setOnClickListener(view ->
- driveNaviLauncherResult.launch(new RoutePlanLatPoint().setOriginPoint(mOriginPoint).setDestinationPoint(mDestinationPoint)));
- }
- }
-
- @Override
- public void onRideRouteSearched(RideRouteResult result, int errorCode) {
- closeProgressDialog();
- aMap.clear();
- if (errorCode != AMapException.CODE_AMAP_SUCCESS) {
- ToastUtil.showAmapError(errorCode);
- return;
- }
- if (result == null && result.getPaths() == null) {
- ToastUtil.show("对不起,没有搜索到相关数据!");
- return;
- }
- if (result.getPaths().size() > 0) {
- final RidePath ridePath = result.getPaths().get(0);
- if (ridePath == null) return;
- RideRouteOverlay rideRouteOverlay = new RideRouteOverlay(
- this,
- aMap,
- ridePath,
- result.getStartPos(),
- result.getTargetPos()
- );
- rideRouteOverlay.removeFromMap();
- rideRouteOverlay.drawDrivingRoute();
- rideRouteOverlay.zoomToRouteBounds();
-
- int distance = (int) ridePath.getDistance();
- int duration = (int) ridePath.getDuration();
-
- String routeDetail = AMapCommonUtil.getPlanTime(duration) + "(" + AMapCommonUtil.getPlanKilometer(distance) + ")";
- mRouteTime.setText(routeDetail);
- mRouteDetail.setOnClickListener(view -> {
- Intent intent = new Intent(this, RideRouteDetailActivity.class);
- intent.putExtra("ride_path", ridePath);
- startActivity(intent);
- });
- mBtnStartNavi.setOnClickListener(view ->
- rideNaviLauncherResult.launch(new RoutePlanLatPoint().setOriginPoint(mOriginPoint).setDestinationPoint(mDestinationPoint)));
- }
- }
-
- @Override
- public void onWalkRouteSearched(WalkRouteResult result, int errorCode) {}
-
- @Override
- protected void onResume() {
- super.onResume();
- mapView.onResume();
- }
-
- @Override
- protected void onPause() {
- super.onPause();
- mapView.onPause();
- }
-
- @Override
- protected void onSaveInstanceState(Bundle outState) {
- super.onSaveInstanceState(outState);
- mapView.onSaveInstanceState(outState);
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
- mapView.onDestroy();
- }
-
- private void showProgressDialog() {
- if (mMaterialDialog == null) {
- mMaterialDialog= new MaterialDialog.Builder(this)
- .progress(true, 0)
- .progressIndeterminateStyle(true)
- .canceledOnTouchOutside(false)
- .backgroundColorRes(R.color.white)
- .keyListener((dialog, keyCode, event) -> false).build();
- }
- mMaterialDialog = mMaterialDialog.getBuilder().title("正在搜索").build();
- mMaterialDialog.show();
- }
-
- private void closeProgressDialog() {
- if (mMaterialDialog != null) {
- mMaterialDialog.dismiss();
- }
- }
-
-}
-
diff --git a/app/src/main/java/com/kanglai/push/ui/activity/SplashActivity.java b/app/src/main/java/com/kanglai/push/ui/activity/SplashActivity.java
index f1cc6d9..cb0c63a 100644
--- a/app/src/main/java/com/kanglai/push/ui/activity/SplashActivity.java
+++ b/app/src/main/java/com/kanglai/push/ui/activity/SplashActivity.java
@@ -10,7 +10,6 @@ import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.style.ForegroundColorSpan;
-import com.amap.api.maps.MapsInitializer;
import com.kanglai.push.R;
import com.kanglai.push.constant.CacheConstant;
import com.tencent.mmkv.MMKV;
@@ -42,7 +41,6 @@ public class SplashActivity extends UmengSplashMessageActivity {
/** 软件隐私协议 */
private void softwarePrivacyAgreement() {
- MapsInitializer.updatePrivacyShow(getApplicationContext(), true, true);
SpannableStringBuilder spannable = new SpannableStringBuilder(getResources().getString(R.string.privacy_agreement));
spannable.setSpan(new ForegroundColorSpan(Color.BLUE), 65, 69, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
spannable.setSpan(new ForegroundColorSpan(Color.RED), 133, 137, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
@@ -50,7 +48,6 @@ public class SplashActivity extends UmengSplashMessageActivity {
.setTitle("隐私政策")
.setMessage(spannable)
.setPositiveButton("同意", (dialogInterface, listener) -> {
- MapsInitializer.updatePrivacyAgree(getApplicationContext(),true);
MMKV.defaultMMKV().putInt(CacheConstant.SOFTWARE_PRIVACY_AGREEMENT_AUTH, 0);
// 友盟移动统计,账号统计隐私协议
UMConfigure.submitPolicyGrantResult(getApplicationContext(), true);
@@ -59,9 +56,7 @@ public class SplashActivity extends UmengSplashMessageActivity {
finish();
})
.setNegativeButton("不同意", (dialogInterface, listener) -> {
- MapsInitializer.updatePrivacyAgree(getApplicationContext(),false);
// 友盟移动统计,账号统计隐私协议
-
UMConfigure.submitPolicyGrantResult(getApplicationContext(), false);
// 不同意隐私协议,退出app
Process.killProcess(Process.myPid());
diff --git a/app/src/main/java/com/kanglai/push/ui/adapter/DriveListAdapter.java b/app/src/main/java/com/kanglai/push/ui/adapter/DriveListAdapter.java
deleted file mode 100644
index e0cfc4d..0000000
--- a/app/src/main/java/com/kanglai/push/ui/adapter/DriveListAdapter.java
+++ /dev/null
@@ -1,105 +0,0 @@
-package com.kanglai.push.ui.adapter;
-
-import android.content.Context;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.BaseAdapter;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-import com.amap.api.services.route.DriveStep;
-import com.kanglai.push.R;
-import com.dolphin.core.util.AMapCommonUtil;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- *
- * 驾车表格数据适配器
- *
- *
- * @Author: entfrm开发团队-王翔
- * @since: 2022/11/11
- */
-public class DriveListAdapter extends BaseAdapter {
-
- private Context mContext;
- private List mItemList = new ArrayList();
-
- public DriveListAdapter(Context context, List list) {
- this.mContext = context;
- mItemList.add(new DriveStep());
- for (DriveStep driveStep : list) {
- mItemList.add(driveStep);
- }
- mItemList.add(new DriveStep());
- }
-
- @Override
- public int getCount() {
- return mItemList.size();
- }
-
- @Override
- public Object getItem(int position) {
- return mItemList.get(position);
- }
-
- @Override
- public long getItemId(int position) {
- return position;
- }
-
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- ViewHolder holder;
- if (convertView == null) {
- holder = new ViewHolder();
- convertView = View.inflate(mContext, R.layout.item_route_plan, null);
- holder.driveDirIcon = convertView.findViewById(R.id.route_dir_icon);
- holder.driveLineName = convertView.findViewById(R.id.route_line_name);
- holder.driveDirUp = convertView.findViewById(R.id.route_dir_icon_up);
- holder.driveDirDown = convertView.findViewById(R.id.route_dir_icon_down);
- holder.splitLine = convertView.findViewById(R.id.route_split_line);
- convertView.setTag(holder);
- } else {
- holder = (ViewHolder) convertView.getTag();
- }
- final DriveStep item = mItemList.get(position);
- if (position == 0) {
- holder.driveDirIcon.setImageResource(R.drawable.icon_orgin);
- holder.driveLineName.setText("出发");
- holder.driveDirUp.setVisibility(View.GONE);
- holder.driveDirDown.setVisibility(View.VISIBLE);
- holder.splitLine.setVisibility(View.GONE);
- return convertView;
- } else if (position == mItemList.size() - 1) {
- holder.driveDirIcon.setImageResource(R.drawable.icon_destination);
- holder.driveLineName.setText("到达终点");
- holder.driveDirUp.setVisibility(View.VISIBLE);
- holder.driveDirDown.setVisibility(View.GONE);
- holder.splitLine.setVisibility(View.VISIBLE);
- return convertView;
- } else {
- String actionName = item.getAction();
- int resID = AMapCommonUtil.getDrivingActionResource(actionName);
- holder.driveDirIcon.setImageResource(resID);
- holder.driveLineName.setText(item.getInstruction());
- holder.driveDirUp.setVisibility(View.VISIBLE);
- holder.driveDirDown.setVisibility(View.VISIBLE);
- holder.splitLine.setVisibility(View.VISIBLE);
- return convertView;
- }
-
- }
-
- private class ViewHolder {
- TextView driveLineName;
- ImageView driveDirIcon;
- ImageView driveDirUp;
- ImageView driveDirDown;
- ImageView splitLine;
- }
-
-}
diff --git a/app/src/main/java/com/kanglai/push/ui/adapter/RideListAdapter.java b/app/src/main/java/com/kanglai/push/ui/adapter/RideListAdapter.java
deleted file mode 100644
index 6964c7a..0000000
--- a/app/src/main/java/com/kanglai/push/ui/adapter/RideListAdapter.java
+++ /dev/null
@@ -1,103 +0,0 @@
-package com.kanglai.push.ui.adapter;
-
-import android.content.Context;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.BaseAdapter;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-import com.amap.api.services.route.RideStep;
-import com.kanglai.push.R;
-import com.dolphin.core.util.AMapCommonUtil;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- *
- * 骑行表格数据适配器
- *
- *
- * @Author: entfrm开发团队-王翔
- * @since: 2022/11/11
- */
-public class RideListAdapter extends BaseAdapter {
-
- private Context mContext;
- private List mItemList = new ArrayList();
-
- public RideListAdapter(Context context, List list) {
- this.mContext = context;
- mItemList.add(new RideStep());
- for (RideStep rideStep : list) {
- mItemList.add(rideStep);
- }
- mItemList.add(new RideStep());
- }
-
- @Override
- public int getCount() {
- return mItemList.size();
- }
-
- @Override
- public Object getItem(int position) {
- return mItemList.get(position);
- }
-
- @Override
- public long getItemId(int position) {
- return position;
- }
-
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- ViewHolder holder;
- if (convertView == null) {
- holder = new ViewHolder();
- convertView = View.inflate(mContext, R.layout.item_route_plan, null);
- holder.lineName = convertView.findViewById(R.id.route_line_name);
- holder.dirIcon = convertView.findViewById(R.id.route_dir_icon);
- holder.dirUp = convertView.findViewById(R.id.route_dir_icon_up);
- holder.dirDown = convertView.findViewById(R.id.route_dir_icon_down);
- holder.splitLine = convertView.findViewById(R.id.route_split_line);
- convertView.setTag(holder);
- } else {
- holder = (ViewHolder) convertView.getTag();
- }
- final RideStep item = mItemList.get(position);
- if (position == 0) {
- holder.dirIcon.setImageResource(R.drawable.icon_orgin);
- holder.lineName.setText("出发");
- holder.dirUp.setVisibility(View.INVISIBLE);
- holder.dirDown.setVisibility(View.VISIBLE);
- holder.splitLine.setVisibility(View.INVISIBLE);
- return convertView;
- } else if (position == mItemList.size() - 1) {
- holder.dirIcon.setImageResource(R.drawable.icon_destination);
- holder.lineName.setText("到达终点");
- holder.dirUp.setVisibility(View.VISIBLE);
- holder.dirDown.setVisibility(View.INVISIBLE);
- return convertView;
- } else {
- holder.splitLine.setVisibility(View.VISIBLE);
- holder.dirUp.setVisibility(View.VISIBLE);
- holder.dirDown.setVisibility(View.VISIBLE);
- String actionName = item.getAction();
- int resID = AMapCommonUtil.getWalkActionResource(actionName);
- holder.dirIcon.setImageResource(resID);
- holder.lineName.setText(item.getInstruction());
- return convertView;
- }
- }
-
- private class ViewHolder {
- TextView lineName;
- ImageView dirIcon;
- ImageView dirUp;
- ImageView dirDown;
- ImageView splitLine;
- }
-
-}
diff --git a/app/src/main/java/com/kanglai/push/ui/fragment/DemoMapFragment.java b/app/src/main/java/com/kanglai/push/ui/fragment/DemoMapFragment.java
deleted file mode 100644
index 40b654d..0000000
--- a/app/src/main/java/com/kanglai/push/ui/fragment/DemoMapFragment.java
+++ /dev/null
@@ -1,360 +0,0 @@
-package com.kanglai.push.ui.fragment;
-
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.animation.LinearInterpolator;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.amap.api.location.AMapLocationClient;
-import com.amap.api.location.AMapLocationListener;
-import com.amap.api.location.AMapLocationQualityReport;
-import com.amap.api.maps.AMap;
-import com.amap.api.maps.CameraUpdateFactory;
-import com.amap.api.maps.LocationSource;
-import com.amap.api.maps.MapView;
-import com.amap.api.maps.model.BitmapDescriptorFactory;
-import com.amap.api.maps.model.CameraPosition;
-import com.amap.api.maps.model.LatLng;
-import com.amap.api.maps.model.Marker;
-import com.amap.api.maps.model.MarkerOptions;
-import com.amap.api.maps.model.animation.Animation;
-import com.amap.api.maps.model.animation.ScaleAnimation;
-import com.amap.api.services.core.AMapException;
-import com.amap.api.services.core.LatLonPoint;
-import com.amap.api.services.route.BusRouteResult;
-import com.amap.api.services.route.DrivePath;
-import com.amap.api.services.route.DriveRouteResult;
-import com.amap.api.services.route.RideRouteResult;
-import com.amap.api.services.route.RouteSearch;
-import com.amap.api.services.route.WalkRouteResult;
-import com.blankj.utilcode.util.CollectionUtils;
-import com.blankj.utilcode.util.LogUtils;
-import com.blankj.utilcode.util.ObjectUtils;
-import com.dolphin.core.amap.LocationRequest;
-import com.dolphin.core.amap.overlay.DrivingRouteOverlay;
-import com.dolphin.core.base.BaseFragment;
-import com.dolphin.core.util.PermissionUtil;
-import com.dolphin.core.util.ToastUtil;
-import com.kanglai.push.BR;
-import com.kanglai.push.R;
-import com.kanglai.push.databinding.FragmentMapBinding;
-import com.kanglai.push.listener.MapGpsSensorEventListener;
-import com.kanglai.push.ui.vm.MapViewModel;
-
-import java.util.List;
-
-/**
- *
- * 高德地图
- *
- *
- * @Author: entfrm开发团队-王翔
- * @Date: 2022/7/15
- */
-public class DemoMapFragment extends BaseFragment implements LocationSource, AMap.OnMapTouchListener, RouteSearch.OnRouteSearchListener {
-
- /** 高德地图组件 */
- private AMap aMap;
-
- /** 高德地图ui视图 */
- private MapView mapView;
-
- /** LBS定位请求 */
- private LocationRequest locationRequest;
-
- /** 当前位置gps标记 */
- private Marker locationMarker;
-
- /** 用户手动移动地图标记 */
- public static boolean userMoveToLocationMark = true;
-
- /** 地图旋转gps方向传感监听 */
- private MapGpsSensorEventListener mapGpsSensorEventListener;
-
- /** 路线搜索 */
- private RouteSearch mRouteSearch;
-
- /** 中间途径点 */
- private List throughPoints;
-
- /** 默认地图配置 */
- interface DefaultConfig {
-
- // 默认中心点长沙望城区域砂之船奥莱
- double mapCentreLat = 28.288623;
- double mapCentreLng = 112.919043;
- // 地图缩放级别
- float zoom = 17f;
- // 3D地图倾斜度
- float tilt = 55f;
- // 正视前方可视区域方向
- float bearing = 300;
-
- }
-
- @Override
- public int setContentView(LayoutInflater inflater, @Nullable ViewGroup parentContainer, @Nullable Bundle savedInstanceState) {
- return R.layout.fragment_map;
- }
-
- @Override
- public int setVariableId() {
- return BR.viewModel;
- }
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- locationRequest = new LocationRequest(getActivity().getClass());
- mapGpsSensorEventListener = new MapGpsSensorEventListener(getActivity());
- locationRequest.setLocationListen(locationListener);
- singleAMapLocationClient();
- }
-
- AMapLocationListener locationListener = location -> {
- if (null != location && aMap != null && location.getErrorCode() == 0) {
- LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
- if (locationMarker == null) {
- locationMarker = aMap.addMarker(new MarkerOptions().position(latLng)
- .icon(BitmapDescriptorFactory.fromResource(R.drawable.icon_map_gps))
- .anchor(0.5f, 0.5f));
- mapGpsSensorEventListener.setGpsMarker(locationMarker);
- mapGpsSensorEventListener.setAMap(aMap);
- } else if (userMoveToLocationMark) {
- locationMarker.setPosition(latLng);
- } else {
- locationMarker.setPosition(latLng);
- // 地图画布动画移动的时间,最好不要比定位间隔长,如果定位间隔2000ms动画移动时间最好小于2000ms,可以使用1000ms
- // 如果超过了,需要在myCancelCallback中进行处理被打断的情况
- aMap.animateCamera(CameraUpdateFactory.changeLatLng(latLng), 1000, new AMap.CancelableCallback() {
- @Override
- public void onFinish() {
- locationMarker.setPosition(latLng);
- }
- @Override
- public void onCancel() {
- locationMarker.setPosition(latLng);
- }
- });
- }
- } else {
- ToastUtil.showAmapError(location.getErrorCode());
- }
- };
-
- @Override
- public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
- super.onViewCreated(view, savedInstanceState);
- mapView = getView().findViewById(R.id.amap);
- mapView.onCreate(savedInstanceState);
- aMap = mapView.getMap();
- aMap.getUiSettings().setLogoBottomMargin(-100);
- // 设置高德地图ui交互
- aMap.getUiSettings().setMyLocationButtonEnabled(true);
- // 打开定位图层
- aMap.setMyLocationEnabled(true);
- // 自定义地图模式
- aMap.setLocationSource(this);
- aMap.setOnMapTouchListener(this);
- // 设置地图默认中心点
- LatLng latLng = new LatLng(DefaultConfig.mapCentreLat, DefaultConfig.mapCentreLng);
- // 首次定位移动到地图中心点并修改一些默认属性
- aMap.moveCamera(CameraUpdateFactory.newCameraPosition(new CameraPosition(latLng, DefaultConfig.zoom, DefaultConfig.tilt, DefaultConfig.bearing)));
- mapGpsSensorEventListener.registerSensorListener();
- locationRequest.start();
- try {
- mRouteSearch = new RouteSearch(getActivity());
- mRouteSearch.setRouteSearchListener(this);
- } catch (AMapException e) {
- e.printStackTrace();
- }
- }
-
- class PointData {
- String id;
- String label;
- Double mapLng;
- Double mapLat;
- public PointData(String id, String label, Double mapLng, Double mapLat) {
- this.id = id;
- this.label = label;
- this.mapLng = mapLng;
- this.mapLat = mapLat;
- }
- }
-
- List carPointData = CollectionUtils.newArrayList(
- new PointData("001","小黄车", 112.918119, 28.282891),
- new PointData("002","小绿车", 112.918919, 28.282991),
- new PointData("003","小红车", 112.918019, 28.283991)
- );
-
- List gasStationPointData = CollectionUtils.newArrayList(
- new PointData("001","地沟油加油站", 112.919043, 28.288623),
- new PointData("002","一路平安加油站", 112.919165, 28.289924),
- new PointData("003","一把火加油站", 112.919965, 28.289924)
- );
-
- @Override
- public void onStart() {
- super.onStart();
- try {
- carPointData.forEach(item -> {
- if(ObjectUtils.isNotEmpty(item.mapLat) && ObjectUtils.isNotEmpty(item.mapLng)){
- setMapDataPointMarker(new LatLng(item.mapLat, item.mapLng), item.label, 0);
- }
- });
- gasStationPointData.forEach(item -> {
- if(ObjectUtils.isNotEmpty(item.mapLat) && ObjectUtils.isNotEmpty(item.mapLng)){
- setMapDataPointMarker(new LatLng(item.mapLat, item.mapLng), item.label, 1);
- }
- });
- throughPoints = CollectionUtils.newArrayList(new LatLonPoint(carPointData.get(1).mapLat, carPointData.get(1).mapLng));
- // 渲染导航路线
- final RouteSearch.FromAndTo fromAndTo = new RouteSearch.FromAndTo(new LatLonPoint(carPointData.get(0).mapLat, carPointData.get(0).mapLng), new LatLonPoint(gasStationPointData.get(1).mapLat, gasStationPointData.get(1).mapLng));
- // 第一个参数表示路径规划的起点和终点,第二个参数表示驾车模式,第三个参数表示途经点,第四个参数表示避让区域,第五个参数表示避让道路
- RouteSearch.DriveRouteQuery query = new RouteSearch.DriveRouteQuery(fromAndTo, RouteSearch.DRIVING_SINGLE_DEFAULT, throughPoints, null, "");
- mRouteSearch.calculateDriveRouteAsyn(query);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- public void setMapDataPointMarker(LatLng latlng, String title, Integer type) {
- int resourcesId;
- switch (type) {
- case 0:
- resourcesId = R.drawable.icon_car;
- break;
- case 1:
- resourcesId = R.drawable.icon_gasstation;
- break;
- default:
- throw new IllegalStateException("Unexpected value: " + type);
- }
- MarkerOptions markerOptions = new MarkerOptions()
- .title(title)
- .icon(BitmapDescriptorFactory.fromResource(resourcesId))
- .position(latlng).anchor(0.5f, 0.5f);
- Marker marker = aMap.addMarker(markerOptions);
- // 设置生长动画
- Animation animation = new ScaleAnimation(0,1,0,1);
- animation.setInterpolator(new LinearInterpolator());
- // 设置持续时间
- animation.setDuration(1000);
- // 设置动画
- marker.setAnimation(animation);
- // 开始动画
- marker.startAnimation();
- }
-
- @Override
- public void onBusRouteSearched(BusRouteResult busRouteResult, int errorCode) {}
-
- @Override
- public void onDriveRouteSearched(DriveRouteResult result, int errorCode) {
- if (errorCode != AMapException.CODE_AMAP_SUCCESS) {
- ToastUtil.showAmapError(errorCode);
- return;
- }
- if (result == null && result.getPaths() == null) {
- ToastUtil.show("对不起,没有搜索到相关数据!");
- return;
- }
- if (result.getPaths().size() > 0) {
- final DrivePath drivePath = result.getPaths().get(0);
- if(drivePath == null) return;
- DrivingRouteOverlay drivingRouteOverlay = new DrivingRouteOverlay(
- getActivity(),
- aMap,
- drivePath,
- result.getStartPos(),
- result.getTargetPos(),
- throughPoints
- );
- drivingRouteOverlay.removeFromMap();
- drivingRouteOverlay.drawDrivingRoute();
- drivingRouteOverlay.zoomToRouteBounds();
- }
- }
-
- @Override
- public void onWalkRouteSearched(WalkRouteResult walkRouteResult, int errorCode) {}
-
- @Override
- public void onRideRouteSearched(RideRouteResult rideRouteResult, int errorCode) {}
-
- @Override
- public void onResume() {
- super.onResume();
- mapView.onResume();
- mapGpsSensorEventListener.registerSensorListener();
- }
-
- @Override
- public void onPause() {
- super.onPause();
- mapView.onPause();
- mapGpsSensorEventListener.unRegisterSensorListener();
- }
-
- @Override
- public void onSaveInstanceState(@NonNull Bundle outState) {
- super.onSaveInstanceState(outState);
- mapView.onSaveInstanceState(outState);
- }
-
- @Override
- public void onDestroy() {
- super.onDestroy();
- //fixme 内部高德视图组件销毁修改了内存标记,安卓11后不让修改,会导致内存漏动
- // 等待后面高德库更新修复这个问题,目前只能关闭堆指针标记
- // https://source.android.com/devices/tech/debug/tagged-pointers
- mapView.onDestroy();
- }
-
- /** 单次定位,用于判断设备权限以及缺少GPS的硬件提示不能使用此软件(针对首次进入时判断) */
- private void singleAMapLocationClient() {
- AMapLocationClient singleLocationClient = locationRequest.initLocation(locationRequest.getDefaultOption().setOnceLocation(true));
- singleLocationClient.startLocation();
- singleLocationClient.setLocationListener(location -> {
- if (null != location) {
- switch (location.getLocationQualityReport().getGPSStatus()) {
- case AMapLocationQualityReport.GPS_STATUS_NOGPSPROVIDER:
- ToastUtil.show("手机中没有GPS模块提供,无法进行GPS定位,请更换设备");
- break;
- case AMapLocationQualityReport.GPS_STATUS_OFF:
- PermissionUtil.openApplicationSettings(getActivity(), "GPS关闭,建议开启GPS,提高定位质量");
- break;
- case AMapLocationQualityReport.GPS_STATUS_NOGPSPERMISSION:
- PermissionUtil.openApplicationSettings(getActivity(), "没有GPS定位权限,建议开启gps定位权限");
- break;
- }
- } else ToastUtil.show("定位失败,请联系系统管理员!");
- singleLocationClient.onDestroy();
- });
- }
-
- @Override
- public void activate(OnLocationChangedListener onLocationChangedListener) {
- userMoveToLocationMark = false;
- if (locationRequest.getLocationClient() == null) {
- locationRequest.getLocationClient().startLocation();
- }
- }
-
- @Override
- public void deactivate() {
- LogUtils.i("地图暂停时不结束后台定位,让定位在后台也能运行!");
- }
-
- @Override
- public void onTouch(MotionEvent motionEvent) {
- userMoveToLocationMark = true;
- }
-}
diff --git a/app/src/main/java/com/kanglai/push/ui/fragment/HomeFragment.java b/app/src/main/java/com/kanglai/push/ui/fragment/HomeFragment.java
index 4e580e5..2e70747 100644
--- a/app/src/main/java/com/kanglai/push/ui/fragment/HomeFragment.java
+++ b/app/src/main/java/com/kanglai/push/ui/fragment/HomeFragment.java
@@ -18,33 +18,24 @@ import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
-import com.amap.api.services.core.LatLonPoint;
-import com.blankj.utilcode.util.CacheDiskUtils;
import com.blankj.utilcode.util.CollectionUtils;
import com.blankj.utilcode.util.LogUtils;
-import com.blankj.utilcode.util.StringUtils;
import com.dolphin.core.base.BaseFragment;
import com.dolphin.core.bus.RxBus;
import com.dolphin.core.entity.OssFile;
import com.dolphin.core.util.NotificationUtil;
import com.dolphin.core.util.ToastUtil;
import com.dolphin.core.widget.DefaultItemDecoration;
+import com.google.gson.Gson;
import com.kanglai.push.BR;
import com.kanglai.push.R;
-import com.kanglai.push.constant.CacheConstant;
-import com.kanglai.push.constant.CommonConstant;
import com.kanglai.push.databinding.FragmentHomeBinding;
-import com.kanglai.push.entity.RoutePlanLatPoint;
import com.kanglai.push.entity.RxbusDemo;
-import com.kanglai.push.entity.User;
import com.kanglai.push.ui.activity.DemoShareActivity;
import com.kanglai.push.ui.activity.PictureSelectorActivity;
-import com.kanglai.push.ui.activity.RoutePlanActivity;
import com.kanglai.push.ui.adapter.HomeRecyclerAdapter;
import com.kanglai.push.ui.vm.HomeViewModel;
-import com.google.gson.Gson;
import com.luck.picture.lib.config.PictureConfig;
-import com.umeng.message.PushAgent;
import java.util.ArrayList;
import java.util.List;
@@ -64,7 +55,6 @@ public class HomeFragment extends BaseFragment routePlanLauncherResult;
private ActivityResultLauncher> pictureSelectorLauncherResult;
@Override
@@ -80,20 +70,6 @@ public class HomeFragment extends BaseFragment() {
- @Override
- public Void parseResult(int resultCode, @Nullable Intent intent) {
- return null;
- }
- @Override
- public Intent createIntent(@NonNull Context context, RoutePlanLatPoint routePlanLatPoint) {
- Intent intent = new Intent(getActivity(), RoutePlanActivity.class);
- intent.putExtra(CommonConstant.ROUTE_PLAN_LAT_POINT, routePlanLatPoint);
- return intent;
- }
- }, result -> {});
pictureSelectorLauncherResult = registerForActivityResult(new ActivityResultContract, ArrayList>() {
@Override
public ArrayList parseResult(int resultCode, @Nullable Intent intent) {
@@ -162,10 +138,6 @@ public class HomeFragment extends BaseFragment list = new ArrayList();
diff --git a/app/src/main/java/com/kanglai/push/ui/vm/InstantViewModel.java b/app/src/main/java/com/kanglai/push/ui/vm/InstantViewModel.java
index 2d4464c..d1834f8 100644
--- a/app/src/main/java/com/kanglai/push/ui/vm/InstantViewModel.java
+++ b/app/src/main/java/com/kanglai/push/ui/vm/InstantViewModel.java
@@ -9,10 +9,8 @@ import android.view.View;
import androidx.annotation.NonNull;
import androidx.lifecycle.LifecycleOwner;
-import com.autonavi.base.amap.mapcore.Convert;
import com.blankj.utilcode.util.CacheDiskUtils;
import com.blankj.utilcode.util.CollectionUtils;
-import com.blankj.utilcode.util.ConvertUtils;
import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.MapUtils;
import com.blankj.utilcode.util.StringUtils;
@@ -22,9 +20,6 @@ import com.dolphin.core.http.api.ResultResponse;
import com.dolphin.core.http.exception.ExceptionHandle;
import com.dolphin.core.util.RxUtil;
import com.dolphin.core.util.ToastUtil;
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.google.gson.internal.LinkedTreeMap;
import com.kanglai.push.app.AppApplication;
import com.kanglai.push.constant.CacheConstant;
import com.kanglai.push.di.component.DaggerServiceComponent;
@@ -34,16 +29,10 @@ import com.kanglai.push.entity.PushChatMessage;
import com.kanglai.push.entity.User;
import com.kanglai.push.service.PushService;
import com.kanglai.push.ui.activity.InstantActivity;
-import com.kanglai.push.util.CustomDeserializer;
import com.kanglai.push.util.LocalPushChatMsgUtil;
-import com.kanglai.push.util.TimeFormatUtil;
-import java.lang.reflect.Type;
import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
import java.util.Collections;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
diff --git a/app/src/main/java/com/kanglai/push/ui/vm/MapViewModel.java b/app/src/main/java/com/kanglai/push/ui/vm/MapViewModel.java
deleted file mode 100644
index 02a7b84..0000000
--- a/app/src/main/java/com/kanglai/push/ui/vm/MapViewModel.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.kanglai.push.ui.vm;
-
-import android.app.Application;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.LifecycleOwner;
-
-/**
- *
- * 地图视图模型层
- *
- *
- * @Author: entfrm开发团队-王翔
- * @since: 2022/11/1
- */
-public class MapViewModel extends ToolbarViewModel {
-
-
- public MapViewModel(@NonNull Application application) {
- super(application);
- }
-
- @Override
- public void onCreate(@NonNull LifecycleOwner owner) {
- super.onCreate(owner);
- super.setTitleText("高德地图");
- }
-
-}
diff --git a/app/src/main/res/layout/activity_basic_navi.xml b/app/src/main/res/layout/activity_basic_navi.xml
deleted file mode 100644
index 6a08010..0000000
--- a/app/src/main/res/layout/activity_basic_navi.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
diff --git a/app/src/main/res/layout/activity_route_plan.xml b/app/src/main/res/layout/activity_route_plan.xml
deleted file mode 100644
index afe0df8..0000000
--- a/app/src/main/res/layout/activity_route_plan.xml
+++ /dev/null
@@ -1,118 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_route_plan_detail.xml b/app/src/main/res/layout/activity_route_plan_detail.xml
deleted file mode 100644
index 2209bba..0000000
--- a/app/src/main/res/layout/activity_route_plan_detail.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_map.xml b/app/src/main/res/layout/fragment_map.xml
deleted file mode 100644
index 7a4d17f..0000000
--- a/app/src/main/res/layout/fragment_map.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_route_plan.xml b/app/src/main/res/layout/item_route_plan.xml
deleted file mode 100644
index bb325b7..0000000
--- a/app/src/main/res/layout/item_route_plan.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/library/core/src/main/java/com/dolphin/core/util/AMapCommonUtil.java b/library/core/src/main/java/com/dolphin/core/util/AMapCommonUtil.java
deleted file mode 100644
index 50c7486..0000000
--- a/library/core/src/main/java/com/dolphin/core/util/AMapCommonUtil.java
+++ /dev/null
@@ -1,224 +0,0 @@
-package com.dolphin.core.util;
-
-import com.amap.api.maps.model.LatLng;
-import com.amap.api.services.core.LatLonPoint;
-import com.amap.api.services.route.BusPath;
-import com.amap.api.services.route.BusStep;
-import com.amap.api.services.route.RouteBusLineItem;
-import com.amap.api.services.route.RouteRailwayItem;
-import com.blankj.utilcode.util.ObjectUtils;
-import com.blankj.utilcode.util.StringUtils;
-import com.dolphin.core.R;
-
-import java.text.DecimalFormat;
-import java.util.List;
-
-import lombok.experimental.UtilityClass;
-
-/**
- *
- * 高德地图通用工具
- *
- *
- * @Author: entfrm开发团队-王翔
- * @since: 2022/11/4
- */
-@UtilityClass
-public class AMapCommonUtil {
-
- /**
- * 获取规划公里数
- * @param distance 出行路线规划总距离
- * @return 公里
- */
- public String getPlanKilometer(int distance) {
- // 10 km
- if (distance > 10000) {
- int dis = distance / 1000;
- return dis + "公里";
- }
-
- // 1 km
- if (distance > 1000) {
- float dis = (float) distance / 1000;
- DecimalFormat decimalFormat = new DecimalFormat("##0.0");
- String str = decimalFormat.format(dis);
- return str + "公里";
- }
-
- if (distance > 100) {
- int dis = distance / 50 * 50;
- return dis + "公里";
- }
-
- int dis = distance / 10 * 10;
- if (dis == 0) {
- dis = 10;
- }
-
- return dis + "公里";
- }
-
- /**
- * 获规划预计时间
- * @param duration 持续时间
- * @return 时间
- */
- public String getPlanTime(int duration) {
- if (duration > 3600) {
- int hour = duration / 3600;
- int minutes = (duration % 3600) / 60;
- return hour + "小时" + minutes + "分钟";
- }
- if (duration >= 60) {
- int minutes = duration / 60;
- return minutes + "分钟";
- }
- return duration + "秒";
- }
-
- /**
- * 获取行驶动作指示资源
- * @param actionName 行驶动作名称
- * @return 图片
- */
- public int getDrivingActionResource(String actionName) {
- if ("左转".equals(actionName)) {
- return R.drawable.icon_driving2;
- }
- if ("右转".equals(actionName)) {
- return R.drawable.icon_driving1;
- }
- if ("向左前方行驶".equals(actionName) || "靠左".equals(actionName)) {
- return R.drawable.icon_driving6;
- }
- if ("向右前方行驶".equals(actionName) || "靠右".equals(actionName)) {
- return R.drawable.icon_driving5;
- }
- if ("向左后方行驶".equals(actionName) || "左转调头".equals(actionName)) {
- return R.drawable.icon_driving7;
- }
- if ("向右后方行驶".equals(actionName)) {
- return R.drawable.icon_driving8;
- }
- if ("直行".equals(actionName)) {
- return R.drawable.icon_driving3;
- }
- if ("减速行驶".equals(actionName)) {
- return R.drawable.icon_driving4;
- }
- return R.drawable.icon_driving3;
- }
-
- /**
- * 获取步行动作指示资源
- * @param actionName 步行动作名称
- * @return 图片
- */
- public int getWalkActionResource(String actionName) {
- if ("左转".equals(actionName)) {
- return R.drawable.icon_driving2;
- }
- if ("右转".equals(actionName)) {
- return R.drawable.icon_driving1;
- }
- if ("向左前方".equals(actionName) || "靠左".equals(actionName) || actionName.contains("向左前方")) {
- return R.drawable.icon_driving6;
- }
- if ("向右前方".equals(actionName) || "靠右".equals(actionName) || actionName.contains("向右前方")) {
- return R.drawable.icon_driving5;
- }
- if ("向左后方".equals(actionName)|| actionName.contains("向左后方")) {
- return R.drawable.icon_driving7;
- }
- if ("向右后方".equals(actionName)|| actionName.contains("向右后方")) {
- return R.drawable.icon_driving8;
- }
- if ("直行".equals(actionName)) {
- return R.drawable.icon_driving3;
- }
- if ("通过人行横道".equals(actionName)) {
- return R.drawable.icon_driving9;
- }
- if ("通过过街天桥".equals(actionName)) {
- return R.drawable.icon_driving11;
- }
- if ("通过地下通道".equals(actionName)) {
- return R.drawable.icon_driving10;
- }
- return R.drawable.icon_driving13;
- }
-
-
- /**
- * 获取公交规划路线标题(包含多种规划到达路线)
- * @param busPath 公交路线
- * @return 标题
- */
- public String getBusPathTitle(BusPath busPath) {
- if (ObjectUtils.isEmpty(busPath)) return "";
- // 公交规划线路行驶步骤
- List busSteps = busPath.getSteps();
- if (ObjectUtils.isEmpty(busSteps)) return "";
- // 规划路线标题
- StringBuffer sb = new StringBuffer();
- for (BusStep busStep : busSteps) {
- StringBuffer title = new StringBuffer();
- if (busStep.getBusLines().size() > 0) {
- for (RouteBusLineItem busLine : busStep.getBusLines()) {
- if (busLine == null) continue;
- // 去掉详细地名
- String busLineName = StringUtils.isTrimEmpty(busLine.getBusLineName()) ? ""
- : busLine.getBusLineName().replaceAll("\\(.*?\\)", "");
- title.append(busLineName);
- title.append(" / ");
- }
- sb.append(title.substring(0, title.length() - 3));
- sb.append(" > ");
- }
- // 获取地铁名称
- if (busStep.getRailway() != null) {
- RouteRailwayItem railway = busStep.getRailway();
- sb.append(railway.getTrip()+"("+railway.getDeparturestop().getName() + " - "+railway.getArrivalstop().getName()+")");
- sb.append(" > ");
- }
- }
- // 返回并去掉最后的 >
- return sb.substring(0, sb.length() - 3);
- }
-
- /**
- * 获取公交规划路线预计规划信息
- * @param busPath 公交路线
- * @return 预计规划信息
- */
- public String getBusPathPlanInfo(BusPath busPath) {
- if (ObjectUtils.isEmpty(busPath)) return "";
- long duration = busPath.getDuration();
- String time = getPlanTime((int) duration);
- float subDistance = busPath.getDistance();
- String subDis = getPlanKilometer((int) subDistance);
- float walkDistance = busPath.getWalkDistance();
- String walkDis = getPlanKilometer((int) walkDistance);
- return time + " | " + subDis + " | 步行" + walkDis;
- }
-
- /**
- * 经纬度点对象转经纬度地理坐标对象
- * @param latLonPoint 经纬度点对象
- * @return 经纬度地理坐标对象
- */
- public static LatLng convertToLatLng(LatLonPoint latLonPoint) {
- return new LatLng(latLonPoint.getLatitude(), latLonPoint.getLongitude());
- }
-
- /**
- * 经纬度地理坐标对象转经纬度点对象
- * @param latLng 经纬度地理坐标对象
- * @return 经纬度点对象
- */
- public static LatLonPoint convertToLatLonPoint(LatLng latLng) {
- return new LatLonPoint(latLng.latitude, latLng.longitude);
- }
-
-}
diff --git a/library/core/src/main/java/com/dolphin/core/util/ToastUtil.java b/library/core/src/main/java/com/dolphin/core/util/ToastUtil.java
index d7d738d..5ef6d5f 100644
--- a/library/core/src/main/java/com/dolphin/core/util/ToastUtil.java
+++ b/library/core/src/main/java/com/dolphin/core/util/ToastUtil.java
@@ -3,8 +3,6 @@ package com.dolphin.core.util;
import android.view.Gravity;
import android.widget.Toast;
-import com.amap.api.services.core.AMapException;
-import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.blankj.utilcode.util.Utils;
import com.dolphin.core.R;
@@ -69,121 +67,4 @@ public class ToastUtil {
Toast.makeText(Utils.getApp(), text, Toast.LENGTH_SHORT).show();
}
- public void showAmapError(int rCode){
- try {
- switch (rCode) {
- //服务错误码
- case 1001:
- throw new AMapException(AMapException.AMAP_SIGNATURE_ERROR);
- case 1002:
- throw new AMapException(AMapException.AMAP_INVALID_USER_KEY);
- case 1003:
- throw new AMapException(AMapException.AMAP_SERVICE_NOT_AVAILBALE);
- case 1004:
- throw new AMapException(AMapException.AMAP_DAILY_QUERY_OVER_LIMIT);
- case 1005:
- throw new AMapException(AMapException.AMAP_ACCESS_TOO_FREQUENT);
- case 1006:
- throw new AMapException(AMapException.AMAP_INVALID_USER_IP);
- case 1007:
- throw new AMapException(AMapException.AMAP_INVALID_USER_DOMAIN);
- case 1008:
- throw new AMapException(AMapException.AMAP_INVALID_USER_SCODE);
- case 1009:
- throw new AMapException(AMapException.AMAP_USERKEY_PLAT_NOMATCH);
- case 1010:
- throw new AMapException(AMapException.AMAP_IP_QUERY_OVER_LIMIT);
- case 1011:
- throw new AMapException(AMapException.AMAP_NOT_SUPPORT_HTTPS);
- case 1012:
- throw new AMapException(AMapException.AMAP_INSUFFICIENT_PRIVILEGES);
- case 1013:
- throw new AMapException(AMapException.AMAP_USER_KEY_RECYCLED);
- case 1100:
- throw new AMapException(AMapException.AMAP_ENGINE_RESPONSE_ERROR);
- case 1101:
- throw new AMapException(AMapException.AMAP_ENGINE_RESPONSE_DATA_ERROR);
- case 1102:
- throw new AMapException(AMapException.AMAP_ENGINE_CONNECT_TIMEOUT);
- case 1103:
- throw new AMapException(AMapException.AMAP_ENGINE_RETURN_TIMEOUT);
- case 1200:
- throw new AMapException(AMapException.AMAP_SERVICE_INVALID_PARAMS);
- case 1201:
- throw new AMapException(AMapException.AMAP_SERVICE_MISSING_REQUIRED_PARAMS);
- case 1202:
- throw new AMapException(AMapException.AMAP_SERVICE_ILLEGAL_REQUEST);
- case 1203:
- throw new AMapException(AMapException.AMAP_SERVICE_UNKNOWN_ERROR);
- //sdk返回错误
- case 1800:
- throw new AMapException(AMapException.AMAP_CLIENT_ERRORCODE_MISSSING);
- case 1801:
- throw new AMapException(AMapException.AMAP_CLIENT_ERROR_PROTOCOL);
- case 1802:
- throw new AMapException(AMapException.AMAP_CLIENT_SOCKET_TIMEOUT_EXCEPTION);
- case 1803:
- throw new AMapException(AMapException.AMAP_CLIENT_URL_EXCEPTION);
- case 1804:
- throw new AMapException(AMapException.AMAP_CLIENT_UNKNOWHOST_EXCEPTION);
- case 1806:
- throw new AMapException(AMapException.AMAP_CLIENT_NETWORK_EXCEPTION);
- case 1900:
- throw new AMapException(AMapException.AMAP_CLIENT_UNKNOWN_ERROR);
- case 1901:
- throw new AMapException(AMapException.AMAP_CLIENT_INVALID_PARAMETER);
- case 1902:
- throw new AMapException(AMapException.AMAP_CLIENT_IO_EXCEPTION);
- case 1903:
- throw new AMapException(AMapException.AMAP_CLIENT_NULLPOINT_EXCEPTION);
- //云图和附近错误码
- case 2000:
- throw new AMapException(AMapException.AMAP_SERVICE_TABLEID_NOT_EXIST);
- case 2001:
- throw new AMapException(AMapException.AMAP_ID_NOT_EXIST);
- case 2002:
- throw new AMapException(AMapException.AMAP_SERVICE_MAINTENANCE);
- case 2003:
- throw new AMapException(AMapException.AMAP_ENGINE_TABLEID_NOT_EXIST);
- case 2100:
- throw new AMapException(AMapException.AMAP_NEARBY_INVALID_USERID);
- case 2101:
- throw new AMapException(AMapException.AMAP_NEARBY_KEY_NOT_BIND);
- case 2200:
- throw new AMapException(AMapException.AMAP_CLIENT_UPLOADAUTO_STARTED_ERROR);
- case 2201:
- throw new AMapException(AMapException.AMAP_CLIENT_USERID_ILLEGAL);
- case 2202:
- throw new AMapException(AMapException.AMAP_CLIENT_NEARBY_NULL_RESULT);
- case 2203:
- throw new AMapException(AMapException.AMAP_CLIENT_UPLOAD_TOO_FREQUENT);
- case 2204:
- throw new AMapException(AMapException.AMAP_CLIENT_UPLOAD_LOCATION_ERROR);
- //路径规划
- case 3000:
- throw new AMapException(AMapException.AMAP_ROUTE_OUT_OF_SERVICE);
- case 3001:
- throw new AMapException(AMapException.AMAP_ROUTE_NO_ROADS_NEARBY);
- case 3002:
- throw new AMapException(AMapException.AMAP_ROUTE_FAIL);
- case 3003:
- throw new AMapException(AMapException.AMAP_OVER_DIRECTION_RANGE);
- //短传分享
- case 4000:
- throw new AMapException(AMapException.AMAP_SHARE_LICENSE_IS_EXPIRED);
- case 4001:
- throw new AMapException(AMapException.AMAP_SHARE_FAILURE);
- default:
- Toast.makeText(Utils.getApp(),"查询失败:"+rCode , Toast.LENGTH_LONG).show();
- LogUtils.i("查询失败", rCode,
- "高德地图错误码查询地址:http://lbs.amap.com/api/android-sdk/guide/map-tools/error-code/");
- break;
- }
- } catch (Exception e) {
- Toast.makeText(Utils.getApp(), e.getMessage(), Toast.LENGTH_LONG).show();
- LogUtils.e("查询失败", rCode,
- "高德地图错误码查询地址:http://lbs.amap.com/api/android-sdk/guide/map-tools/error-code/");
- }
- }
-
}
diff --git a/library/core/src/main/res/drawable-xxhdpi/icon_custtexture_driving.png b/library/core/src/main/res/drawable-xxhdpi/icon_custtexture_driving.png
deleted file mode 100644
index a41165d14cd1f46b1a6f31dd8f6ed44b3e69df11..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 971
zcmV;+12p`JP)~V1cp*GU^#$+v#5?ks}WcawUgJNktuABFkmzY
z!36@wHHDiRaDPq#%MmCnSC7^but@;9LI&(z>Vy8(0qBW8V88)X_>x&3Lm;<22T=+1
zI}~ytS>`p2w4vqcEeqc7#5Bv!8d_;vA-Kx?m87tSg+jn7rLZk}2a-oA_;I`ky&Ra}
z3U$j_zzS5zL#bvdU!G7YH#3Fzmij@y;k6N=aDyw%SwkIIgDIOpYddNK7gNikh8(yl
zEQgXjWew=}2b5(>S+>oMncHx1^2-Juo*u#D#51jJLS)%)8>Y|~K)V=w!>$`TyWHKhl@g}~9{sq)$xd8@Ohs^(Hz0c`5jPJ-$Vse&spi=lX
zy>9+L>+PMS)hzF8edzUiaZ1F3Roey^EKAyaVp7yT44b2O#^bST$oHY%hb>l{$DSry^7odkS+$B3M(KpH?<^Dp&~aYuh^=>Rtc=a3djZt>nkaMm6T-LDnNc-DA*LGq*(>IxIwi8dA3R!B_#z``ugSN<$C4Ddih1^`i7R4
zmih)p`bI{&Koz>hm3bwJ6}oxF$`C_f=D4I5Cl_TFlw{`TDS*sPOv*1Uu~kw6Sp)|V
zca~(PA#BPkhI$L=L4A;nzM-ChKHO}eRvVD0m48uYD$r(-`F4gjV3jChPEamT!8FvAxwr90l)Rzz5vTTY!lxBtUZkp(wcL_RyPJowD?;hl6qBUf2)6QzI1$fV26j6ZEv{8gk>8x-n)LJVV}lsevYuaOs8I}h;Kd}
zm9qcP-5;6^hB>J_)Ml*Nf7(IGw4v^Z9jD={s}1vN4}5)mVA}kdJ>7{wnnJi0alh
z|FALCUe6eOyusSMfjRfUCAJB{cC`h``HU-8U5+sQ8oKFq7W=w6Ol*8i+x40BXP%C!
zSy0RA(SP*j#}yVaa#r6U6f#Ohy*F=QQU{wTz4O);=I_<=4ZwSN0o&Va-Rj8FQ1ZEKKj8e(?3EbMIzX4+hx{
zlm0wp|L{^hAd1cJ%kl=U$EFA0*)95-_`rz!a^#bTeY{6mzU)i7q7=Qfx9wE_r>E<`
ziPdeKyX<7u)SHvG&rdhoHfaj$SKduhv$NCZ*`9tj!FA)$kC8vB%@x-roV;zmNjXvF
zrn8aTH-)pCr&aG>efrZztIyKk6XiZ03tk#srK!9t)EXJPyVDN|0+0L>L|OYWBY`s8p{{W
zewzJkpVvdb%9P~Q{Fk3DDi^ZMf3+}DFZ-2`(fbRJmKwvS``hx3PfJeIi|37fCA#l)yz@1Q`w1qKAAyQD
MPgg&ebxsLQ05e}hPyhe`
diff --git a/library/core/src/main/res/drawable-xxhdpi/icon_destination.png b/library/core/src/main/res/drawable-xxhdpi/icon_destination.png
deleted file mode 100644
index ef1d2dbffd7adea64f60ba32d13cc9d8c7a97fe7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 4660
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
diff --git a/library/core/src/main/res/drawable-xxhdpi/icon_driving1.png b/library/core/src/main/res/drawable-xxhdpi/icon_driving1.png
deleted file mode 100644
index fec3f4ec697c7471eaca82e8107068a76219c6e7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 702
zcmV;v0zv(WP)`7Tu*+SVLWdNRNH}M|*TzKOIzEk$7Y$k4)
zE6c$@jR**MP_~qGfPdCi1cKix^TfdEbdt$rBEIiSymYcd
zjotJR9d1Uv>jj>`hFLcnxtlF?`+NdQ010X_zA
zR!+kuFM)Q(s8Rs_n#)|8CE~J(NB!n_JYu)oW+2s!fEWCP+*t%4M7>@waA>#N;(|`6
zLjnE;_`nN(!VK{tAj7Gs({QudhzsCTtyX2RSV#!Kr_Q7jgXnMk-N++p7nq1iE=PXC7p
z@LIBi&WZ7OOy|U9MesR+IE1|Q#N2MTmlOd$`-y3OJG$L2eLK>N;EfAE@DpaPUr`p3
z_$zui9E6a&Mm>RQETW#cMrCC$@v^oW^F;{#em_x-iGEyTg2%v1RJHwTR@>!rIZ?F@
zKlmHK&b+`PqUPnOXl1XEn!Pyhe`07*qoM6N<$g0pW)t^fc4
diff --git a/library/core/src/main/res/drawable-xxhdpi/icon_driving10.png b/library/core/src/main/res/drawable-xxhdpi/icon_driving10.png
deleted file mode 100644
index 34c2228f6cfd3ff2b9292271676c661129beb9fb..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 910
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
diff --git a/library/core/src/main/res/drawable-xxhdpi/icon_driving3.png b/library/core/src/main/res/drawable-xxhdpi/icon_driving3.png
deleted file mode 100644
index 8cbe886e8133accdda4a0c5361f9ac85d9c3e65d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 712
zcmV;(0yq7MP)I?NO^
z=HU^bgksZ=6P&}cOD)9&|sPJ&;waUJ(L
z7X5U813vPEnlPsTPcM_N*K2aYYPFJPw2lEU%tV?5Fq|wh91iIgpdV{M&p?_@$TD2Y
zDd5g{swhk*6Wge;mN_*`LoD2&zpk*En?U!X5A
zjr$dqCY-;bhr@vcGOqiHI3}9JMXvzxYb1^T8St`uDom`o;AC=`et)M_>VX}8-gJHZug+($p#
zVw^u-g9|@_LFh|>rsu=P!LHHz;v=mzu%`zfN`t=Jq<|?LZ;zd
zE&&h5Q-xtP8kuH=we+Q#!>GV!8Sp&Mx0}soRx<)!=nJG|5M#dEZnymb
z^?IGc05N`Hi^U=x4hISY^k55pfiVYhD^rovaJ5=d7#fYnr?hM~n-l`*ar)}1dy62_
z+(L?RCWK)+ox)D1e?JVIG4LahMi76wg&mKLES5pixGeG^;YXl~Al|rDsZ@NU&1Pf0
z3_8&t1n9yBegxhS#5=b*E3jrZkj`xYUCt7LkHjfaAkH96KE7opve~RY6Xtg!I?V5c
zo*ldu$2}9!4a|--w+4d&?-Q{HA@>RR5l9E_nCtbLVg&SpcTD};(Q38$+Y#$b@csgQ
zfpOHYsD$-bbhq1)K+3kBh%ytX#tiku*Hu<1@r;!f^O*!Xoz6uyChTO52^|g3rfU0D
zueS5~{6*C^#$mjMmg4nSoI7A|I(I}rft5-nc>+T_))SayGN!ZW?^6HkhFia%_1{{xn&)*OTGV37a-002ovPDHLkV1gB9NoN26
diff --git a/library/core/src/main/res/drawable-xxhdpi/icon_driving5.png b/library/core/src/main/res/drawable-xxhdpi/icon_driving5.png
deleted file mode 100644
index e465d5eec20dac3b03b1425956c88342b1ebb961..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 838
zcmV-M1G)T(P)25<5>P2ZySIbt6n&_2crnglQWCLneN#a^hW!3*_5;zue8h>>Va6+e&=
zPUpYia2VFku9p1ZkL>Quf6mVCnLXnX5xLPPq3=Sb&~KqXLIA%wHgO&8-1s_aXJKpLO%324C82r90l=3=z$Ic{k{7HaV%tz!e+CfcDqgae4e7wC|z7!kTAk8j&UB>
zt#&pT@O2u*iO?@~@M^V6fj|I*YK3+;H#c^{!1qKK#7Ch#F?zioU0q$t0Wz74b+<1s
zFWW)zi({O}b=emE&|e{sadrlwJ_6i5AAB?#krN&tA9*mAkAkr)2rn_jbV`#}t3`W&
ze$oSe3SKn`56c2fq3n#iIso*SUhq}2#>0a++g@3%R(RW8&A{vHD?L3uS?@%-T&8q7
zO^HN8oe}t2{tTZCf-gj+QpxI&&1OjlrZ^Ibkl*hoHA76(Bo6#=9{!B(Hi%P}iZTr+
zlL_fqE|(OG#cb2GR;v*MelmTP)ICKI=RyF}DKo(-fwK3?LK=SudzV
z;A@{9e4V(xy|rB@_>#`ognGSBPT}hW#$lZATrr=YpNYYPl)^gU5cvIb#e}*%_0(^N
z`nVu`pxltl<pHoiTA6lP~zz-
zD=9xQDwWD!H745e8WTPWeqFU)P^<0B%gep0ZS+Hb1-zNZ@3HSdd)>a{@EsV+I=%zL
z@!>l#dwKuUUi9m}8)BZm--PbS9e3z=;I3T%{{$-oX6*loA3~pnJ~;LL3rpdzw!~B)7M)4-a&He!er1N~N}6
zJDE(_2%Z?@cf8-tg&y=3-F}W0gnQonGH#axi^&bod
zv|6n!M+Cg!m*CksAs3=zvA9*pWHO|J*I5?7-%pW9gu`tL@L@jqB{bQI6FC(*4WFN%
zNkzF_HcZK@t1DV87W4+d$LXu4?g^am@(3a3OfW*L)iR94a5y9#4{Y6
zY-l2($8i;Ih$6WA*T
z0Iz9wczIN-)ucLM5BK-?a_vBQHmwt|Bf)E0F-M~j*#PPUJ7Hu9eC8EXJv)$Qe0JCc
z4mjwlAqTSAtWg>_ZJwff0000<
KMNUMnLSTYO_lSc4
diff --git a/library/core/src/main/res/drawable-xxhdpi/icon_driving7.png b/library/core/src/main/res/drawable-xxhdpi/icon_driving7.png
deleted file mode 100644
index e53c9ff451d1683aa228c3cd204dd3689874cf60..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 791
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
m?xR-KA9%&UZEc+9WZ$-A sDeviceOaid = oaid);
- // QQ官方sdk授权
- Tencent.setIsPermissionGranted(true);
// 播放器初始化
mApplication = application;
// mediaPlayer.setLooping(true); 关闭循环播放效果