Compare commits

..
58 Commits
Author SHA1 Message Date
lijia ef6393e8ca 运营端login appname 2025-01-14 10:55:04 +08:00
lijia b082e37493 Merge branch 'newlj2' into newlj2toyybc 2025-01-14 09:06:29 +08:00
lijia ed4f34eb58 接单30秒倒计时 2025-01-14 09:03:45 +08:00
lijia 420169a34d Merge branch 'newlj2' into newlj2toyybc 2025-01-13 09:03:46 +08:00
lijia ad37c159d1 78版本 2025-01-13 08:56:02 +08:00
lijia 265e09e532 装卸货时间优化 2025-01-10 17:30:09 +08:00
lijia 38dcefb121 银行卡识别失败优化 2025-01-10 16:53:09 +08:00
lijia 11c90e450c 退出登录添加记住账号 2025-01-06 17:21:43 +08:00
lijia 1224578088 运营端添加车辆过滤优化 2024-12-31 16:53:10 +08:00
lijia 6448a48c10 运营端添加车辆过滤 2024-12-31 16:47:00 +08:00
lijia 66b581c296 Merge branch 'newlj2' into newlj2toyybc 2024-12-31 16:41:00 +08:00
lijia d9a9b9b634 添加不上传安联逻辑 2024-12-31 16:39:47 +08:00
lijia 205a6ee7f5 驾驶证添加起始截止日期格式判断 2024-12-31 11:03:17 +08:00
lijia 7d86e5cbc6 77版本 2024-12-25 17:08:48 +08:00
lijia d8e5cbeb90 接单前人车绑定关系查询 2024-12-25 15:48:05 +08:00
lijia d4fd83c8f2 Merge branch 'master' into newlj2 2024-12-25 15:01:46 +08:00
lijia e3b6ba4f1c 实名认证url为空优化 2024-12-25 10:54:28 +08:00
lijia 699983cb83 真实位置上传取消 2024-12-20 09:12:24 +08:00
lijia 58a3f502da 76版 打开权限设置工具类 2024-12-20 08:32:00 +08:00
lijia f0c7b321f4 运营端更新注释 2024-12-19 09:11:14 +08:00
lijia f7a3b4303d 新路交运营端代码 2024-12-18 17:29:24 +08:00
lijia ebaa442309 查询司机失败提示优化 2024-12-18 16:39:56 +08:00
lijia ac6906a1a5 新路交替换 2024-12-18 15:22:03 +08:00
lijia 80a257273b 根据华为市场复审75版本 2024-12-17 10:12:03 +08:00
lijia 5a846d220d 根据华为市场审核修改隐私政策格式 2024-12-17 10:02:49 +08:00
lijia 01bd0e03ff 多种类型经纬度转换工具类 2024-12-13 18:04:33 +08:00
lijia 82b1413429 合同显示不全优化 2024-12-11 10:24:12 +08:00
lijia 8b2007a11d 74版本 2024-12-09 16:40:35 +08:00
lijia d181d819b0 域名拦截 2024-12-09 15:57:37 +08:00
lijia 1042fbd283 刷新优化 2024-12-09 09:22:31 +08:00
lijia f1ffdd31af 账户状态刷新 2024-12-06 16:06:59 +08:00
lijia 3b7a77c45b 货源详情默认选中指派车辆 2024-12-06 09:45:12 +08:00
lijia 7fdb48817f 货源详情重复打开 2024-12-05 16:11:47 +08:00
lijia 496319c04b 修改运单详情启动模式2 2024-12-05 10:48:32 +08:00
lijia 86d3599110 外部跳回测试 2024-12-05 10:10:40 +08:00
lijia 23ca8f1411 h5页面添加shceme 2024-12-04 17:22:20 +08:00
lijia cfc32bfe66 页面销毁glide报错处理 2024-12-04 16:11:44 +08:00
lijia ab59be9f94 上传照片添加容错机制 2024-12-04 10:53:26 +08:00
lijia e59e2d0fa4 登录添加未成功不可重复点击判断 2024-12-04 10:34:24 +08:00
lijia 041bcaf2ec 登录按钮添加防抖以及加载loading 2024-12-04 09:14:33 +08:00
lijia 291578cd72 道路运输证识别优化 2024-12-03 16:13:32 +08:00
lijia 1ef4f3b9ca 从业资格空指针优化 2024-12-03 15:48:43 +08:00
lijia ab34920c8f 位置上传添加回调 2024-12-03 11:19:32 +08:00
lijia 63026819f8 装卸货位置上传 2024-12-03 11:09:22 +08:00
lijia 83fc537c8d 刷脸认证成功页面优化 2024-12-03 11:06:22 +08:00
lijia 7a02706b75 刷脸认证成功页面本地化 2024-12-03 10:22:58 +08:00
lijia d78ec09c04 新建刷脸成功页面 2024-12-02 11:53:38 +08:00
lijia 40d344e245 提升app更新弹窗未最高等级 2024-12-02 10:26:43 +08:00
lijia 866a46a7cb 检测更新bug修复 2024-12-02 10:10:15 +08:00
lijia e4bdf1384f 添加aliyun grradle 2024-11-30 15:13:56 +08:00
lijia cabbe363a9 从业资格loading优化 2024-11-28 11:17:55 +08:00
lijia 6fc87c0d2e 刷脸失败异常处理 2024-11-27 14:20:00 +08:00
lijia 61c22800f7 状态提示调整,绑定车辆不校验 2024-11-25 10:52:58 +08:00
lijia deb11d4d99 73版本 2024-11-25 09:57:09 +08:00
lijia 77481c73f6 注册自动流转优化 2024-11-25 09:48:59 +08:00
lijia 2da410bcd4 添加挂车优化 2024-11-22 16:35:54 +08:00
lijia c6005ee9a1 隐私政策拦截 2024-11-22 15:55:20 +08:00
lijia 65994b8eda ocr识别优化 2024-11-21 16:38:33 +08:00
72 changed files with 4689 additions and 508 deletions
+20 -2
View File
@@ -38,8 +38,8 @@ android {
applicationId "com.arpa.hndahesudintocctmsdriver"
minSdkVersion 24
targetSdkVersion 30
versionCode 72
versionName "3.4.2"
versionCode 78
versionName "3.4.8"
flavorDimensions "CHANNEL_VALUE"
flavorDimensions "app_icon"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -128,6 +128,22 @@ android {
resValue "string", "appName", "大河好运司机"
}
productbc {
applicationId "com.arpa.hndahesudintocctmsdriver.bc"
manifestPlaceholders = [CHANNEL_VALUE: "大河好运司机",
app_icon : "@drawable/diver_logo",
GAODEKEY : "f960bc6d14788238918bd014fa08a870",
JPUSH_PKGNAME: applicationId,
JPUSH_APPKEY : "fba6f55621c670d8c1fe9191", //JPush 上注册的包名对应的 Appkey.
JPUSH_CHANNEL: "developer-default"//暂时填写默认值即可.
]
buildConfigField("String", "OPEN_AL_URL", "\"https://oapi.alct56.com\"")
buildConfigField("String", "BASE_URL", "\"http://app.dahehuoyun.com/api/\"")
buildConfigField "boolean", "isTest", "false"
//APP名称,可以在androidMainfest中引用
resValue "string", "appName", "司机运营"
}
}
// productFlavors.all { flavor ->
// flavor.manifestPlaceholders = [CHANNEL_VALUE: name]
@@ -231,4 +247,6 @@ dependencies {
implementation project(path: ':mylibrary')
implementation files('libs/mdp-release.aar')
}
Binary file not shown.
+53 -25
View File
@@ -2,6 +2,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.arpa.hndahesudintocctmsdriver">
<uses-permission android:name="android.permission.CALL_PHONE" />
<!-- 白名单 -->
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
@@ -53,7 +54,7 @@
android:name="com.arpa.hndahesudintocctmsdriver.App"
android:allowBackup="true"
android:excludeFromRecents="true"
android:icon="@mipmap/diver_logo"
android:icon="@mipmap/diver_log_yy"
android:label="@string/appName"
android:largeHeap="true"
android:requestLegacyExternalStorage="true"
@@ -71,14 +72,14 @@
android:configChanges="orientation|keyboardHidden|screenSize"
android:exported="true"
android:launchMode="singleTop"
android:screenOrientation="portrait" ></activity>
android:screenOrientation="portrait"></activity>
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.wallet.WithdrawalActivity"
android:screenOrientation="portrait" />
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.wallet.UpBankActivity"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.home.OrderAllActivity"
android:screenOrientation="portrait" />
@@ -93,11 +94,11 @@
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.auth.PhotoCarActivity"
android:windowSoftInputMode="adjustPan|stateHidden"
android:screenOrientation="portrait" />
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.auth.VehicleAuthActivity"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan.ShangChuangImgActivity"
android:screenOrientation="portrait">
@@ -142,13 +143,13 @@
</activity>
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan.GetShangChuanActivity"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.auth.AuthQualificationActivity"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.home.OrderListActivity"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.home.HuoYunDelActivity"
android:screenOrientation="portrait">
@@ -161,14 +162,19 @@
</activity>
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity"
android:windowSoftInputMode="adjustPan|stateHidden"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.auth.AddCarSuccActivity"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.auth.FaceSuccActivity"
android:exported="true"
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.login.WelcomeActivity"
android:exported="true"
@@ -192,28 +198,33 @@
</activity>
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.home.drivercircle.VideoReleaseActivity"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan.WebPDFActivity"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.home.StartYunDanActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait">
</activity>
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.home.drivercircle.HomePageActivity"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.alert.VehicleChoiceActivity"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan.OrderComplaintActivity"
android:screenOrientation="portrait"/>
android:screenOrientation="portrait" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.web.WebActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateAlwaysHidden" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.web.WebOnlyOneActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateAlwaysHidden" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.web.WebKfActivity"
android:screenOrientation="portrait"
@@ -223,7 +234,7 @@
<activity
android:name=".ui.news.NewActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateAlwaysHidden" />
android:windowSoftInputMode="stateAlwaysHidden" />
<service
android:name="com.arpa.hndahesudintocctmsdriver.service.TrackService"
@@ -243,6 +254,15 @@
android:name="com.alct.mdp.MDPLocationService"
android:exported="true"
android:process=":mdpLocation_v1" />
<!--后台访问 gps-->
<service
android:name="com.express.mdp.GpsService"
android:foregroundServiceType="location"
android:label="GPS服务"
android:priority="1000" />
<service
android:name="com.baidu.location.f"
android:enabled="true"
@@ -266,7 +286,7 @@
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="${GAODEKEY}" />
<!-- android:value="702eaa84675618b8eb69298d9fd42ca3" />-->
<!-- android:value="702eaa84675618b8eb69298d9fd42ca3" />-->
<service android:name="com.amap.api.location.APSService"></service>
@@ -362,10 +382,11 @@
<activity
android:name=".H5Activity"
android:screenOrientation="portrait"
android:launchMode="singleTask">
android:launchMode="singleTask"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
@@ -377,16 +398,23 @@
android:host="demo"
android:path="/realBack"
android:scheme="esign" />
<data
android:host="driver"
android:path="/realBack"
android:port="8088"
android:scheme="dahe" />
</intent-filter>
</activity>
<activity
android:name=".H5Activity2"
android:screenOrientation="portrait"
android:launchMode="singleTask">
android:launchMode="singleTask"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
@@ -41,9 +41,11 @@ import androidx.appcompat.app.AppCompatActivity;
import com.arpa.hndahesudintocctmsdriver.cuspop.SimCenterPop;
import com.arpa.hndahesudintocctmsdriver.event.FaceEvent;
import com.arpa.hndahesudintocctmsdriver.event.HomeEvent;
import com.arpa.hndahesudintocctmsdriver.request.UserRequset;
import com.arpa.hndahesudintocctmsdriver.ui.MainActivity;
import com.arpa.hndahesudintocctmsdriver.ui.UiAuxiliary;
import com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity;
import com.arpa.hndahesudintocctmsdriver.ui.auth.FaceSuccActivity;
import com.arpa.hndahesudintocctmsdriver.ui.home.StartYunDanActivity;
import com.arpa.hndahesudintocctmsdriver.util.MessageUtils;
import com.dahe.mylibrary.utils.ActivityUtils;
@@ -99,13 +101,13 @@ public class H5Activity extends AppCompatActivity {
WebSettings webSetting = mWebView.getSettings();
String title = getIntent().getStringExtra("title");
if (!TextUtils.isEmpty(title)){
if (!TextUtils.isEmpty(title)) {
tvTitle.setText(title);
}
back.setOnClickListener(v -> {
if (isOk){
ActivityUtils.finishToActivity(MainActivity.class,false);
if (isOk) {
ActivityUtils.finishToActivity(MainActivity.class, false);
return;
}
if (mWebView.canGoBack()) {
@@ -116,8 +118,8 @@ public class H5Activity extends AppCompatActivity {
});
close.setOnClickListener(v -> {
if (isOk){
ActivityUtils.finishToActivity(MainActivity.class,false);
if (isOk) {
ActivityUtils.finishToActivity(MainActivity.class, false);
return;
}
if (mWebView.canGoBack()) {
@@ -209,6 +211,15 @@ public class H5Activity extends AppCompatActivity {
if (uri != null) {
// 芝麻认证刷脸结束返回获取后续操作页面地址
// String callbackUrl = uri.getQueryParameter("callback");
String urlString = uri.toString();
if ("dahe://driver:8088/realBack".equals(urlString)) {
Intent in = new Intent(ctx, FaceSuccActivity.class);
in.putExtra("isGoCar", true);
startActivity(in);
ActivityUtils.finishToActivity(MainActivity.class, false);
return;
}
String callbackUrl = uri.getQueryParameter("realnameUrl");
if (!TextUtils.isEmpty(callbackUrl)) {
@@ -221,15 +232,29 @@ public class H5Activity extends AppCompatActivity {
} else {
String url = intent.getStringExtra("url");
if (TextUtils.isEmpty(url)) {
ActivityUtils.finishToActivity(MainActivity.class, false);
return;
}
viewFile = intent.getBooleanExtra("view_file", false);
if (url.startsWith("alipay")) {
try {
Intent intent2 = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
intent2.putExtra("isGoCar", isGoCar);
startActivity(intent2);
return;
} catch (Exception e) {
}
// }else if (url.startsWith("https://agreement.dahehuoyun.com/#/1ba5c216/912f4c9587/5eb5184653/6ef9")) {
} else if (url.startsWith("https://agreement.dahehuoyun.com")) {
Intent in = new Intent(ctx, FaceSuccActivity.class);
startActivity(in);
if (isGoCar) {
ActivityUtils.finishToActivity(MainActivity.class, false);
} else {
finish();
}
return;
}
if (curUrl == null) {
curUrl = url;
@@ -249,17 +274,30 @@ public class H5Activity extends AppCompatActivity {
Uri uri = Uri.parse(url);
Log.e("test", "要加载的地址:" + uri.getScheme() + " " + url + " ");
if (uri.getScheme().equals("http") || uri.getScheme().equals("https")) {
if (isGoCar&&url.startsWith("http://agreement.dahehuoyun.com/#/1ba5c216/912f4c9587/5eb5184653/6ef9")){
isOk = true;
view.loadUrl(url);
new MessageUtils().showSimCenPop(ctx, "个人信息上传成功,请添加车辆信息!", "去添加",() -> {
Intent in = new Intent(ctx, CertificatesActivity.class);
in.putExtra("index", 2);
startActivity(in);
ActivityUtils.finishToActivity(MainActivity.class,false);
});
// if (url.startsWith("https://agreement.dahehuoyun.com/#/1ba5c216/912f4c9587/5eb5184653/6ef9")) {
if (url.startsWith("https://agreement.dahehuoyun.com")) {
Intent in = new Intent(ctx, FaceSuccActivity.class);
in.putExtra("isGoCar", isGoCar);
startActivity(in);
if (isGoCar) {
ActivityUtils.finishToActivity(MainActivity.class, false);
} else {
finish();
}
return true;
}
// if (isGoCar&&url.startsWith("https://agreement.dahehuoyun.com/#/1ba5c216/912f4c9587/5eb5184653/6ef9")){
// isOk = true;
// view.loadUrl(url);
// new MessageUtils().showSimCenPop(ctx, "个人信息上传成功,请添加车辆信息!", "去添加",() -> {
// Intent in = new Intent(ctx, CertificatesActivity.class);
// in.putExtra("index", 2);
// startActivity(in);
// ActivityUtils.finishToActivity(MainActivity.class,false);
// });
// return true;
// }
view.loadUrl(url);
return true;
} else if (uri.getScheme().equals("js") || uri.getScheme().equals("jsbridge")) {
@@ -320,11 +358,11 @@ public class H5Activity extends AppCompatActivity {
if (status) {
//认证成功返回
//认证成功返回
new Handler().postDelayed(() -> {
FaceEvent he = new FaceEvent("刷脸成功");
EventBus.getDefault().post(he);
finish();
}, 800);
// new Handler().postDelayed(() -> {
// FaceEvent he = new FaceEvent("刷脸成功");
// EventBus.getDefault().post(he);
// finish();
// }, 800);
Toast.makeText(H5Activity.this, "认证成功", Toast.LENGTH_LONG).show();
finish();
}
@@ -99,10 +99,19 @@ public class CarInfoBean2 implements Serializable {
private String threeImageStatus;
private String towAuality;
private String trailer;
private String trailerId;
private String type;
private String vehicleAxis;
private String vehicleNumber;
public String getTrailerId() {
return trailerId;
}
public void setTrailerId(String trailerId) {
this.trailerId = trailerId;
}
public String getAllAuality() {
return allAuality;
}
@@ -68,9 +68,18 @@ public class CarListBean {
private Object carImage;
private String owner;
private String vehicleNumber;
private String outInvoice;
private int auditStatus;
private String drivingLicenseValidity;
public String getOutInvoice() {
return outInvoice;
}
public void setOutInvoice(String outInvoice) {
this.outInvoice = outInvoice;
}
public String getCarNumber() {
return carNumber == null ? "" : carNumber;
}
@@ -0,0 +1,53 @@
package com.arpa.hndahesudintocctmsdriver.bean;
import com.google.gson.annotations.SerializedName;
/**
* @ClassName GDImage
* @Author john
* @Date 2024/11/27 14:04
* @Description TODO
*/
public class GDImage extends GDLocation{
private String fileName;
private String fileData;
private String fileExt;
private String imageTakenDate;
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getFileData() {
return fileData;
}
public void setFileData(String fileData) {
this.fileData = fileData;
}
public String getFileExt() {
return fileExt;
}
public void setFileExt(String fileExt) {
this.fileExt = fileExt;
}
public String getImageTakenDate() {
return imageTakenDate;
}
public void setImageTakenDate(String imageTakenDate) {
this.imageTakenDate = imageTakenDate;
}
}
@@ -0,0 +1,87 @@
package com.arpa.hndahesudintocctmsdriver.bean;
import com.google.gson.annotations.SerializedName;
import java.io.Serializable;
/**
* @ClassName GDLocation
* @Author john
* @Date 2024/11/27 13:59
* @Description TODO
*/
public class GDLocation implements Serializable {
private double baiduLongitude;
private double baiduLatitude;
private String location;
private String time;
private double altitude;
private float speed;
private float direction;
private int interval;
public double getBaiduLongitude() {
return baiduLongitude;
}
public void setBaiduLongitude(double baiduLongitude) {
this.baiduLongitude = baiduLongitude;
}
public double getBaiduLatitude() {
return baiduLatitude;
}
public void setBaiduLatitude(double baiduLatitude) {
this.baiduLatitude = baiduLatitude;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public double getAltitude() {
return altitude;
}
public void setAltitude(double altitude) {
this.altitude = altitude;
}
public float getSpeed() {
return speed;
}
public void setSpeed(float speed) {
this.speed = speed;
}
public float getDirection() {
return direction;
}
public void setDirection(float direction) {
this.direction = direction;
}
public int getInterval() {
return interval;
}
public void setInterval(int interval) {
this.interval = interval;
}
}
@@ -83,6 +83,8 @@ public class HuoYuanDelBean {
private String vehicleTypeName;
private int vehicleLength;
private String vehicleLengthName;
private String carNumber;
private String carId;
private String namedDrivers;
private String requirement;
private String totalFreight;
@@ -97,6 +99,23 @@ public class HuoYuanDelBean {
private Object contactName;
private Object contactPhone;
public String getCarNumber() {
return carNumber == null ? "" : carNumber;
}
public void setCarNumber(String carNumber) {
this.carNumber = carNumber;
}
public String getCarId() {
return carId == null ? "" : carId;
}
public void setCarId(String carId) {
this.carId = carId;
}
public int getId() {
return id;
}
@@ -0,0 +1,19 @@
package com.arpa.hndahesudintocctmsdriver.constant;
import com.arpa.hndahesudintocctmsdriver.BuildConfig;
/**
* @author hlh
* @version 1.0.0
* @date 2022/1/10 11:34
* @description:交通厅参数
*/
public class NewLJConstant {
public final static String ENTER_PRISE_CODE ="E0019169";
public final static String ENTER_PRISE_IDENTITY = BuildConfig.isTest?"95033cc3492e420d83d7f09eea1400ac":"9179388b0e0847e1862d6400f9cbc778";
public final static String ENTER_PRISE_KEY =BuildConfig.isTest?"e9844a9b0bba417e89cb8623489abd2f":"156d724e9701420198fcbd52cb1ca529";
}
@@ -55,15 +55,15 @@ class MessagePop(context: Context) : CenterPopupView(context), View.OnClickListe
}
R.id.tvOk,R.id.tvPhone -> {
dismiss()
if (XPermission.create(context).isGranted(Manifest.permission.CALL_PHONE)){
// if (XPermission.create(context).isGranted(Manifest.permission.CALL_PHONE)){
val toString = tvPhone.text.toString()
val intent = Intent(Intent.ACTION_DIAL)
val data = Uri.parse("tel:$toString")
intent.data = data
context.startActivity(intent)
}else{
ToastUtils.showToast(context,"请开启电话权限")
}
// }else{
// ToastUtils.showToast(context,"请开启电话权限")
// }
// BaseUtils.callPhone(content as Activity, tvPhone.text.toString())
}
@@ -2,6 +2,7 @@ package com.arpa.hndahesudintocctmsdriver.report;
import android.content.Context;
import android.os.Handler;
import android.text.TextUtils;
import android.util.Log;
import com.alct.mdp.MDPLocationCollectionManager;
@@ -12,7 +13,10 @@ import com.arpa.hndahesudintocctmsdriver.App;
import com.arpa.hndahesudintocctmsdriver.BuildConfig;
import com.arpa.hndahesudintocctmsdriver.parts.AuthParts;
import com.arpa.hndahesudintocctmsdriver.util.MessageUtils;
import com.arpa.hndahesudintocctmsdriver.util.NewLJUtils;
import com.arpa.hndahesudintocctmsdriver.util.msg.MsgUtil;
import com.dahe.mylibrary.callback.OnGDDownloadResultListener;
import com.dahe.mylibrary.callback.OnGDResultListener;
import com.dahe.mylibrary.utils.ToastUtils;
import com.google.gson.Gson;
import com.arpa.hndahesudintocctmsdriver.bean.DriverAuthDataBean;
@@ -47,27 +51,49 @@ public class ALProcess {
return;
}
Identity idy=new Identity();
//企业代码
idy.setEnterpriseCode(BuildConfig.isTest?ENTERPRISE_CODE_TEXT:ENTERPRISE_CODE);
//企业app的身份码
idy.setAppIdentity(BuildConfig.isTest?APP_IDENTITY_TEXT:APP_IDENTITY);
//企业app验证码
idy.setAppKey(BuildConfig.isTest?APP_KEY_TEXT:APP_KEY);
//司机身份证
idy.setDriverIdentity(auth.getData().getIdcard());
//idy.setDriverIdentity("410725198311042012");
MDPLocationCollectionManager.register(con, idy, new OnResultListener() {
// Identity idy=new Identity();
// //企业代码
// idy.setEnterpriseCode(BuildConfig.isTest?ENTERPRISE_CODE_TEXT:ENTERPRISE_CODE);
// //企业app的身份码
// idy.setAppIdentity(BuildConfig.isTest?APP_IDENTITY_TEXT:APP_IDENTITY);
// //企业app验证码
// idy.setAppKey(BuildConfig.isTest?APP_KEY_TEXT:APP_KEY);
// //司机身份证
// idy.setDriverIdentity(auth.getData().getIdcard());
// //idy.setDriverIdentity("410725198311042012");
// MDPLocationCollectionManager.register(con, idy, new OnResultListener() {
// @Override
// public void onSuccess() {
// Log.e("--success--","验证成功");
// getFq(con);
// }
//
// @Override
// public void onFailure(java.lang.String s, java.lang.String s1) {
// Log.e("--error--",s+s1+"");
// new MessageUtils().showCenMessage(con,s1);
// }
// });
NewLJUtils.getInstance().getToken(con, new OnGDResultListener() {
@Override
public void onSuccess() {
Log.e("--success--","验证成功");
getFq(con);
NewLJUtils.getInstance().confirmInvoice(con, new OnGDResultListener() {
@Override
public void onSuccess() {
}
@Override
public void onFailure(String var1, String var2) {
}
});
}
@Override
public void onFailure(java.lang.String s, java.lang.String s1) {
Log.e("--error--",s+s1+"");
new MessageUtils().showCenMessage(con,s1);
public void onFailure(String var1, String var2) {
}
});
}
@@ -131,33 +157,88 @@ public class ALProcess {
}
public static void verification(Context con,Handler hd){
public static void verification(Context con,String carNum,Handler hd){
DriverAuthDataBean auth= AuthParts.getAuth(con);
Identity idy=new Identity();
//企业代码
idy.setEnterpriseCode(BuildConfig.isTest?ENTERPRISE_CODE_TEXT:ENTERPRISE_CODE);
//企业app的身份码
idy.setAppIdentity(BuildConfig.isTest?APP_IDENTITY_TEXT:APP_IDENTITY);
//企业app验证码
idy.setAppKey(BuildConfig.isTest?APP_KEY_TEXT:APP_KEY);
//司机身份证
idy.setDriverIdentity(auth.getData().getIdcard());
//idy.setDriverIdentity("410725198311042012");
MDPLocationCollectionManager.register(con, idy, new OnResultListener() {
if (auth==null){
return;
}
if (TextUtils.isEmpty(carNum)){
ToastUtils.showToast(con,"请选择车辆");
return;
}
// Identity idy=new Identity();
// //企业代码
// idy.setEnterpriseCode(BuildConfig.isTest?ENTERPRISE_CODE_TEXT:ENTERPRISE_CODE);
// //企业app的身份码
// idy.setAppIdentity(BuildConfig.isTest?APP_IDENTITY_TEXT:APP_IDENTITY);
// //企业app验证码
// idy.setAppKey(BuildConfig.isTest?APP_KEY_TEXT:APP_KEY);
// //司机身份证
// idy.setDriverIdentity(auth.getData().getIdcard());
// //idy.setDriverIdentity("410725198311042012");
// MDPLocationCollectionManager.register(con, idy, new OnResultListener() {
// @Override
// public void onSuccess() {
// MsgUtil.addHdMsgWatBody(hd, 1111,"认证成功");
// Log.e("--success--","验证成功");
// getFq(con);
// }
//
// @Override
// public void onFailure(java.lang.String s, java.lang.String s1) {
// Log.e("--error--",s+s1+"");
// MsgUtil.addHdMsgWatBody(hd, 2222,s1);
//// new MessageUtils().showCenMessage(con,s1);
// }
// });
NewLJUtils.getInstance().trucks(con, auth.getData().getIdcard(),carNum, new OnGDDownloadResultListener(){
@Override
public void onSuccess() {
public void onSuccess(String var1) {
MsgUtil.addHdMsgWatBody(hd, 1111,"认证成功");
Log.e("--success--","验证成功");
getFq(con);
}
@Override
public void onFailure(java.lang.String s, java.lang.String s1) {
Log.e("--error--",s+s1+"");
MsgUtil.addHdMsgWatBody(hd, 2222,s1);
// new MessageUtils().showCenMessage(con,s1);
public void onFailure(String var1, String var2) {
MsgUtil.addHdMsgWatBody(hd, 2222,var2);
}
});
// NewLJUtils.getInstance().searchDriver(con, auth.getData().getIdcard(), new OnGDDownloadResultListener(){
// @Override
// public void onSuccess(String var1) {
// MsgUtil.addHdMsgWatBody(hd, 1111,"认证成功");
// }
//
// @Override
// public void onFailure(String var1, String var2) {
// MsgUtil.addHdMsgWatBody(hd, 2222,var2);
// }
// });
// NewLJUtils.getInstance().getToken(con, new OnGDResultListener() {
// @Override
// public void onSuccess() {
// NewLJUtils.getInstance().confirmInvoice(con, new OnGDResultListener() {
// @Override
// public void onSuccess() {
//
// }
//
// @Override
// public void onFailure(String var1, String var2) {
//
// }
// });
// }
//
// @Override
// public void onFailure(String var1, String var2) {
//
// }
// });
}
}
@@ -119,6 +119,9 @@ public class JTTProcess {
//参数 ShippingNoteInfo 和 start 接口中的参数 ShippingNoteInfo 相
//同,这里 shippingNoteInfo 信息只需传入运单号和分单号即可
public static void send(Context con,StartOrderBean sob,String remark){
if (sob.getData()==null){
return;
}
ShippingNoteInfo[] snis=new ShippingNoteInfo[1];
ShippingNoteInfo sni=new ShippingNoteInfo();
sni.setShippingNoteNumber(sob.getData().getShippingNoteNumber());
@@ -80,6 +80,12 @@ public class UserRequset {
RequestUtil.start(1, "userdata", re, con, hd);
}
//账户信息
public void User2() {
Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getUserUrl(), ""), getToken(con), con);
RequestUtil.start(1, "userdata2", re, con, hd);
}
//司机认证信息
public void driverAuthData() {
String mt = "{}";
@@ -0,0 +1,40 @@
package com.arpa.hndahesudintocctmsdriver.request.bean.newlj;
import java.io.Serializable;
/**
* @ClassName InvoiceBean
* @Author john
* @Date 2024/11/25 17:06
* @Description TODO
*/
public class InvoiceBean implements Serializable {
private String driverIdentification;
private String driverInvoiceCode;
private String enterpriseCode;
public String getDriverIdentification() {
return driverIdentification;
}
public void setDriverIdentification(String driverIdentification) {
this.driverIdentification = driverIdentification;
}
public String getDriverInvoiceCode() {
return driverInvoiceCode;
}
public void setDriverInvoiceCode(String driverInvoiceCode) {
this.driverInvoiceCode = driverInvoiceCode;
}
public String getEnterpriseCode() {
return enterpriseCode;
}
public void setEnterpriseCode(String enterpriseCode) {
this.enterpriseCode = enterpriseCode;
}
}
@@ -0,0 +1,135 @@
package com.arpa.hndahesudintocctmsdriver.request.bean.newlj;
import java.io.Serializable;
import java.util.List;
/**
* @ClassName InvoicesBean
* @Author john
* @Date 2024/11/29 13:08
* @Description TODO
*/
public class InvoicesBean implements Serializable {
private String totalPage;
private String totalCount;
private String pageSize;
private String currentPage;
private String sortField;
private String sortDirection;
private List<DataDTO> driverInvoices;
public String getTotalPage() {
return totalPage;
}
public void setTotalPage(String totalPage) {
this.totalPage = totalPage;
}
public String getTotalCount() {
return totalCount;
}
public void setTotalCount(String totalCount) {
this.totalCount = totalCount;
}
public String getPageSize() {
return pageSize;
}
public void setPageSize(String pageSize) {
this.pageSize = pageSize;
}
public String getCurrentPage() {
return currentPage;
}
public void setCurrentPage(String currentPage) {
this.currentPage = currentPage;
}
public String getSortField() {
return sortField;
}
public void setSortField(String sortField) {
this.sortField = sortField;
}
public String getSortDirection() {
return sortDirection;
}
public void setSortDirection(String sortDirection) {
this.sortDirection = sortDirection;
}
public List<DataDTO> getDriverInvoices() {
return driverInvoices;
}
public void setDriverInvoices(List<DataDTO> driverInvoices) {
this.driverInvoices = driverInvoices;
}
public static class DataDTO{
private String taxAmount;
private String totalAmount;
private String invoiceReceiverName;
private String totalAmountIncludeTax;
private String driverInvoiceCode;
private String taxRate;
public String getTaxAmount() {
return taxAmount;
}
public void setTaxAmount(String taxAmount) {
this.taxAmount = taxAmount;
}
public String getTotalAmount() {
return totalAmount;
}
public void setTotalAmount(String totalAmount) {
this.totalAmount = totalAmount;
}
public String getInvoiceReceiverName() {
return invoiceReceiverName;
}
public void setInvoiceReceiverName(String invoiceReceiverName) {
this.invoiceReceiverName = invoiceReceiverName;
}
public String getTotalAmountIncludeTax() {
return totalAmountIncludeTax;
}
public void setTotalAmountIncludeTax(String totalAmountIncludeTax) {
this.totalAmountIncludeTax = totalAmountIncludeTax;
}
public String getDriverInvoiceCode() {
return driverInvoiceCode;
}
public void setDriverInvoiceCode(String driverInvoiceCode) {
this.driverInvoiceCode = driverInvoiceCode;
}
public String getTaxRate() {
return taxRate;
}
public void setTaxRate(String taxRate) {
this.taxRate = taxRate;
}
}
}
@@ -0,0 +1,41 @@
package com.arpa.hndahesudintocctmsdriver.request.bean.newlj;
import java.io.Serializable;
/**
* @ClassName LjTokenBean
* @Author john
* @Date 2024/11/25 10:05
* @Description TODO
*/
public class LjTokenBean implements Serializable {
private String enterpriseCode;
private String enterpriseIdentity;
private String enterpriseKey;
public String getEnterpriseCode() {
return enterpriseCode;
}
public void setEnterpriseCode(String enterpriseCode) {
this.enterpriseCode = enterpriseCode;
}
public String getEnterpriseIdentity() {
return enterpriseIdentity;
}
public void setEnterpriseIdentity(String enterpriseIdentity) {
this.enterpriseIdentity = enterpriseIdentity;
}
public String getEnterpriseKey() {
return enterpriseKey;
}
public void setEnterpriseKey(String enterpriseKey) {
this.enterpriseKey = enterpriseKey;
}
}
@@ -0,0 +1,109 @@
package com.arpa.hndahesudintocctmsdriver.request.bean.newlj;
import com.alct.mdp.model.Location;
import com.arpa.hndahesudintocctmsdriver.bean.GDLocation;
import java.io.Serializable;
/**
* @ClassName PickupBean
* @Author john
* @Date 2024/11/25 10:19
* @Description TODO
*/
public class PickupBean implements Serializable {
private String shipmentCode;
private String enterpriseCode;
private GDLocation location;
public String getShipmentCode() {
return shipmentCode;
}
public void setShipmentCode(String shipmentCode) {
this.shipmentCode = shipmentCode;
}
public String getEnterpriseCode() {
return enterpriseCode;
}
public void setEnterpriseCode(String enterpriseCode) {
this.enterpriseCode = enterpriseCode;
}
public GDLocation getLocation() {
return location;
}
public void setLocation(GDLocation location) {
this.location = location;
}
public static class LocationDTO {
private String time;
private double baiduLatitude;
private double baiduLongitude;
private double altitude;
private double speed;
private double bearing;
private String location;
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public double getBaiduLatitude() {
return baiduLatitude;
}
public void setBaiduLatitude(double baiduLatitude) {
this.baiduLatitude = baiduLatitude;
}
public double getBaiduLongitude() {
return baiduLongitude;
}
public void setBaiduLongitude(double baiduLongitude) {
this.baiduLongitude = baiduLongitude;
}
public double getAltitude() {
return altitude;
}
public void setAltitude(double altitude) {
this.altitude = altitude;
}
public double getSpeed() {
return speed;
}
public void setSpeed(double speed) {
this.speed = speed;
}
public double getBearing() {
return bearing;
}
public void setBearing(double bearing) {
this.bearing = bearing;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
}
}
@@ -0,0 +1,31 @@
package com.arpa.hndahesudintocctmsdriver.request.bean.newlj;
import java.io.Serializable;
/**
* @ClassName ShipmentStatusBean
* @Author john
* @Date 2024/11/25 17:16
* @Description TODO
*/
public class ShipmentStatusBean implements Serializable {
private String shipmentCode;
private String enterpriseCode;
public String getShipmentCode() {
return shipmentCode;
}
public void setShipmentCode(String shipmentCode) {
this.shipmentCode = shipmentCode;
}
public String getEnterpriseCode() {
return enterpriseCode;
}
public void setEnterpriseCode(String enterpriseCode) {
this.enterpriseCode = enterpriseCode;
}
}
@@ -0,0 +1,118 @@
package com.arpa.hndahesudintocctmsdriver.request.bean.newlj;
import com.alct.mdp.model.Image;
import com.arpa.hndahesudintocctmsdriver.bean.GDImage;
import java.io.Serializable;
/**
* @ClassName UpimgBean
* @Author john
* @Date 2024/11/25 14:36
* @Description TODO
*/
public class UpimgBean implements Serializable {
private String shipmentCode;
private String enterpriseCode;
private GDImage image;
public String getShipmentCode() {
return shipmentCode;
}
public void setShipmentCode(String shipmentCode) {
this.shipmentCode = shipmentCode;
}
public String getEnterpriseCode() {
return enterpriseCode;
}
public void setEnterpriseCode(String enterpriseCode) {
this.enterpriseCode = enterpriseCode;
}
public GDImage getImage() {
return image;
}
public void setImage(GDImage image) {
this.image = image;
}
public static class ImageDTO {
private String fileName;
private String fileExt;
private double baiduLongitude;
private double baiduLatitude;
private String location;
private String imageTakenDate;
private String time;
private String fileData;
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getFileExt() {
return fileExt;
}
public void setFileExt(String fileExt) {
this.fileExt = fileExt;
}
public double getBaiduLongitude() {
return baiduLongitude;
}
public void setBaiduLongitude(double baiduLongitude) {
this.baiduLongitude = baiduLongitude;
}
public double getBaiduLatitude() {
return baiduLatitude;
}
public void setBaiduLatitude(double baiduLatitude) {
this.baiduLatitude = baiduLatitude;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public String getImageTakenDate() {
return imageTakenDate;
}
public void setImageTakenDate(String imageTakenDate) {
this.imageTakenDate = imageTakenDate;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getFileData() {
return fileData;
}
public void setFileData(String fileData) {
this.fileData = fileData;
}
}
}
@@ -4,11 +4,23 @@ package com.arpa.hndahesudintocctmsdriver.request.net;
import com.arpa.hndahesudintocctmsdriver.BuildConfig;
import com.arpa.hndahesudintocctmsdriver.bean.UserBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.LoginRegInputBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.InvoiceBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.InvoicesBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.LjTokenBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.PickupBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.ShipmentStatusBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.UpimgBean;
import com.dahe.mylibrary.net.CommonResponseBean;
import java.util.HashMap;
import io.reactivex.rxjava3.core.Observable;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Path;
import retrofit2.http.Query;
/**
@@ -17,7 +29,7 @@ import retrofit2.http.Query;
public interface Api {
String BASE_URL = BuildConfig.BASE_URL;
String BASE_URL = BuildConfig.isTest? "http://api.kehui56.cn/api/v1/":"https://api.kehui56.com/api/v1/";
//获取版本
@@ -26,5 +38,128 @@ public interface Api {
// @POST(BASE_URL+"/common/register")
// Observable<CommonResponseBean> log(@Body LoginRegInputBean bean);
@POST(BASE_URL+"openapi/enterprises/login")
Observable<CommonResponseBean> getToken(@Body LjTokenBean bean);
@POST(BASE_URL+"openapi/enterprises/login")
Call<HashMap<String, String>> getRefreshToken(@Body LjTokenBean bean);
/**
* 刷新token
* @return
*/
@POST(BASE_URL+"openapi/enterprises/refresh-token/{refreshToken}")
Observable<CommonResponseBean> refreshToken(@Path("refreshToken") String refreshToken);
/**
* 运单提货
* @param bean
* @return
*/
@POST(BASE_URL+"openapi/shipments/pickup")
Observable<CommonResponseBean> pickup(@Body PickupBean bean);
/**
* 运单卸货
* @param bean
* @return
*/
@POST(BASE_URL+"openapi/shipments/unload")
Observable<CommonResponseBean> unload(@Body PickupBean bean);
/**
* 运单签收
* @param bean
* @return
*/
@POST(BASE_URL+"openapi/shipments/sign")
Observable<CommonResponseBean> sign(@Body PickupBean bean);
/**
* 运单回单
* @param bean
* @return
*/
@POST(BASE_URL+"openapi/shipments/pod")
Observable<CommonResponseBean> pod(@Body PickupBean bean);
/**
* 运单提货照片上传
* @param bean
* @return
*/
@POST(BASE_URL+"openapi/shipments/uploadPickupImage")
Observable<CommonResponseBean> uploadPickupImage(@Body UpimgBean bean);
/**
* 运单卸货照片上传
* @param bean
* @return
*/
@POST(BASE_URL+"openapi/shipments/uploadUnloadImage")
Observable<CommonResponseBean> uploadUnloadImage(@Body UpimgBean bean);
/**
* 运单回单照片上传
* @param bean
* @return
*/
@POST(BASE_URL+"openapi/shipments/uploadPODImage")
Observable<CommonResponseBean> uploadPODImage(@Body UpimgBean bean);
/**
* 同意发票申请
* @param bean
* @return
*/
@PUT(BASE_URL+"openapi/confirmInvoice")
Observable<CommonResponseBean> confirmInvoice(@Body InvoiceBean bean);
/**
* 待同意发票列表获取
* @param enterpriseCodeParam
* @param driverIdentification
* @param currentPage
* @param pageSize
* @return
*/
@GET(BASE_URL+"openapi/getInvoices")
Observable<CommonResponseBean<InvoicesBean>> getInvoices(@Query("enterpriseCodeParam") String enterpriseCodeParam,
@Query("driverIdentification") String driverIdentification,
@Query("currentPage") int currentPage,
@Query("pageSize") int pageSize);
/**
* 获取运单状态
* @param bean
* @return
*/
@POST(BASE_URL+"/openapi/getShipmentStatus")
Observable<CommonResponseBean> getShipmentStatus(@Body ShipmentStatusBean bean);
@POST(BASE_URL+"/openapi/shipments/getPODImageNames")
Observable<CommonResponseBean> getPODImageNames(@Body ShipmentStatusBean bean);
@GET(BASE_URL+"/openapi/drivers")
Observable<CommonResponseBean> searchDriver(@Query("identityNo") String identityNo);
/**
* 司机车辆绑定关系
* @param identityNo
* @return
*/
@GET(BASE_URL+"openapi/drivers/{identityNo}/trucks")
Observable<CommonResponseBean> trucks(@Path("identityNo") String identityNo);
}
@@ -0,0 +1,114 @@
package com.arpa.hndahesudintocctmsdriver.request.net
import okhttp3.Interceptor
import okhttp3.Request
import okio.IOException
import retrofit2.Response
import java.util.concurrent.atomic.AtomicBoolean
/**
* @ClassName ApiInterceptor
* @Author john
* @Date 2024/11/29 17:05
* @Description TODO
*/
class ApiInterceptor : Interceptor {
// 需要验证token的接口的路径集合
// private val checkTokenInterface = arrayListOf(
// "/example/user/info,
// "/example/user/info/edit"
// )
// 是否正在刷新token
// 使用AtomicBoolean,确保多线程中获取的值一致
// private var refreshingToken = AtomicBoolean(false)
//
// private val authHeaderKey = "token-key"
//
// // 当前token
// private var currentToken = "tokenValue"
// override fun intercept(chain: Interceptor.Chain): Response {
// 根据接口路径判断是否需要验证token
// val checkToken = checkTokenInterface.contains(chain.request().url.encodedPath)
// // 需要验证token则添加请求头,不需要则保持原样
// var request = if (checkToken) {
// chain.request().newBuilder()
// .addHeader(authHeaderKey, currentToken)
// .build()
// } else {
// chain.request()
// }
// // 获取响应
// var response = chain.proceed(request)
// if (checkToken) {
// // 需要验证token,处理响应,判断token是否过期
// response.body?.let { responseBody ->
// try {
// if (判断token过期的条件) {
// runBlocking {
// // 请求头中的token与currentToken仍然一样则需要刷新token
// // 确保多线程中不会重复刷新
// if (request.header(authHeaderKey) == currentToken){
// // 标记为正在刷新token
// if (refreshingToken.compareAndSet(false, true)) {
// refreshToken(chain).takeIf { it.isNotEmpty() && it.isNotBlank() }?.let { newToken ->
// // 保存newToken
// currentToken = newToken
// }
// // 标记为刷新token已结束
// refreshingToken.set(false)
// }
// }
// // async{}.await()会等待方法块内的代码执行完毕。
// // 等到refreshingToken为false时才会执行后续代码。
// if (async { stopRefreshingToken() }.await()) {
// // 携带newToken执行原请求获取响应
// response = chain.proceed(chain.request().newBuilder()
// .addHeader(authHeaderKey, currentToken)
// .build())
// }
// }
// }
// } catch (e: Exception) {
// e.printStackTrace()
// }
// }
// }
// // 返回最终的响应结果。
// // 刷新token也可能失败,此时返回原响应,可以让用户重新登录。
// return response
// }
//
// private fun refreshToken(chain: Interceptor.Chain): String {
// // 创建刷新token的请求
// val refreshTokenRequest = Request.Builder()
// .url("refresh token url")
// .addHeader(authHeaderKey, currentToken)
// .get()
// .build()
// return try {
// // 获取响应并解析获得新token
// val refreshTokenResponse = chain.proceed(refreshTokenRequest)
// refreshTokenResponse.token
// } catch (e: IOException) {
// // 失败时返回空字符串
// ""
// }
// }
//
// private suspend fun stopRefreshingToken(): Boolean {
// return if (refreshingToken.get()) {
// // 仍在刷新token中,延迟1秒后再次执行此方法
// delay(1000)
// stopRefreshingToken()
// } else {
// true
// }
// }
override fun intercept(chain: Interceptor.Chain): okhttp3.Response {
TODO("Not yet implemented")
}
}
@@ -37,7 +37,7 @@ public class BaseObserver<T> implements Observer<CommonResponseBean<T>> {
@Override
public void onNext(CommonResponseBean<T> tCommonResponseBean) {
if (200==tCommonResponseBean.getCode()) {
if ("0".equals(tCommonResponseBean.getCode())) {
mRxHttpCallBack.onSuccess(tCommonResponseBean);
} else {
mRxHttpCallBack.onCodeError(mContext, tCommonResponseBean);
@@ -2,7 +2,6 @@ package com.arpa.hndahesudintocctmsdriver.request.net;
import com.dahe.mylibrary.CommonBaseLibrary;
import com.dahe.mylibrary.net.JsonInterceptor;
import java.util.concurrent.TimeUnit;
@@ -0,0 +1,119 @@
package com.arpa.hndahesudintocctmsdriver.request.net;
import static com.dahe.mylibrary.utils.BaseSPUtils.NEW_LJ_TOKEN;
import android.text.TextUtils;
import android.util.Log;
import com.arpa.hndahesudintocctmsdriver.App;
import com.arpa.hndahesudintocctmsdriver.constant.NewLJConstant;
import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.LjTokenBean;
import com.arpa.hndahesudintocctmsdriver.util.NewLJUtils;
import com.arpa.hndahesudintocctmsdriver.util.SPUtils;
import com.dahe.mylibrary.CommonBaseLibrary;
import com.dahe.mylibrary.net.CommonResponseBean;
import com.dahe.mylibrary.net.ResultException;
import org.json.JSONObject;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.HashMap;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import io.reactivex.rxjava3.core.Observable;
import kotlin.jvm.Synchronized;
import okhttp3.Interceptor;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.ResponseBody;
import okio.Buffer;
import okio.BufferedSource;
/**
* json的Interceptor
*/
public class JsonInterceptor implements Interceptor {
private static final String TAG = "JsonInterceptor";
public JsonInterceptor() {
}
// 使用AtomicBoolean,确保多线程中获取的值一致
private AtomicBoolean refreshingToken = new AtomicBoolean(false);
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
Response response = chain.proceed(request);
ResponseBody responseBody = response.body();
//为了不消耗buffer,我们这里使用source先获得buffer对象,然后clone()后使用
BufferedSource source = responseBody.source();
source.request(Long.MAX_VALUE); // Buffer the entire body.
//获得返回的数据
Buffer buffer = source.buffer();
//使用前clone()下,避免直接消耗
String responseBodyStr = buffer.clone().readString(Charset.forName("UTF-8"));
Log.i(TAG, "result-body= " + responseBodyStr);
try {
JSONObject jsonObject = new JSONObject(responseBodyStr);
String str = jsonObject.optString("data");
int code = jsonObject.optInt("code");
if (401 == code) {
refreshToken();
// if (execute.body() != null) {
// String refreshToken = execute.body().get("token");
// SPUtils.put(App.getApp(), NEW_LJ_TOKEN, refreshToken);
// }
response.close();
try {
return chain.proceed(request);
} catch (IOException e) {
e.printStackTrace();
}
}
if (-1 == code) {
jsonObject.put("data", new JSONObject());
throw new ResultException();
} else {
if (TextUtils.isEmpty(str)) {
jsonObject.put("data", new JSONObject());
}
}
String data = jsonObject.toString();
responseBody = ResponseBody.create(MediaType.parse("application/json; charset=utf-8"), data);
} catch (Exception e) {
e.printStackTrace();
}
response = response.newBuilder().body(responseBody).build();
return response;
}
@Synchronized
private void refreshToken() throws IOException {
Api api = CommonBaseLibrary.getRetrofit().newBuilder()
.client(new OkHttpClient.Builder()
.connectTimeout(30, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS)
.writeTimeout(30, TimeUnit.SECONDS)
.build())
// .addNetworkInterceptor(new TokenInterceptor())
.build().create(Api.class);
LjTokenBean ljTokenBean = new LjTokenBean();
ljTokenBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
ljTokenBean.setEnterpriseIdentity(NewLJConstant.ENTER_PRISE_IDENTITY);
ljTokenBean.setEnterpriseKey(NewLJConstant.ENTER_PRISE_KEY);
retrofit2.Response<HashMap<String, String>> execute = api.getRefreshToken(ljTokenBean).execute();
if (execute.body() != null) {
String refreshToken = execute.body().get("token");
SPUtils.put(App.getApp(), NEW_LJ_TOKEN, refreshToken);
}
}
}
@@ -1,5 +1,7 @@
package com.arpa.hndahesudintocctmsdriver.request.net;
import static com.dahe.mylibrary.utils.BaseSPUtils.NEW_LJ_TOKEN;
import android.text.TextUtils;
import android.util.Log;
@@ -27,9 +29,10 @@ public class RequestHeadInterceptor implements Interceptor {
@Override
public Response intercept(Chain chain) throws IOException {
Request.Builder builder = chain.request().newBuilder();
if (!TextUtils.isEmpty(SPUtil.getSP(App.getApp(), LoginActivity.USER,LoginActivity.USER_TOKEN))) {
String token = SPUtils.get(App.getApp(), NEW_LJ_TOKEN, "").toString();
if (!TextUtils.isEmpty(token)) {
// builder.addHeader("Authorization", SPUtils.getUserInfo(App.getApp()).getToken());
builder.addHeader("Authorization", SPUtil.getSP(App.getApp(), LoginActivity.USER,LoginActivity.USER_TOKEN));
builder.addHeader("token", token);
}
Request request = builder
.addHeader("versionCode", AppUtils.getAppVersionCode() + "")
@@ -11,6 +11,7 @@ import android.view.Window;
import com.arpa.hndahesudintocctmsdriver.ui.MainActivity;
import com.arpa.hndahesudintocctmsdriver.ui.UiAuxiliary;
import com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity;
import com.arpa.hndahesudintocctmsdriver.util.NewLJUtils;
import com.dahe.mylibrary.net.CommonResponseBean;
import com.dahe.mylibrary.net.ResultException;
import com.dahe.mylibrary.utils.ToastUtils;
@@ -86,14 +87,15 @@ public abstract class RxHttpCallBack<T> {
dialog.dismiss();
}
if (t.getCode() == 401) {
UiAuxiliary.delLogin(mContext);
Intent intent = new Intent(mContext, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
mContext.startActivity(intent);
ToastUtils.showToast(mContext,"您的账号再异地登录,请重新登录");
if ("401".equals(t.getCode())) {
// NewLJUtils.getInstance().refreshToken(mContext);
// UiAuxiliary.delLogin(mContext);
// Intent intent = new Intent(mContext, MainActivity.class);
// intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
// mContext.startActivity(intent);
// ToastUtils.showToast(mContext,"您的账号再异地登录,请重新登录");
}else{
ToastUtils.showToast(mContext,t.getMsg());
// ToastUtils.showToast(mContext,t.getMessage());
}
// if (t.getMessage().getMsg_code() == 100 && SPUtils.hasUserInfo(mContext)) {
@@ -67,20 +67,20 @@ public class TrackService extends Service {
public void onCreate() {
super.onCreate();
con = this;
hyr = new HuoYuanRequset(con, hd);
Log.e("开始循环上传,等待100ms", "-----");
new Timer().schedule(new TimerTask() {
@Override
public void run() {
snn = SPUtil.getSP(con, "order", "ShippingNoteNumber");
if (!snn.equals("")) {
l = new LocationGDUtil(con, hd);
l.onCreate();
} else {
onDestroy();
}
}
}, 100, timeSum);
// hyr = new HuoYuanRequset(con, hd);
// Log.e("开始循环上传,等待100ms", "-----");
// new Timer().schedule(new TimerTask() {
// @Override
// public void run() {
// snn = SPUtil.getSP(con, "order", "ShippingNoteNumber");
// if (!snn.equals("")) {
// l = new LocationGDUtil(con, hd);
// l.onCreate();
// } else {
// onDestroy();
// }
// }
// }, 100, timeSum);
}
//开始
@@ -97,18 +97,18 @@ public class TrackService extends Service {
}
public void genzong() {
if (l == null || l.getLatitude() == 0d) {
return;
}
//经度
tib.setLatitude(l.getLatitude() + "");
//纬度
tib.setLongitude(l.getLongitude() + "");
Log.e("经度", l.getLatitude() + "");
Log.e("维度", l.getLongitude() + "");
//单号
tib.setShippingNoteNumber(snn);
hyr.trackTracking(tib);
// if (l == null || l.getLatitude() == 0d) {
// return;
// }
// //经度
// tib.setLatitude(l.getLatitude() + "");
// //纬度
// tib.setLongitude(l.getLongitude() + "");
// Log.e("经度", l.getLatitude() + "");
// Log.e("维度", l.getLongitude() + "");
// //单号
// tib.setShippingNoteNumber(snn);
// hyr.trackTracking(tib);
}
}
@@ -14,6 +14,7 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import com.arpa.hndahesudintocctmsdriver.ui.web.WebOnlyOneActivity;
import com.lxj.xpopup.core.CenterPopupView;
import com.arpa.hndahesudintocctmsdriver.R;
import com.arpa.hndahesudintocctmsdriver.ui.web.WebActivity;
@@ -68,7 +69,7 @@ public class AgreementAlert extends CenterPopupView {
@Override
public void onClick(View widget) {
//用户服务协议点击事件
Intent in=new Intent(getContext(), WebActivity.class);
Intent in=new Intent(getContext(), WebOnlyOneActivity.class);
in.putExtra("url",url2);
in.putExtra("title","用户服务协议");
getContext().startActivity(in);
@@ -87,7 +88,7 @@ public class AgreementAlert extends CenterPopupView {
@Override
public void onClick(View widget) {
//用户服务协议点击事件
Intent in=new Intent(getContext(), WebActivity.class);
Intent in=new Intent(getContext(), WebOnlyOneActivity.class);
in.putExtra("url",url);
in.putExtra("title","隐私政策");
getContext().startActivity(in);
@@ -25,6 +25,7 @@ import com.arpa.hndahesudintocctmsdriver.parts.UserParts;
import com.arpa.hndahesudintocctmsdriver.request.OCRRequest;
import com.arpa.hndahesudintocctmsdriver.util.string.StringUtil;
import com.bumptech.glide.Glide;
import com.dahe.mylibrary.utils.ImageLoader;
import com.dahe.mylibrary.utils.TimeUtil;
import com.esign.esignsdk.EsignSdk;
import com.esign.esignsdk.data.AuthEvent;
@@ -91,7 +92,7 @@ public class AuthQualificationActivity extends BaseAppCompatActivity {
}
url = ub.getData().getUrl();
Glide.with(con).load(url).into(img);
ImageLoader.getInstance().loadImage(con,url,img);
up_img.setVisibility(View.GONE);
img.setVisibility(View.VISIBLE);
}
@@ -104,7 +105,7 @@ public class AuthQualificationActivity extends BaseAppCompatActivity {
List<OCRQualiBean.DataDTO.QualificationCategoryListDTO> qualificationCategoryList = ocrQualiBean.getData().getQualification_category_list();
if (qualificationCategoryList != null && qualificationCategoryList.size() > 0) {
String expiryDate = qualificationCategoryList.get(0).getExpiry_date();
if (expiryDate.contains("-")){
if (!TextUtils.isEmpty(expiryDate)&&expiryDate.contains("-")){
value2.setText(expiryDate);
}
}
@@ -143,7 +144,6 @@ public class AuthQualificationActivity extends BaseAppCompatActivity {
}, 3000);
}
} else {
finish();
if (isOverCar) {//从业资格证=》道路运输许可证
Intent in = new Intent(con, PhotoCarActivity.class);
in.putExtra("type", 3);
@@ -154,6 +154,7 @@ public class AuthQualificationActivity extends BaseAppCompatActivity {
in.putExtra("type", 3);
con.startActivity(in);
}
finish();
}
@@ -371,13 +372,13 @@ public class AuthQualificationActivity extends BaseAppCompatActivity {
value2.setText(ib.getData().getQualificationCertificateValidity());
up_img.setVisibility(View.GONE);
img.setVisibility(View.VISIBLE);
Glide.with(con).load(url).into(img);
ImageLoader.getInstance().loadImage(con,url,img);
upload_img.setText("已上传");
} else {
submit.setBackgroundResource(R.drawable.bg_btn_grey);
isAuth = true;
url = userBean.getData().getPartyMemberUrl();
Glide.with(con).load(url).into(img);
ImageLoader.getInstance().loadImage(con,url,img);
up_img.setVisibility(View.GONE);
img.setVisibility(View.VISIBLE);
upload_img.setText("已上传");
@@ -1,11 +1,13 @@
package com.arpa.hndahesudintocctmsdriver.ui.auth;
import android.Manifest;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
@@ -35,8 +37,10 @@ import com.arpa.hndahesudintocctmsdriver.event.VehicleEvent;
import com.arpa.hndahesudintocctmsdriver.ui.wallet.UpBankActivity;
import com.arpa.hndahesudintocctmsdriver.util.MessageUtils;
import com.arpa.hndahesudintocctmsdriver.util.PickerUtils;
import com.arpa.hndahesudintocctmsdriver.util.PicturlUtil;
import com.arpa.hndahesudintocctmsdriver.util.alert.ToastUtil;
import com.arpa.hndahesudintocctmsdriver.util.map.MapUtil;
import com.arpa.hndahesudintocctmsdriver.weight.OnLimitClickHelper;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.bumptech.glide.request.target.Target;
@@ -85,6 +89,8 @@ import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView;
import com.lxj.xpopup.photoview.PhotoView;
import com.lxj.xpopup.util.SmartGlideImageLoader;
import com.lxj.xpopup.util.XPermission;
import com.permissionx.guolindev.PermissionX;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
@@ -120,6 +126,7 @@ public class CertificatesActivity extends BaseAppCompatActivity {
private int[] typeImgTwo = {R.mipmap.id_back, R.mipmap.license_back, R.mipmap.vehicle_license_back, R.mipmap.vehicle_license_back};
private int index = 0;
private String carExistCarId = "";
private String trailerId = "";
private DicBean.DataDTO curColor, curEnergy;
private TextView zj_name, zjimg_name, zjimg2_name, zj_name2, zj_name3;
private TextView name1, name2, name3, name4, value5, value6;
@@ -209,8 +216,6 @@ public class CertificatesActivity extends BaseAppCompatActivity {
key = true;
}, 3000);
}
} else {
Toast.makeText(con, bb.getMsg(), Toast.LENGTH_SHORT).show();
}
@@ -221,12 +226,25 @@ public class CertificatesActivity extends BaseAppCompatActivity {
Log.e("url", CacheGroup.cacheList.get("authUrl"));
BaseBean bb = gson.fromJson(CacheGroup.cacheList.get("authUrl"), BaseBean.class);
if (bb.getCode() == 200) {
Intent intent = new Intent(this, H5Activity.class);
intent.putExtra("url", (String) bb.getData());
intent.putExtra("view_file", false);
intent.putExtra("title", "人脸识别");
intent.putExtra("isGoCar", true);
startActivity(intent);
PermissionX.init(this)
.permissions(Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA)
.request((allGranted, grantedList, deniedList) -> {
if (allGranted) {
Intent intent = new Intent(this, H5Activity.class);
intent.putExtra("url", (String) bb.getData());
intent.putExtra("view_file", false);
intent.putExtra("title", "人脸识别");
intent.putExtra("isGoCar", true);
startActivity(intent);
} else {
new MessageUtils().showSimCenPop(act, "缺少相机,媒体权限,将无法为您提供服务,去开启!", "取消", "确认", () -> {
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", getPackageName(), null);
intent.setData(uri);
act.startActivity(intent);
});
}
});
// EsignSdk.getInstance().startH5Activity(act, StringUtil.isNull(String.valueOf(bb.getData()), ""));
} else {
Toast.makeText(con, bb.getMsg(), Toast.LENGTH_LONG).show();
@@ -280,22 +298,6 @@ public class CertificatesActivity extends BaseAppCompatActivity {
con.startActivity(in);
}
finish();
// if ("1".equals(needUpQCPhoto)) {
// //现逻辑:上传行驶证信息后 判断是否跳转从业资格证
// Intent in = new Intent(con, AuthQualificationActivity.class);
// in.putExtra("type", "0");
// in.putExtra("isOverCar", false);
// in.putExtra("carId", String.valueOf(czb.getData().getCarId()));
// startActivity(in);
// } else {
// //原逻辑:上传行驶证信息后 跳转车辆照片页面
// Intent in = new Intent(con, PhotoCarActivity.class);
// in.putExtra("type", 0);
// in.putExtra("carId", String.valueOf(czb.getData().getCarId()));
// con.startActivity(in);
// }
} else {
Toast.makeText(con, czb.getMsg(), Toast.LENGTH_SHORT).show();
}
@@ -311,7 +313,7 @@ public class CertificatesActivity extends BaseAppCompatActivity {
String needUpQCPhoto = bb.getData().getNeedUpQCPhoto();
String needUpRLPhoto = bb.getData().getNeedUpRLPhoto();//是否需要上传道路运输证到
Toast.makeText(con, "挂车信息保存成功", Toast.LENGTH_SHORT).show();
finish();
VehicleEvent ve = new VehicleEvent("");
EventBus.getDefault().post(ve);
@@ -335,6 +337,8 @@ public class CertificatesActivity extends BaseAppCompatActivity {
in.putExtra("carId", carId);
con.startActivity(in);
}
finish();
} else {
Toast.makeText(con, "挂车信息保存失败", Toast.LENGTH_SHORT).show();
}
@@ -459,12 +463,25 @@ public class CertificatesActivity extends BaseAppCompatActivity {
Log.e("url", CacheGroup.cacheList.get("authUrl"));
BaseBean bb = gson.fromJson(CacheGroup.cacheList.get("authUrl"), BaseBean.class);
if (bb.getCode() == 200) {
Intent intent = new Intent(this, H5Activity.class);
intent.putExtra("url", (String) bb.getData());
intent.putExtra("view_file", false);
intent.putExtra("title", "人脸识别");
intent.putExtra("isGoCar", true);
startActivity(intent);
PermissionX.init(this)
.permissions(Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA)
.request((allGranted, grantedList, deniedList) -> {
if (allGranted) {
Intent intent = new Intent(this, H5Activity.class);
intent.putExtra("url", (String) bb.getData());
intent.putExtra("view_file", false);
intent.putExtra("title", "人脸识别");
intent.putExtra("isGoCar", true);
startActivity(intent);
} else {
new MessageUtils().showSimCenPop(act, "缺少相机,媒体权限,将无法为您提供服务,去开启!", "取消", "确认", () -> {
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", getPackageName(), null);
intent.setData(uri);
act.startActivity(intent);
});
}
});
// EsignSdk.getInstance().startH5Activity(act, StringUtil.isNull(String.valueOf(bb.getData()), ""));
} else {
Toast.makeText(con, bb.getMsg(), Toast.LENGTH_LONG).show();
@@ -476,6 +493,7 @@ public class CertificatesActivity extends BaseAppCompatActivity {
if (bb.getCode() == 200 && bb.getData() != null) {
if (!TextUtils.isEmpty(bb.getData().getCarId())) {
carExistCarId = bb.getData().getCarId();
trailerId = bb.getData().getTrailerId();
value1.setEnabled(false);
value2.setEnabled(false);
value3.setEnabled(false);
@@ -483,7 +501,7 @@ public class CertificatesActivity extends BaseAppCompatActivity {
// img2.setEnabled(false);
u_img2.setEnabled(false);
url2 = bb.getData().getBackImage();
Glide.with(con).load(bb.getData().getBackImage()).into(img2);
ImageLoader.getInstance().loadImage(con,bb.getData().getBackImage(),img2);
// url2 = olb.getData().getExistCarInfo().getBackImage();
ToastUtils.showLongToast(con, "该车辆已存在,请仔细核对相关信息");
}
@@ -497,16 +515,25 @@ public class CertificatesActivity extends BaseAppCompatActivity {
if (bb.getCode() == 200) {
VehicleEvent ve = new VehicleEvent(String.valueOf(carExistCarId));
EventBus.getDefault().postSticky(ve);
finish();
if (("0".equals(trailerId) || TextUtils.isEmpty(trailerId)) && value2.getText().toString().contains("")) {
Intent in = new Intent(con, CertificatesActivity.class);
in.putExtra("index", 3);
in.putExtra("carId", carExistCarId);
startActivity(in);
finish();
} else {
finish();
}
ToastUtils.showToast(con, bb.getMsg());
}else{
} else {
ToastUtils.showToast(con, bb.getMsg());
}
CacheGroup.cacheList.remove("bindCarInfo");
} else {
pathOrcRes();
//重复代码?
initView(null);
// initView(null);
if (!(CacheGroup.cacheList.get(TYPE_NAME_BANK[2]) != null || CacheGroup.cacheList.get(TYPE_NAME_BANK[3]) != null)) {
initData();
}
@@ -611,6 +638,7 @@ public class CertificatesActivity extends BaseAppCompatActivity {
default:
break;
}
initView(null);
}
@Override
@@ -721,7 +749,7 @@ public class CertificatesActivity extends BaseAppCompatActivity {
}
});
submit.setOnClickListener(v -> {
submit.setOnClickListener(new OnLimitClickHelper(v->{
if (!isAuth) {
subimt();
} else {
@@ -765,7 +793,7 @@ public class CertificatesActivity extends BaseAppCompatActivity {
break;
}
}
});
}));
}
@Override
@@ -788,8 +816,8 @@ public class CertificatesActivity extends BaseAppCompatActivity {
value2.setText(iacb.getData().getIdcard());
value3.setText(iacb.getData().getIdcardAddress());
value4.setText(iacb.getData().getIdcardValidity());
Glide.with(con).load(url1).into(img1);
Glide.with(con).load(url2).into(img2);
ImageLoader.getInstance().loadImage(con,url1,img1);
ImageLoader.getInstance().loadImage(con,url2,img2);
submit.setBackgroundResource(R.drawable.bg_btn_grey);
u_img.setText("已上传");
u_img2.setText("已上传");
@@ -809,8 +837,8 @@ public class CertificatesActivity extends BaseAppCompatActivity {
value3.setText(iadalb.getData().getAllowType());
value4.setText(iadalb.getData().getDriverLicenseValidity());
submit.setBackgroundResource(R.drawable.bg_btn_grey);
Glide.with(con).load(url1).into(img1);
Glide.with(con).load(url2).into(img2);
ImageLoader.getInstance().loadImage(con,url1,img1);
ImageLoader.getInstance().loadImage(con,url2,img2);
u_img.setText("已上传");
u_img2.setText("已上传");
isAuth = true;
@@ -829,9 +857,9 @@ public class CertificatesActivity extends BaseAppCompatActivity {
value5.setText(StringUtil.isNull(cdb.getData().getCarPlateColorValue(), "空数据"));
value6.setText(StringUtil.isNull(cdb.getData().getCarEnergyTypValue(), "空数据"));
submit.setBackgroundResource(R.drawable.bg_btn_grey);
Glide.with(con).load(url1).into(img1);
Glide.with(con).load(url2).into(img2);
Glide.with(con).load(url3).into(img3);
ImageLoader.getInstance().loadImage(con,url1,img1);
ImageLoader.getInstance().loadImage(con,url2,img2);
ImageLoader.getInstance().loadImage(con,url3,img3);
u_img.setText("已上传");
u_img2.setText("已上传");
u_img3.setText("点击查看");
@@ -851,9 +879,9 @@ public class CertificatesActivity extends BaseAppCompatActivity {
value3.setText(StringUtil.isNull(cdb.getData().getTrailerResVo().getOwner(), "空数据"));
value4.setText(StringUtil.isNull(cdb.getData().getTrailerResVo().getVehicleNumber(), "空数据"));
value6.setText(StringUtil.isNull(cdb.getData().getCarEnergyTypValue(), "空数据"));
Glide.with(con).load(url1).into(img1);
Glide.with(con).load(url2).into(img2);
Glide.with(con).load(url3).into(img3);
ImageLoader.getInstance().loadImage(con,url1,img1);
ImageLoader.getInstance().loadImage(con,url2,img2);
ImageLoader.getInstance().loadImage(con,url3,img3);
if (cdb.getRes() != 1) {
submit.setBackgroundResource(R.drawable.bg_btn_grey);
u_img.setText("已上传");
@@ -915,27 +943,29 @@ public class CertificatesActivity extends BaseAppCompatActivity {
case 0:
if (CacheGroup.cacheList.get(TYPE_NAME[0]) != null) {
ocb = gson.fromJson(CacheGroup.cacheList.get(TYPE_NAME[0]), OCRCardBean.class);
ImageLoader.getInstance().loadImage(con, path, img1, typeImgOne[index]);
if (ocb.getCode() == 200 && ocb.getData() != null) {
// url1 = ocb.getData().getUrl();
value1.setText(ocb.getData().getName());
value2.setText(ocb.getData().getIdcard());
value3.setText(ocb.getData().getAddress());
Glide.with(con).load(path).into(img1);
// Glide.with(con).load(path).into(img1);
} else {
Toast.makeText(con, "识别失败", Toast.LENGTH_SHORT).show();
Toast.makeText(con, "识别失败请重新上传", Toast.LENGTH_SHORT).show();
}
CacheGroup.cacheList.remove(TYPE_NAME[0]);
}
if (CacheGroup.cacheList.get(TYPE_NAME_BANK[0]) != null) {
ocbb = gson.fromJson(CacheGroup.cacheList.get(TYPE_NAME_BANK[0]), OCRCardBackBean.class);
ImageLoader.getInstance().loadImage(con, path, img2, typeImgTwo[index]);
if (ocbb.getCode() == 200 && ocbb.getData() != null) {
value4.setText(ocbb.getData().getValidTo());
Glide.with(con).load(path).into(img2);
// Glide.with(con).load(path).into(img2);
startTime = ocbb.getData().getValidFrom();
//自动调取提交功能,实现页面自动跳转
subimt();
} else {
Toast.makeText(con, "识别失败", Toast.LENGTH_SHORT).show();
Toast.makeText(con, "识别失败请重新上传", Toast.LENGTH_SHORT).show();
}
CacheGroup.cacheList.remove(TYPE_NAME_BANK[0]);
}
@@ -944,6 +974,7 @@ public class CertificatesActivity extends BaseAppCompatActivity {
//{"档案编号","初次领证日期","准驾车型","有效期限(止)"},
if (CacheGroup.cacheList.get(TYPE_NAME[1]) != null) {
odl = gson.fromJson(CacheGroup.cacheList.get(TYPE_NAME[1]), OCRDrivingLicenseBean.class);
ImageLoader.getInstance().loadImage(con, path, img1, typeImgOne[index]);
if (odl.getCode() == 200 && odl.getData() != null) {
OCRDrivingLicenseBean.DataDTO od = odl.getData();
// url1 = odl.getData().getUrl();
@@ -952,20 +983,22 @@ public class CertificatesActivity extends BaseAppCompatActivity {
value2.setText(StringUtil.isNull(od.getFirstGetDocDate(), "识别异常"));
value3.setText(StringUtil.isNull(od.getQuasiDriveType(), "识别异常"));
value4.setText(StringUtil.isNull(od.getEndDate(), "识别异常"));
Glide.with(con).load(path).into(img1);
// Glide.with(con).load(path).into(img1);
} else {
Toast.makeText(con, "识别失败", Toast.LENGTH_SHORT).show();
Toast.makeText(con, "识别失败请重新上传", Toast.LENGTH_SHORT).show();
}
CacheGroup.cacheList.remove(TYPE_NAME[1]);
}
if (CacheGroup.cacheList.get(TYPE_NAME_BANK[1]) != null) {
odlb = gson.fromJson(CacheGroup.cacheList.get(TYPE_NAME_BANK[1]), OCRDrivingLicenseBackBean.class);
ImageLoader.getInstance().loadImage(con, path, img2, typeImgTwo[index]);
if (odlb.getCode() == 200 && odlb.getData() != null) {
Glide.with(con).load(path).into(img2);
// Glide.with(con).load(path).into(img2);
//自动调取提交功能,实现页面自动跳转
subimt();
} else {
Toast.makeText(con, "识别失败", Toast.LENGTH_SHORT).show();
Toast.makeText(con, "识别失败请重新上传", Toast.LENGTH_SHORT).show();
}
CacheGroup.cacheList.remove(TYPE_NAME_BANK[1]);
}
@@ -976,16 +1009,17 @@ public class CertificatesActivity extends BaseAppCompatActivity {
if (CacheGroup.cacheList.get(TYPE_NAME[2]) != null) {
Log.e("olb", CacheGroup.cacheList.get(TYPE_NAME[2]));
olb = gson.fromJson(CacheGroup.cacheList.get(TYPE_NAME[2]), OCRVehicleLicenseBean.class);
if (2==index&&olb.getData().getVclN().contains("")){
Toast.makeText(con,"该证件为挂车,请上传行驶证证件",Toast.LENGTH_SHORT).show();
return;
}
if (3==index&&!olb.getData().getVclN().contains("")){
Toast.makeText(con,"未识别到挂车相关信息,请上传挂车行驶证证件",Toast.LENGTH_SHORT).show();
return;
}
ImageLoader.getInstance().loadImage(con, path, img1, typeImgOne[index]);
if (olb.getCode() == 200 && olb.getData() != null) {
if (2 == index && olb.getData().getVclN().contains("")) {
Toast.makeText(con, "该证件为挂车,请上传行驶证证件", Toast.LENGTH_SHORT).show();
return;
}
if (3 == index && !olb.getData().getVclN().contains("")) {
Toast.makeText(con, "未识别到挂车相关信息,请上传挂车行驶证证件", Toast.LENGTH_SHORT).show();
return;
}
carExistCarId = "";
value1.setEnabled(true);
value2.setEnabled(true);
@@ -1000,27 +1034,30 @@ public class CertificatesActivity extends BaseAppCompatActivity {
value4.setText(olb.getData().getVin());
// fontId = olb.getData().getId();
// Glide.with(con).load(url1).into(img1);
Glide.with(con).load(path).into(img1);
// Glide.with(con).load(path).into(img1);
oCrcarId = olb.getData().getCarId() + "";
if (!TextUtils.isEmpty(olb.getData().getVclN())&&!olb.getData().getVclN().contains(""))
if (!TextUtils.isEmpty(olb.getData().getVclN()) && !olb.getData().getVclN().contains(""))
new AuthRequest().getCarInfo(con, hd, olb.getData().getVclN());
Log.e("-cardId-", oCrcarId);
} else {
Toast.makeText(con, "识别失败", Toast.LENGTH_SHORT).show();
Toast.makeText(con, "识别失败请重新上传", Toast.LENGTH_SHORT).show();
}
CacheGroup.cacheList.remove(TYPE_NAME[2]);
}
if (CacheGroup.cacheList.get(TYPE_NAME_BANK[2]) != null) {
oblb = gson.fromJson(CacheGroup.cacheList.get(TYPE_NAME_BANK[2]), OCRVehicleBackLicenseBean.class);
ImageLoader.getInstance().loadImage(con, path, img2, typeImgTwo[index]);
if (oblb.getCode() == 200 && oblb.getData() != null) {
// url2 = oblb.getData().getUrl();
// backId = oblb.getData().getId();
// Glide.with(con).load(url2).into(img2);
Glide.with(con).load(path).into(img2);
// Glide.with(con).load(path).into(img2);
//自动调取提交功能,实现页面自动跳转实现页面自动跳转
subimt();
} else {
Toast.makeText(con, "识别失败", Toast.LENGTH_SHORT).show();
Toast.makeText(con, "识别失败请重新上传", Toast.LENGTH_SHORT).show();
}
CacheGroup.cacheList.remove(TYPE_NAME_BANK[2]);
}
@@ -1111,16 +1148,30 @@ public class CertificatesActivity extends BaseAppCompatActivity {
String str2 = value2.getText().toString().trim();
String str3 = value3.getText().toString().trim();
String str4 = value4.getText().toString().trim();
if ("".equals(str1) || "".equals(str2) || "".equals(str3) || "".equals(str4) || "".equals(url1) || "".equals(url2)) {
Toast.makeText(con, "请补充完整的信息", Toast.LENGTH_LONG).show();
// Toast.makeText(con, "请补充完整的" + name[index], Toast.LENGTH_LONG).show();
return;
}
// if ("".equals(str1) || "".equals(str2) || "".equals(str3) || "".equals(url1) || "".equals(url2)) {
// Toast.makeText(con, "请补充完整的信息", Toast.LENGTH_LONG).show();
//// Toast.makeText(con, "请补充完整的" + name[index], Toast.LENGTH_LONG).show();
// return;
// }
switch (index) {
case 0:
if ("".equals(str1) || "".equals(str2) || "".equals(str3) || "".equals(str4) || "".equals(url1) || "".equals(url2)) {
Toast.makeText(con, "请补充完整的信息", Toast.LENGTH_LONG).show();
return;
}
if (ocb != null && ocbb != null) {
if (ocb.getData() == null) {
ToastUtils.showToast(con, "主页照片识别失败,请重新上传");
return;
}
if (ocbb == null || ocbb.getData() == null) {
ToastUtils.showToast(con, "副页照片识别失败,请重新上传");
return;
}
customDialog = new CustomDialog(con, "网络请求中...");
customDialog.show();
IDInputBean ib = new IDInputBean();
ib.setIdcarName(str1);
ib.setIdcard(str2);
@@ -1142,9 +1193,25 @@ public class CertificatesActivity extends BaseAppCompatActivity {
case 1:
//olb
//{"档案编号","初次领证日期","准驾车型","有效期限(止)"},
if ("".equals(str1) || "".equals(str2) || "".equals(str3) || "".equals(str4) || "".equals(url1) || "".equals(url2)) {
Toast.makeText(con, "请补充完整的信息", Toast.LENGTH_LONG).show();
return;
}
if (odl != null && odlb != null) {
if (odl.getData() == null) {
ToastUtils.showToast(con, "主页照片识别失败,请重新上传");
return;
}
if (odlb == null || odlb.getData() == null) {
ToastUtils.showToast(con, "副页照片识别失败,请重新上传");
return;
}
customDialog = new CustomDialog(con, "网络请求中...");
customDialog.show();
Log.e("ocr", new Gson().toJson(odl));
LicenseInputBean iib = new LicenseInputBean();
iib.setArchivesName(odlb.getData().getFileNumber());
@@ -1153,14 +1220,29 @@ public class CertificatesActivity extends BaseAppCompatActivity {
iib.setDriverLicense(str1);
iib.setDriverLicenseBackPhoto(backId);
iib.setDriverLicensePhoto(fontId);
iib.setEndTime("长期".equals(odl.getData().getEndDate()) ? "2999-12-31" : odl.getData().getEndDate());
if ("长期".equals(odl.getData().getEndDate())){
iib.setEndTime("2999-12-31");
}else if (TimeUtil.isValidDate(odl.getData().getEndDate())){//非yyyy-MM-dd格式的日期传""
iib.setEndTime(odl.getData().getEndDate());
}else{
iib.setEndTime("");
}
// iib.setEndTime("长期".equals(odl.getData().getEndDate()) ? "2999-12-31" : odl.getData().getEndDate());
iib.setFirstTime(odl.getData().getFirstGetDocDate());
// iib.setName(odl.getData().getName());
iib.setOrganizationName(odl.getData().getIssuingAuthority());
iib.setAddress(odl.getData().getAddress());
iib.setStartTime(odl.getData().getBeginDate());
if (TimeUtil.isValidDate(odl.getData().getBeginDate())){//非yyyy-MM-dd格式的日期传""
iib.setStartTime(odl.getData().getBeginDate());
}else{
iib.setStartTime("");
}
// iib.setStartTime(odl.getData().getBeginDate());
iib.setSex(odl.getData().getSex());
iib.setBirthday(odl.getData().getBirthday());
@@ -1177,11 +1259,26 @@ public class CertificatesActivity extends BaseAppCompatActivity {
new AuthRequest().bindCar(con, hd, carExistCarId);
return;
}
if ("".equals(str1) || "".equals(str2) || "".equals(str3) || "".equals(str4) || "".equals(url1) || "".equals(url2)) {
Toast.makeText(con, "请补充完整的信息", Toast.LENGTH_LONG).show();
return;
}
if ((olb != null && !olb.getData().isCarExist() && oblb != null) || (olb != null && olb.getData().isCarExist())) {
// if (curColor == null || curEnergy == null) {
// Toast.makeText(con, "请完善内容", Toast.LENGTH_SHORT).show();
// return;
// }
if (olb.getData() == null) {
ToastUtils.showToast(con, "主页照片识别失败,请重新上传");
return;
}
if (oblb == null || oblb.getData() == null) {
ToastUtils.showToast(con, "副页照片识别失败,请重新上传");
return;
}
customDialog = new CustomDialog(con, "网络请求中...");
customDialog.show();
HashMap<String, Object> map = new HashMap<>();
@@ -1194,6 +1291,7 @@ public class CertificatesActivity extends BaseAppCompatActivity {
// map.put("ownerName", str3);
// map.put("vin", str4);//车辆识别代号
String carLong = "";
String carWidth = "";
String carHeight = "";
@@ -1287,11 +1385,20 @@ public class CertificatesActivity extends BaseAppCompatActivity {
}
break;
case 3:
if ("".equals(str1) || "".equals(str2) || "".equals(str3) || "".equals(str4) || "".equals(url1) || "".equals(url2)) {
Toast.makeText(con, "请补充完整的信息", Toast.LENGTH_LONG).show();
return;
}
if (olb != null || (cdb != null && cdb.getRes() == 1)) {
// if (curEnergy==null){
// Toast.makeText(con,"请完善内容",Toast.LENGTH_SHORT).show();
// return;
// }
if (olb.getData() == null) {
ToastUtils.showToast(con, "主页照片识别失败,请重新上传");
return;
}
if (oblb == null || oblb.getData() == null) {
ToastUtils.showToast(con, "副页照片识别失败,请重新上传");
return;
}
customDialog = new CustomDialog(con, "网络请求中...");
customDialog.show();
// Map<String, Object> map = new HashMap<>();
@@ -1328,7 +1435,6 @@ public class CertificatesActivity extends BaseAppCompatActivity {
// map.put("fileNumber", oblb.getData().getRecordId());//档案编号
// map.put("towAuality", oblb.getData().getVclDrwTn());//准牵引总质量
String carLong = "";
String carWidth = "";
String carHeight = "";
@@ -0,0 +1,62 @@
package com.arpa.hndahesudintocctmsdriver.ui.auth;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import androidx.annotation.Nullable;
import com.arpa.hndahesudintocctmsdriver.R;
import com.arpa.hndahesudintocctmsdriver.event.PersonEvent;
import com.arpa.hndahesudintocctmsdriver.ui.MainActivity;
import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity;
import com.dahe.mylibrary.utils.ActivityUtils;
import org.greenrobot.eventbus.EventBus;
/**
* @ClassName FaceSuccActivity
* @Author john
* @Date 2024/12/2 10:27
* @Description TODO
*/
public class FaceSuccActivity extends BaseAppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
StateStyleUtil.stateTextColor(this);
setContentView(R.layout.activity_face_succ_result);
con = this;
initView(null);
Button btnHome = findViewById(R.id.btnHome);
Button btnAddCar = findViewById(R.id.btnAddCar);
boolean isGoCar = getIntent().getBooleanExtra("isGoCar", false);
if (isGoCar) {
btnHome.setText("返回首页");
btnAddCar.setVisibility(View.VISIBLE);
} else {
btnHome.setText("返回");
btnAddCar.setVisibility(View.GONE);
}
btnHome.setOnClickListener(v -> {
finish();
});
btnAddCar.setOnClickListener(v -> {
Intent in = new Intent(con, CertificatesActivity.class);
in.putExtra("index", 2);
startActivity(in);
finish();
});
}
@Override
protected void onPause() {
super.onPause();
EventBus.getDefault().post(new PersonEvent("刷脸成功"));
}
}
@@ -1,5 +1,7 @@
package com.arpa.hndahesudintocctmsdriver.ui.auth;
import static com.sdk.base.framework.utils.app.AppUtils.getPackageName;
import android.Manifest;
import android.content.Intent;
import android.net.Uri;
@@ -27,6 +29,7 @@ import com.arpa.hndahesudintocctmsdriver.util.MessageUtils;
import com.arpa.hndahesudintocctmsdriver.util.PermissionUtils;
import com.bumptech.glide.Glide;
import com.dahe.mylibrary.utils.ActivityUtils;
import com.dahe.mylibrary.utils.ImageLoader;
import com.esign.esignsdk.EsignSdk;
import com.esign.esignsdk.data.AuthEvent;
import com.google.gson.Gson;
@@ -74,15 +77,15 @@ public class PersonalAuthActivity extends BaseAppCompatActivity {
super.msgMethod(m);
switch (m.what) {
case RequsetCodeConstants.SUCCESS:
if (CacheGroup.cacheList.get("userdata") != null) {
ub = gson.fromJson(CacheGroup.cacheList.get("userdata"), UserBean.class);
if (CacheGroup.cacheList.get("userdata2") != null) {
ub = gson.fromJson(CacheGroup.cacheList.get("userdata2"), UserBean.class);
if (ub.getCode() == 200) {
initView(ub);
SPUtil.insSP(con, "data", "userdata", CacheGroup.cacheList.get("userdata"));
SPUtil.insSP(con, "data", "userdata", CacheGroup.cacheList.get("userdata2"));
} else {
Toast.makeText(con, ub.getMsg(), Toast.LENGTH_SHORT).show();
}
CacheGroup.cacheList.remove("userdata");
CacheGroup.cacheList.remove("userdata2");
}
if (CacheGroup.cacheList.get("upload") != null) {
upb = gson.fromJson(CacheGroup.cacheList.get("upload"), UploadBean.class);
@@ -207,7 +210,22 @@ public class PersonalAuthActivity extends BaseAppCompatActivity {
});
//头像
up_img.setOnClickListener(v -> {
gia.showPopueWindow(this);
PermissionUtils.Companion.getInstance().showPermissionMessage(this, "拍摄,媒体查询权限使用说明", "用于拍照或者选择图片用于上传头像功能",
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.CAMERA},
(allGranted, grantedList, deniedList) -> {
if (allGranted) {
gia.showPopueWindow(this);
} else {
new MessageUtils().showSimCenPop(con, "缺少拍摄,媒体查询权限,将无法为您提供服务,去开启!", "取消", "确认", () -> {
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", getPackageName(), null);
intent.setData(uri);
startActivity(intent);
});
// Toast.makeText(act.getBaseContext(), "请先开启定位权限", Toast.LENGTH_LONG).show();
}
});
});
up_head.setOnClickListener(v -> {
if (ub.getData().getHeadportraitUrl() != null && !ub.getData().getHeadportraitUrl().equals("")) {
@@ -221,10 +239,15 @@ public class PersonalAuthActivity extends BaseAppCompatActivity {
});
hyr = new HuoYuanRequset(con, hd);
ur = new UserRequset(con, hd);
ur.User();
EventBus.getDefault().register(this);
}
@Override
protected void onStart() {
super.onStart();
ur.User2();
}
@Override
protected void onDestroy() {
super.onDestroy();
@@ -240,7 +263,7 @@ public class PersonalAuthActivity extends BaseAppCompatActivity {
TextView name = findViewById(R.id.rname);
name.setText(StringUtil.isNull(ub.getData().getRname(), "未实名"));
if (ub.getData().getHeadportraitUrl() != null && !ub.getData().getHeadportraitUrl().equals("")) {
Glide.with(con).load(ub.getData().getHeadportraitUrl()).into(up_head);
ImageLoader.getInstance().loadImage(con,ub.getData().getHeadportraitUrl(),up_head);
}
}
@@ -248,7 +271,7 @@ public class PersonalAuthActivity extends BaseAppCompatActivity {
public void personResult(PersonEvent home) {
Log.e("-res-", home.getMessage());
if (ur != null) {
ur.User();
ur.User2();
}
}
@@ -3,6 +3,7 @@ package com.arpa.hndahesudintocctmsdriver.ui.auth;
import android.content.Intent;
import android.os.Bundle;
import android.os.Message;
import android.text.InputType;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
@@ -35,7 +36,7 @@ import com.arpa.hndahesudintocctmsdriver.util.img.GetImageAlert;
import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView;
import com.bumptech.glide.Glide;
import com.dahe.mylibrary.utils.ImageLoader;
import com.dahe.mylibrary.utils.PatternUtils;
import com.github.gzuliyujiang.wheelpicker.DatePicker;
import com.github.gzuliyujiang.wheelpicker.annotation.DateMode;
@@ -110,9 +111,10 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
}
if (CacheGroup.cacheList.get("ORCRoadLicZj") != null) {
if (customDialog != null && customDialog.isShowing())
customDialog.dismiss();
OCRRoadBean ib = new Gson().fromJson(CacheGroup.cacheList.get("ORCRoadLicZj"), OCRRoadBean.class);
customDialog.dismiss();
if (ib.getCode() == 200 && ib.getData() != null) {
if (ib.getCode() == 200 && ib.getData() != null&&!TextUtils.isEmpty(ib.getData().getLicenseNumber())) {
value1.setText(PatternUtils.getNumByStr(ib.getData().getLicenseNumber()));
} else {
Toast.makeText(con, "识别失败", Toast.LENGTH_SHORT).show();
@@ -148,15 +150,17 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
}
url = ub.getData().getUrl();
// Glide.with(con).load(url).into(img);
Glide.with(con).load(path).into(img);
ImageLoader.getInstance().loadImage(con,path,img);
CacheGroup.cacheList.remove("upload");
}
if (CacheGroup.cacheList.get("saveCarImg") != null) {
if (customDialog != null && customDialog.isShowing())
customDialog.dismiss();
if (type!=3){
if (customDialog != null && customDialog.isShowing())
customDialog.dismiss();
}
BaseBean bb = gson.fromJson(CacheGroup.cacheList.get("saveCarImg"), BaseBean.class);
if (bb.getCode() == 200) {
switch (type) {
@@ -171,7 +175,7 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
break;
case 3:
ur.vehicleDelTwo(carId);
Toast.makeText(con, "上传道路运输证成功", Toast.LENGTH_SHORT).show();
// Toast.makeText(con, "上传道路运输证成功", Toast.LENGTH_SHORT).show();
break;
case 4:
Toast.makeText(con, "交强险证件上传成功", Toast.LENGTH_SHORT).show();
@@ -186,11 +190,11 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
Log.e("is", CacheGroup.cacheList.get("saveCarRegisterNo"));
IsAuthDriverAuthQualificationBean ib = gson.fromJson(CacheGroup.cacheList.get("saveCarRegisterNo"), IsAuthDriverAuthQualificationBean.class);
if (ib.getCode() == 200) {
finish();
Intent in = new Intent(con, PhotoCarActivity.class);
in.putExtra("type", 3);
in.putExtra("carId", carId);
con.startActivity(in);
finish();
} else {
Toast.makeText(con, ib.getMsg(), Toast.LENGTH_SHORT).show();
}
@@ -204,12 +208,11 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
//判断是否需要跳转挂车行驶证页面
if (!"".equals(carId) && cdb.getData() != null) {
if (cdb.getData().getIsTrailer() == 1 && cdb.getData().getTrailerResVo() != null && !TextUtils.isEmpty(cdb.getData().getTrailerResVo().getCarNumber())) {//需要挂车,并且传过挂车直接结束
finish();
Intent in = new Intent(con, AddCarSuccActivity.class);
in.putExtra("type", 3);
con.startActivity(in);
} else if (cdb.getData().getIsTrailer() == 1 && cdb.getData().getTrailerResVo() != null && TextUtils.isEmpty(cdb.getData().getTrailerResVo().getCarNumber())) {//需要挂车,没传过挂车,到挂车页面
finish();
} else if (cdb.getData().getIsTrailer() == 1 && cdb.getData().getTrailerResVo() != null && TextUtils.isEmpty(cdb.getData().getTrailerResVo().getCarNumber())) {//需要挂车,没传过挂车,到挂车页面
Intent in = new Intent(con, CertificatesActivity.class);
in.putExtra("index", 3);
in.putExtra("carId", carId);
@@ -217,6 +220,7 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
in.putExtra("cheData", new Gson().toJson(cdb));
}
startActivity(in);
finish();
} else if (cdb.getData().getIsTrailer() == 0) {//不需要挂车
if ("1".equals(cdb.getData().getNeedUpQCPhoto())) {//需要从业资格证
Intent in = new Intent(con, AuthQualificationActivity.class);
@@ -225,10 +229,10 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
in.putExtra("isOverCar", false);
startActivity(in);
} else {
finish();
Intent in = new Intent(con, AddCarSuccActivity.class);
in.putExtra("type", 3);
con.startActivity(in);
finish();
}
}
} else {
@@ -517,26 +521,26 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
if (null != cdb) {
if (0 == type) {
if (!TextUtils.isEmpty(cdb.getData().getCarImage())) {
Glide.with(con).load(cdb.getData().getCarImage()).into(img);
ImageLoader.getInstance().loadImage(con,cdb.getData().getCarImage(),img);
submit.setBackgroundResource(R.drawable.bg_btn_grey);
upload_img.setText("已上传");
}
} else if (1 == type) {
if (!TextUtils.isEmpty(cdb.getData().getNfcImage())) {
Glide.with(con).load(cdb.getData().getNfcImage()).into(img);
ImageLoader.getInstance().loadImage(con,cdb.getData().getNfcImage(),img);
submit.setBackgroundResource(R.drawable.bg_btn_grey);
upload_img.setText("已上传");
}
} else if (2 == type) {
if (!TextUtils.isEmpty(cdb.getData().getRegisterImage())) {
Glide.with(con).load(cdb.getData().getRegisterImage()).into(img);
ImageLoader.getInstance().loadImage(con,cdb.getData().getRegisterImage(),img);
value1.setText(cdb.getData().getRegisterNo());
submit.setBackgroundResource(R.drawable.bg_btn_grey);
upload_img.setText("已上传");
}
} else if (3 == type) {
if (!TextUtils.isEmpty(cdb.getData().getRoadLicensePhoto())) {
Glide.with(con).load(cdb.getData().getRoadLicensePhoto()).into(img);
ImageLoader.getInstance().loadImage(con,cdb.getData().getRoadLicensePhoto(),img);
value1.setText(cdb.getData().getRoadLicense());
if (!carExist) {
submit.setBackgroundResource(R.drawable.bg_btn_grey);
@@ -546,7 +550,7 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
}
} else if (4 == type) {
if (!TextUtils.isEmpty(cdb.getData().getPolicyPhotoUrl())) {
Glide.with(con).load(cdb.getData().getPolicyPhotoUrl()).into(img);
ImageLoader.getInstance().loadImage(con,cdb.getData().getPolicyPhotoUrl(),img);
value1.setText(cdb.getData().getInsuranceCompany());
value2.setText(cdb.getData().getInsuranceEndDay());
submit.setBackgroundResource(R.drawable.bg_btn_grey);
@@ -635,8 +639,11 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
tvSkip.setVisibility(isShowSkip[type] ? View.GONE : View.VISIBLE);
llInfo.setVisibility(isShowEdit[type] ? View.VISIBLE : View.GONE);
if (type == 4) {
value1.setInputType(InputType.TYPE_CLASS_TEXT);
llDate.setVisibility(View.VISIBLE);
title3.setText("保险公司");
}else {
value1.setInputType(InputType.TYPE_CLASS_NUMBER);
}
}
@@ -54,8 +54,10 @@ import com.arpa.hndahesudintocctmsdriver.report.JTTProcess;
import com.arpa.hndahesudintocctmsdriver.request.WalletRequest;
import com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity;
import com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan.ShangChuangImgActivity;
import com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan.ShangChuangImgActivityBC;
import com.arpa.hndahesudintocctmsdriver.ui.news.NewActivity;
import com.arpa.hndahesudintocctmsdriver.ui.wallet.UpBankActivity;
import com.arpa.hndahesudintocctmsdriver.ui.web.WebOnlyOneActivity;
import com.arpa.hndahesudintocctmsdriver.util.MessageUtils;
import com.arpa.hndahesudintocctmsdriver.util.OneDayShowUtils;
import com.arpa.hndahesudintocctmsdriver.util.PermissionUtils;
@@ -68,6 +70,7 @@ import com.google.gson.Gson;
import com.gyf.cactus.Cactus;
import com.hjq.xtoast.XToast;
import com.lxj.xpopup.XPopup;
import com.lxj.xpopup.core.BasePopupView;
import com.lxj.xpopup.interfaces.OnConfirmListener;
import com.arpa.hndahesudintocctmsdriver.R;
import com.arpa.hndahesudintocctmsdriver.report.ALProcess;
@@ -101,6 +104,7 @@ import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants;
import com.arpa.hndahesudintocctmsdriver.util.time.Timer;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseFragment;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView;
import com.lxj.xpopup.interfaces.SimpleCallback;
import com.permissionx.guolindev.PermissionX;
import com.youth.banner.Banner;
import com.youth.banner.BannerConfig;
@@ -151,6 +155,8 @@ public class HomeFragment extends BaseFragment {
private XToast xToast;
private boolean isUpAppShow = false;
@Override
public void msgMethod(Message m) {
@@ -239,6 +245,19 @@ public class HomeFragment extends BaseFragment {
new XPopup.Builder(con)
.dismissOnBackPressed(false)
.dismissOnTouchOutside(false)
.setPopupCallback(new SimpleCallback() {
@Override
public void onShow(BasePopupView popupView) {
super.onShow(popupView);
isUpAppShow = true;
}
@Override
public void onDismiss(BasePopupView popupView) {
super.onDismiss(popupView);
isUpAppShow = false;
}
})
.asCustom(new UpAppAlert(con, uab.getData().getDownloadUrl(), uab.getData().getContent(), uab.getData().getVersion(), uab.getData().getForce()))
.show();
}
@@ -258,8 +277,13 @@ public class HomeFragment extends BaseFragment {
if (CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA) != null) {
DriverAuthDataBean dad = gson.fromJson(CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA), DriverAuthDataBean.class);
if (dad.getCode() == 200) {
if (isUpAppShow) {
CacheGroup.cacheList.remove(WoDeFragment.AUTH_DATA);
return;
}
if (dad.getData() == null) {
new MessageUtils().showSimCenPop(con, "该司机缺少身份证,未认证无法接单。是否去添加!","去添加", () -> {
new MessageUtils().showSimCenPop(con, "该司机缺少身份证,未认证无法接单。是否去添加!", "去添加", () -> {
Intent in = new Intent(con, CertificatesActivity.class);
in.putExtra("index", 0);
startActivity(in);
@@ -268,19 +292,19 @@ public class HomeFragment extends BaseFragment {
return;
}
if (dad.getData() != null && TextUtils.isEmpty(dad.getData().getIdcard())) {
new MessageUtils().showSimCenPop(con, "该司机缺少身份证,未认证无法接单。是否去添加!", "去添加",() -> {
new MessageUtils().showSimCenPop(con, "该司机缺少身份证,未认证无法接单。是否去添加!", "去添加", () -> {
Intent in = new Intent(con, CertificatesActivity.class);
in.putExtra("index", 0);
startActivity(in);
});
} else if (dad.getData() != null && TextUtils.isEmpty(dad.getData().getCardNo())) {
new MessageUtils().showSimCenPop(con, "该司机缺少银行卡,未认证无法接单。是否去添加!", "去添加",() -> {
new MessageUtils().showSimCenPop(con, "该司机缺少银行卡,未认证无法接单。是否去添加!", "去添加", () -> {
Intent in333 = new Intent(con, UpBankActivity.class);
in333.putExtra("type", 1);
startActivity(in333);
});
} else if (dad.getData() != null && TextUtils.isEmpty(dad.getData().getDriverLicense())) {
new MessageUtils().showSimCenPop(con, "该司机缺少驾驶证,未认证无法接单。是否去添加!", "去添加",() -> {
new MessageUtils().showSimCenPop(con, "该司机缺少驾驶证,未认证无法接单。是否去添加!", "去添加", () -> {
Intent in = new Intent(con, CertificatesActivity.class);
in.putExtra("index", 0);
startActivity(in);
@@ -437,6 +461,7 @@ public class HomeFragment extends BaseFragment {
});
btn_update.setOnClickListener(v -> {
getRequest();
refreshWaybills();
});
home_top.setOnClickListener(v -> {
if (!UiAuxiliary.isLogin(con)) {
@@ -497,6 +522,7 @@ public class HomeFragment extends BaseFragment {
Log.e("下拉刷新", "pps");
keys = true;
getRequest();
refreshWaybills();
});
}
@@ -703,15 +729,17 @@ public class HomeFragment extends BaseFragment {
int zStatus = zData.getStatus();
int xStatus = xData.getStatus();
if (zStatus == 0) {//未装货
Intent in = new Intent(con, ShangChuangImgActivity.class);
Intent in = new Intent(con, ShangChuangImgActivityBC.class);
in.putExtra("type", 0);
in.putExtra("reportAlct", data.getReportAlct());
in.putExtra("wid", zData.getId() + "");
in.putExtra("sob", gson.toJson(sob));
in.putExtra("keys", true);
startActivity(in);
} else if (zStatus == 1 && xStatus == 4) {//已装货未上传回单
Intent in = new Intent(con, ShangChuangImgActivity.class);
Intent in = new Intent(con, ShangChuangImgActivityBC.class);
in.putExtra("type", 2);
in.putExtra("reportAlct", data.getReportAlct());
in.putExtra("wid", zData.getId() + "");
in.putExtra("h_type", 0);
in.putExtra("sob", gson.toJson(sob));
@@ -719,8 +747,9 @@ public class HomeFragment extends BaseFragment {
} else if (zStatus == 3 && xStatus == 4) {//已上传装货回单,未卸货
int dis = TimeUtil.compareNowDate(TimeUtil.string2Millis(zData.getImageTakenDate(), TimeUtil.DEFAULT_FORMAT4));
if (dis > 5) {//大于五分钟可以接单
Intent in = new Intent(con, ShangChuangImgActivity.class);
Intent in = new Intent(con, ShangChuangImgActivityBC.class);
in.putExtra("type", 1);
in.putExtra("reportAlct", data.getReportAlct());
in.putExtra("wid", xData.getId() + "");
in.putExtra("sob", gson.toJson(sob));
in.putExtra("keys", true);
@@ -730,8 +759,9 @@ public class HomeFragment extends BaseFragment {
}
} else if (zStatus == 3 && xStatus == 2) {//已卸货,未上传卸货回单
Intent in = new Intent(con, ShangChuangImgActivity.class);
Intent in = new Intent(con, ShangChuangImgActivityBC.class);
in.putExtra("type", 2);
in.putExtra("reportAlct", data.getReportAlct());
in.putExtra("wid", xData.getId() + "");
in.putExtra("h_type", 1);
in.putExtra("sob", gson.toJson(sob));
@@ -761,6 +791,7 @@ public class HomeFragment extends BaseFragment {
*/
public void initMap() {
getRequest();
refreshWaybills();
}
private CustomDialog customDialog;
@@ -772,19 +803,19 @@ public class HomeFragment extends BaseFragment {
// if((newTime-oldTime)>1000){
// customDialog=new CustomDialog(con,"加载中...");
// customDialog.show();
ur.upApp();
hyr.getHuoYuan(1, 100);
// ur.upApp();
// hyr.getHuoYuan(1, 100);
ur.getImage(1);
WalletRequest qr = new WalletRequest(con, hd);
if (UiAuxiliary.isLogin(con)) {
int curWaybillId = (int) SPUtils.get(con, "curWaybillId", -1);
// int curWaybillId = (int) SPUtils.get(con, "curWaybillId", -1);
ur.User();
// if (!OneDayShowUtils.getInstance().todayIsShow(con)) {
// qr.getBankCardList();
// }
ur.getDriverExpire();
hyr.startOrder(curWaybillId == -1 ? 0 : curWaybillId);
// hyr.startOrder(curWaybillId == -1 ? 0 : curWaybillId);
// hyr.startOrder(0);
//获取权限 应用市场审核不通过
ur.driverAuthData();
@@ -846,8 +877,8 @@ public class HomeFragment extends BaseFragment {
orderNum.setText("运单号:" + sob.getData().getShippingNoteNumber());
order_state.setText("" + sob.getData().getWaybillStatus());
try {
Intent serviceIn = new Intent(con, TrackService.class);
getActivity().startService(serviceIn);
// Intent serviceIn = new Intent(con, TrackService.class);
// getActivity().startService(serviceIn);
} catch (Exception e) {
e.printStackTrace();
}
@@ -1022,7 +1053,7 @@ public class HomeFragment extends BaseFragment {
banner.isAutoPlay(true);
banner.setIndicatorGravity(BannerConfig.CENTER);
banner.setOnBannerListener(position -> {//System.out.println("跳转");
Intent in = new Intent(con, WebActivity.class);
Intent in = new Intent(con, WebOnlyOneActivity.class);
Intent inL = new Intent(con, LoginActivity.class);
in.putExtra("url", ic.getData().get(position).getJumpUrl());
in.putExtra("title", ic.getData().get(position).getTitle());
@@ -1043,7 +1074,7 @@ public class HomeFragment extends BaseFragment {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
if (HomeFragment.this != null && getActivity() != null && !getActivity().isDestroyed()) {
Glide.with(con).load(path).into(imageView);
com.dahe.mylibrary.utils.ImageLoader.getInstance().loadImage(con,path,imageView);
}
}
}
@@ -1154,6 +1185,7 @@ public class HomeFragment extends BaseFragment {
.permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_BACKGROUND_LOCATION,
Manifest.permission.CAMERA,
Manifest.permission.ACCESS_COARSE_LOCATION)
.request((allGranted, grantedList, deniedList) -> {
@@ -1274,14 +1306,32 @@ public class HomeFragment extends BaseFragment {
initView(null);
}
@Subscribe
public void processResult(HomeWaybillEvent home) {
if (home.getMessage() == 1) {
hyr.getHuoYuan(1, 100);
} else {
@Override
public void onStart() {
super.onStart();
// ToastUtils.showToast(con,"onstart");
// refreshLayout.autoRefresh();
refreshWaybills();
}
private void refreshWaybills() {
hyr.getHuoYuan(1, 100);
if (UiAuxiliary.isLogin(con)) {
int curWaybillId = (int) SPUtils.get(con, "curWaybillId", -1);
hyr.startOrder(curWaybillId == -1 ? 0 : curWaybillId);
}
}
@Subscribe
public void processResult(HomeWaybillEvent home) {
// if (home.getMessage() == 1) {
// int curWaybillId = (int) SPUtils.get(con, "curWaybillId", -1);
// hyr.startOrder(curWaybillId == -1 ? 0 : curWaybillId);
// hyr.getHuoYuan(1, 100);
// } else {
// int curWaybillId = (int) SPUtils.get(con, "curWaybillId", -1);
// hyr.startOrder(curWaybillId == -1 ? 0 : curWaybillId);
// }
}
@@ -231,8 +231,8 @@ public class HuoYuanFragmengt extends BaseFragment {
if(sob!=null && sob.getData()!=null && sob.getData().getWayChildren().size()>0){
SPUtil.insSP(con,"order","ShippingNoteNumber",sob.getData().getShippingNoteNumber());
Log.e("开始轨迹上传服务","-----");
Intent serviceIn=new Intent(con,TrackService.class);
getActivity().startService(serviceIn);
// Intent serviceIn=new Intent(con,TrackService.class);
// getActivity().startService(serviceIn);
list.add(new ManyBean(sob.getData(),R.layout.huoyuan_yundan));
}else{
SPUtil.insSP(con,"order","ShippingNoteNumber","");
@@ -8,6 +8,7 @@ import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Handler;
import android.os.Message;
import android.provider.Settings;
@@ -17,6 +18,7 @@ import android.text.TextUtils;
import android.text.method.HideReturnsTransformationMethod;
import android.text.method.PasswordTransformationMethod;
import android.util.Log;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.widget.Button;
import android.widget.CheckBox;
@@ -48,7 +50,10 @@ import com.arpa.hndahesudintocctmsdriver.util.img.ImageGetUtil;
import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil;
import com.arpa.hndahesudintocctmsdriver.util.string.StringUtil;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity;
import com.arpa.hndahesudintocctmsdriver.weight.OnLimitClickHelper;
import com.arpa.hndahesudintocctmsdriver.weight.OnLimitClickListener;
import com.dahe.mylibrary.utils.ActivityUtils;
import com.dahe.mylibrary.utils.ToastUtils;
import com.esign.esignsdk.EsignSdk;
import com.esign.esignsdk.data.AuthEvent;
import com.google.gson.Gson;
@@ -74,6 +79,7 @@ import com.arpa.hndahesudintocctmsdriver.util.time.Timer;
import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView;
import com.lxj.xpopup.interfaces.XPopupCallback;
import com.permissionx.guolindev.PermissionX;
import org.greenrobot.eventbus.EventBus;
@@ -81,6 +87,7 @@ import org.greenrobot.eventbus.Subscribe;
import java.util.ArrayList;
import java.util.List;
import java.util.TreeMap;
public class HuoYunDelActivity extends BaseAppCompatActivity {
@@ -94,6 +101,10 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
private BasePopupView xp;
private TextView car;
private String cid;
private String selectCarNum = "";
private String currOutInvoice = "0";
@Override
public void msgMethod(Message m) {
@@ -133,6 +144,8 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
}
//finish();
} else {
EventBus.getDefault().post(new HomeWaybillEvent(1));
finish();
Toast.makeText(con, bb.getMsg(), Toast.LENGTH_SHORT).show();
customDialog.dismiss();
}
@@ -156,13 +169,17 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
isRegOk = true;
Log.e("orderStatus", CacheGroup.cacheList.get("orderStatus"));
WaybillStatusBean status = gson.fromJson(CacheGroup.cacheList.get("orderStatus"), WaybillStatusBean.class);
if (status.getCode() == 200) {
if (regOkPop != null && regOkPop.isShow()) {
regOkPop.dismiss();
}
if (status.getData() != null) {
//执行运单下一步操作
new XPopup.Builder(con)
.isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个
.asConfirm("请确认接单", "是否确定承运此运单?",
"取消", "确认",
() -> {
@@ -187,6 +204,8 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
int index = Integer.valueOf((String) m.obj);
Log.e("--选择车辆--", clb.getData().get(index).getCarNumber());
car.setText("选择车辆:" + clb.getData().get(index).getCarNumber());
selectCarNum = clb.getData().get(index).getCarNumber();
currOutInvoice = clb.getData().get(index).getOutInvoice();
cid = clb.getData().get(index).getCarId();
break;
@@ -313,9 +332,26 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
});
//
ImageButton xuanze = v.findViewById(R.id.xuanze);
if (clb != null && clb.getData().size() == 1) {
if (hyd != null && hyd.getData() != null && !TextUtils.isEmpty(hyd.getData().getCarNumber())) {
String carNumber = hyd.getData().getCarNumber();
if (clb != null && !clb.getData().isEmpty()) {//判断车辆是否需要上传安联
for (CarListBean.DataDTO datum : clb.getData()) {
if (carNumber.equals(datum.getCarNumber())) {
cid = hyd.getData().getCarId();
car.setText("选择车辆:" + hyd.getData().getCarNumber());
currOutInvoice = datum.getOutInvoice();
selectCarNum = hyd.getData().getCarNumber();
break;
}
}
}
} else if (clb != null && clb.getData().size() == 1) {
cid = clb.getData().get(0).getCarId();
car.setText("选择车辆:" + clb.getData().get(0).getCarNumber());
currOutInvoice = clb.getData().get(0).getOutInvoice();
selectCarNum = clb.getData().get(0).getCarNumber();
}
xuanze.setOnClickListener(v1 -> {
if (clb.getData().size() > 0) {
@@ -328,7 +364,7 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
});
//
Button confirm_btn = v.findViewById(R.id.confirm_btn);
confirm_btn.setOnClickListener(v13 -> {
confirm_btn.setOnClickListener(new OnLimitClickHelper(view -> {
if ("1".equals(UserParts.getUser(con).getData().getRealAuthentication())) {
if (cid != null) {
// if (fpKey){
@@ -349,7 +385,7 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
Intent in = new Intent(con, PersonalAuthActivity.class);
startActivity(in);
}
});
}));
BaseRecyclerView zhuang_data = v.findViewById(R.id.zhuang_rv1);
BaseRecyclerView xie_data = v.findViewById(R.id.zhuang_rv2);
List<Object> listz = new ArrayList<>();
@@ -406,6 +442,7 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
UiAuxiliary.homeRequest("接单");
Intent in = new Intent(con, StartYunDanActivity.class);
in.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
in.putExtra("id", "0");
startActivity(in);
finish();
@@ -483,6 +520,8 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
* 先判断安联用户信息验证,随后接单
*/
private void reOrder() {
//开始倒计时
startCountDown();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
try {
PermissionX.init(this)
@@ -494,8 +533,13 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
if (allGranted) {
customDialog = new CustomDialog(con, "正在接单...");
customDialog.show();
//验证安联用户是否通过
ALProcess.verification(con, hd);
if ("0".equals(currOutInvoice)) {
//验证安联用户是否通过
ALProcess.verification(con, selectCarNum, hd);
} else {
hyr.getOrderStatus(id);
}
} else {
boolean accessCoarseLocation = deniedList.contains("android.permission.ACCESS_FINE_LOCATION");
boolean contains = deniedList.contains("android.permission.WRITE_EXTERNAL_STORAGE");
@@ -515,14 +559,14 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
customDialog = new CustomDialog(con, "正在接单...");
customDialog.show();
//验证安联用户是否通过
ALProcess.verification(con, hd);
ALProcess.verification(con, selectCarNum, hd);
}
} else {
customDialog = new CustomDialog(con, "正在接单...");
customDialog.show();
//验证安联用户是否通过
ALProcess.verification(con, hd);
ALProcess.verification(con, selectCarNum, hd);
}
@@ -532,4 +576,102 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
// ALProcess.verification(con, hd);
}
@Override
protected void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
}
@Override
protected void onStop() {
super.onStop();
// 取消倒计时,防止内存泄漏
if (countDownTimer != null) {
countDownTimer.cancel();
}
if (regOkPop != null && regOkPop.isShow()) {
regOkPop.dismiss();
}
}
private CountDownTimer countDownTimer;
private boolean isRegOk = false;
private BasePopupView regOkPop;
private void startCountDown() {
countDownTimer = new CountDownTimer(30000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
// 更新TextView显示剩余时间
System.out.println("asdf");
}
@Override
public void onFinish() {
if (!isRegOk) {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
//执行运单下一步操作
regOkPop = new XPopup.Builder(con)
.setPopupCallback(new XPopupCallback() {
@Override
public void onCreated(BasePopupView popupView) {
}
@Override
public void beforeShow(BasePopupView popupView) {
}
@Override
public void onShow(BasePopupView popupView) {
}
@Override
public void onDismiss(BasePopupView popupView) {
isRegOk = false;
}
@Override
public void beforeDismiss(BasePopupView popupView) {
}
@Override
public boolean onBackPressed(BasePopupView popupView) {
return false;
}
@Override
public void onKeyBoardStateChanged(BasePopupView popupView, int height) {
}
@Override
public void onDrag(BasePopupView popupView, int value, float percent, boolean upOrLeft) {
}
@Override
public void onClickOutside(BasePopupView popupView) {
}
})
.asConfirm("提示", "接单失败,请返回重新接单!",
"取消", "确认",
() -> {
isRegOk = false;
finish();
}, () -> {
}, false, R.layout.alert_ok_cancel) //最后一个参数绑定已有布局
.show();
}
}
}.start(); // 别忘了调用start()方法来启动倒计时
}
}
@@ -41,9 +41,11 @@ import com.amap.api.services.route.DriveStep;
import com.amap.api.services.route.RideRouteResult;
import com.amap.api.services.route.RouteSearch;
import com.amap.api.services.route.WalkRouteResult;
import com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan.ShangChuangImgActivityBC;
import com.arpa.hndahesudintocctmsdriver.util.alert.CustomDialog;
import com.arpa.hndahesudintocctmsdriver.util.alert.ToastUtil;
import com.bumptech.glide.Glide;
import com.dahe.mylibrary.utils.ImageLoader;
import com.dahe.mylibrary.utils.TimeUtil;
import com.dahe.mylibrary.utils.ToastUtils;
import com.google.android.material.bottomsheet.BottomSheetBehavior;
@@ -100,6 +102,7 @@ public class StartYunDanActivity extends BaseActivity {
private boolean key = false;
private int id = 0;
LocationGDUtil ld;
private TextView pl_submit;
@Override
public void msgMethod(Message m) {
@@ -133,6 +136,7 @@ public class StartYunDanActivity extends BaseActivity {
if (CacheGroup.cacheList.get(KEEP_EVALUTE) != null) {
BaseBean bb = gson.fromJson(CacheGroup.cacheList.get(KEEP_EVALUTE), BaseBean.class);
if (bb.getCode() == 200) {
pl_submit.setVisibility(View.GONE);
Toast.makeText(con, "评价保存成功", Toast.LENGTH_SHORT).show();
hyr.startOrder(id);
hyr.getEvaluate(id);
@@ -234,7 +238,7 @@ public class StartYunDanActivity extends BaseActivity {
}
ImageView head_img = v.findViewById(R.id.head_img);
if (ub != null && ub.getData() != null && !ub.getData().getHeadportraitUrl().equals("")) {
Glide.with(con).load(ub.getData().getHeadportraitUrl()).into(head_img);
ImageLoader.getInstance().loadImage(con,ub.getData().getHeadportraitUrl(),head_img);
}
break;
default:
@@ -258,7 +262,7 @@ public class StartYunDanActivity extends BaseActivity {
sv2.initView();
sv1.setScore(5);
//设置是否可以修改评分,默认为true
TextView pl_submit = v.findViewById(R.id.pl_submit);
pl_submit = v.findViewById(R.id.pl_submit);
TextView m_pl_value = v.findViewById(R.id.m_pl_value);
TextView pl_value = v.findViewById(R.id.pl_value);
if (wnb.getData() != null) {
@@ -384,8 +388,9 @@ public class StartYunDanActivity extends BaseActivity {
String wid = sdw.getId() + "";
if (sdw.getStatus() == 0) {
if (type == 0) {
Intent in = new Intent(con, ShangChuangImgActivity.class);
Intent in = new Intent(con, ShangChuangImgActivityBC.class);
in.putExtra("type", type);
in.putExtra("reportAlct", sob.getData().getReportAlct());
in.putExtra("wid", wid);
in.putExtra("sob", gson.toJson(sob));
in.putExtra("keys", key);
@@ -394,15 +399,17 @@ public class StartYunDanActivity extends BaseActivity {
Toast.makeText(con, "您还没有装货", Toast.LENGTH_SHORT).show();
}
} else if (sdw.getStatus() == 1) {//装货回单
Intent in = new Intent(con, ShangChuangImgActivity.class);
Intent in = new Intent(con, ShangChuangImgActivityBC.class);
in.putExtra("type", 2);
in.putExtra("reportAlct", sob.getData().getReportAlct());
in.putExtra("wid", wid);
in.putExtra("h_type", type);
in.putExtra("sob", gson.toJson(sob));
startActivity(in);
} else if (sdw.getStatus() == 2) {//上传收货单(卸货回单)
Intent in = new Intent(con, ShangChuangImgActivity.class);
Intent in = new Intent(con, ShangChuangImgActivityBC.class);
in.putExtra("type", 2);
in.putExtra("reportAlct", sob.getData().getReportAlct());
in.putExtra("wid", wid);
in.putExtra("h_type", type);
in.putExtra("sob", gson.toJson(sob));
@@ -420,8 +427,9 @@ public class StartYunDanActivity extends BaseActivity {
if (zInfo.getReceiptUrl() != null && zInfo.getReceiptUrl().size() > 0) {
int dis = TimeUtil.compareNowDate(TimeUtil.string2Millis(zInfo.getImageTakenDate(), TimeUtil.DEFAULT_FORMAT4));
if (dis > 5) {//大于五分钟可以接单
Intent in = new Intent(con, ShangChuangImgActivity.class);
Intent in = new Intent(con, ShangChuangImgActivityBC.class);
in.putExtra("type", type);
in.putExtra("reportAlct", sob.getData().getReportAlct());
in.putExtra("wid", wid);
in.putExtra("sob", gson.toJson(sob));
in.putExtra("keys", key);
@@ -21,6 +21,7 @@ import com.bumptech.glide.Glide;
import com.arpa.hndahesudintocctmsdriver.R;
import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity;
import com.dahe.mylibrary.utils.ImageLoader;
import java.io.File;
import java.io.FileOutputStream;
@@ -58,7 +59,7 @@ public class VideoReleaseActivity extends BaseActivity {
public void initView(Object obj) {
super.initView(obj);
getFirstframe(videoPath);
Glide.with(con).load(new File(coverPath)).into(video_cover);
ImageLoader.getInstance().loadImage(con,new File(coverPath),video_cover);
}
public void submit(View v){
@@ -8,6 +8,7 @@ import android.widget.TextView;
import androidx.annotation.Nullable;
import com.bumptech.glide.Glide;
import com.dahe.mylibrary.utils.ImageLoader;
import com.google.gson.Gson;
import com.lxj.xpopup.XPopup;
import com.arpa.hndahesudintocctmsdriver.R;
@@ -72,7 +73,7 @@ public class GetShangChuanActivity extends BaseActivity {
//coordinate.setText(StringUtil.isNull(sdw.getLongitude(),"")+","+StringUtil.isNull(sdw.getLatitude(),""));
//coordinate2.setText(StringUtil.isNull(sdw.getReceiptLongitude(),"")+","+StringUtil.isNull(sdw.getReceiptLatitude(),""));
if(sdw.getSendPutImagesUrl()!=null && sdw.getSendPutImagesUrl().size()>=1){
Glide.with(con).load(sdw.getSendPutImagesUrl().get(0)).into(img1);
ImageLoader.getInstance().loadImage(con,sdw.getSendPutImagesUrl().get(0),img1);
img1.setOnClickListener(v -> {
new XPopup.Builder(con)
.asImageViewer(img1,sdw.getSendPutImagesUrl().get(0), new SmartGlideImageLoader(R.mipmap.ic_launcher))
@@ -83,7 +84,7 @@ public class GetShangChuanActivity extends BaseActivity {
});
}
if(sdw.getReceiptUrl()!=null && sdw.getReceiptUrl().size()>=1){
Glide.with(con).load(sdw.getReceiptUrl().get(0)).into(img2);
ImageLoader.getInstance().loadImage(con,sdw.getReceiptUrl().get(0),img2);
img2.setOnClickListener(v -> {
new XPopup.Builder(con)
.asImageViewer(img2,sdw.getReceiptUrl().get(0), new SmartGlideImageLoader(R.mipmap.ic_launcher))
@@ -27,13 +27,17 @@ import com.alct.mdp.model.Location;
import com.alct.mdp.model.ShipmentStatusEnum;
import com.arpa.hndahesudintocctmsdriver.BuildConfig;
import com.arpa.hndahesudintocctmsdriver.bean.CarInfoBean;
import com.arpa.hndahesudintocctmsdriver.bean.GDImage;
import com.arpa.hndahesudintocctmsdriver.bean.GDLocation;
import com.arpa.hndahesudintocctmsdriver.bean.WaybillStatusBean;
import com.arpa.hndahesudintocctmsdriver.event.HomeWaybillEvent;
import com.arpa.hndahesudintocctmsdriver.report.JTTProcess;
import com.arpa.hndahesudintocctmsdriver.request.OCRRequest;
import com.arpa.hndahesudintocctmsdriver.request.bean.TrackInputBean;
import com.arpa.hndahesudintocctmsdriver.ui.MainActivity;
import com.arpa.hndahesudintocctmsdriver.util.BitmapUtil;
import com.arpa.hndahesudintocctmsdriver.util.MessageUtils;
import com.arpa.hndahesudintocctmsdriver.util.NewLJUtils;
import com.arpa.hndahesudintocctmsdriver.util.NfcUtils;
import com.arpa.hndahesudintocctmsdriver.util.SPUtils;
import com.arpa.hndahesudintocctmsdriver.util.alert.ToastUtil;
@@ -42,7 +46,10 @@ import com.arpa.hndahesudintocctmsdriver.util.location.LocationUtil;
import com.baidu.mapapi.model.LatLng;
import com.baidu.mapapi.utils.CoordinateConverter;
import com.bumptech.glide.Glide;
import com.dahe.mylibrary.callback.OnGDDownloadResultListener;
import com.dahe.mylibrary.callback.OnGDResultListener;
import com.dahe.mylibrary.utils.ActivityUtils;
import com.dahe.mylibrary.utils.ImageLoader;
import com.dahe.mylibrary.utils.ToastUtils;
import com.google.gson.Gson;
import com.luck.picture.lib.PictureSelector;
@@ -82,6 +89,7 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
private String[] names = {"装货", "卸货", "回单"};
public static String[] TYPE_NAME = {"zhuanghuo", "xiehuo", "huidan"};
private int index = 0;
private int reportAlct = 1;//是否上报(安联城通) 0否 1是'
//
private Gson gson = new Gson();
//
@@ -107,6 +115,11 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
public void msgMethod(Message m) {
super.msgMethod(m);
switch (m.what) {
case RequsetCodeConstants.ERROR:
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
break;
case RequsetCodeConstants.SUCCESS:
if (CacheGroup.cacheList.get("upload") != null) {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
@@ -117,7 +130,7 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
if (ub.getCode() == 200) {
imgIds.add(ub.getData().getId());
// Glide.with(con).load(ub.getData().getUrl()).into(res_img);
Glide.with(con).load(path).into(res_img);
ImageLoader.getInstance().loadImage(con,path,res_img);
res_img.setVisibility(View.VISIBLE);
img_delete.setVisibility(View.VISIBLE);
img_icon.setVisibility(View.GONE);
@@ -127,6 +140,17 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
}
CacheGroup.cacheList.remove("upload");
}
if (CacheGroup.cacheList.get("genzong") != null) {
BaseBean bb = gson.fromJson(CacheGroup.cacheList.get("genzong"), BaseBean.class);
if (bb.getCode() == 200) {
Log.e("--轨迹上传--", "成功");
} else {
Log.e("--轨迹上传失败:--", bb.getMsg());
}
CacheGroup.cacheList.remove("genzong");
}
if (CacheGroup.cacheList.get("waybillStatus") != null) {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
@@ -161,6 +185,13 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
EventBus.getDefault().post(new HomeWaybillEvent());
Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
finish();
}else if (reportAlct==0){
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
EventBus.getDefault().post(new HomeWaybillEvent());
Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
finish();
}
} else if ((0 == index || 1 == index) && isFinish) {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
@@ -174,6 +205,8 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
EventBus.getDefault().post(new HomeWaybillEvent());
finish();
Toast.makeText(con, bb.getMsg(), Toast.LENGTH_SHORT).show();
}
CacheGroup.cacheList.remove(TYPE_NAME[i]);
@@ -304,6 +337,7 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
tips_x = findViewById(R.id.tips_x);
Bundle ins = getIntent().getExtras();
index = ins.getInt("type");
reportAlct = ins.getInt("reportAlct");
wid = ins.getString("wid");
h_type = ins.getInt("h_type");
keys = ins.getBoolean("keys");
@@ -456,29 +490,60 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
Log.e("--装货信息", gson.toJson(lub));
if (locationKey) {//高德定位
if (keys) {
MDPLocationCollectionManager.getShipmentStatus(con, sob.getData().getShippingNoteNumber(), new OnDownloadResultListener() {
@Override
public void onSuccess(Object o) {
String string = o.toString();
if (string.equals("PICKUPED")) {//安联装货,单平台未装货
isFinish = true;
//平台确认装货
hyr.loading(lub);
} else {
nfc();
loadInfo();
if (1==reportAlct){
NewLJUtils.getInstance().getShipmentStatus(con, sob.getData().getShippingNoteNumber(), new OnGDDownloadResultListener() {
@Override
public void onSuccess(String var1) {
String string = var1;
if (string.equals("30")) {//安联装货,单平台未装货
isFinish = true;
//平台确认装货
hyr.loading(lub);
} else {
// nfc();
loadInfo();
}
upLocation(lgdu.getLatitude() + "", lgdu.getLongitude() + "",sob.getData().getShippingNoteNumber());
// NewLJUtils.getInstance().startLocationService(ShangChuangImgActivity.this);
}
}
@Override
public void onFailure(String s, String s1) {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
@Override
public void onFailure(String var1, String var2) {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
ToastUtils.showToast(con, var2);
}
ToastUtils.showToast(con, s1);
}
});
});
}else{
isFinish = true;
//平台确认装货
hyr.loading(lub);
}
// MDPLocationCollectionManager.getShipmentStatus(con, sob.getData().getShippingNoteNumber(), new OnDownloadResultListener() {
// @Override
// public void onSuccess(Object o) {
//
// String string = o.toString();
// if (string.equals("PICKUPED")) {//安联装货,单平台未装货
// isFinish = true;
// //平台确认装货
// hyr.loading(lub);
// } else {
// nfc();
// loadInfo();
// }
// }
//
// @Override
// public void onFailure(String s, String s1) {
// if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
// customDialog.dismiss();
// }
// ToastUtils.showToast(con, s1);
// }
// });
// nfc();
@@ -511,27 +576,58 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
Log.e("--卸货信息", gson.toJson(lub));
if (locationKey) {
if (keys) {
MDPLocationCollectionManager.getShipmentStatus(con, sob.getData().getShippingNoteNumber(), new OnDownloadResultListener() {
@Override
public void onSuccess(Object o) {
if (o.toString().equals("UNLOADED")) {//安联装货,单平台未装货
//卸货状态-平台
isFinish = true;
hyr.dischargeCargo(lub);
} else {
nfc();
uploadInfo();
if (1==reportAlct){
NewLJUtils.getInstance().getShipmentStatus(con, sob.getData().getShippingNoteNumber(), new OnGDDownloadResultListener() {
@Override
public void onSuccess(String var1) {
if (var1.equals("40")) {//安联装货,单平台未装货
//卸货状态-平台
isFinish = true;
hyr.dischargeCargo(lub);
} else {
nfc();
uploadInfo();
}
upLocation(lgdu.getLatitude() + "", lgdu.getLongitude() + "",sob.getData().getShippingNoteNumber());
// NewLJUtils.getInstance().stopLocationService();
}
}
@Override
public void onFailure(String s, String s1) {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
@Override
public void onFailure(String var1, String var2) {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
ToastUtils.showToast(con, var2);
}
ToastUtils.showToast(con, s1);
}
});
});
}else {
//卸货状态-平台
isFinish = true;
hyr.dischargeCargo(lub);
}
// MDPLocationCollectionManager.getShipmentStatus(con, sob.getData().getShippingNoteNumber(), new OnDownloadResultListener() {
// @Override
// public void onSuccess(Object o) {
// if (o.toString().equals("UNLOADED")) {//安联装货,单平台未装货
// //卸货状态-平台
// isFinish = true;
// hyr.dischargeCargo(lub);
// } else {
// nfc();
// uploadInfo();
// }
// }
//
// @Override
// public void onFailure(String s, String s1) {
// if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
// customDialog.dismiss();
// }
// ToastUtils.showToast(con, s1);
// }
// });
// nfc();
@@ -568,9 +664,11 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
Log.e("--回单信息", gson.toJson(urib));
if (locationKey) {
if (index == 2 && keys) {
up_trafficSign();
up_trafficReceipt();
receipt_image();
if (1==reportAlct){
up_trafficSign();
}
// up_trafficReceipt();
// receipt_image();
}
hyr.receipt(urib);
} else {
@@ -617,7 +715,7 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
//上传安联-签收
public void up_trafficSign() {
//安联
Location l = new Location();
GDLocation l = new GDLocation();
l.setBaiduLongitude(latLng.longitude);
l.setBaiduLatitude(latLng.latitude);
l.setLocation(lgdu.getAddress());
@@ -641,56 +739,86 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
}
}
}
MDPLocationCollectionManager.sign(con, sob.getData().getShippingNoteNumber(), l, gs, new com.alct.mdp.callback.OnResultListener() {
NewLJUtils.getInstance().sign(con, sob.getData().getShippingNoteNumber(), l, new OnGDResultListener() {
@Override
public void onSuccess() {
NewLJUtils.getInstance().stopLocationService();
up_trafficReceipt();
receipt_image();
Log.e("上报安联", "签收成功");
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(签收):", s + s1);
public void onFailure(String var1, String var2) {
Log.e("上报安联失败(签收):", var1 + var2);
}
});
// MDPLocationCollectionManager.sign(con, sob.getData().getShippingNoteNumber(), l, gs, new com.alct.mdp.callback.OnResultListener() {
// @Override
// public void onSuccess() {
// Log.e("上报安联", "签收成功");
// }
//
// @Override
// public void onFailure(String s, String s1) {
// Log.e("上报安联失败(签收):", s + s1);
// }
// });
}
//上传安联-回单
public void up_trafficReceipt() {
//安联
Location l = new Location();
GDLocation l = new GDLocation();
l.setBaiduLongitude(latLng.longitude);
l.setBaiduLatitude(latLng.latitude);
l.setLocation(lgdu.getAddress());
l.setTime(Timer.getTimerT());
MDPLocationCollectionManager.pod(con, sob.getData().getShippingNoteNumber(), l, new com.alct.mdp.callback.OnResultListener() {
NewLJUtils.getInstance().pod(con, sob.getData().getShippingNoteNumber(), l, new OnGDResultListener() {
@Override
public void onSuccess() {
Log.e("上报安联", "回单上传成功");
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(回单):", s + s1);
public void onFailure(String var1, String var2) {
Log.e("上报安联失败(回单):", var1 + var2);
}
});
// MDPLocationCollectionManager.pod(con, sob.getData().getShippingNoteNumber(), l, new com.alct.mdp.callback.OnResultListener() {
//
// @Override
// public void onSuccess() {
// Log.e("上报安联", "回单上传成功");
// }
//
// @Override
// public void onFailure(String s, String s1) {
// Log.e("上报安联失败(回单):", s + s1);
// }
//
// });
}
public void up_image_z() {
///storage/emulated/0/Android/data/com.oneclouds.wangluohuoyun/files/Pictures/163124593063154.jpg
File file = new File(path);
Image image = new Image();
GDImage image = new GDImage();
String base = BitmapUtil.imageToBase64(path);
image.setFileData("data:image/" + FileUtil.lastName(file) + ";base64," + base);
image.setFileExt(FileUtil.lastName(file));
image.setFileName(FileUtil.fileName(file));
image.setImageTakenDate(Timer.getTimerT());
image.setTime(Timer.getTimerT());
image.setBaiduLongitude(latLng.longitude);
image.setBaiduLatitude(latLng.latitude);
image.setLocation(lgdu.getAddress());
MDPLocationCollectionManager.uploadPickupImage(con, sob.getData().getShippingNoteNumber(), image, new com.alct.mdp.callback.OnResultListener() {
String json = new Gson().toJson(image);
NewLJUtils.getInstance().uploadPickupImage(con, sob.getData().getShippingNoteNumber(), image, new OnGDResultListener() {
@Override
public void onSuccess() {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
@@ -703,30 +831,50 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(装货照片):", s + s1);
// SPUtil.insSP(con,"make","装货",sob.getData().getShippingNoteNumber());
// SPUtil.insSP(con,"make","装货-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
// Intent serviceIn=new Intent(con, MakeUpAlService.class);
// startService(serviceIn);
public void onFailure(String var1, String var2) {
Log.e("上报安联失败(装货照片):", var1 + var2);
}
});
// MDPLocationCollectionManager.uploadPickupImage(con, sob.getData().getShippingNoteNumber(), image, new com.alct.mdp.callback.OnResultListener() {
//
// @Override
// public void onSuccess() {
// if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
// customDialog.dismiss();
// }
// EventBus.getDefault().post(new HomeWaybillEvent());
// Log.e("上报安联", "装货照片上传成功");
// Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
// finish();
// }
//
// @Override
// public void onFailure(String s, String s1) {
// Log.e("上报安联失败(装货照片):", s + s1);
//// SPUtil.insSP(con,"make","装货",sob.getData().getShippingNoteNumber());
//// SPUtil.insSP(con,"make","装货-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
//// Intent serviceIn=new Intent(con, MakeUpAlService.class);
//// startService(serviceIn);
// }
//
// });
}
public void up_image() {
File file = new File(path);
Image image = new Image();
GDImage image = new GDImage();
String base = BitmapUtil.imageToBase64(path);
image.setFileData("data:image/" + FileUtil.lastName(file) + ";base64," + base);
image.setFileExt(FileUtil.lastName(file));
image.setFileName(FileUtil.fileName(file));
image.setImageTakenDate(Timer.getTimerT());
image.setTime(Timer.getTimerT());
image.setBaiduLongitude(latLng.longitude);
image.setBaiduLatitude(latLng.latitude);
image.setLocation(lgdu.getAddress());
MDPLocationCollectionManager.uploadUnloadImage(con, sob.getData().getShippingNoteNumber(), image, new com.alct.mdp.callback.OnResultListener() {
NewLJUtils.getInstance().uploadUnloadImage(con, sob.getData().getShippingNoteNumber(), image, new OnGDResultListener() {
@Override
public void onSuccess() {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
@@ -739,34 +887,56 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(卸货照片):", s + s1);
public void onFailure(String var1, String var2) {
Log.e("上报安联失败(卸货照片):", var1 + var2);
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
// SPUtil.insSP(con,"make","卸货",sob.getData().getShippingNoteNumber());
// SPUtil.insSP(con,"make","卸货-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
// Intent serviceIn=new Intent(con, MakeUpAlService.class);
// startService(serviceIn);
}
});
// MDPLocationCollectionManager.uploadUnloadImage(con, sob.getData().getShippingNoteNumber(), image, new com.alct.mdp.callback.OnResultListener() {
//
// @Override
// public void onSuccess() {
// if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
// customDialog.dismiss();
// }
// EventBus.getDefault().post(new HomeWaybillEvent());
// Log.e("上报安联", "卸货照片上传成功");
// Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
// finish();
// }
//
// @Override
// public void onFailure(String s, String s1) {
// Log.e("上报安联失败(卸货照片):", s + s1);
// if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
// customDialog.dismiss();
// }
//// SPUtil.insSP(con,"make","卸货",sob.getData().getShippingNoteNumber());
//// SPUtil.insSP(con,"make","卸货-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
//// Intent serviceIn=new Intent(con, MakeUpAlService.class);
//// startService(serviceIn);
// }
//
// });
}
public void receipt_image() {
///storage/emulated/0/Android/data/com.oneclouds.wangluohuoyun/files/Pictures/163124593063154.jpg
File file = new File(path);
Image image = new Image();
GDImage image = new GDImage();
String base = BitmapUtil.imageToBase64(path);
image.setFileData("data:image/" + FileUtil.lastName(file) + ";base64," + base);
image.setFileExt(FileUtil.lastName(file));
image.setFileName(FileUtil.fileName(file));
image.setImageTakenDate(Timer.getTimerT());
image.setTime(Timer.getTimerT());
image.setBaiduLongitude(latLng.longitude);
image.setBaiduLatitude(latLng.latitude);
image.setLocation(lgdu.getAddress());
MDPLocationCollectionManager.uploadPODImage(con, sob.getData().getShippingNoteNumber(), image, new com.alct.mdp.callback.OnResultListener() {
NewLJUtils.getInstance().uploadPODImage(con, sob.getData().getShippingNoteNumber(), image, new OnGDResultListener() {
@Override
public void onSuccess() {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
@@ -780,15 +950,34 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(回单照片):", s + s1);
// SPUtil.insSP(con,"make","回单",sob.getData().getShippingNoteNumber());
//// SPUtil.insSP(con,"make","回单-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
//// Intent serviceIn=new Intent(con, MakeUpAlService.class);
//// startService(serviceIn);
public void onFailure(String var1, String var2) {
Log.e("上报安联失败(回单照片):", var1 + var2);
}
});
// MDPLocationCollectionManager.uploadPODImage(con, sob.getData().getShippingNoteNumber(), image, new com.alct.mdp.callback.OnResultListener() {
//
// @Override
// public void onSuccess() {
// if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
// customDialog.dismiss();
// }
// SPUtils.remove(con, "curWaybillId");
// EventBus.getDefault().post(new HomeWaybillEvent());
// Log.e("上报安联", "回单照片上传成功");
// Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
// finish();
// }
//
// @Override
// public void onFailure(String s, String s1) {
// Log.e("上报安联失败(回单照片):", s + s1);
//// SPUtil.insSP(con,"make","回单",sob.getData().getShippingNoteNumber());
////// SPUtil.insSP(con,"make","回单-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
////// Intent serviceIn=new Intent(con, MakeUpAlService.class);
////// startService(serviceIn);
// }
//
// });
}
@Override
@@ -827,12 +1016,13 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
private void loadInfo() {
//安联
if (sob.getData().getReportAlct() == 1) {
Location l = new Location();
GDLocation l = new GDLocation();
l.setBaiduLongitude(latLng.longitude);
l.setBaiduLatitude(latLng.latitude);
l.setLocation(lgdu.getAddress());
l.setTime(Timer.getTimerT());
MDPLocationCollectionManager.pickup(con, sob.getData().getShippingNoteNumber(), l, new com.alct.mdp.callback.OnResultListener() {
NewLJUtils.getInstance().pickUp(con, sob.getData().getShippingNoteNumber(), l, new OnGDResultListener() {
@Override
public void onSuccess() {
Log.e("上报安联", "装货上传成功");
@@ -840,6 +1030,7 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
if (sob.getData().getReport() == 1) {
JTTProcess.start(con, sob, "");
}
NewLJUtils.getInstance().startLocationService(ShangChuangImgActivity.this);
//装货状态
hyr.loading(lub);
//装货照片
@@ -847,14 +1038,39 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(装货):", s + s1);
public void onFailure(String var1, String var2) {
Log.e("上报安联失败(装货):", var1 + var2);
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
new MessageUtils().showCenMessage(con, s1);
new MessageUtils().showCenMessage(con, var2);
}
});
// MDPLocationCollectionManager.pickup(con, sob.getData().getShippingNoteNumber(), l, new com.alct.mdp.callback.OnResultListener() {
// @Override
// public void onSuccess() {
// Log.e("上报安联", "装货上传成功");
// //交通厅
// if (sob.getData().getReport() == 1) {
// JTTProcess.start(con, sob, "");
// }
// //装货状态
// hyr.loading(lub);
// //装货照片
// up_image_z();
// }
//
// @Override
// public void onFailure(String s, String s1) {
// Log.e("上报安联失败(装货):", s + s1);
// if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
// customDialog.dismiss();
// }
// new MessageUtils().showCenMessage(con, s1);
// }
// });
}
}
@@ -866,13 +1082,14 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
//安联
if (sob.getData().getReportAlct() == 1) {
Location l = new Location();
GDLocation l = new GDLocation();
l.setBaiduLongitude(latLng.longitude);
l.setBaiduLatitude(latLng.latitude);
l.setLocation(lgdu.getAddress());
l.setTime(Timer.getTimerT());
Log.e("-安联卸货信息-", gson.toJson(l));
MDPLocationCollectionManager.unload(con, sob.getData().getShippingNoteNumber(), l, new com.alct.mdp.callback.OnResultListener() {
NewLJUtils.getInstance().unload(con, sob.getData().getShippingNoteNumber(), l, new OnGDResultListener() {
@Override
public void onSuccess() {
Log.e("上报安联", "卸货上传成功");
@@ -880,6 +1097,7 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
if (sob.getData().getReport() == 1) {
JTTProcess.stop(con, sob, "");
}
//卸货状态-平台
hyr.dischargeCargo(lub);
//卸货照片-安联
@@ -887,17 +1105,48 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(卸货):", s + s1);
public void onFailure(String var1, String var2) {
Log.e("上报安联失败(卸货):", var1 + var2);
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
new MessageUtils().showCenMessage(con, s1);
new MessageUtils().showCenMessage(con, var2);
}
});
// MDPLocationCollectionManager.unload(con, sob.getData().getShippingNoteNumber(), l, new com.alct.mdp.callback.OnResultListener() {
// @Override
// public void onSuccess() {
// Log.e("上报安联", "卸货上传成功");
// //交通厅
// if (sob.getData().getReport() == 1) {
// JTTProcess.stop(con, sob, "");
// }
// //卸货状态-平台
// hyr.dischargeCargo(lub);
// //卸货照片-安联
// up_image();
// }
//
// @Override
// public void onFailure(String s, String s1) {
// Log.e("上报安联失败(卸货):", s + s1);
// if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
// customDialog.dismiss();
// }
// new MessageUtils().showCenMessage(con, s1);
// }
// });
}
}
private void upLocation(String lat,String lon,String shippingNoteNumber){
TrackInputBean tib = new TrackInputBean();
tib.setLatitude(lat);
tib.setLongitude(lon);
tib.setShippingNoteNumber(shippingNoteNumber);
hyr.trackTracking(tib);
}
}
@@ -36,16 +36,22 @@ import com.amap.api.services.help.Tip;
import com.arpa.hndahesudintocctmsdriver.R;
import com.arpa.hndahesudintocctmsdriver.bean.BaseBean;
import com.arpa.hndahesudintocctmsdriver.bean.CarInfoBean;
import com.arpa.hndahesudintocctmsdriver.bean.GDImage;
import com.arpa.hndahesudintocctmsdriver.bean.GDLocation;
import com.arpa.hndahesudintocctmsdriver.bean.StartOrderBean;
import com.arpa.hndahesudintocctmsdriver.bean.UploadBean;
import com.arpa.hndahesudintocctmsdriver.event.HomeWaybillEvent;
import com.arpa.hndahesudintocctmsdriver.report.JTTProcess;
import com.arpa.hndahesudintocctmsdriver.request.HuoYuanRequset;
import com.arpa.hndahesudintocctmsdriver.request.OCRRequest;
import com.arpa.hndahesudintocctmsdriver.request.bean.LUInputBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.TrackInputBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.UploadReceiptInputBean;
import com.arpa.hndahesudintocctmsdriver.util.BitmapUtil;
import com.arpa.hndahesudintocctmsdriver.util.MessageUtils;
import com.arpa.hndahesudintocctmsdriver.util.NewLJUtils;
import com.arpa.hndahesudintocctmsdriver.util.NfcUtils;
import com.arpa.hndahesudintocctmsdriver.util.SPUtils;
import com.arpa.hndahesudintocctmsdriver.util.alert.CustomDialog;
import com.arpa.hndahesudintocctmsdriver.util.alert.ToastUtil;
import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup;
@@ -61,6 +67,8 @@ import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity;
import com.baidu.mapapi.model.LatLng;
import com.baidu.mapapi.utils.CoordinateConverter;
import com.bumptech.glide.Glide;
import com.dahe.mylibrary.callback.OnGDDownloadResultListener;
import com.dahe.mylibrary.callback.OnGDResultListener;
import com.dahe.mylibrary.utils.ToastUtils;
import com.github.gzuliyujiang.wheelpicker.DatePicker;
import com.github.gzuliyujiang.wheelpicker.DatimePicker;
@@ -78,6 +86,8 @@ import com.lxj.xpopup.XPopup;
import com.lxj.xpopup.interfaces.OnSelectListener;
import com.lxj.xpopup.util.SmartGlideImageLoader;
import org.greenrobot.eventbus.EventBus;
import java.io.File;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
@@ -108,6 +118,8 @@ public class ShangChuangImgActivityBC extends BaseAppCompatActivity implements I
private GetCarImageAlert gia = new GetCarImageAlert();
private CustomDialog customDialog;
private int id = 0;
private int reportAlct = 1;//是否上报(安联城通) 0否 1是'
private boolean key = true;
private boolean keys = false;
private boolean locationKey = false;
@@ -119,6 +131,7 @@ public class ShangChuangImgActivityBC extends BaseAppCompatActivity implements I
private TempLoca tempLoca = new TempLoca();
private TempLoca tempLocaBd = new TempLoca();
private boolean isFinish = false;
@Override
@@ -247,12 +260,35 @@ public class ShangChuangImgActivityBC extends BaseAppCompatActivity implements I
BaseBean bb = gson.fromJson(CacheGroup.cacheList.get(TYPE_NAME[i]), BaseBean.class);
if (bb.getCode() == 200) {
if (index == 2) {
if (!keys){//装货回单
if (!keys) {//装货回单
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
EventBus.getDefault().post(new HomeWaybillEvent());
Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
finish();
}else if (reportAlct==0){
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
EventBus.getDefault().post(new HomeWaybillEvent());
Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
finish();
}
} else if ((0 == index || 1 == index) && isFinish) {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
EventBus.getDefault().post(new HomeWaybillEvent());
Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
finish();
}
} else {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
EventBus.getDefault().post(new HomeWaybillEvent());
finish();
Toast.makeText(con, bb.getMsg(), Toast.LENGTH_SHORT).show();
}
CacheGroup.cacheList.remove(TYPE_NAME[i]);
@@ -367,6 +403,7 @@ public class ShangChuangImgActivityBC extends BaseAppCompatActivity implements I
tips_x = findViewById(R.id.tips_x);
Bundle ins = getIntent().getExtras();
index = ins.getInt("type");
reportAlct = ins.getInt("reportAlct");
wid = ins.getString("wid");
h_type = ins.getInt("h_type");
keys = ins.getBoolean("keys");
@@ -374,17 +411,17 @@ public class ShangChuangImgActivityBC extends BaseAppCompatActivity implements I
//Log.e("---sdwStr--",sdwStr);
sob = new Gson().fromJson(sobStr, StartOrderBean.class);
initView(null);
customDialog = new CustomDialog(con, "正在定位当前位置...");
customDialog.show();
lgdu = new LocationGDUtil(con, hd);
//启动定位
lgdu.onCreate();
tv_loaction.setOnClickListener(v -> {
if (!locationKey) {
customDialog.show();
lgdu.onCreate();
}
});
// customDialog = new CustomDialog(con, "正在定位当前位置...");
// customDialog.show();
// lgdu = new LocationGDUtil(con, hd);
// //启动定位
// lgdu.onCreate();
// tv_loaction.setOnClickListener(v -> {
// if (!locationKey) {
// customDialog.show();
// lgdu.onCreate();
// }
// });
btnOk.setOnClickListener(v -> {
String s = etAddress.getText().toString();
@@ -414,12 +451,12 @@ public class ShangChuangImgActivityBC extends BaseAppCompatActivity implements I
datimePicker.setBodyWidth(300);
datimePicker.getWheelLayout().setRange(DatimeEntity.yearOnFuture(-1),DatimeEntity.yearOnFuture(10),DatimeEntity.now());
datimePicker.setOnDatimePickedListener((year, month, day, hour, minute, second) -> {
selDate = year+"-"+month+"-"+day+" "+ hour+":"+minute;
selDate = year+"-"+month+"-"+day+'T'+hour+":"+minute+":"+second;
tvDate.setText(selDate);
});
datimePicker.getWheelLayout().setDateLabel("", "", "");
datimePicker.getWheelLayout().setTimeLabel("","","");
datimePicker.getWheelLayout().setTimeMode(TimeMode.HOUR_24_NO_SECOND);
datimePicker.getWheelLayout().setTimeMode(TimeMode.HOUR_24_HAS_SECOND);
datimePicker.show();
});
@@ -513,6 +550,10 @@ public class ShangChuangImgActivityBC extends BaseAppCompatActivity implements I
// for(int i=0;i<imgIds.size();i++){
// Log.e("--imgIds--",imgIds.get(i)+"");
// }
if (customDialog != null && !customDialog.isShowing()) {
customDialog = new CustomDialog(con, "网络请求中...");
customDialog.show();
}
switch (index) {
case 0:
//装货
@@ -523,18 +564,52 @@ public class ShangChuangImgActivityBC extends BaseAppCompatActivity implements I
lub.setImageId(imgIds);
lub.setWaybillId(wid);
Log.e("--装货信息", gson.toJson(lub));
if (locationKey) {//高德定位
// if (locationKey) {//高德定位
if (keys) {
nfc();
loadInfo();
// up_traffic_start();
// up_image_z();
if (1==reportAlct){
NewLJUtils.getInstance().getShipmentStatus(con, sob.getData().getShippingNoteNumber(), new OnGDDownloadResultListener() {
@Override
public void onSuccess(String var1) {
String string = var1;
if (string.equals("30")) {//安联装货,单平台未装货
isFinish = true;
//平台确认装货
hyr.loading(lub);
} else {
// nfc();
loadInfo();
}
upLocation(tempLoca.getLatitude() + "", tempLoca.getLongitude() + "",sob.getData().getShippingNoteNumber());
// NewLJUtils.getInstance().startLocationService(ShangChuangImgActivity.this);
}
@Override
public void onFailure(String var1, String var2) {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
ToastUtils.showToast(con, var2);
}
});
}else{
isFinish = true;
//平台确认装货
upLocation(tempLoca.getLatitude() + "", tempLoca.getLongitude() + "",sob.getData().getShippingNoteNumber());
hyr.loading(lub);
}
}
} else {
Toast.makeText(con, "定位异常,请重新定位", Toast.LENGTH_SHORT).show();
}
// } else {
// if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
// customDialog.dismiss();
// }
// Toast.makeText(con, "定位异常,请重新定位", Toast.LENGTH_SHORT).show();
// }
} else {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
Toast.makeText(con, "图片上传异常,请重新上传", Toast.LENGTH_SHORT).show();
}
break;
@@ -546,29 +621,63 @@ public class ShangChuangImgActivityBC extends BaseAppCompatActivity implements I
lub.setLocationAddress(tempLoca.getAddress());
lub.setImageId(imgIds);
lub.setWaybillId(wid);
lub.setRealLoadTime(tempLoca.getTime());
Log.e("--卸货信息", gson.toJson(lub));
if (locationKey&&!TextUtils.isEmpty(tempLoca.address)) {
// if (locationKey) {
if (keys) {
nfc();
uploadInfo();
if (1==reportAlct){
NewLJUtils.getInstance().getShipmentStatus(con, sob.getData().getShippingNoteNumber(), new OnGDDownloadResultListener() {
@Override
public void onSuccess(String var1) {
if (var1.equals("40")) {//安联装货,单平台未装货
//卸货状态-平台
isFinish = true;
hyr.dischargeCargo(lub);
} else {
nfc();
uploadInfo();
}
upLocation(tempLoca.getLatitude() + "", tempLoca.getLongitude() + "",sob.getData().getShippingNoteNumber());
// NewLJUtils.getInstance().stopLocationService();
}
@Override
public void onFailure(String var1, String var2) {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
ToastUtils.showToast(con, var2);
}
});
}else{
//卸货状态-平台
isFinish = true;
upLocation(tempLoca.getLatitude() + "", tempLoca.getLongitude() + "",sob.getData().getShippingNoteNumber());
hyr.dischargeCargo(lub);
}
}
} else {
Toast.makeText(con, "定位异常,请重新定位", Toast.LENGTH_SHORT).show();
}
// } else {
// if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
// customDialog.dismiss();
// }
// Toast.makeText(con, "定位异常,请重新定位", Toast.LENGTH_SHORT).show();
// }
} else {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
Toast.makeText(con, "图片上传异常,请重新上传", Toast.LENGTH_SHORT).show();
}
break;
case 2:
if (imgIds != null && imgIds.size() > 0) {//卸货回单
//上传回单
urib.setLatitude(lgdu.getLatitude() + "");
urib.setLongitude(lgdu.getLongitude() + "");
urib.setLocationAddress(lgdu.getAddress());
urib.setLatitude(tempLoca.getLatitude() + "");
urib.setLongitude(tempLoca.getLongitude() + "");
urib.setLocationAddress(tempLoca.getAddress());
//装卸货类型
urib.setType(h_type + 1);
//回单id 数组
@@ -576,17 +685,25 @@ public class ShangChuangImgActivityBC extends BaseAppCompatActivity implements I
//子运运单ID
urib.setWaybillId(wid);
Log.e("--回单信息", gson.toJson(urib));
if (locationKey) {
if (index == 2 && keys && !TextUtils.isEmpty(tempLoca.address)) {
up_trafficSign();
up_trafficReceipt();
receipt_image();
// if (locationKey) {
if (index == 2 && keys) {
if (1==reportAlct){
up_trafficSign();
}
// up_trafficReceipt();
// receipt_image();
}
hyr.receipt(urib);
} else {
Toast.makeText(con, "定位异常,请重新定位", Toast.LENGTH_SHORT).show();
}
// } else {
// if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
// customDialog.dismiss();
// }
// Toast.makeText(con, "定位异常,请重新定位", Toast.LENGTH_SHORT).show();
// }
} else {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
Toast.makeText(con, "图片上传异常,请重新上传", Toast.LENGTH_SHORT).show();
}
break;
@@ -621,7 +738,7 @@ public class ShangChuangImgActivityBC extends BaseAppCompatActivity implements I
//上传安联-签收
public void up_trafficSign() {
//安联
Location l = new Location();
GDLocation l = new GDLocation();
l.setBaiduLongitude(tempLocaBd.longitude);
l.setBaiduLatitude(tempLocaBd.latitude);
l.setLocation(tempLocaBd.getAddress());
@@ -645,15 +762,18 @@ public class ShangChuangImgActivityBC extends BaseAppCompatActivity implements I
}
}
}
MDPLocationCollectionManager.sign(con, sob.getData().getShippingNoteNumber(), l, gs, new OnResultListener() {
NewLJUtils.getInstance().sign(con, sob.getData().getShippingNoteNumber(), l, new OnGDResultListener() {
@Override
public void onSuccess() {
// NewLJUtils.getInstance().stopLocationService();
up_trafficReceipt();
receipt_image();
Log.e("上报安联", "签收成功");
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(签收):", s + s1);
public void onFailure(String var1, String var2) {
Log.e("上报安联失败(签收):", var1 + var2);
}
});
}
@@ -661,30 +781,28 @@ public class ShangChuangImgActivityBC extends BaseAppCompatActivity implements I
//上传安联-回单
public void up_trafficReceipt() {
//安联
Location l = new Location();
GDLocation l = new GDLocation();
l.setBaiduLongitude(tempLocaBd.longitude);
l.setBaiduLatitude(tempLocaBd.latitude);
l.setLocation(tempLocaBd.getAddress());
l.setTime(tempLocaBd.getTime());
MDPLocationCollectionManager.pod(con, sob.getData().getShippingNoteNumber(), l, new OnResultListener() {
NewLJUtils.getInstance().pod(con, sob.getData().getShippingNoteNumber(), l, new OnGDResultListener() {
@Override
public void onSuccess() {
Log.e("上报安联", "回单上传成功");
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(回单):", s + s1);
public void onFailure(String var1, String var2) {
Log.e("上报安联失败(回单):", var1 + var2);
}
});
}
public void up_image_z() {
///storage/emulated/0/Android/data/com.oneclouds.wangluohuoyun/files/Pictures/163124593063154.jpg
File file = new File(path);
Image image = new Image();
GDImage image = new GDImage();
String base = BitmapUtil.imageToBase64(path);
image.setFileData("data:image/" + FileUtil.lastName(file) + ";base64," + base);
image.setFileExt(FileUtil.lastName(file));
@@ -693,30 +811,51 @@ public class ShangChuangImgActivityBC extends BaseAppCompatActivity implements I
image.setBaiduLongitude(tempLocaBd.longitude);
image.setBaiduLatitude(tempLocaBd.latitude);
image.setLocation(tempLocaBd.getAddress());
MDPLocationCollectionManager.uploadPickupImage(con, sob.getData().getShippingNoteNumber(), image, new OnResultListener() {
NewLJUtils.getInstance().uploadPickupImage(con, sob.getData().getShippingNoteNumber(), image, new OnGDResultListener() {
@Override
public void onSuccess() {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
EventBus.getDefault().post(new HomeWaybillEvent());
Log.e("上报安联", "装货照片上传成功");
Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
finish();
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(装货照片):", s + s1);
// SPUtil.insSP(con,"make","装货",sob.getData().getShippingNoteNumber());
// SPUtil.insSP(con,"make","装货-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
// Intent serviceIn=new Intent(con, MakeUpAlService.class);
// startService(serviceIn);
public void onFailure(String var1, String var2) {
Log.e("上报安联失败(装货照片):", var1 + var2);
}
});
// MDPLocationCollectionManager.uploadPickupImage(con, sob.getData().getShippingNoteNumber(), image, new OnResultListener() {
//
// @Override
// public void onSuccess() {
// Log.e("上报安联", "装货照片上传成功");
// Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
// finish();
// }
//
// @Override
// public void onFailure(String s, String s1) {
// Log.e("上报安联失败(装货照片):", s + s1);
//// SPUtil.insSP(con,"make","装货",sob.getData().getShippingNoteNumber());
//// SPUtil.insSP(con,"make","装货-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
//// Intent serviceIn=new Intent(con, MakeUpAlService.class);
//// startService(serviceIn);
// }
//
// });
}
public void up_image() {
File file = new File(path);
Image image = new Image();
GDImage image = new GDImage();
String base = BitmapUtil.imageToBase64(path);
image.setFileData("data:image/" + FileUtil.lastName(file) + ";base64," + base);
image.setFileExt(FileUtil.lastName(file));
@@ -725,31 +864,53 @@ public class ShangChuangImgActivityBC extends BaseAppCompatActivity implements I
image.setBaiduLongitude(tempLocaBd.longitude);
image.setBaiduLatitude(tempLocaBd.latitude);
image.setLocation(tempLocaBd.getAddress());
MDPLocationCollectionManager.uploadUnloadImage(con, sob.getData().getShippingNoteNumber(), image, new OnResultListener() {
NewLJUtils.getInstance().uploadUnloadImage(con, sob.getData().getShippingNoteNumber(), image, new OnGDResultListener() {
@Override
public void onSuccess() {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
EventBus.getDefault().post(new HomeWaybillEvent());
Log.e("上报安联", "卸货照片上传成功");
Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
finish();
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(卸货照片):", s + s1);
// SPUtil.insSP(con,"make","卸货",sob.getData().getShippingNoteNumber());
// SPUtil.insSP(con,"make","卸货-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
// Intent serviceIn=new Intent(con, MakeUpAlService.class);
// startService(serviceIn);
public void onFailure(String var1, String var2) {
Log.e("上报安联失败(卸货照片):", var1 + var2);
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
}
});
// MDPLocationCollectionManager.uploadUnloadImage(con, sob.getData().getShippingNoteNumber(), image, new OnResultListener() {
//
// @Override
// public void onSuccess() {
// Log.e("上报安联", "卸货照片上传成功");
// Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
// finish();
// }
//
// @Override
// public void onFailure(String s, String s1) {
// Log.e("上报安联失败(卸货照片):", s + s1);
//// SPUtil.insSP(con,"make","卸货",sob.getData().getShippingNoteNumber());
//// SPUtil.insSP(con,"make","卸货-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
//// Intent serviceIn=new Intent(con, MakeUpAlService.class);
//// startService(serviceIn);
// }
//
// });
}
public void receipt_image() {
///storage/emulated/0/Android/data/com.oneclouds.wangluohuoyun/files/Pictures/163124593063154.jpg
File file = new File(path);
Image image = new Image();
GDImage image = new GDImage();
String base = BitmapUtil.imageToBase64(path);
image.setFileData("data:image/" + FileUtil.lastName(file) + ";base64," + base);
image.setFileExt(FileUtil.lastName(file));
@@ -758,24 +919,23 @@ public class ShangChuangImgActivityBC extends BaseAppCompatActivity implements I
image.setBaiduLongitude(tempLocaBd.longitude);
image.setBaiduLatitude(tempLocaBd.latitude);
image.setLocation(tempLocaBd.getAddress());
MDPLocationCollectionManager.uploadPODImage(con, sob.getData().getShippingNoteNumber(), image, new OnResultListener() {
NewLJUtils.getInstance().uploadPODImage(con, sob.getData().getShippingNoteNumber(), image, new OnGDResultListener() {
@Override
public void onSuccess() {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
SPUtils.remove(con, "curWaybillId");
EventBus.getDefault().post(new HomeWaybillEvent());
Log.e("上报安联", "回单照片上传成功");
Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
finish();
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(回单照片):", s + s1);
// SPUtil.insSP(con,"make","回单",sob.getData().getShippingNoteNumber());
//// SPUtil.insSP(con,"make","回单-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
//// Intent serviceIn=new Intent(con, MakeUpAlService.class);
//// startService(serviceIn);
public void onFailure(String var1, String var2) {
Log.e("上报安联失败(回单照片):", var1 + var2);
}
});
}
@@ -817,19 +977,20 @@ public class ShangChuangImgActivityBC extends BaseAppCompatActivity implements I
private void loadInfo() {
//安联
if (sob.getData().getReportAlct() == 1) {
Location l = new Location();
GDLocation l = new GDLocation();
l.setBaiduLongitude(tempLocaBd.longitude);
l.setBaiduLatitude(tempLocaBd.latitude);
l.setLocation(tempLocaBd.getAddress());
l.setTime(tempLocaBd.getTime());
MDPLocationCollectionManager.pickup(con, sob.getData().getShippingNoteNumber(), l, new OnResultListener() {
NewLJUtils.getInstance().pickUp(con, sob.getData().getShippingNoteNumber(), l, new OnGDResultListener() {
@Override
public void onSuccess() {
Log.e("上报安联", "装货上传成功");
//交通厅
if (sob.getData().getReport() == 1) {
JTTProcess.start(con, sob, "");
}
// if (sob.getData().getReport() == 1) {
// JTTProcess.start(con, sob, "");
// }
// NewLJUtils.getInstance().startLocationService(ShangChuangImgActivityBC.this);
//装货状态
hyr.loading(lub);
//装货照片
@@ -837,11 +998,39 @@ public class ShangChuangImgActivityBC extends BaseAppCompatActivity implements I
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(装货):", s + s1);
new MessageUtils().showCenMessage(con, s1);
public void onFailure(String var1, String var2) {
Log.e("上报安联失败(装货):", var1 + var2);
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
new MessageUtils().showCenMessage(con, var2);
}
});
// MDPLocationCollectionManager.pickup(con, sob.getData().getShippingNoteNumber(), l, new OnResultListener() {
// @Override
// public void onSuccess() {
// Log.e("上报安联", "装货上传成功");
// //交通厅
// if (sob.getData().getReport() == 1) {
// JTTProcess.start(con, sob, "");
// }
// //装货状态
// hyr.loading(lub);
// //装货照片
// up_image_z();
// }
//
// @Override
// public void onFailure(String s, String s1) {
// Log.e("上报安联失败(装货):", s + s1);
// new MessageUtils().showCenMessage(con, s1);
// }
// });
}
}
@@ -853,37 +1042,72 @@ public class ShangChuangImgActivityBC extends BaseAppCompatActivity implements I
//安联
if (sob.getData().getReportAlct() == 1) {
Location l = new Location();
GDLocation l = new GDLocation();
l.setBaiduLongitude(tempLocaBd.longitude);
l.setBaiduLatitude(tempLocaBd.latitude);
l.setLocation(tempLocaBd.getAddress());
l.setTime(tempLocaBd.getTime());
Log.e("-安联卸货信息-", gson.toJson(l));
MDPLocationCollectionManager.unload(con, sob.getData().getShippingNoteNumber(), l, new OnResultListener() {
NewLJUtils.getInstance().unload(con, sob.getData().getShippingNoteNumber(), l, new OnGDResultListener() {
@Override
public void onSuccess() {
Log.e("上报安联", "卸货上传成功");
//交通厅
if (sob.getData().getReport() == 1) {
JTTProcess.stop(con, sob, "");
}
// if (sob.getData().getReport() == 1) {
// JTTProcess.stop(con, sob, "");
// }
//卸货状态-平台
hyr.dischargeCargo4(lub);
hyr.dischargeCargo(lub);
//卸货照片-安联
up_image();
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(卸货):", s + s1);
// new MessageUtils().showCenMessage(con, s1);
//运单状态不一致,平台更新状态
hyr.dischargeCargo4(lub);
public void onFailure(String var1, String var2) {
Log.e("上报安联失败(卸货):", var1 + var2);
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
new MessageUtils().showCenMessage(con, var2);
}
});
// MDPLocationCollectionManager.unload(con, sob.getData().getShippingNoteNumber(), l, new OnResultListener() {
// @Override
// public void onSuccess() {
// Log.e("上报安联", "卸货上传成功");
// //交通厅
// if (sob.getData().getReport() == 1) {
// JTTProcess.stop(con, sob, "");
// }
// //卸货状态-平台
// hyr.dischargeCargo4(lub);
// //卸货照片-安联
// up_image();
// }
//
// @Override
// public void onFailure(String s, String s1) {
// Log.e("上报安联失败(卸货):", s + s1);
//// new MessageUtils().showCenMessage(con, s1);
// //运单状态不一致,平台更新状态
// hyr.dischargeCargo4(lub);
// }
// });
}
}
private void upLocation(String lat,String lon,String shippingNoteNumber){
TrackInputBean tib = new TrackInputBean();
tib.setLatitude(lat);
tib.setLongitude(lon);
tib.setShippingNoteNumber(shippingNoteNumber);
hyr.trackTracking(tib);
}
}
@@ -58,7 +58,7 @@ public class WebPDFActivity extends BaseActivity {
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
pdf_view.fromStream(input[0])
.pages(0,1) // all pages are displayed by default
// .pages(0,1,2,3,4,5,6,7) // all pages are displayed by default
.enableAnnotationRendering(true)
.load();
}
@@ -11,6 +11,7 @@ import android.telecom.TelecomManager;
import android.telephony.TelephonyManager;
import android.text.SpannableStringBuilder;
import android.text.TextPaint;
import android.text.TextUtils;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.util.Log;
@@ -31,6 +32,10 @@ import com.arpa.hndahesudintocctmsdriver.parts.ConfigParts;
import com.arpa.hndahesudintocctmsdriver.request.net.BaseObserver;
import com.arpa.hndahesudintocctmsdriver.request.net.DataManager;
import com.arpa.hndahesudintocctmsdriver.request.net.RxHttpCallBack;
import com.arpa.hndahesudintocctmsdriver.ui.web.WebOnlyOneActivity;
import com.arpa.hndahesudintocctmsdriver.util.NewLJUtils;
import com.arpa.hndahesudintocctmsdriver.util.alert.CustomDialog;
import com.arpa.hndahesudintocctmsdriver.weight.OnLimitClickHelper;
import com.dahe.mylibrary.net.CommonResponseBean;
import com.google.gson.Gson;
import com.arpa.hndahesudintocctmsdriver.R;
@@ -64,6 +69,7 @@ public class LoginActivity extends BaseActivity {
public static final String USER = "user";
public static final String USER_TOKEN = "token";
public static final String USER_UNAME = "uname";
public static final String USER_PHONE = "USER_PHONE";
public static final String USER_RNAME = "rname";
public static final String USER_ID = "id";
@@ -76,6 +82,7 @@ public class LoginActivity extends BaseActivity {
private int timer_sum = 60;
private CheckBox cb;
private UserRequset ur;
private CustomDialog customDialog;
@Override
public void msgMethod(Message m) {
@@ -94,30 +101,45 @@ public class LoginActivity extends BaseActivity {
Log.e("--短信发送res--", "短信发送成功");
}
if (CacheGroup.cacheList.get(LOGIN_RESULT) != null) {
if (customDialog != null && customDialog.isShowing())
customDialog.dismiss();
btn_login.setEnabled(true);
btn_login.setBackgroundResource(R.drawable.bg_btn);
//存储登录记录
loginBean = new Gson().fromJson(CacheGroup.cacheList.get(LOGIN_RESULT), LoginBean.class);
Log.e("--登录信息--", new Gson().toJson(loginBean));
AppInfoBean appInfoBean = new AppInfoBean();
if (loginBean.getCode() == 200) {
//获取新路交token
NewLJUtils.getInstance().getToken(con);
SPUtil.insSP(con, USER, USER_TOKEN, loginBean.getData().getToken());
SPUtil.insSP(con, USER, USER_UNAME, loginBean.getData().getUname());
SPUtil.insSP(con, USER, USER_PHONE, loginBean.getData().getRegisterPhone());
SPUtil.insSP(con, USER, USER_RNAME, loginBean.getData().getRname());
SPUtil.insSP(con, USER, USER_ID, loginBean.getData().getId() + "");
// JPushInterface.setAlias(con, 0, loginBean.getData().getUname());
appInfoBean.setStatus("0");
appInfoBean.setUserPhone(String.valueOf(input_phone.getText()));
ur.postAppInfo(appInfoBean,"post");
ur.postAppInfo(appInfoBean, "post");
UiAuxiliary.homeRequest("登录成功");
finish();
} else {
appInfoBean.setStatus("1");
appInfoBean.setUserPhone(String.valueOf(input_phone.getText()));
ur.postAppInfo(appInfoBean,"post");
ur.postAppInfo(appInfoBean, "post");
Toast.makeText(con, loginBean.getMsg(), Toast.LENGTH_SHORT).show();
}
CacheGroup.cacheList.remove(LOGIN_RESULT);
}
break;
case RequsetCodeConstants.ERROR:
if (customDialog != null && customDialog.isShowing())
customDialog.dismiss();
btn_login.setEnabled(true);
btn_login.setBackgroundResource(R.drawable.bg_btn);
break;
default:
break;
}
@@ -136,6 +158,10 @@ public class LoginActivity extends BaseActivity {
getCode = findViewById(R.id.getCode);
cb = findViewById(R.id.cb);
ur = new UserRequset(con, hd);
String phone = SPUtil.getSP(con, LoginActivity.USER, LoginActivity.USER_PHONE);
if (!TextUtils.isEmpty(phone)){
input_phone.setText(phone);
}
initView(null);
}
@@ -157,7 +183,7 @@ public class LoginActivity extends BaseActivity {
ConfigBean cb = ConfigParts.getConfigParts(con);
if (cb != null) {
url1 = cb.getData().getUserUrl();
url1 = "https://agreement.dahehuoyun.com/#/user";
url2 = "https://agreement.dahehuoyun.com/currency/#/";
}
TextView tv_content = findViewById(R.id.tv_content);
@@ -171,7 +197,7 @@ public class LoginActivity extends BaseActivity {
public void onClick(View widget) {
Log.e("-用户服务协议-", url1);
//用户服务协议点击事件
Intent in = new Intent(con, WebActivity.class);
Intent in = new Intent(con, WebOnlyOneActivity.class);
in.putExtra("title", "用户服务协议");
in.putExtra("url", url1);
startActivity(in);
@@ -191,7 +217,7 @@ public class LoginActivity extends BaseActivity {
@Override
public void onClick(View widget) {
//隐私协议点击事件
Intent in = new Intent(con, WebActivity.class);
Intent in = new Intent(con, WebOnlyOneActivity.class);
in.putExtra("title", "隐私政策");
in.putExtra("url", url2);
startActivity(in);
@@ -226,12 +252,16 @@ public class LoginActivity extends BaseActivity {
}
}
});
btn_login.setOnClickListener(v -> {
btn_login.setOnClickListener(new OnLimitClickHelper(v -> {
String phone = String.valueOf(input_phone.getText());
String code = String.valueOf(input_code.getText());
Log.e("--code--", code);
if (judgeFormat(phone, code)) {
if (key) {
btn_login.setEnabled(false);
btn_login.setBackgroundResource(R.drawable.bg_btn_gray);
customDialog = new CustomDialog(con, "登陆中...");
customDialog.show();
LoginRegInputBean lb = new LoginRegInputBean();
lb.setRoleId(4);
lb.setUname(phone);
@@ -243,7 +273,7 @@ public class LoginActivity extends BaseActivity {
Toast.makeText(con, "请先同意用户协议和隐私政策", Toast.LENGTH_SHORT).show();
}
}
});
}));
auto_login.setOnClickListener(v -> {
JVerificationInterface.getToken(con, 20000, (i, s, s1) -> {
JVerifyUIConfig uiConfig = new JVerifyUIConfig.Builder()
@@ -140,16 +140,17 @@ public class WelcomeActivity extends BaseAppCompatActivity {
new XPopup.Builder(con)
.dismissOnBackPressed(false)
.dismissOnTouchOutside(false)
.asCustom(new AgreementAlert(con, "http://agreement.dahehuoyun.com/currency/#/",
"http://agreement.dahehuoyun.com/rule/serviceAgreement/dist/index.html#/", hd))
.asCustom(new AgreementAlert(con, "https://agreement.dahehuoyun.com/currency/#/",
"https://agreement.dahehuoyun.com/#/user", hd))
.show();
}
Glide.with(con)
.load(SPUtils.getPreWelPic(this))
.placeholder(startImageUrl.getDrawable())
.error(R.drawable.welcome_bg_default)
.into(startImageUrl);
if (WelcomeActivity.this!=null&&!WelcomeActivity.this.isFinishing()){
Glide.with(con)
.load(SPUtils.getPreWelPic(this))
.placeholder(startImageUrl.getDrawable())
.error(R.drawable.welcome_bg_default)
.into(startImageUrl);
}
//SystemUtil.get
}
@@ -292,10 +293,12 @@ public class WelcomeActivity extends BaseAppCompatActivity {
public void cdWelcome(String url) {
if (!"".equals(url)) {
Glide.with(con).load(url)
.placeholder(startImageUrl.getDrawable())
.error(R.drawable.welcome_bg_default)
.into(startImageUrl);
if (WelcomeActivity.this!=null&&!WelcomeActivity.this.isFinishing()){
Glide.with(con).load(url)
.placeholder(startImageUrl.getDrawable())
.error(R.drawable.welcome_bg_default)
.into(startImageUrl);
}
}
SPUtils.setPreWelPic(this, url);
cd_view.setVisibility(View.VISIBLE);
@@ -17,15 +17,19 @@ import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.arpa.hndahesudintocctmsdriver.bean.UpAppBean;
import com.arpa.hndahesudintocctmsdriver.event.PersonEvent;
import com.arpa.hndahesudintocctmsdriver.event.RefreshCarListEvent;
import com.arpa.hndahesudintocctmsdriver.event.VehicleEvent;
import com.arpa.hndahesudintocctmsdriver.parts.ConfigParts;
import com.arpa.hndahesudintocctmsdriver.parts.StartOrderParts;
import com.arpa.hndahesudintocctmsdriver.parts.UserParts;
import com.arpa.hndahesudintocctmsdriver.ui.alert.UpAppAlert;
import com.arpa.hndahesudintocctmsdriver.ui.business.BusinessActivity;
import com.arpa.hndahesudintocctmsdriver.util.PicturlUtil;
import com.bumptech.glide.Glide;
import com.dahe.mylibrary.utils.ImageLoader;
import com.dahe.mylibrary.utils.ToastUtils;
import com.google.gson.Gson;
import com.lxj.xpopup.XPopup;
@@ -48,6 +52,7 @@ import com.permissionx.guolindev.PermissionX;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.List;
@@ -93,6 +98,25 @@ public class MyFragment extends BaseFragment {
}
CacheGroup.cacheList.remove("userdata");
}
if (CacheGroup.cacheList.get("up_app") != null) {
Log.e("up_app", CacheGroup.cacheList.get("up_app"));
UpAppBean uab = new Gson().fromJson(CacheGroup.cacheList.get("up_app"), UpAppBean.class);
if (uab.getCode() == 200) {
if (uab.getData() != null) {
new XPopup.Builder(con)
.dismissOnBackPressed(false)
.dismissOnTouchOutside(false)
.asCustom(new UpAppAlert(con, uab.getData().getDownloadUrl(), uab.getData().getContent(), uab.getData().getVersion(), uab.getData().getForce()))
.show();
}else{
Toast.makeText(con, "当前已经是最新版本", Toast.LENGTH_LONG).show();
}
}else{
Toast.makeText(con, uab.getMsg(), Toast.LENGTH_LONG).show();
}
CacheGroup.cacheList.remove("up_app");
}
break;
}
}
@@ -262,7 +286,10 @@ public class MyFragment extends BaseFragment {
startActivity(in);
});
//检查更新
onUpdate.setOnClickListener(v -> Toast.makeText(con, "当前已经是最新版本", Toast.LENGTH_LONG).show());
onUpdate.setOnClickListener(v -> {
ur.upApp();
}
);
//系统设置
onSetUp.setOnClickListener(v -> startActivity(new Intent(con, SetupActivity.class)));
}
@@ -280,15 +307,28 @@ public class MyFragment extends BaseFragment {
}
if (!"".equals(userBean.getData().getHeadportraitUrl())) {
Glide.with(con).load(userBean.getData().getHeadportraitUrl()).into(img_head);
ImageLoader.getInstance().loadImage(con,userBean.getData().getHeadportraitUrl(),img_head);
}
if (userBean != null && 100003 == userBean.getData().getAuditStatus()) {
auth_box.setVisibility(View.GONE);
no_auth.setVisibility(View.GONE);
} else {
auth_box.setVisibility(View.GONE);
no_auth.setVisibility(View.VISIBLE);
if (userBean != null) {
if ("0".equals(userBean.getData().getRealAuthentication())) {
no_auth.setVisibility(View.VISIBLE);
} else {
if (100003 == userBean.getData().getAuditStatus()) {
no_auth.setVisibility(View.GONE);
} else {
no_auth.setBackgroundResource(R.mipmap.icon_auth_wsh);
}
}
}
// if (userBean != null && 100003 == userBean.getData().getAuditStatus()) {
// auth_box.setVisibility(View.GONE);
// no_auth.setVisibility(View.GONE);
// } else {
// auth_box.setVisibility(View.GONE);
// no_auth.setVisibility(View.VISIBLE);
// }
}
}
@@ -306,11 +346,19 @@ public class MyFragment extends BaseFragment {
ur.vehicleList("1");
}
@Subscribe
@Subscribe(threadMode = ThreadMode.MAIN)
public void personResult(PersonEvent home) {
Log.e("-res-", home.getMessage());
if (ur != null) {
ur.User();
}
}
@Override
public void onStart() {
super.onStart();
if (ur != null) {
ur.User();
}
}
}
@@ -13,6 +13,7 @@ import android.widget.Toast;
import androidx.annotation.Nullable;
import com.arpa.hndahesudintocctmsdriver.parts.ConfigParts;
import com.arpa.hndahesudintocctmsdriver.ui.web.WebOnlyOneActivity;
import com.google.gson.Gson;
import com.lxj.xpopup.XPopup;
import com.arpa.hndahesudintocctmsdriver.R;
@@ -73,9 +74,9 @@ public class SetupActivity extends BaseActivity {
ConfigBean cb= ConfigParts.getConfigParts(con);
if(cb!=null){
// url1=cb.getData().getUserUrl();
url1="http://agreement.dahehuoyun.com/rule/serviceAgreement/dist/index.html#/";
url1="https://agreement.dahehuoyun.com/rule/serviceAgreement/dist/index.html#/";
// url2=cb.getData().getPrivateUrl();
url2="http://agreement.dahehuoyun.com/currency/#/";
url2="https://agreement.dahehuoyun.com/currency/#/";
kefu=cb.getData().getServiceMobile();
url3=cb.getData().getSecurityUrl();
}
@@ -94,19 +95,19 @@ public class SetupActivity extends BaseActivity {
public void initView(Object obj) {
super.initView(obj);
r1.setOnClickListener(v12 -> {
Intent in=new Intent(con,WebActivity.class);
Intent in=new Intent(con, WebOnlyOneActivity.class);
in.putExtra("title","隐私政策");
in.putExtra("url",url2);
startActivity(in);
});
r2.setOnClickListener(v12 -> {
Intent in=new Intent(con,WebActivity.class);
Intent in=new Intent(con,WebOnlyOneActivity.class);
in.putExtra("title","用户协议");
in.putExtra("url",url1);
startActivity(in);
});
r3.setOnClickListener(v12 -> {
Intent in=new Intent(con,WebActivity.class);
Intent in=new Intent(con,WebOnlyOneActivity.class);
in.putExtra("title","运输安全责任书");
in.putExtra("url",url3);
startActivity(in);
@@ -121,7 +122,7 @@ public class SetupActivity extends BaseActivity {
startActivity(in);
});
r8.setOnClickListener(v12 -> {
Intent in=new Intent(con,WebActivity.class);
Intent in=new Intent(con,WebOnlyOneActivity.class);
in.putExtra("title","交易规则");
in.putExtra("url","http://agreement.dahehuoyun.com/rule/transactionRules/dist/index.html#/");
startActivity(in);
@@ -24,6 +24,7 @@ import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil;
import com.arpa.hndahesudintocctmsdriver.weight.OnLimitClickHelper;
import com.arpa.hndahesudintocctmsdriver.weight.OnLimitClickListener;
import com.bumptech.glide.Glide;
import com.dahe.mylibrary.utils.ImageLoader;
import com.google.gson.Gson;
import com.arpa.hndahesudintocctmsdriver.R;
import com.arpa.hndahesudintocctmsdriver.bean.BaseBean;
@@ -95,7 +96,7 @@ public class UpBankActivity extends BaseAppCompatActivity implements OnLimitClic
submit.setBackgroundResource(R.drawable.bg_btn_grey);
bank_name.setText(dad.getData().getBankName());
bank_number.setText(dad.getData().getCardNo());
Glide.with(con).load(dad.getData().getBankImgUrl()).into(up_bank_img);
ImageLoader.getInstance().loadImage(con,dad.getData().getBankImgUrl(),up_bank_img);
}
} else {
@@ -202,7 +203,7 @@ public class UpBankActivity extends BaseAppCompatActivity implements OnLimitClic
super.initView(obj);
bank_name.setText(ib.getData().getBankName());
bank_number.setText(ib.getData().getCardNumber());
Glide.with(con).load(path).into(up_bank_img);
ImageLoader.getInstance().loadImage(con,path,up_bank_img);
}
@Override
@@ -231,14 +232,14 @@ public class UpBankActivity extends BaseAppCompatActivity implements OnLimitClic
}
public void submit() {
customDialog = new CustomDialog(con, "上传中,请稍后...");
customDialog.show();
String bankName = bank_name.getText().toString().trim();
String bankNumber = bank_number.getText().toString().trim();
if ("".equals(bankName) || "".equals(bankNumber)) {
Toast.makeText(con, "请先补充完整的银行卡信息", Toast.LENGTH_LONG).show();
return;
}
customDialog = new CustomDialog(con, "上传中,请稍后...");
customDialog.show();
InsBankInputBean ibib = new InsBankInputBean();
ibib.setCardNo(bankNumber);
// ibib.setCardType(Integer.parseInt(ib.getData().getType()));
@@ -0,0 +1,227 @@
package com.arpa.hndahesudintocctmsdriver.ui.web;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.net.http.SslError;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.webkit.JavascriptInterface;
import android.webkit.SslErrorHandler;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.Nullable;
import com.arpa.hndahesudintocctmsdriver.R;
import com.arpa.hndahesudintocctmsdriver.bean.UserBean;
import com.arpa.hndahesudintocctmsdriver.parts.UserParts;
import com.arpa.hndahesudintocctmsdriver.util.PaxWebChromeClient;
import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil;
import com.arpa.hndahesudintocctmsdriver.util.string.StringUtil;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity;
/**
* @author hlh
* @version 1.0.0
* @date 2021/8/6 16:48
* @description:访问webview的activity
*/
public class WebOnlyOneActivity extends BaseActivity {
private String url = "";
private String title = "";
private WebView wv;
private TextView title_tv;
private PaxWebChromeClient chromeClient;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
StateStyleUtil.stateTextColor(this);
setContentView(R.layout.activity_web);
con = this;
initHardwareAccelerate();
wv = findViewById(R.id.wv);
title_tv = findViewById(R.id.title);
Intent in = getIntent();
url = in.getExtras().getString("url");
title = in.getExtras().getString("title");
chromeClient = new PaxWebChromeClient(this, null, null);
if ("咨询建议".equals(title)) {
initOpinion();
} else {
initView(null);
}
}
private void initHardwareAccelerate() {
try {
if (Integer.parseInt(Build.VERSION.SDK) >= 11) {
getWindow()
.setFlags(
android.view.WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
android.view.WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
}
} catch (Exception e) {
}
}
@SuppressLint({"JavascriptInterface", "SetJavaScriptEnabled"})
@Override
public void initView(Object obj) {
super.initView(obj);
WebSettings webSettings = wv.getSettings();
//设置网页有缓存的时候也继续读取新的地址
webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
webSettings.setDefaultTextEncodingName("utf-8");
// 特别注意:5.1以上默认禁止了https和http混用,以下方式是开启
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
wv.addJavascriptInterface(new JavaScriptObject(con), "webObj");
//PaxWebChromeClient chromeClient=new PaxWebChromeClient();
//WebView加载web资源
//覆盖WebView默认使用第三方或系统默认浏览器打开网页的行为,使网页用WebView打开
wv.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
return super.shouldOverrideUrlLoading(view, request);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url1) {
//返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器
Log.d("test", "webactivity..url:" + url);
// if(!url.startsWith("http"))
// {
// Log.d("test","非http开头..url:"+url);
// Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse(url));
// boolean isInstall = getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY).size()>0;
// Log.d("test","是否安装要跳转的app:"+isInstall);
// if(isInstall)
// {
// startActivity(intent);
// finish();
// }
// return true;
// }
if (!url1.equals(url))
return true;
wv.loadUrl(url1);
return true;
}
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
super.onReceivedSslError(view, handler, error);
handler.proceed();
}
});
wv.setWebChromeClient(chromeClient);
wv.loadUrl(url);
title_tv.setText(title);
}
public void initOpinion() {
if (findViewById(R.id.return_btn) != null) {
findViewById(R.id.return_btn).setOnClickListener(v -> {
finish();
});
}
title_tv.setText(title);
UserBean ub = UserParts.getUser(con);
wv.getSettings().setJavaScriptEnabled(true);
wv.getSettings().setDomStorageEnabled(true); // 这个要加上
String openid = ub.getData().getUname(); // 用户的openid
String nickname = StringUtil.isNull(ub.getData().getRname(), "游客"); // 用户的nickname
String headimgurl = StringUtil.isNull(ub.getData().getHeadportraitUrl(), ""); // 用户的头像url
/* 获得 webview url,请注意url单词是product而不是productsproducts是旧版本的参数,用错地址将不能成功提交 */
String url = "https://support.qq.com/products/335639"; // 把1221数字换成你的产品ID,否则会不成功
/* 准备post参数 */
String postData = "nickname=" + nickname + "&avatar=" + headimgurl + "&openid=" + openid;
wv.postUrl(url, postData.getBytes());
wv.setWebChromeClient(chromeClient);
wv.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
return super.shouldOverrideUrlLoading(view, request);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
//返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器
view.loadUrl(url);
return true;
}
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
super.onReceivedSslError(view, handler, error);
handler.proceed();
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
chromeClient.onActivityResult(requestCode, resultCode, data);
super.onActivityResult(requestCode, resultCode, data);
}
@Override
protected void onDestroy() {
super.onDestroy();
}
public class JavaScriptObject {
Context mContxt;
public JavaScriptObject(Context mContxt) {
this.mContxt = mContxt;
}
@JavascriptInterface
public void getName() {
Log.e("eeee-", "name");
Toast.makeText(con, "hello", Toast.LENGTH_SHORT).show();
}
@JavascriptInterface
public String getUserToken() {
// Log.e("-token-",UserParts.getUser(con).getData().getToken());
// return "woshitoken-androidfasdf";
return UserParts.getUser(con).getData().getToken();
}
@JavascriptInterface
public void isSuccess() {
finish();
}
@JavascriptInterface
public void isPdfSuccess() {
Toast.makeText(con, "签署成功", Toast.LENGTH_SHORT).show();
finish();
}
}
}
@@ -0,0 +1,810 @@
package com.arpa.hndahesudintocctmsdriver.util;
import static com.dahe.mylibrary.utils.BaseSPUtils.NEW_LJ_TOKEN;
import android.content.Context;
import android.os.Handler;
import android.text.TextUtils;
import android.util.Log;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.arpa.hndahesudintocctmsdriver.App;
import com.arpa.hndahesudintocctmsdriver.BuildConfig;
import com.arpa.hndahesudintocctmsdriver.bean.DriverAuthDataBean;
import com.arpa.hndahesudintocctmsdriver.bean.GDImage;
import com.arpa.hndahesudintocctmsdriver.bean.GDLocation;
import com.arpa.hndahesudintocctmsdriver.bean.IsAuthCardBean;
import com.arpa.hndahesudintocctmsdriver.constant.NewLJConstant;
import com.arpa.hndahesudintocctmsdriver.parts.AuthParts;
import com.arpa.hndahesudintocctmsdriver.request.AuthRequest;
import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.InvoiceBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.InvoicesBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.LjTokenBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.PickupBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.ShipmentStatusBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.UpimgBean;
import com.arpa.hndahesudintocctmsdriver.request.net.BaseObserver;
import com.arpa.hndahesudintocctmsdriver.request.net.DataManager;
import com.arpa.hndahesudintocctmsdriver.request.net.RxHttpCallBack;
import com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity;
import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup;
import com.arpa.hndahesudintocctmsdriver.util.http.RequestUtil;
import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants;
import com.dahe.mylibrary.bean.DriverBean;
import com.dahe.mylibrary.callback.OnGDDownloadResultListener;
import com.dahe.mylibrary.callback.OnGDResultListener;
import com.dahe.mylibrary.net.CommonResponseBean;
import com.dahe.mylibrary.utils.ToastUtils;
import com.express.mdp.Api;
import com.express.mdp.Callback;
import com.google.gson.Gson;
import java.util.Arrays;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.schedulers.Schedulers;
/**
* @ClassName NewLJUtils
* @Author john
* @Date 2024/11/25 09:53
* @Description TODO
*/
public class NewLJUtils {
private static class SingletonHolder {
private static final NewLJUtils INSTANCE = new NewLJUtils();
}
private NewLJUtils() {
}
public static final NewLJUtils getInstance() {
return SingletonHolder.INSTANCE;
}
public void getToken(Context ctx) {
LjTokenBean ljTokenBean = new LjTokenBean();
ljTokenBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
ljTokenBean.setEnterpriseIdentity(NewLJConstant.ENTER_PRISE_IDENTITY);
ljTokenBean.setEnterpriseKey(NewLJConstant.ENTER_PRISE_KEY);
DataManager.getInstance().getToken(ljTokenBean)
.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean t) {
super.onSuccess(t);
SPUtils.put(ctx, NEW_LJ_TOKEN, t.getToken());
}
}));
}
/**
* 刷新token
*
* @param ctx
*/
public void refreshToken(Context ctx) {
String token = SPUtils.get(ctx, NEW_LJ_TOKEN, "").toString();
DataManager.getInstance().refreshToken(token)
.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean<CommonResponseBean> t) {
super.onSuccess(t);
SPUtils.put(ctx, NEW_LJ_TOKEN, t.getToken());
}
}));
}
public void getToken(Context ctx, OnGDResultListener listener) {
LjTokenBean ljTokenBean = new LjTokenBean();
ljTokenBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
ljTokenBean.setEnterpriseIdentity(NewLJConstant.ENTER_PRISE_IDENTITY);
ljTokenBean.setEnterpriseKey(NewLJConstant.ENTER_PRISE_KEY);
DataManager.getInstance().getToken(ljTokenBean)
.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean t) {
super.onSuccess(t);
SPUtils.put(ctx, NEW_LJ_TOKEN, t.getToken());
if (listener != null)
listener.onSuccess();
}
}));
}
/**
* 运单提货
*
* @param ctx
* @param shipmentCode
* @param location
*/
public void pickUp(Context ctx, String shipmentCode, GDLocation location, OnGDResultListener listener) {
if (TextUtils.isEmpty(shipmentCode)) {
ToastUtils.showToast(ctx, "运单号不能为空");
return;
}
if (Double.isNaN(location.getBaiduLatitude()) || Double.isNaN(location.getBaiduLongitude())) {
ToastUtils.showToast(ctx, "经纬度不能为空");
return;
}
PickupBean pickupBean = new PickupBean();
pickupBean.setShipmentCode(shipmentCode);
pickupBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
pickupBean.setLocation(location);
DataManager.getInstance().pickup(pickupBean)
.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean t) {
super.onSuccess(t);
if (listener != null) {
listener.onSuccess();
}
}
@Override
public void onCodeError(Context mContext, CommonResponseBean<CommonResponseBean> t) {
super.onCodeError(mContext, t);
if (listener != null) {
listener.onFailure(t.getCode() + "", TextUtils.isEmpty(t.getMessage()) ? "运单提货操作异常" : t.getMessage());
}
}
}));
}
/**
* 运单卸货
*
* @param ctx
* @param shipmentCode
* @param location
*/
public void unload(Context ctx, String shipmentCode, GDLocation location, OnGDResultListener listener) {
if (TextUtils.isEmpty(shipmentCode)) {
ToastUtils.showToast(ctx, "运单号不能为空");
return;
}
if (Double.isNaN(location.getBaiduLatitude()) || Double.isNaN(location.getBaiduLongitude())) {
ToastUtils.showToast(ctx, "经纬度不能为空");
return;
}
PickupBean pickupBean = new PickupBean();
pickupBean.setShipmentCode(shipmentCode);
pickupBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
pickupBean.setLocation(location);
DataManager.getInstance().unload(pickupBean)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean t) {
super.onSuccess(t);
if (listener != null) {
listener.onSuccess();
}
}
@Override
public void onCodeError(Context mContext, CommonResponseBean<CommonResponseBean> t) {
super.onCodeError(mContext, t);
if (listener != null) {
listener.onFailure(t.getCode() + "", TextUtils.isEmpty(t.getMessage()) ? "运单卸货操作异常" : t.getMessage());
}
}
}));
}
/**
* 运单签收
*
* @param ctx
* @param shipmentCode
* @param location
*/
public void sign(Context ctx, String shipmentCode, GDLocation location, OnGDResultListener listener) {
if (TextUtils.isEmpty(shipmentCode)) {
ToastUtils.showToast(ctx, "运单号不能为空");
return;
}
if (Double.isNaN(location.getBaiduLatitude()) || Double.isNaN(location.getBaiduLongitude())) {
ToastUtils.showToast(ctx, "经纬度不能为空");
return;
}
PickupBean pickupBean = new PickupBean();
pickupBean.setShipmentCode(shipmentCode);
pickupBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
pickupBean.setLocation(location);
DataManager.getInstance().sign(pickupBean)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean t) {
super.onSuccess(t);
if (listener != null) {
listener.onSuccess();
}
}
@Override
public void onCodeError(Context mContext, CommonResponseBean<CommonResponseBean> t) {
super.onCodeError(mContext, t);
if (listener != null) {
listener.onFailure(t.getCode() + "", TextUtils.isEmpty(t.getMessage()) ? "运单签收操作异常" : t.getMessage());
}
}
}));
}
/**
* 运单回单
*
* @param ctx
* @param shipmentCode
* @param location
*/
public void pod(Context ctx, String shipmentCode, GDLocation location, OnGDResultListener listener) {
if (TextUtils.isEmpty(shipmentCode)) {
ToastUtils.showToast(ctx, "运单号不能为空");
return;
}
if (Double.isNaN(location.getBaiduLatitude()) || Double.isNaN(location.getBaiduLongitude())) {
ToastUtils.showToast(ctx, "经纬度不能为空");
return;
}
PickupBean pickupBean = new PickupBean();
pickupBean.setShipmentCode(shipmentCode);
pickupBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
pickupBean.setLocation(location);
DataManager.getInstance().pod(pickupBean)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean t) {
super.onSuccess(t);
if (listener != null) {
listener.onSuccess();
}
}
@Override
public void onCodeError(Context mContext, CommonResponseBean<CommonResponseBean> t) {
super.onCodeError(mContext, t);
if (listener != null) {
listener.onFailure(t.getCode() + "", TextUtils.isEmpty(t.getMessage()) ? "运单回单操作异常" : t.getMessage());
}
}
}));
}
/**
* 运单提货照片上传
*
* @param ctx
* @param shipmentCode
* @param imageDTO
*/
public void uploadPickupImage(Context ctx, String shipmentCode, GDImage imageDTO, OnGDResultListener listener) {
if (TextUtils.isEmpty(shipmentCode)) {
ToastUtils.showToast(ctx, "运单号不能为空");
return;
}
if (TextUtils.isEmpty(imageDTO.getFileName())) {
ToastUtils.showToast(ctx, "照片不能为空");
return;
}
UpimgBean pickupBean = new UpimgBean();
pickupBean.setShipmentCode(shipmentCode);
pickupBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
pickupBean.setImage(imageDTO);
DataManager.getInstance().uploadPickupImage(pickupBean)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean t) {
super.onSuccess(t);
if (listener != null) {
listener.onSuccess();
}
}
@Override
public void onCodeError(Context mContext, CommonResponseBean<CommonResponseBean> t) {
super.onCodeError(mContext, t);
if (listener != null) {
listener.onFailure(t.getCode() + "", TextUtils.isEmpty(t.getMessage()) ? "运单提货照片操作异常" : t.getMessage());
}
}
}));
}
/**
* 运单卸货照片上传
*
* @param ctx
* @param shipmentCode
* @param imageDTO
*/
public void uploadUnloadImage(Context ctx, String shipmentCode, GDImage imageDTO, OnGDResultListener listener) {
if (TextUtils.isEmpty(shipmentCode)) {
ToastUtils.showToast(ctx, "运单号不能为空");
return;
}
if (TextUtils.isEmpty(imageDTO.getFileName())) {
ToastUtils.showToast(ctx, "照片不能为空");
return;
}
UpimgBean pickupBean = new UpimgBean();
pickupBean.setShipmentCode(shipmentCode);
pickupBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
pickupBean.setImage(imageDTO);
DataManager.getInstance().uploadUnloadImage(pickupBean)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean t) {
super.onSuccess(t);
if (listener != null) {
listener.onSuccess();
}
}
@Override
public void onCodeError(Context mContext, CommonResponseBean<CommonResponseBean> t) {
super.onCodeError(mContext, t);
if (listener != null) {
listener.onFailure(t.getCode() + "", TextUtils.isEmpty(t.getMessage()) ? "运单卸货照片操作异常" : t.getMessage());
}
}
}));
}
/**
* 运单回单照片上传
*
* @param ctx
* @param shipmentCode
* @param imageDTO
*/
public void uploadPODImage(Context ctx, String shipmentCode, GDImage imageDTO, OnGDResultListener listener) {
if (TextUtils.isEmpty(shipmentCode)) {
ToastUtils.showToast(ctx, "运单号不能为空");
return;
}
if (TextUtils.isEmpty(imageDTO.getFileName())) {
ToastUtils.showToast(ctx, "照片不能为空");
return;
}
UpimgBean pickupBean = new UpimgBean();
pickupBean.setShipmentCode(shipmentCode);
pickupBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
pickupBean.setImage(imageDTO);
DataManager.getInstance().uploadPODImage(pickupBean)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean t) {
super.onSuccess(t);
if (listener != null) {
listener.onSuccess();
}
}
@Override
public void onCodeError(Context mContext, CommonResponseBean<CommonResponseBean> t) {
super.onCodeError(mContext, t);
if (listener != null) {
listener.onFailure(t.getCode() + "", TextUtils.isEmpty(t.getMessage()) ? "运单回单照片操作异常" : t.getMessage());
}
}
}));
}
/**
* 获取发票列表
*
* @param ctx
* @param listener
*/
public void getInvoices(Context ctx, OnGDResultListener listener) {
DriverAuthDataBean auth = AuthParts.getAuth(ctx);
if (auth == null) {
return;
}
DataManager.getInstance().getInvoices(NewLJConstant.ENTER_PRISE_CODE, auth.getData().getIdcard(), 1, 100)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean<InvoicesBean>>() {
@Override
public void onSuccess(CommonResponseBean<CommonResponseBean<InvoicesBean>> t) {
super.onSuccess(t);
if (t.getData().getData().getDriverInvoices().size() > 0) {
confirmInvoice(ctx, new OnGDResultListener() {
@Override
public void onSuccess() {
}
@Override
public void onFailure(String var1, String var2) {
Log.e("NewLJUtils", var1 + var2);
}
});
}
}
@Override
public void onCodeError(Context mContext, CommonResponseBean<CommonResponseBean<InvoicesBean>> t) {
super.onCodeError(mContext, t);
// Log.e("NewLJUtils", t.getMsg().toString());
}
}));
}
/**
* 同意发票申请
*
* @param ctx
*/
public void confirmInvoice(Context ctx, OnGDResultListener listener) {
DriverAuthDataBean auth = AuthParts.getAuth(ctx);
if (auth == null) {
return;
}
searchDriver(ctx, auth.getData().getIdcard(), new OnGDDownloadResultListener() {
@Override
public void onSuccess(String var1) {
InvoiceBean invoiceBean = new InvoiceBean();
invoiceBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
invoiceBean.setDriverInvoiceCode(var1);
invoiceBean.setDriverIdentification(auth.getData().getIdcard());
DataManager.getInstance().confirmInvoice(invoiceBean)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean t) {
super.onSuccess(t);
if (listener != null) {
listener.onSuccess();
}
}
@Override
public void onCodeError(Context mContext, CommonResponseBean<CommonResponseBean> t) {
super.onCodeError(mContext, t);
if (listener != null) {
listener.onFailure(t.getCode() + "", TextUtils.isEmpty(t.getMessage()) ? "同意发票异常" : t.getMessage());
}
}
}));
}
@Override
public void onFailure(String var1, String var2) {
}
});
//查询身份证信息
// new AuthRequest().getCard(ctx, new Handler(msg -> {
// switch (msg.what) {
// case RequsetCodeConstants.ERROR:
// Toast.makeText(ctx, RequsetCodeConstants.FEEDBACK_TEXT, Toast.LENGTH_SHORT).show();
// break;
// case RequsetCodeConstants.UNKONWN:
// Toast.makeText(ctx, RequsetCodeConstants.UNKONWN_TEXT, Toast.LENGTH_SHORT).show();
// break;
// case RequsetCodeConstants.SERVER_ERROR:
// Toast.makeText(ctx, RequsetCodeConstants.SERVER_ERROR_TEXT, Toast.LENGTH_SHORT).show();
// break;
// case RequsetCodeConstants.GATEWAY_ERROR:
// Toast.makeText(ctx, RequsetCodeConstants.GATEWAY_ERROR_TEXT, Toast.LENGTH_SHORT).show();
// break;
// case RequsetCodeConstants.SUCCESS:
// IsAuthCardBean iacb = new Gson().fromJson(CacheGroup.cacheList.get(CertificatesActivity.ISAUTH), IsAuthCardBean.class);
// if (iacb != null || iacb.getData() != null || !TextUtils.isEmpty(iacb.getData().getIdcard())) {
// //根据身份证号查询路交司机信息
// searchDriver(ctx, iacb.getData().getIdcard(), new OnGDDownloadResultListener() {
// @Override
// public void onSuccess(String var1) {
// InvoiceBean invoiceBean = new InvoiceBean();
// invoiceBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
// invoiceBean.setDriverInvoiceCode(var1);
// invoiceBean.setDriverIdentification(iacb.getData().getIdcard());
// DataManager.getInstance().confirmInvoice(invoiceBean)
// .subscribeOn(Schedulers.io())
// .observeOn(AndroidSchedulers.mainThread())
// .subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
// @Override
// public void onSuccess(CommonResponseBean t) {
// super.onSuccess(t);
// if (listener != null) {
// listener.onSuccess();
// }
// }
//
// @Override
// public void onCodeError(Context mContext, CommonResponseBean<CommonResponseBean> t) {
// super.onCodeError(mContext, t);
// if (listener != null) {
// listener.onFailure(t.getCode() + "", t.getMessage());
// }
// }
// }));
// }
//
// @Override
// public void onFailure(String var1, String var2) {
//
// }
// });
// } else {
// Toast.makeText(ctx, "缺少身份证信息", Toast.LENGTH_SHORT).show();
// }
// break;
// }
// return false;
// }));
}
/**
* 运单状态查询
*
* @param ctx
* @param shipmentCode
*/
public void getShipmentStatus(Context ctx, String shipmentCode, OnGDDownloadResultListener listener) {
ShipmentStatusBean shipmentStatusBean = new ShipmentStatusBean();
shipmentStatusBean.setShipmentCode(shipmentCode);
shipmentStatusBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
DataManager.getInstance().getShipmentStatus(shipmentStatusBean)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean t) {
super.onSuccess(t);
if (listener != null) {
listener.onSuccess(t.getStatusCode());
}
}
@Override
public void onCodeError(Context mContext, CommonResponseBean<CommonResponseBean> t) {
super.onCodeError(mContext, t);
if (listener != null) {
listener.onFailure(t.getCode() + "", TextUtils.isEmpty(t.getMessage()) ? "运单状态查询异常" : t.getMessage());
}
}
}));
}
public void getPODImageNames(Context ctx, String shipmentCode) {
ShipmentStatusBean shipmentStatusBean = new ShipmentStatusBean();
shipmentStatusBean.setShipmentCode(shipmentCode);
shipmentStatusBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
DataManager.getInstance().getPODImageNames(shipmentStatusBean)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean t) {
super.onSuccess(t);
System.out.println("sadf");
}
@Override
public void onCodeError(Context mContext, CommonResponseBean<CommonResponseBean> t) {
super.onCodeError(mContext, t);
System.out.println("sadf");
}
}));
}
/**
* 开启位置上传
*
* @param act
*/
public void startLocationService(AppCompatActivity act) {
DriverAuthDataBean auth = AuthParts.getAuth(act);
if (auth == null) {
return;
}
searchDriver(act, auth.getData().getIdcard(), new OnGDDownloadResultListener() {
@Override
public void onSuccess(String var1) {
try {
//开启定位服务
if (BuildConfig.isTest) {
Api.setBaseUrl("https://kehui56.cn/api", "https://api.kehui56.cn/api");
}
String result = Api.startLocationService(act, var1, s -> {
Log.e("位置上报", s);
});
System.out.println(result);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@Override
public void onFailure(String var1, String var2) {
}
});
//查询身份证信息
// new AuthRequest().getCard(act, new Handler(msg -> {
// switch (msg.what) {
// case RequsetCodeConstants.ERROR:
// Toast.makeText(act, RequsetCodeConstants.FEEDBACK_TEXT, Toast.LENGTH_SHORT).show();
// break;
// case RequsetCodeConstants.UNKONWN:
// Toast.makeText(act, RequsetCodeConstants.UNKONWN_TEXT, Toast.LENGTH_SHORT).show();
// break;
// case RequsetCodeConstants.SERVER_ERROR:
// Toast.makeText(act, RequsetCodeConstants.SERVER_ERROR_TEXT, Toast.LENGTH_SHORT).show();
// break;
// case RequsetCodeConstants.GATEWAY_ERROR:
// Toast.makeText(act, RequsetCodeConstants.GATEWAY_ERROR_TEXT, Toast.LENGTH_SHORT).show();
// break;
// case RequsetCodeConstants.SUCCESS:
// IsAuthCardBean iacb = new Gson().fromJson(CacheGroup.cacheList.get(CertificatesActivity.ISAUTH), IsAuthCardBean.class);
// if (iacb != null || iacb.getData() != null || !TextUtils.isEmpty(iacb.getData().getIdcard())) {
// //根据身份证号查询路交司机信息
// searchDriver(act,iacb.getData().getIdcard(), new OnGDDownloadResultListener() {
// @Override
// public void onSuccess(String var1) {
// try {
// //开启定位服务
// Api.setBaseUrl("https://kehui56.cn/api", "https://api.kehui56.cn/api");
// String result = Api.startLocationService(act, var1, s -> {
// Log.e("位置上报", s);
// });
// } catch (Exception e) {
// throw new RuntimeException(e);
// }
// }
//
// @Override
// public void onFailure(String var1, String var2) {
//
// }
// });
// } else {
// Toast.makeText(act, "缺少身份证信息", Toast.LENGTH_SHORT).show();
// }
// break;
// }
// return false;
// }));
}
/**
* 关闭定位服务
*/
public void stopLocationService() {
Api.stopLocationService();
}
/**
* 查询司机
*/
public void searchDriver(Context ctx, String idCard, OnGDDownloadResultListener listener) {
DataManager.getInstance().searchDriver(idCard)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean<CommonResponseBean> t) {
super.onSuccess(t);
DriverBean driver = t.getDriver();
if (driver != null && !TextUtils.isEmpty(driver.getDriverCode())) {
if (listener != null)
listener.onSuccess(driver.getDriverCode());
}
}
@Override
public void onCodeError(Context mContext, CommonResponseBean<CommonResponseBean> t) {
super.onCodeError(mContext, t);
if (listener != null)
listener.onFailure(t.getCode(), TextUtils.isEmpty(t.getMessage()) ? "司机异常请联系管理员" : t.getMessage());
}
}));
}
/**
* 人车绑定关系
* @param ctx
* @param idCard
* @param listener
*/
public void trucks(Context ctx, String idCard,String carNum, OnGDDownloadResultListener listener){
DataManager.getInstance().trucks(idCard)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver(ctx, new RxHttpCallBack<CommonResponseBean>() {
@Override
public void onSuccess(CommonResponseBean<CommonResponseBean> t) {
super.onSuccess(t);
String[] licensePlateNos = t.getLicensePlateNos();
if (listener!=null){
if (licensePlateNos.length==0){
listener.onFailure(t.getCode(), "该司机暂未绑定任何车辆");
}else{
boolean isHasCar = false;
for (int i = 0; i < licensePlateNos.length; i++) {
if (licensePlateNos[i].equals(carNum)){
isHasCar = true;
break;
}
}
if (isHasCar){
listener.onSuccess("人车绑定正常");
}else{
listener.onFailure(t.getCode(), "司机车辆绑定异常");
}
}
}
}
@Override
public void onCodeError(Context mContext, CommonResponseBean<CommonResponseBean> t) {
super.onCodeError(mContext, t);
if (listener != null)
listener.onFailure(t.getCode(), TextUtils.isEmpty(t.getMessage()) ? "司机异常" : t.getMessage());
}
}));
}
}
@@ -28,6 +28,8 @@ public abstract class BaseActivity extends Activity {
private String title_text="空白标题";
public Handler hd=new Handler(msg -> {
if (this==null||this.isFinishing())
return true;
msgMethod(msg);
return false;
});
@@ -25,6 +25,8 @@ public class BaseAppCompatActivity extends AppCompatActivity {
public static String dataName,dataName2,dataName3="";
public View root;
public Handler hd=new Handler(msg -> {
if (this==null||this.isFinishing())
return true;
msgMethod(msg);
return false;
});
@@ -105,6 +105,8 @@ public class BaseRecyclerView extends RecyclerView {
ra.addItem(mb);
}
public void adds(List<ManyBean> list){
if (ra==null)
return;
ra.add(list);
}
public AdapterAlls createsH(Context con, List<ManyBean> list){
Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<gradient android:angle="0" android:useLevel="true"
android:startColor="#0b64f6 " android:endColor="#5cb3fd"
android:centerX="0" android:centerY="0"
android:gradientRadius="@dimen/dp_63" />
<corners android:radius="@dimen/dp_19" />
</shape>
</item>
</selector>
+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#AAAAAA" />
<corners android:topLeftRadius="@dimen/dp_29" android:topRightRadius="@dimen/dp_29"
android:bottomLeftRadius="@dimen/dp_29" android:bottomRightRadius="@dimen/dp_29" />
</shape>
</item>
</selector>
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#E1ECFF" />
<corners android:radius="@dimen/dp_19" />
</shape>
</item>
</selector>
@@ -0,0 +1,73 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
tools:context=".ui.auth.CertificatesActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/return_btn"
android:layout_width="@dimen/dp_40"
android:layout_height="@dimen/dp_31"
android:layout_marginLeft="@dimen/dp_28"
android:layout_marginTop="@dimen/dp_58"
android:padding="@dimen/dp_10"
android:scaleType="fitXY"
android:src="@mipmap/return_lefts" />
</LinearLayout>
<ImageView
android:layout_marginTop="@dimen/dp_210"
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:background="@drawable/face_success"></ImageView>
<TextView
android:id="@+id/tvTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/img"
android:layout_centerHorizontal="true"
android:text="恭喜您! 实名认证成功"
android:textColor="@color/black"
android:textSize="@dimen/sp_16" />
<LinearLayout
android:layout_marginTop="@dimen/dp_10"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_46"
android:layout_below="@+id/tvTitle"
android:gravity="center"
android:orientation="horizontal">
<Button
android:id="@+id/btnHome"
android:layout_width="@dimen/dp_110"
android:layout_height="@dimen/dp_38"
android:background="@drawable/bg_btn_green16"
android:text="返回首页"
android:textColor="#0966FF" />
<Button
android:layout_marginLeft="@dimen/dp_20"
android:id="@+id/btnAddCar"
android:textColor="@color/white"
android:layout_width="@dimen/dp_110"
android:layout_height="@dimen/dp_38"
android:background="@drawable/bg_btn_deepgreen16"
android:text="添加车辆" />
</LinearLayout>
</RelativeLayout>
+1 -1
View File
@@ -80,7 +80,7 @@
android:layout_marginLeft="@dimen/dp_14"
android:layout_width="@dimen/dp_143"
android:layout_height="@dimen/dp_36"
android:src="@mipmap/icon_auth_new"/>
android:background="@mipmap/icon_auth_new"/>
</LinearLayout>
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

+6
View File
@@ -4,6 +4,9 @@ buildscript {
// ext.kotlin_version = "1.5.0"
ext.kotlin_version = "1.6.10"
repositories {
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
google()
jcenter() // 这个
mavenCentral()
@@ -22,6 +25,9 @@ buildscript {
allprojects {
repositories {
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
google()
jcenter() // Warning: this repository is going to shut down soon
mavenCentral()
@@ -0,0 +1,49 @@
package com.dahe.mylibrary.bean;
import java.io.Serializable;
/**
* @ClassName DriverBean
* @Author john
* @Date 2024/11/28 12:24
* @Description TODO
*/
public class DriverBean implements Serializable {
private String driverCode;
private String isTaxRegistered;
private String taxRegisterStatus;
private String taxRegisterStatusDescription;
public String getDriverCode() {
return driverCode;
}
public void setDriverCode(String driverCode) {
this.driverCode = driverCode;
}
public String getIsTaxRegistered() {
return isTaxRegistered;
}
public void setIsTaxRegistered(String isTaxRegistered) {
this.isTaxRegistered = isTaxRegistered;
}
public String getTaxRegisterStatus() {
return taxRegisterStatus;
}
public void setTaxRegisterStatus(String taxRegisterStatus) {
this.taxRegisterStatus = taxRegisterStatus;
}
public String getTaxRegisterStatusDescription() {
return taxRegisterStatusDescription;
}
public void setTaxRegisterStatusDescription(String taxRegisterStatusDescription) {
this.taxRegisterStatusDescription = taxRegisterStatusDescription;
}
}
@@ -0,0 +1,13 @@
package com.dahe.mylibrary.callback;
/**
* @ClassName OnGDDownloadResultListener
* @Author john
* @Date 2024/11/25 18:22
* @Description TODO
*/
public interface OnGDDownloadResultListener {
void onSuccess(String var1);
void onFailure(String var1, String var2);
}
@@ -0,0 +1,14 @@
package com.dahe.mylibrary.callback;
/**
* @ClassName OnGDResultListener
* @Author john
* @Date 2024/11/25 17:48
* @Description TODO
*/
public interface OnGDResultListener {
void onSuccess();
void onFailure(String var1, String var2);
}
@@ -1,5 +1,7 @@
package com.dahe.mylibrary.net;
import com.dahe.mylibrary.bean.DriverBean;
import java.io.Serializable;
/**
@@ -8,13 +10,69 @@ import java.io.Serializable;
public class CommonResponseBean<T> implements Serializable {
private T data;
private int code;
private String code;
private String info;
private String msg;
private String message;
private String url;
private String fileName;
private String token;
private String expiryIn;
private String statusCode;
private boolean success;
private String[] LicensePlateNos;
public String[] getLicensePlateNos() {
return LicensePlateNos;
}
public void setLicensePlateNos(String[] licensePlateNos) {
LicensePlateNos = licensePlateNos;
}
private DriverBean driver;
public DriverBean getDriver() {
return driver;
}
public void setDriver(DriverBean driver) {
this.driver = driver;
}
public String getStatusCode() {
return statusCode;
}
public void setStatusCode(String statusCode) {
this.statusCode = statusCode;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public String getExpiryIn() {
return expiryIn;
}
public void setExpiryIn(String expiryIn) {
this.expiryIn = expiryIn;
}
public T getData() {
return data;
}
@@ -23,11 +81,11 @@ public class CommonResponseBean<T> implements Serializable {
this.data = data;
}
public int getCode() {
public String getCode() {
return code;
}
public void setCode(int code) {
public void setCode(String code) {
this.code = code;
}
@@ -20,6 +20,7 @@ public class BaseSPUtils {
public static final String USER_INFO_KEY = "user_info_key";
public static final String NET_SERVICE_TEST = "net_service_test";
public static final String SEARRH_CACHE = "search_cache";
public static final String NEW_LJ_TOKEN = "NEW_LJ_TOKEN";
public static final String NAVI_PH_EDIT_CACHE = "navi_ph_edit_cache";
public static final String FIRST_OPEN = "first_open";
public static final String KEY_PRIVACY_AGREEMENT = "privacy_agreement";
@@ -0,0 +1,33 @@
package com.dahe.mylibrary.utils;
/**
* @ClassName Gps
* @Author john
* @Date 2024/12/13 17:25
* @Description TODO
*/
public class Gps {
private double wgLon;
private double wgLat;
public Gps(double wgLat,double wgLon) {
this.wgLat = wgLat;
this.wgLon = wgLon;
}
public double getWgLon() {
return wgLon;
}
public void setWgLon(double wgLon) {
this.wgLon = wgLon;
}
public double getWgLat() {
return wgLat;
}
public void setWgLat(double wgLat) {
this.wgLat = wgLat;
}
}
@@ -1,9 +1,12 @@
package com.dahe.mylibrary.utils;
import android.app.Activity;
import android.content.Context;
import android.widget.ImageView;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.MultiTransformation;
@@ -70,9 +73,19 @@ public class ImageLoader {
*/
public void loadImage(Context context, final Object url, final ImageView imageView, RequestOptions requestOptions, int placeholder) {
if (null != context) {
if (placeholder != -1)
requestOptions = requestOptions.placeholder(placeholder).error(placeholder);
Glide.with(context).load(url).centerCrop().apply(requestOptions).into(imageView);
if (context instanceof Activity) {
Activity activity = (Activity) context;
if (activity != null && !activity.isFinishing()) {
if (placeholder != -1)
requestOptions = requestOptions.placeholder(placeholder).error(placeholder);
Glide.with(context).load(url).centerCrop().apply(requestOptions).into(imageView);
}
}else {
if (placeholder != -1)
requestOptions = requestOptions.placeholder(placeholder).error(placeholder);
Glide.with(context).load(url).centerCrop().apply(requestOptions).into(imageView);
}
}
}
@@ -180,7 +193,7 @@ public class ImageLoader {
* @param url
* @param imageView
*/
public void loadCircleWithBorderImage(Context context, Object url,RequestOptions requestOptions, int borderWidth, int borderColor, ImageView imageView, int placeholder) {
public void loadCircleWithBorderImage(Context context, Object url, RequestOptions requestOptions, int borderWidth, int borderColor, ImageView imageView, int placeholder) {
if (null != context) {
requestOptions.transform(new GlideCircleWithBorder(context, borderWidth, ContextCompat.getColor(context, borderColor)));
loadImage(context, url, imageView, requestOptions, placeholder);
@@ -0,0 +1,112 @@
package com.dahe.mylibrary.utils;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.provider.Settings;
/**
* @ClassName PermissionUtils
* @Author john
* @Date 2024/12/19 14:59
* @Description TODO
*/
public class PermissionUtils {
// 私有静态实例防止被外部实例化
private static PermissionUtils instance;
// 私有构造方法防止通过 new 关键字创建实例
private PermissionUtils() {
}
// 获取单例实例
public static PermissionUtils getInstance() {
if (instance == null) {
synchronized (PermissionUtils.class) {
if (instance == null) {
instance = new PermissionUtils();
}
}
}
return instance;
}
/**
* 根据不同手机机型跳转到权限设置页面
*
* @param context 上下文
*/
public void goToAppPermissionSettings(Context context) {
Intent intent = new Intent();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (Build.FINGERPRINT.startsWith("Huawei") || Build.BRAND.startsWith("Huawei")) {
// 华为手机
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", context.getPackageName(), null);
intent.setData(uri);
} else if (Build.FINGERPRINT.startsWith("Xiaomi") || Build.BRAND.startsWith("Xiaomi")) {
// 小米手机
intent.setAction(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
Uri uri = Uri.parse("package:" + context.getPackageName());
intent.setData(uri);
} else if (Build.BRAND.equals("Meizu")) {
// 魅族手机
intent.setAction("com.meizu.safe.security.SHOW_APPSEC");
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.putExtra("packageName", context.getPackageName());
} else if (Build.FINGERPRINT.startsWith("OPPO") || Build.BRAND.startsWith("OPPO")) {
// OPPO手机
try {
String pkgName = context.getPackageName();
String className = "com.coloros.safecenter.permission.PermissionManagerActivity";
intent.setClassName("com.coloros.safecenter", className);
intent.putExtra("packageName", pkgName);
intent.putExtra("appName", context.getResources().getString(context.getApplicationInfo().labelRes));
intent.putExtra("opType", "4"); // 4 表示权限管理页面
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
} catch (Exception e) {
// 如果找不到OPPO的特定页面则使用通用页面
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", context.getPackageName(), null);
intent.setData(uri);
}
} else if (Build.FINGERPRINT.startsWith("vivo") || Build.BRAND.startsWith("vivo")) {
// vivo手机
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", context.getPackageName(), null);
intent.setData(uri);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(Settings.EXTRA_APP_PACKAGE, context.getPackageName());
} else if (Build.BRAND.equals("samsung")) {
// 三星手机
try {
String pkgName = context.getPackageName();
Intent intent2 = new Intent("android.settings.APPLICATION_DETAILS_SETTINGS");
intent2.addCategory(Intent.CATEGORY_DEFAULT);
intent2.setData(Uri.parse("package:" + pkgName));
intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent2.putExtra("com.android.providers.media.EXTRA_APP_PACKAGE", pkgName);
context.startActivity(intent2);
return; // 使用三星特定的页面不需要继续执行通用代码
} catch (Exception e) {
// 如果三星特定页面失败则使用通用页面
}
} else {
// 其他手机使用通用页面
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", context.getPackageName(), null);
intent.setData(uri);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(Settings.EXTRA_APP_PACKAGE, context.getPackageName());
}
} else {
// 低于Android 6.0M的版本使用通用页面
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", context.getPackageName(), null);
intent.setData(uri);
}
context.startActivity(intent);
}
}
@@ -0,0 +1,539 @@
package com.dahe.mylibrary.utils;
import android.Manifest;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.location.Address;
import android.location.Criteria;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.location.LocationProvider;
import android.os.Bundle;
import android.provider.Settings;
import android.util.Log;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import java.io.IOException;
import java.text.DecimalFormat;
import java.util.List;
import java.util.Locale;
/**
* @author ondear
* time : 16/11/13
* desc : 定位相关工具类
*/
public class RxLocationUtils {
public static double pi = 3.1415926535897932384626;
public static double a = 6378245.0;
public static double ee = 0.00669342162296594323;
private static OnLocationChangeListener mListener;
private static MyLocationListener myLocationListener;
private static LocationManager mLocationManager;
/**
* 判断Gps是否可用
*
* @return {@code true}: <br>{@code false}:
*/
public static boolean isGpsEnabled(Context context) {
LocationManager lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
return lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
}
/**
* 判断定位是否可用
*
* @return {@code true}: <br>{@code false}:
*/
public static boolean isLocationEnabled(Context context) {
LocationManager lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
return lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER) || lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
}
/**
* 打开Gps设置界面
*/
public static void openGpsSettings(Context context) {
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
/**
* 注册
* <p>使用完记得调用{@link #unregister()}</p>
* <p>需添加权限 {@code <uses-permission android:name="android.permission.INTERNET"/>}</p>
* <p>需添加权限 {@code <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>}</p>
* <p>需添加权限 {@code <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>}</p>
* <p>如果{@code minDistance}为0则通过{@code minTime}来定时更新</p>
* <p>{@code minDistance}不为0则以{@code minDistance}为准</p>
* <p>两者都为0则随时刷新</p>
*
* @param minTime 位置信息更新周期单位毫秒
* @param minDistance 位置变化最小距离当位置距离变化超过此值时将更新位置信息单位
* @param listener 位置刷新的回调接口
* @return {@code true}: 初始化成功<br>{@code false}: 初始化失败
*/
public static boolean register(Context context, long minTime, long minDistance, OnLocationChangeListener listener) {
if (listener == null) return false;
if (ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 1);
ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, 1);
return false;
}
mLocationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
mListener = listener;
if (!isLocationEnabled(context)) {
ToastUtils.showToast(context, "无法定位,请打开定位服务");
return false;
}
String provider = mLocationManager.getBestProvider(getCriteria(), true);
Location location = mLocationManager.getLastKnownLocation(provider);
if (location != null) listener.getLastKnownLocation(location);
if (myLocationListener == null) myLocationListener = new MyLocationListener();
mLocationManager.requestLocationUpdates(provider, minTime, minDistance, myLocationListener);
return true;
}
/**
* 注销
*/
public static void unregister() {
if (mLocationManager != null) {
if (myLocationListener != null) {
mLocationManager.removeUpdates(myLocationListener);
myLocationListener = null;
}
mLocationManager = null;
}
}
/**
* 设置定位参数
*
* @return {@link Criteria}
*/
private static Criteria getCriteria() {
Criteria criteria = new Criteria();
//设置定位精确度 Criteria.ACCURACY_COARSE比较粗略Criteria.ACCURACY_FINE则比较精细
criteria.setAccuracy(Criteria.ACCURACY_FINE);
//设置是否要求速度
criteria.setSpeedRequired(false);
// 设置是否允许运营商收费
criteria.setCostAllowed(false);
//设置是否需要方位信息
criteria.setBearingRequired(false);
//设置是否需要海拔信息
criteria.setAltitudeRequired(false);
// 设置对电源的需求
criteria.setPowerRequirement(Criteria.POWER_LOW);
return criteria;
}
/**
* 根据经纬度获取地理位置
*
* @param context 上下文
* @param latitude 纬度
* @param longitude 经度
* @return {@link Address}
*/
public static Address getAddress(Context context, double latitude, double longitude) {
Geocoder geocoder = new Geocoder(context, Locale.getDefault());
try {
List<Address> addresses = geocoder.getFromLocation(latitude, longitude, 1);
if (addresses.size() > 0) return addresses.get(0);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 根据经纬度获取所在国家
*
* @param context 上下文
* @param latitude 纬度
* @param longitude 经度
* @return 所在国家
*/
public static String getCountryName(Context context, double latitude, double longitude) {
Address address = getAddress(context, latitude, longitude);
return address == null ? "unknown" : address.getCountryName();
}
/**
* 根据经纬度获取所在地
*
* @param context 上下文
* @param latitude 纬度
* @param longitude 经度
* @return 所在地
*/
public static String getLocality(Context context, double latitude, double longitude) {
Address address = getAddress(context, latitude, longitude);
return address == null ? "unknown" : address.getLocality();
}
/**
* 根据经纬度获取所在街道
*
* @param context 上下文
* @param latitude 纬度
* @param longitude 经度
* @return 所在街道
*/
public static String getStreet(Context context, double latitude, double longitude) {
Address address = getAddress(context, latitude, longitude);
return address == null ? "unknown" : address.getAddressLine(0);
}
/**
* 根据经纬度获取详细地址
*
* @param context 上下文
* @param latitude 纬度
* @param longitude 经度
* @return 所在街道
*/
public static String getFeature(Context context, double latitude, double longitude) {
Address address = getAddress(context, latitude, longitude);
return address == null ? "未知地点" : address.getFeatureName();
}
//------------------------------------------坐标转换工具start--------------------------------------
/**
* GPS坐标 转换成 角度
* 例如 113.202222 转换成 113°128
*
* @param location
* @return
*/
public static String gpsToDegree(double location) {
double degree = Math.floor(location);
double minute_temp = (location - degree) * 60;
double minute = Math.floor(minute_temp);
// double second = Math.floor((minute_temp - minute)*60);
String second = new DecimalFormat("#.##").format((minute_temp - minute) * 60);
return (int) degree + "°" + (int) minute + "" + second + "";
}
/**
* 国际 GPS84 坐标系
* 转换成
* [国测局坐标系] 火星坐标系 (GCJ-02)
* <p>
* World Geodetic System ==> Mars Geodetic System
*
* @param lon 经度
* @param lat 纬度
* @return GPS实体类
*/
public static Gps GPS84ToGCJ02(double lat, double lon) {
if (outOfChina(lat, lon)) {
return null;
}
double dLat = transformLat(lon - 105.0, lat - 35.0);
double dLon = transformLon(lon - 105.0, lat - 35.0);
double radLat = lat / 180.0 * pi;
double magic = Math.sin(radLat);
magic = 1 - ee * magic * magic;
double sqrtMagic = Math.sqrt(magic);
dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi);
dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi);
double mgLat = lat + dLat;
double mgLon = lon + dLon;
return new Gps(mgLat, mgLon);
}
/**
* [国测局坐标系] 火星坐标系 (GCJ-02)
* 转换成
* 国际 GPS84 坐标系
*
* @param lon 火星经度
* @param lat 火星纬度
*/
public static Gps GCJ02ToGPS84(double lat, double lon) {
Gps gps = transform(lat, lon);
double lontitude = lon * 2 - gps.getWgLon();
double latitude = lat * 2 - gps.getWgLat();
return new Gps(latitude, lontitude);
}
/**
* 火星坐标系 (GCJ-02)
* 转换成
* 百度坐标系 (BD-09)
*
* @param gg_lon 经度
* @param gg_lat 纬度
*/
public static Gps GCJ02ToBD09(double gg_lat, double gg_lon) {
double x = gg_lon, y = gg_lat;
double z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * pi);
double theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * pi);
double bd_lon = z * Math.cos(theta) + 0.0065;
double bd_lat = z * Math.sin(theta) + 0.006;
return new Gps(bd_lat, bd_lon);
}
/**
* 国际 GPS84 坐标系
* 转换成
* 百度坐标系 (BD-09)
*
* @param lon 经度
* @param lat 纬度
*/
public static Gps GPS84ToBD09(double lat, double lon) {
Gps gps = GPS84ToGCJ02(lat,lon);
if (gps == null) {
return new Gps(lat,lon);
}
//GCJ-02 BD-09
return GCJ02ToBD09(gps.getWgLat(), gps.getWgLon());
}
/**
* 百度坐标系 (BD-09)
* 转换成
* 火星坐标系 (GCJ-02)
*
* @param bd_lon 百度*经度
* @param bd_lat 百度*纬度
* @return GPS实体类
*/
public static Gps BD09ToGCJ02(double bd_lat, double bd_lon) {
double x = bd_lon - 0.0065, y = bd_lat - 0.006;
double z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * pi);
double theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * pi);
double gg_lon = z * Math.cos(theta);
double gg_lat = z * Math.sin(theta);
return new Gps(gg_lat, gg_lon);
}
/**
* 百度坐标系 (BD-09)
* 转换成
* 国际 GPS84 坐标系
*
* @param bd_lon 百度*经度
* @param bd_lat 百度*纬度
* @return GPS实体类
*/
public static Gps BD09ToGPS84(double bd_lat, double bd_lon) {
Gps gcj02 = BD09ToGCJ02(bd_lat, bd_lon);
Gps map84 = GCJ02ToGPS84(gcj02.getWgLat(),
gcj02.getWgLon());
return map84;
}
/**
* 不在中国范围内
*
* @param lon 经度
* @param lat 纬度
* @return boolean值
*/
public static boolean outOfChina(double lat, double lon) {
if (lon < 72.004 || lon > 137.8347)
return true;
return lat < 0.8293 || lat > 55.8271;
}
/**
* 转化算法
*
* @param lon
* @param lat
* @return
*/
public static Gps transform(double lat, double lon) {
if (outOfChina(lat, lon)) {
return new Gps(lat, lon);
}
double dLat = transformLat(lon - 105.0, lat - 35.0);
double dLon = transformLon(lon - 105.0, lat - 35.0);
double radLat = lat / 180.0 * pi;
double magic = Math.sin(radLat);
magic = 1 - ee * magic * magic;
double sqrtMagic = Math.sqrt(magic);
dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi);
dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi);
double mgLat = lat + dLat;
double mgLon = lon + dLon;
return new Gps(mgLat, mgLon);
}
/**
* 纬度转化算法
*
* @param x
* @param y
* @return
*/
public static double transformLat(double x, double y) {
double ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y
+ 0.2 * Math.sqrt(Math.abs(x));
ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0;
ret += (20.0 * Math.sin(y * pi) + 40.0 * Math.sin(y / 3.0 * pi)) * 2.0 / 3.0;
ret += (160.0 * Math.sin(y / 12.0 * pi) + 320 * Math.sin(y * pi / 30.0)) * 2.0 / 3.0;
return ret;
}
/**
* 经度转化算法
*
* @param x
* @param y
* @return
*/
public static double transformLon(double x, double y) {
double ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1
* Math.sqrt(Math.abs(x));
ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0;
ret += (20.0 * Math.sin(x * pi) + 40.0 * Math.sin(x / 3.0 * pi)) * 2.0 / 3.0;
ret += (150.0 * Math.sin(x / 12.0 * pi) + 300.0 * Math.sin(x / 30.0
* pi)) * 2.0 / 3.0;
return ret;
}
public interface OnLocationChangeListener {
/**
* 获取最后一次保留的坐标
*
* @param location 坐标
*/
void getLastKnownLocation(Location location);
/**
* 当坐标改变时触发此函数如果Provider传进相同的坐标它就不会被触发
*
* @param location 坐标
*/
void onLocationChanged(Location location);
/**
* provider的在可用暂时不可用和无服务三个状态直接切换时触发此函数
*
* @param provider 提供者
* @param status 状态
* @param extras provider可选包
*/
void onStatusChanged(String provider, int status, Bundle extras);//位置状态发生改变
void onProviderEnabled(String provider);
void onProviderDisabled(String provider);
}
private static class MyLocationListener
implements LocationListener {
/**
* 当坐标改变时触发此函数如果Provider传进相同的坐标它就不会被触发
*
* @param location 坐标
*/
@Override
public void onLocationChanged(Location location) {
if (mListener != null) {
mListener.onLocationChanged(location);
}
}
/**
* provider的在可用暂时不可用和无服务三个状态直接切换时触发此函数
*
* @param provider 提供者
* @param status 状态
* @param extras provider可选包
*/
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
if (mListener != null) {
mListener.onStatusChanged(provider, status, extras);
}
switch (status) {
case LocationProvider.AVAILABLE:
Log.d("onStatusChanged", "当前GPS状态为可见状态");
break;
case LocationProvider.OUT_OF_SERVICE:
Log.d("onStatusChanged", "当前GPS状态为服务区外状态");
break;
case LocationProvider.TEMPORARILY_UNAVAILABLE:
Log.d("onStatusChanged", "当前GPS状态为暂停服务状态");
break;
}
}
/**
* provider被enable时触发此函数比如GPS被打开
*/
@Override
public void onProviderEnabled(String provider) {
if (mListener != null) {
mListener.onProviderEnabled(provider);
}
}
/**
* provider被disable时触发此函数比如GPS被关闭
*/
@Override
public void onProviderDisabled(String provider) {
if (mListener != null) {
mListener.onProviderDisabled(provider);
}
}
}
//===========================================坐标转换工具end====================================
private static final double EARTH_RADIUS = 6378137.0; //地球半径
/**
* 计算两个经纬度之间的距离
*
* @param longitude
* @param latitude
* @param longitude2
* @param latitude2
* @return 单位米
*/
public static double getDistance(double longitude, double latitude, double longitude2, double latitude2) {
double lat1 = rad(latitude);
double lat2 = rad(latitude2);
double a = lat1 - lat2;
double b = rad(longitude) - rad(longitude2);
double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(lat1) * Math.cos(lat2) * Math.pow(Math.sin(b / 2), 2)));
s = s * EARTH_RADIUS;
s = Math.round(s * 10000) / 10000; //四舍五入
return s;
}
/**
* 弧度换为角度
* @param d
* @return
*/
private static double rad(double d) {
return d * Math.PI / 180.0;
}
}
@@ -307,6 +307,27 @@ public final class TimeUtil {
return format.format(date);
}
/**
* 验证时间字符串是否是yyyy-MM-dd格式
*
* @param dateStr 需要验证的时间字符串
* @return 如果是yyyy-MM-dd格式返回true否则返回false
*/
public static boolean isValidDate(String dateStr) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
sdf.setLenient(false); // 设置不宽容严格解析
try {
Date date = sdf.parse(dateStr);
// 可以进一步验证解析后的日期是否合法例如检查月份天数闰年等
// 但对于简单的格式验证这一步通常不是必需的
return true;
} catch (ParseException e) {
return false;
}
}
/**
* 将Date类型转为时间戳
*