Compare commits

..
73 Commits
Author SHA1 Message Date
lijia d5d21b154f 打开极光推送 2024-12-05 15:00:02 +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
lijia df7a29e54b h5title优化 2024-11-21 11:07:34 +08:00
lijia 7c63bb1d39 驾驶证新增字段 2024-11-21 10:40:09 +08:00
lijia 8bbae1cf92 驾驶证ocr上传 2024-11-21 10:13:35 +08:00
lijia 97e0c5f629 行驶证存在添加绑定逻辑 2024-11-20 16:40:26 +08:00
lijia 95667723e9 行驶证接口对接1 2024-11-20 10:36:35 +08:00
lijia 1fd37db329 行驶证接口对接 2024-11-20 09:57:03 +08:00
lijia 51075e72c8 道路运输证ocr中交 2024-11-20 08:32:05 +08:00
lijia 5bc0a041de 中交-身份证 驾驶证 行驶证 从业资格 2024-11-19 16:46:02 +08:00
lijia c11974e9c1 e签宝实名认证回调,首页缺失证件提醒优化, 2024-11-19 08:37:40 +08:00
lijia ccf70796a3 优化运单列表状态显示 2024-11-11 09:14:58 +08:00
lijia 7b3abfeafc 72版本 2024-10-29 14:55:28 +08:00
lijia 9dc92a1bc7 添加权限说明,推送冲突注释 2024-10-29 14:51:58 +08:00
lijia 5fdaa0b213 动态获取权限添加顶部文字说明 2024-10-28 17:27:21 +08:00
lijia 446aed1574 首页不强制权限申请 2024-10-28 15:14:23 +08:00
lijia 6f573aee98 定位服务启动失败 2024-10-28 10:00:42 +08:00
lijia 15bec78cb8 定位权限优化 2024-10-25 17:29:27 +08:00
lijia 3a44129b03 首页权限获取优化 2024-10-25 15:54:13 +08:00
lijia 96819e08b4 70版本 2024-10-23 08:36:48 +08:00
lijia db9990eec0 执行中运单完成状态优化,运单详情偶发不刷新,登录数据类型控制 2024-10-22 17:15:34 +08:00
lijia a2be579ae9 装卸货状态不一致处理 2024-10-21 17:16:20 +08:00
lijia 873e0b81cf 经纬度异常处理 2024-10-21 11:02:47 +08:00
lijia 4cba8a8246 首页证件补传重复弹出优化 2024-10-18 09:01:26 +08:00
lijia ba86cfb234 取消运单导致运单操作异常处理 2024-10-14 16:58:40 +08:00
lijia 6d2656a1f7 高德轨迹显示异常处理 2024-10-14 10:56:05 +08:00
lijia d9ec95fbc8 切换账号执行运单显示异常,上传银行卡loading显示优化 2024-10-12 10:50:18 +08:00
lijia 3c65d1f691 loading优化 2024-09-24 15:33:39 +08:00
lijia c8b6e75d7d 钱包页面自动刷新 2024-09-23 09:56:37 +08:00
lijia 0e8ea7147f 银行卡添加日弹判断 2024-09-11 16:32:27 +08:00
lijia 9364706365 升级69版 2024-09-10 11:12:47 +08:00
lijia d385764b56 取消运单优化 2024-09-04 16:05:05 +08:00
lijia eeadd1d196 首页添加执行中运单跳转功能 2024-09-04 09:23:31 +08:00
lijia 0e9224a034 用户注册添加银行卡逻辑,首页添加银行卡提示入口 2024-08-27 09:27:30 +08:00
lijia a20d49ecdf 协议https无法打开,临时切回http 2024-08-05 15:00:02 +08:00
lijia 7a89c41ed2 68版 2024-08-05 09:00:26 +08:00
lijia 894246456a 添加运单金额隐藏逻辑 2024-08-01 15:10:45 +08:00
lijia 212d12db47 LocationManager定位封装 2024-07-25 16:49:56 +08:00
lijia 9db4b16e24 https无法打开处理 2024-07-23 15:59:00 +08:00
lijia 361ad6111c 手机信息上报完善 2024-07-23 15:31:04 +08:00
lijia 8ba586c204 手机信息上报 2024-07-23 11:03:23 +08:00
lijia c45e623a58 67版本 2024-07-23 09:43:51 +08:00
lijia b6d43b53e5 高德地图key替换 2024-07-23 09:04:40 +08:00
lijia 553dbeed41 道路运输证查看大图 2024-07-22 11:28:20 +08:00
lijia 3e67b50097 迁移https 2024-07-18 16:02:17 +08:00
lijia c6a5363cfe 银行卡解绑显示错乱优化 2024-07-17 11:34:31 +08:00
lijia ba031f075c 登录也优化点击范围 2024-07-17 09:12:30 +08:00
lijia ef6247fc22 卸货,装卸回单添加loading 2024-07-16 17:38:32 +08:00
lijia 9766690957 66版本 2024-07-16 11:03:49 +08:00
99 changed files with 5952 additions and 2371 deletions
+6 -4
View File
@@ -33,12 +33,13 @@ android {
// }
}
defaultConfig {
applicationId "com.arpa.hndahesudintocctmsdriver"
minSdkVersion 24
targetSdkVersion 30
versionCode 65
versionName "3.3.5"
versionCode 73
versionName "3.4.3"
flavorDimensions "CHANNEL_VALUE"
flavorDimensions "app_icon"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -105,7 +106,8 @@ android {
JPUSH_CHANNEL: "developer-default"//暂时填写默认值即可.
]
buildConfigField("String", "OPEN_AL_URL", "\"https://oapi-staging.alct56.com\"")
buildConfigField("String", "BASE_URL", "\"http://app.test.dahehuoyun.com/api/\"")
buildConfigField("String", "BASE_URL", "\"http://192.168.1.118:8080/api/\"")
// buildConfigField("String", "BASE_URL", "\"http://linux.local:8080/api/\"")
buildConfigField "boolean", "isTest", "true"
//APP名称,可以在androidMainfest中引用
resValue "string", "appName", "司机测试"
@@ -114,7 +116,7 @@ android {
applicationId "com.arpa.hndahesudintocctmsdriver"
manifestPlaceholders = [CHANNEL_VALUE: "大河好运司机",
app_icon : "@drawable/diver_logo",
GAODEKEY : "c68051b43e79e47a1556fc695371c902",
GAODEKEY : "9480fd96746922630e9bf6c75a101059",
JPUSH_PKGNAME: applicationId,
JPUSH_APPKEY : "fba6f55621c670d8c1fe9191", //JPush 上注册的包名对应的 Appkey.
JPUSH_CHANNEL: "developer-default"//暂时填写默认值即可.
+63 -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" />
@@ -11,7 +12,6 @@
<!-- 录音 -->
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<!--播音-->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
@@ -72,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" />
@@ -94,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">
@@ -143,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">
@@ -162,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"
@@ -193,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"
@@ -224,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"
@@ -267,10 +277,9 @@
<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"
android:foregroundServiceType="location"></service>
<service android:name="com.amap.api.location.APSService"></service>
<!--百度地图-->
<meta-data
@@ -364,10 +373,39 @@
<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" />
<data
android:host="demo"
android:path="/signBack"
android:scheme="esign" />
<data
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: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" />
@@ -78,30 +78,29 @@ public class App extends Application {
}
}
PendingIntent pendingIntent =
PendingIntent.getActivity(this, 0, new Intent(this, MainActivity.class), PendingIntent.FLAG_UPDATE_CURRENT);
Cactus.getInstance()
.isDebug(true)
//可选,设置通知栏点击事件
.setPendingIntent(pendingIntent)
.setBackgroundMusicEnabled(true)//可选,退到后台是否可以播放音乐
.setMusicId(R.raw.main) //可选,设置音乐
// .setPendingIntent(pendingIntent)//可选,设置通知栏点击事件
// .addCallback(new CactusCallback())//可选,运行时回调
.setCrashRestartUIEnabled(true) //可选,设置奔溃可以重启,google原生rom android 10以下可以正常重启
.setCrashRestartUIEnabled(true)//可选,设置奔溃可以重启,google原生rom android 10以下可以正常重启
.setTitle("大河好运")
.setContent("大河好运司机端为您提供服务")
.setSmallIcon(R.drawable.diver_logo)
.addBackgroundCallback(new CactusBackgroundCallback() {
@Override
public void onBackground(boolean b) {
if (b){
getBillLocation();
}
}
})
.register(this);
// PendingIntent pendingIntent =
// PendingIntent.getActivity(this, 0, new Intent(this, MainActivity.class), PendingIntent.FLAG_UPDATE_CURRENT);
// Cactus.getInstance()
// .isDebug(true)
// //可选,设置通知栏点击事件
// .setPendingIntent(pendingIntent)
//// .setBackgroundMusicEnabled(true)//可选,退到后台是否可以播放音乐
//// .setMusicId(R.raw.main) //可选,设置音乐
//// .setPendingIntent(pendingIntent)//可选,设置通知栏点击事件
//// .addCallback(new CactusCallback())//可选,运行时回调
// .setCrashRestartUIEnabled(true) //可选,设置奔溃可以重启,google原生rom android 10以下可以正常重启
// .setCrashRestartUIEnabled(true)//可选,设置奔溃可以重启,google原生rom android 10以下可以正常重启
// .setTitle("大河好运")
// .setSmallIcon(R.drawable.diver_logo)
// .addBackgroundCallback(new CactusBackgroundCallback() {
// @Override
// public void onBackground(boolean b) {
// if (b){
// getBillLocation();
// }
// }
// })
// .register(this);
}
public static App getApp() {
File diff suppressed because it is too large Load Diff
@@ -3,6 +3,7 @@ package com.arpa.hndahesudintocctmsdriver;
import android.Manifest;
import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
@@ -40,10 +41,14 @@ 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;
import com.dahe.mylibrary.utils.ToastUtils;
import com.esign.esignsdk.EsignSdk;
import com.esign.esignsdk.h5.base.WBH5FaceVerifySDK;
@@ -73,25 +78,38 @@ public class H5Activity extends AppCompatActivity {
String curUrl = null;
boolean viewFile = false;
boolean isGoCar = false;
long time = System.currentTimeMillis();
ValueCallback<Uri> uploadMessage;
private ValueCallback<Uri[]> uploadMessageAboveL;
private final static int FILE_CHOOSER_RESULT_CODE = 10000;
private Context ctx;
private boolean isOk = false;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.activity_h5);
ctx = this;
mWebView = findViewById(R.id.webview);
ImageView back = findViewById(R.id.back);
TextView close = findViewById(R.id.close);
TextView tvTitle = findViewById(R.id.tv_title);
WebSettings webSetting = mWebView.getSettings();
String title = getIntent().getStringExtra("title");
if (!TextUtils.isEmpty(title)) {
tvTitle.setText(title);
}
back.setOnClickListener(v -> {
if (isOk) {
ActivityUtils.finishToActivity(MainActivity.class, false);
return;
}
if (mWebView.canGoBack()) {
mWebView.goBack();
} else {
@@ -100,6 +118,10 @@ public class H5Activity extends AppCompatActivity {
});
close.setOnClickListener(v -> {
if (isOk) {
ActivityUtils.finishToActivity(MainActivity.class, false);
return;
}
if (mWebView.canGoBack()) {
mWebView.goBack();
} else {
@@ -114,6 +136,9 @@ public class H5Activity extends AppCompatActivity {
webSetting.setLoadWithOverviewMode(true);
webSetting.setAllowFileAccess(true);
webSetting.setAppCacheEnabled(true);
webSetting.setAllowContentAccess(true);
webSetting.setLoadsImagesAutomatically(true);
webSetting.setMediaPlaybackRequiresUserGesture(true);
String appCachePath = getApplication().getCacheDir().getAbsolutePath();
webSetting.setAppCachePath(appCachePath);
webSetting.setDatabaseEnabled(true);
@@ -180,11 +205,21 @@ public class H5Activity extends AppCompatActivity {
private void processExtraData() {
Intent intent = getIntent();
isGoCar = intent.getBooleanExtra("isGoCar", false);
Uri uri = intent.getData();
Log.e("test", "===" + uri);
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)) {
@@ -199,13 +234,23 @@ public class H5Activity extends AppCompatActivity {
String url = intent.getStringExtra("url");
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/goApp")) {
Intent in = new Intent(ctx, FaceSuccActivity.class);
startActivity(in);
if (isGoCar) {
ActivityUtils.finishToActivity(MainActivity.class, false);
} else {
finish();
}
return;
}
if (curUrl == null) {
curUrl = url;
@@ -225,6 +270,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 (url.startsWith("https://agreement.dahehuoyun.com/#/1ba5c216/912f4c9587/5eb5184653/6ef9")) {
if (url.startsWith("https://agreement.dahehuoyun.com/goApp")) {
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")) {
@@ -261,6 +330,12 @@ public class H5Activity extends AppCompatActivity {
// 实名认证结束 返回按钮/倒计时返回/暂不认证
boolean status = uri.getBooleanQueryParameter("status", false);
if (status) {
//认证成功返回
new Handler().postDelayed(() -> {
FaceEvent he = new FaceEvent("刷脸成功");
EventBus.getDefault().post(he);
finish();
}, 800);
//认证成功返回
Toast.makeText(H5Activity.this, "认证成功", Toast.LENGTH_LONG).show();
finish();
@@ -278,6 +353,12 @@ public class H5Activity extends AppCompatActivity {
boolean status = uri.getBooleanQueryParameter("status", false);
if (status) {
//认证成功返回
//认证成功返回
new Handler().postDelayed(() -> {
FaceEvent he = new FaceEvent("刷脸成功");
EventBus.getDefault().post(he);
finish();
}, 800);
Toast.makeText(H5Activity.this, "认证成功", Toast.LENGTH_LONG).show();
finish();
}
@@ -0,0 +1,485 @@
package com.arpa.hndahesudintocctmsdriver;
import static android.webkit.WebSettings.LOAD_NO_CACHE;
import android.Manifest;
import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.net.http.SslError;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.provider.MediaStore;
import android.text.TextUtils;
import android.util.Log;
import android.view.KeyEvent;
import android.webkit.ConsoleMessage;
import android.webkit.CookieManager;
import android.webkit.CookieSyncManager;
import android.webkit.JsPromptResult;
import android.webkit.JsResult;
import android.webkit.PermissionRequest;
import android.webkit.SslErrorHandler;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceError;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import com.arpa.hndahesudintocctmsdriver.event.FaceEvent;
import com.arpa.hndahesudintocctmsdriver.util.statusbar.StatusBar;
import com.esign.esignsdk.h5.base.WBH5FaceVerifySDK;
import org.greenrobot.eventbus.EventBus;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import pub.devrel.easypermissions.EasyPermissions;
import qiu.niorgai.StatusBarCompat;
/**
* @author xingtian on 2019/3/25
*/
public class H5Activity2 extends AppCompatActivity {
public static final int REQUEST_PERMISSION_STORAGE = 0x00;
public static final int REQUEST_PERMISSION_CAMERA = 0x01;
public final static String SCHEMA_REAL = "esign://demo/realBack";
public final static String SCHEMA_SIGN = "esign://demo/signBack";
private WebView mWebView;
String curUrl = null;
boolean viewFile = false;
long time = System.currentTimeMillis();
ValueCallback<Uri> uploadMessage;
private ValueCallback<Uri[]> uploadMessageAboveL;
private final static int FILE_CHOOSER_RESULT_CODE = 10000;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.activity_h5);
StatusBarCompat.setStatusBarColor(this, ContextCompat.getColor(this, R.color.white), 0);
StatusBar.changeToLightStatusBar(this); //黑色 下边白色
mWebView = findViewById(R.id.webview);
// ImageView back = findViewById(R.id.back);
// TextView close = findViewById(R.id.close);
WebSettings webSetting = mWebView.getSettings();
// back.setOnClickListener(v -> {
// if (mWebView.canGoBack()) {
// mWebView.goBack();
// } else {
// finish();
// }
// });
//
// close.setOnClickListener(v -> {
// if (mWebView.canGoBack()) {
// mWebView.goBack();
// } else {
// finish();
// }
// });
webSetting.setJavaScriptEnabled(true);
webSetting.setDomStorageEnabled(true);
// webSetting.setAppCacheMaxSize(1024 * 1024 * 8);
webSetting.setUseWideViewPort(true);
webSetting.setLoadWithOverviewMode(true);
webSetting.setAllowFileAccess(true);
// webSetting.setAppCacheEnabled(true);
String appCachePath = getApplication().getCacheDir().getAbsolutePath();
// webSetting.setAppCachePath(appCachePath);
webSetting.setDatabaseEnabled(true);
webSetting.setCacheMode(LOAD_NO_CACHE);
webSetting.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
WebView.setWebContentsDebuggingEnabled(true);
}
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
if (Build.VERSION.SDK_INT >= 21) {
cookieManager.setAcceptThirdPartyCookies(mWebView, true);
}
cookieManager.setAcceptCookie(true);
mWebView.setWebViewClient(new MyWebViewClient());
mWebView.setWebChromeClient(new H5FaceWebChromeClient(this));
WBH5FaceVerifySDK.getInstance().setWebViewSettings(mWebView, getApplicationContext());
processExtraData();
}
@Override
protected void onPause() {
super.onPause();
mWebView.onPause();
}
@Override
protected void onResume() {
super.onResume();
mWebView.onResume();
}
@Override
protected void onStop() {
super.onStop();
mWebView.stopLoading();
}
@Override
protected void onDestroy() {
super.onDestroy();
try {
if (mWebView != null) {
mWebView.removeAllViews();
mWebView.destroy();
}
} catch (Exception e) {
}
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
processExtraData();
}
private void processExtraData() {
Intent intent = getIntent();
Uri uri = intent.getData();
Log.e("test", "===" + uri);
if (uri != null) {
// 芝麻认证刷脸结束返回获取后续操作页面地址
// String callbackUrl = uri.getQueryParameter("callback");
String callbackUrl = uri.getQueryParameter("realnameUrl");
if (!TextUtils.isEmpty(callbackUrl)) {
try {
mWebView.loadUrl(URLDecoder.decode(callbackUrl, "utf-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
} else {
String url = intent.getStringExtra("url");
viewFile = intent.getBooleanExtra("view_file", false);
if (url.startsWith("alipay")) {
try {
Intent intent2 = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent2);
return;
} catch (Exception e) {
}
}
if (curUrl == null) {
curUrl = url;
}
mWebView.loadUrl(url);
}
}
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url == null) {
return false;
}
Uri uri = Uri.parse(url);
Log.e("test", "要加载的地址:" + uri.getScheme() + " " + url + " ");
if (uri.getScheme().equals("http") || uri.getScheme().equals("https")) {
view.loadUrl(url);
return true;
} else if (uri.getScheme().equals("js") || uri.getScheme().equals("jsbridge")) {
// js://signCallback?signResult=true 签署结果
if (uri.getAuthority().equals("signCallback")) {
if (viewFile) {
view.loadUrl(curUrl);
return true;
} else {
if (url.contains("signResult")) {
boolean signResult = uri.getBooleanQueryParameter("signResult", false);
Toast.makeText(H5Activity2.this, "签署结果: " + " signResult = " + signResult, Toast.LENGTH_LONG).show();
} else {
String tsignCode = uri.getQueryParameter("tsignCode");
if ("0".equals(tsignCode)) {
tsignCode = "签署成功";
} else {
tsignCode = "签署失败";
}
Toast.makeText(H5Activity2.this, "签署结果: " + tsignCode, Toast.LENGTH_LONG).show();
}
}
finish();
}
//js://tsignRealBack?esignAppScheme=esign://app/callback&serviceId=854677892133554052&verifycode=4a52e2af0d0abfb7b285c4f05b5af133&status=true&passed=true
//实名结果
if (uri.getAuthority().equals("tsignRealBack")) {
//实名结果字段
if (uri.getQueryParameter("verifycode") != null) {
String realVerifyCode = uri.getQueryParameter("verifycode");
}
// 实名认证结束 返回按钮/倒计时返回/暂不认证
boolean status = uri.getBooleanQueryParameter("status", false);
if (status) {
//认证成功返回
new Handler().postDelayed(() -> {
FaceEvent he = new FaceEvent("刷脸成功");
EventBus.getDefault().post(he);
finish();
}, 800);
Toast.makeText(H5Activity2.this, "认证成功", Toast.LENGTH_LONG).show();
// finish();
}
}
return true;
} else if (url.startsWith(SCHEMA_REAL)) {
//esign://app/realBack&serviceId=854677892133554052&verifycode=4a52e2af0d0abfb7b285c4f05b5af133&status=true&passed=true
//实名结果
if (uri.getQueryParameter("verifycode") != null) {
String realVerifyCode = uri.getQueryParameter("verifycode");
}
// 实名认证结束 返回按钮/倒计时返回/暂不认证
boolean status = uri.getBooleanQueryParameter("status", false);
if (status) {
//认证成功返回
new Handler().postDelayed(() -> {
FaceEvent he = new FaceEvent("刷脸成功");
EventBus.getDefault().post(he);
finish();
}, 800);
Toast.makeText(H5Activity2.this, "认证成功", Toast.LENGTH_LONG).show();
// finish();
}
return true;
} else if (url.startsWith(SCHEMA_SIGN)) {
// js://signCallback?signResult=true 签署结果
if (url.contains("signResult")) {
boolean signResult = uri.getBooleanQueryParameter("signResult", false);
Toast.makeText(H5Activity2.this, "签署结果: " + " signResult = " + signResult, Toast.LENGTH_LONG).show();
} else {
String tsignCode = uri.getQueryParameter("tsignCode");
if ("0".equals(tsignCode)) {
//延时1.5秒跳转运单详情页面
// new Handler().postDelayed(() -> {
// FaceEvent he = new FaceEvent("刷脸成功");
// EventBus.getDefault().post(he);
// finish();
// }, 800);
tsignCode = "签署成功";
} else {
tsignCode = "签署失败";
}
Toast.makeText(H5Activity2.this, "签署结果: " + tsignCode, Toast.LENGTH_LONG).show();
}
// finish();
return true;
} else if (uri.getScheme().equals("alipays")) {
// 跳转到支付宝刷脸
// alipays://platformapi/startapp?appId=20000067&pd=NO&url=https%3A%2F%2Fzmcustprod.zmxy.com.cn%2Fcertify%2Fbegin.htm%3Ftoken%3DZM201811133000000050500431389414
try {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
return true;
} catch (Exception e) {
return false;
}
} else {
return false;
}
}
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
super.onReceivedError(view, request, error);
}
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
// super.onReceivedSslError(view, handler, error);
handler.proceed();
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
time = System.currentTimeMillis();
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
@Override
public void onLoadResource(WebView view, String url) {
super.onLoadResource(view, url);
}
}
public class H5FaceWebChromeClient extends WebChromeClient {
private Activity activity;
public H5FaceWebChromeClient(Activity mActivity) {
this.activity = mActivity;
}
@Override
public void onReceivedTitle(WebView view, String title) {
}
@Override
public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result) {
return super.onJsPrompt(view, url, message, defaultValue, result);
}
@Override
public boolean onJsConfirm(WebView view, String url, String message, JsResult result) {
return super.onJsConfirm(view, url, message, result);
}
@TargetApi(8)
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
return super.onConsoleMessage(consoleMessage);
}
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType) {
if (WBH5FaceVerifySDK.getInstance().recordVideoForApiBelow21(uploadMsg, acceptType, activity)) {
return;
}
uploadMessage = uploadMsg;
}
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) {
if (WBH5FaceVerifySDK.getInstance().recordVideoForApiBelow21(uploadMsg, acceptType, activity)) {
return;
}
uploadMessage = uploadMessage;
}
@TargetApi(21)
@Override
public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) {
if (WBH5FaceVerifySDK.getInstance().recordVideoForApi21(webView, filePathCallback, activity, fileChooserParams)) {
return true;
}
uploadMessageAboveL = filePathCallback;
recordVideo(H5Activity2.this);
return true;
}
@Override
public void onPermissionRequest(PermissionRequest request) {
request.grant(request.getResources());
request.getOrigin();
}
}
public void recordVideo(Activity activity) {
if (EasyPermissions.hasPermissions(activity, Manifest.permission.CAMERA)) {
try {
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.putExtra("android.intent.extras.CAMERA_FACING", 1); // 调用前置摄像头
activity.startActivityForResult(intent, FILE_CHOOSER_RESULT_CODE);
} catch (Exception e) {
e.printStackTrace();
}
} else {
EasyPermissions.requestPermissions(activity, "请同意使用相机功能", REQUEST_PERMISSION_CAMERA, Manifest.permission.CAMERA);
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (mWebView.canGoBack()) {
mWebView.goBack();
} else {
finish();
}
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (WBH5FaceVerifySDK.getInstance().receiveH5FaceVerifyResult(requestCode, resultCode, data)) {
return;
}
if (requestCode == FILE_CHOOSER_RESULT_CODE) {
if (null == uploadMessage && null == uploadMessageAboveL) {
return;
}
Uri result = data == null || resultCode != RESULT_OK ? null : data.getData();
if (uploadMessageAboveL != null) {
if (resultCode == RESULT_OK) {
uploadMessageAboveL.onReceiveValue(new Uri[]{result});
uploadMessageAboveL = null;
} else {
uploadMessageAboveL.onReceiveValue(new Uri[]{});
uploadMessageAboveL = null;
}
} else if (uploadMessage != null) {
if (resultCode == RESULT_OK) {
uploadMessage.onReceiveValue(result);
uploadMessage = null;
} else {
uploadMessage.onReceiveValue(Uri.EMPTY);
uploadMessage = null;
}
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
WBH5FaceVerifySDK.getInstance().recordVideo(this);
}
}
@@ -0,0 +1,157 @@
package com.arpa.hndahesudintocctmsdriver.bean;
import android.os.Build;
import android.provider.Settings;
import androidx.activity.result.contract.ActivityResultContracts;
import com.arpa.hndahesudintocctmsdriver.App;
import com.dahe.mylibrary.utils.AppUtils;
import java.util.Locale;
/**
* @ClassName AppInfoBean
* @Author john
* @Date 2024/7/22 15:31
* @Description TODO
*/
public class AppInfoBean {
private String userPhone;
private String macIpaddr = Settings.Secure.getString(App.getApp().getContentResolver(),Settings.Secure.ANDROID_ID);
// private String macIpaddr = android.os.Build.ID;
private String clientSource = "driver";
private String status = "";
private String mobilePhoneManufacturerName = android.os.Build.BRAND;
private String mobilePhoneProductName = android.os.Build.MODEL;
private String mobilePhoneMotherboardName = android.os.Build.BOARD;
private String mobilePhoneHardwareName = android.os.Build.DEVICE;
private String mobilePhoneMachineSystemLanguage = Locale.getDefault().getLanguage();
private String androidVersion=android.os.Build.VERSION.RELEASE;
private String androidSystemSdk = android.os.Build.VERSION.SDK_INT+"";
private String appVersionName = AppUtils.getAppVersionName();
private String appVersionNumber = AppUtils.getAppVersionCode()+"";
public String getUserPhone() {
return userPhone;
}
public void setUserPhone(String userPhone) {
this.userPhone = userPhone;
}
public String getMacIpaddr() {
return macIpaddr;
}
public void setMacIpaddr(String macIpaddr) {
this.macIpaddr = macIpaddr;
}
public String getClientSource() {
return clientSource;
}
public void setClientSource(String clientSource) {
this.clientSource = clientSource;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getMobilePhoneManufacturerName() {
return mobilePhoneManufacturerName;
}
public void setMobilePhoneManufacturerName(String mobilePhoneManufacturerName) {
this.mobilePhoneManufacturerName = mobilePhoneManufacturerName;
}
public String getMobilePhoneProductName() {
return mobilePhoneProductName;
}
public void setMobilePhoneProductName(String mobilePhoneProductName) {
this.mobilePhoneProductName = mobilePhoneProductName;
}
public String getMobilePhoneMotherboardName() {
return mobilePhoneMotherboardName;
}
public void setMobilePhoneMotherboardName(String mobilePhoneMotherboardName) {
this.mobilePhoneMotherboardName = mobilePhoneMotherboardName;
}
public String getMobilePhoneHardwareName() {
return mobilePhoneHardwareName;
}
public void setMobilePhoneHardwareName(String mobilePhoneHardwareName) {
this.mobilePhoneHardwareName = mobilePhoneHardwareName;
}
public String getMobilePhoneMachineSystemLanguage() {
return mobilePhoneMachineSystemLanguage;
}
public void setMobilePhoneMachineSystemLanguage(String mobilePhoneMachineSystemLanguage) {
this.mobilePhoneMachineSystemLanguage = mobilePhoneMachineSystemLanguage;
}
public String getAndroidVersion() {
return androidVersion;
}
public void setAndroidVersion(String androidVersion) {
this.androidVersion = androidVersion;
}
public String getAndroidSystemSdk() {
return androidSystemSdk;
}
public void setAndroidSystemSdk(String androidSystemSdk) {
this.androidSystemSdk = androidSystemSdk;
}
public String getAppVersionName() {
return appVersionName;
}
public void setAppVersionName(String appVersionName) {
this.appVersionName = appVersionName;
}
public String getAppVersionNumber() {
return appVersionNumber;
}
public void setAppVersionNumber(String appVersionNumber) {
this.appVersionNumber = appVersionNumber;
}
@Override
public String toString() {
return "AppInfoBean{" +
"userPhone='" + userPhone + '\'' +
", macIpaddr='" + macIpaddr + '\'' +
", clientSource='" + clientSource + '\'' +
", status='" + status + '\'' +
", mobilePhoneManufacturerName='" + mobilePhoneManufacturerName + '\'' +
", mobilePhoneProductName='" + mobilePhoneProductName + '\'' +
", mobilePhoneMotherboardName='" + mobilePhoneMotherboardName + '\'' +
", mobilePhoneHardwareName='" + mobilePhoneHardwareName + '\'' +
", mobilePhoneMachineSystemLanguage='" + mobilePhoneMachineSystemLanguage + '\'' +
", androidVersion='" + androidVersion + '\'' +
", androidSystemSdk='" + androidSystemSdk + '\'' +
", appVersionName='" + appVersionName + '\'' +
", appVersionNumber='" + appVersionNumber + '\'' +
'}';
}
}
@@ -0,0 +1,395 @@
package com.arpa.hndahesudintocctmsdriver.bean;
import java.io.Serializable;
/**
* @ClassName CarInfoBean2
* @Author john
* @Date 2024/11/20 15:43
* @Description TODO
*/
public class CarInfoBean2 implements Serializable {
private int code;
private DataDTO data;
private String msg;
private String remark;
private int res;
private boolean success;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public DataDTO getData() {
return data;
}
public void setData(DataDTO data) {
this.data = data;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public int getRes() {
return res;
}
public void setRes(int res) {
this.res = res;
}
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public static class DataDTO {
private String allAuality;
private String allCapacity;
private String approvedCapacity;
private String auditStatus;
private String auditTime;
private String backImage;
private String backStatus;
private String backTime;
private String carId;
private String carNumber;
private String checkRecord;
private String createTime;
private String dateIssue;
private String engineNumber;
private String fileNumber;
private String frontImage;
private String frontStatus;
private String frontTime;
private String fuelType;
private String id;
private String model;
private String nature;
private String organizationName;
private String owner;
private String personCapacity;
private String registerDate;
private String remark;
private String size;
private String threeImage;
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;
}
public void setAllAuality(String allAuality) {
this.allAuality = allAuality;
}
public String getAllCapacity() {
return allCapacity;
}
public void setAllCapacity(String allCapacity) {
this.allCapacity = allCapacity;
}
public String getApprovedCapacity() {
return approvedCapacity;
}
public void setApprovedCapacity(String approvedCapacity) {
this.approvedCapacity = approvedCapacity;
}
public String getAuditStatus() {
return auditStatus;
}
public void setAuditStatus(String auditStatus) {
this.auditStatus = auditStatus;
}
public String getAuditTime() {
return auditTime;
}
public void setAuditTime(String auditTime) {
this.auditTime = auditTime;
}
public String getBackImage() {
return backImage;
}
public void setBackImage(String backImage) {
this.backImage = backImage;
}
public String getBackStatus() {
return backStatus;
}
public void setBackStatus(String backStatus) {
this.backStatus = backStatus;
}
public String getBackTime() {
return backTime;
}
public void setBackTime(String backTime) {
this.backTime = backTime;
}
public String getCarId() {
return carId;
}
public void setCarId(String carId) {
this.carId = carId;
}
public String getCarNumber() {
return carNumber;
}
public void setCarNumber(String carNumber) {
this.carNumber = carNumber;
}
public String getCheckRecord() {
return checkRecord;
}
public void setCheckRecord(String checkRecord) {
this.checkRecord = checkRecord;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public String getDateIssue() {
return dateIssue;
}
public void setDateIssue(String dateIssue) {
this.dateIssue = dateIssue;
}
public String getEngineNumber() {
return engineNumber;
}
public void setEngineNumber(String engineNumber) {
this.engineNumber = engineNumber;
}
public String getFileNumber() {
return fileNumber;
}
public void setFileNumber(String fileNumber) {
this.fileNumber = fileNumber;
}
public String getFrontImage() {
return frontImage;
}
public void setFrontImage(String frontImage) {
this.frontImage = frontImage;
}
public String getFrontStatus() {
return frontStatus;
}
public void setFrontStatus(String frontStatus) {
this.frontStatus = frontStatus;
}
public String getFrontTime() {
return frontTime;
}
public void setFrontTime(String frontTime) {
this.frontTime = frontTime;
}
public String getFuelType() {
return fuelType;
}
public void setFuelType(String fuelType) {
this.fuelType = fuelType;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public String getNature() {
return nature;
}
public void setNature(String nature) {
this.nature = nature;
}
public String getOrganizationName() {
return organizationName;
}
public void setOrganizationName(String organizationName) {
this.organizationName = organizationName;
}
public String getOwner() {
return owner;
}
public void setOwner(String owner) {
this.owner = owner;
}
public String getPersonCapacity() {
return personCapacity;
}
public void setPersonCapacity(String personCapacity) {
this.personCapacity = personCapacity;
}
public String getRegisterDate() {
return registerDate;
}
public void setRegisterDate(String registerDate) {
this.registerDate = registerDate;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public String getSize() {
return size;
}
public void setSize(String size) {
this.size = size;
}
public String getThreeImage() {
return threeImage;
}
public void setThreeImage(String threeImage) {
this.threeImage = threeImage;
}
public String getThreeImageStatus() {
return threeImageStatus;
}
public void setThreeImageStatus(String threeImageStatus) {
this.threeImageStatus = threeImageStatus;
}
public String getTowAuality() {
return towAuality;
}
public void setTowAuality(String towAuality) {
this.towAuality = towAuality;
}
public String getTrailer() {
return trailer;
}
public void setTrailer(String trailer) {
this.trailer = trailer;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getVehicleAxis() {
return vehicleAxis;
}
public void setVehicleAxis(String vehicleAxis) {
this.vehicleAxis = vehicleAxis;
}
public String getVehicleNumber() {
return vehicleNumber;
}
public void setVehicleNumber(String vehicleNumber) {
this.vehicleNumber = vehicleNumber;
}
}
}
@@ -57,12 +57,15 @@ public class DriverAuthDataBean {
private String idcardValidity;
private String dirverAllowType;
private int idcardPhoto;
private String bankImgUrl;
private String bankName;
private String cardNo;
private int idcardBackPhoto;
private Object idcardPhotoHold;
private String idcardAddress;
private String idcardName;
private int idcardSex;
private int idCardStatus;
private int idCardStatus;//身份证认证状态;-1未提交 0待认证 1认证通过 2认证失败
private int driverLicenseStatus;
private int qualificationCertificateStatus;
private String idCardReason;
@@ -141,6 +144,30 @@ public class DriverAuthDataBean {
private Object mbindStatus;
private Object mreason;
public String getBankImgUrl() {
return bankImgUrl;
}
public void setBankImgUrl(String bankImgUrl) {
this.bankImgUrl = bankImgUrl;
}
public String getBankName() {
return bankName;
}
public void setBankName(String bankName) {
this.bankName = bankName;
}
public String getCardNo() {
return cardNo;
}
public void setCardNo(String cardNo) {
this.cardNo = cardNo;
}
public int getId() {
return id;
}
@@ -0,0 +1,328 @@
package com.arpa.hndahesudintocctmsdriver.bean;
import java.io.Serializable;
/**
* @ClassName DriverUpBean
* @Author john
* @Date 2024/11/20 09:20
* @Description TODO
*/
public class DriverUpBean implements Serializable {
private String frontImageUrl;
private String backImageUrl;
private String carNumber;
private String type;
private String owner;
private String vehicleNumber;
private String carLong;
private String carWidth;
private String carHeight;
private String carId;
private String carPlateColor;
private String carEnergyTyp;
private DataDTO zjObj;
public String getCarId() {
return carId;
}
public void setCarId(String carId) {
this.carId = carId;
}
public String getFrontImageUrl() {
return frontImageUrl;
}
public void setFrontImageUrl(String frontImageUrl) {
this.frontImageUrl = frontImageUrl;
}
public String getBackImageUrl() {
return backImageUrl;
}
public void setBackImageUrl(String backImageUrl) {
this.backImageUrl = backImageUrl;
}
public String getCarNumber() {
return carNumber;
}
public void setCarNumber(String carNumber) {
this.carNumber = carNumber;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getOwner() {
return owner;
}
public void setOwner(String owner) {
this.owner = owner;
}
public String getVehicleNumber() {
return vehicleNumber;
}
public void setVehicleNumber(String vehicleNumber) {
this.vehicleNumber = vehicleNumber;
}
public String getCarLong() {
return carLong;
}
public void setCarLong(String carLong) {
this.carLong = carLong;
}
public String getCarWidth() {
return carWidth;
}
public void setCarWidth(String carWidth) {
this.carWidth = carWidth;
}
public String getCarHeight() {
return carHeight;
}
public void setCarHeight(String carHeight) {
this.carHeight = carHeight;
}
public String getCarPlateColor() {
return carPlateColor;
}
public void setCarPlateColor(String carPlateColor) {
this.carPlateColor = carPlateColor;
}
public String getCarEnergyTyp() {
return carEnergyTyp;
}
public void setCarEnergyTyp(String carEnergyTyp) {
this.carEnergyTyp = carEnergyTyp;
}
public DataDTO getZjObj() {
return zjObj;
}
public void setZjObj(DataDTO zjObj) {
this.zjObj = zjObj;
}
public static class DataDTO {
private String approveTon;
private String recordId;
private String note;
private String passengers;
private String vclDrwTn;
private String overallDimen;
private String vclN;
private String enTn;
private String loadTon;
private String inspectionRecord;
private String barCode;
private String issuingAuthority;
private String regTime;
private String address;
private String ownerName;
private String engine;
private String vin;
private String licensedateOfissue;
private String vcltype;
private String vclBrand;
private String natureOfUsage;
public String getApproveTon() {
return approveTon;
}
public void setApproveTon(String approveTon) {
this.approveTon = approveTon;
}
public String getRecordId() {
return recordId;
}
public void setRecordId(String recordId) {
this.recordId = recordId;
}
public String getNote() {
return note;
}
public void setNote(String note) {
this.note = note;
}
public String getPassengers() {
return passengers;
}
public void setPassengers(String passengers) {
this.passengers = passengers;
}
public String getVclDrwTn() {
return vclDrwTn;
}
public void setVclDrwTn(String vclDrwTn) {
this.vclDrwTn = vclDrwTn;
}
public String getOverallDimen() {
return overallDimen;
}
public void setOverallDimen(String overallDimen) {
this.overallDimen = overallDimen;
}
public String getVclN() {
return vclN;
}
public void setVclN(String vclN) {
this.vclN = vclN;
}
public String getEnTn() {
return enTn;
}
public void setEnTn(String enTn) {
this.enTn = enTn;
}
public String getLoadTon() {
return loadTon;
}
public void setLoadTon(String loadTon) {
this.loadTon = loadTon;
}
public String getInspectionRecord() {
return inspectionRecord;
}
public void setInspectionRecord(String inspectionRecord) {
this.inspectionRecord = inspectionRecord;
}
public String getBarCode() {
return barCode;
}
public void setBarCode(String barCode) {
this.barCode = barCode;
}
public String getIssuingAuthority() {
return issuingAuthority;
}
public void setIssuingAuthority(String issuingAuthority) {
this.issuingAuthority = issuingAuthority;
}
public String getRegTime() {
return regTime;
}
public void setRegTime(String regTime) {
this.regTime = regTime;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getOwnerName() {
return ownerName;
}
public void setOwnerName(String ownerName) {
this.ownerName = ownerName;
}
public String getEngine() {
return engine;
}
public void setEngine(String engine) {
this.engine = engine;
}
public String getVin() {
return vin;
}
public void setVin(String vin) {
this.vin = vin;
}
public String getLicensedateOfissue() {
return licensedateOfissue;
}
public void setLicensedateOfissue(String licensedateOfissue) {
this.licensedateOfissue = licensedateOfissue;
}
public String getVcltype() {
return vcltype;
}
public void setVcltype(String vcltype) {
this.vcltype = vcltype;
}
public String getVclBrand() {
return vclBrand;
}
public void setVclBrand(String vclBrand) {
this.vclBrand = vclBrand;
}
public String getNatureOfUsage() {
return natureOfUsage;
}
public void setNatureOfUsage(String natureOfUsage) {
this.natureOfUsage = natureOfUsage;
}
}
}
@@ -55,6 +55,33 @@ public class OCRBankBean {
private String validDate;
private String bankCardType;
private String bankName;
private String expiryDate;
private String type;
private String cardNumber;
public String getExpiryDate() {
return expiryDate;
}
public void setExpiryDate(String expiryDate) {
this.expiryDate = expiryDate;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getCardNumber() {
return cardNumber;
}
public void setCardNumber(String cardNumber) {
this.cardNumber = cardNumber;
}
public int getId() {
return id;
@@ -60,6 +60,33 @@ public class OCRCardBackBean {
private String startTime;
private String endTime;
private String organizationName;
private String validFrom;
private String validTo;
private String issue;
public String getIssue() {
return issue;
}
public void setIssue(String issue) {
this.issue = issue;
}
public String getValidFrom() {
return validFrom;
}
public void setValidFrom(String validFrom) {
this.validFrom = validFrom;
}
public String getValidTo() {
return validTo;
}
public void setValidTo(String validTo) {
this.validTo = validTo;
}
public int getId() {
return id;
@@ -63,6 +63,51 @@ public class OCRCardBean {
private String cardId;
private String birthday;
private String sex;
private String ethnicity;
private String idcard;
private String birth;
private String validFrom;
private String validTo;
public String getEthnicity() {
return ethnicity;
}
public void setEthnicity(String ethnicity) {
this.ethnicity = ethnicity;
}
public String getIdcard() {
return idcard;
}
public void setIdcard(String idcard) {
this.idcard = idcard;
}
public String getBirth() {
return birth;
}
public void setBirth(String birth) {
this.birth = birth;
}
public String getValidFrom() {
return validFrom;
}
public void setValidFrom(String validFrom) {
this.validFrom = validFrom;
}
public String getValidTo() {
return validTo;
}
public void setValidTo(String validTo) {
this.validTo = validTo;
}
public int getId() {
return id;
@@ -58,6 +58,42 @@ public class OCRDrivingLicenseBackBean {
private int id;
private String url;
private String archivesName;
private String fileNumber;
private String record;
private String name;
private String issuingAuthority;
public String getFileNumber() {
return fileNumber;
}
public void setFileNumber(String fileNumber) {
this.fileNumber = fileNumber;
}
public String getRecord() {
return record;
}
public void setRecord(String record) {
this.record = record;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getIssuingAuthority() {
return issuingAuthority;
}
public void setIssuingAuthority(String issuingAuthority) {
this.issuingAuthority = issuingAuthority;
}
public int getId() {
return id;
@@ -68,6 +68,70 @@ public class OCRDrivingLicenseBean {
private String allowType;
private String sex;
private String startTime;
private String beginDate;
private String endDate;
private String firstGetDocDate;
private String idcard;
private String quasiDriveType;
private String issuingAuthority;
private String nationality;
public String getBeginDate() {
return beginDate;
}
public void setBeginDate(String beginDate) {
this.beginDate = beginDate;
}
public String getEndDate() {
return endDate;
}
public void setEndDate(String endDate) {
this.endDate = endDate;
}
public String getFirstGetDocDate() {
return firstGetDocDate;
}
public void setFirstGetDocDate(String firstGetDocDate) {
this.firstGetDocDate = firstGetDocDate;
}
public String getIdcard() {
return idcard;
}
public void setIdcard(String idcard) {
this.idcard = idcard;
}
public String getQuasiDriveType() {
return quasiDriveType;
}
public void setQuasiDriveType(String quasiDriveType) {
this.quasiDriveType = quasiDriveType;
}
public String getIssuingAuthority() {
return issuingAuthority;
}
public void setIssuingAuthority(String issuingAuthority) {
this.issuingAuthority = issuingAuthority;
}
public String getNationality() {
return nationality;
}
public void setNationality(String nationality) {
this.nationality = nationality;
}
public int getId() {
return id;
@@ -0,0 +1,200 @@
package com.arpa.hndahesudintocctmsdriver.bean;
import java.util.List;
/**
* @ClassName OCRQualiBean
* @Author john
* @Date 2024/11/19 15:53
* @Description TODO
*/
public class OCRQualiBean {
private int code;
private DataDTO data;
private String msg;
private String remark;
private int res;
private boolean success;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public DataDTO getData() {
return data;
}
public void setData(DataDTO data) {
this.data = data;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public int getRes() {
return res;
}
public void setRes(int res) {
this.res = res;
}
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public static class DataDTO {
private String address;
private List<QualificationCategoryListDTO> qualification_category_list;
private String nationality;
private String issuing_authority;
private String sex;
private String birth_date;
private String integrity_assessment_info;
private String name;
private String driving_class;
private String certificate_number;
private String continuing_education_info;
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public List<QualificationCategoryListDTO> getQualification_category_list() {
return qualification_category_list;
}
public void setQualification_category_list(List<QualificationCategoryListDTO> qualification_category_list) {
this.qualification_category_list = qualification_category_list;
}
public String getNationality() {
return nationality;
}
public void setNationality(String nationality) {
this.nationality = nationality;
}
public String getIssuing_authority() {
return issuing_authority;
}
public void setIssuing_authority(String issuing_authority) {
this.issuing_authority = issuing_authority;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getBirth_date() {
return birth_date;
}
public void setBirth_date(String birth_date) {
this.birth_date = birth_date;
}
public String getIntegrity_assessment_info() {
return integrity_assessment_info;
}
public void setIntegrity_assessment_info(String integrity_assessment_info) {
this.integrity_assessment_info = integrity_assessment_info;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDriving_class() {
return driving_class;
}
public void setDriving_class(String driving_class) {
this.driving_class = driving_class;
}
public String getCertificate_number() {
return certificate_number;
}
public void setCertificate_number(String certificate_number) {
this.certificate_number = certificate_number;
}
public String getContinuing_education_info() {
return continuing_education_info;
}
public void setContinuing_education_info(String continuing_education_info) {
this.continuing_education_info = continuing_education_info;
}
public static class QualificationCategoryListDTO {
private String issue_date;
private String expiry_date;
private String category;
public String getIssue_date() {
return issue_date;
}
public void setIssue_date(String issue_date) {
this.issue_date = issue_date;
}
public String getExpiry_date() {
return expiry_date;
}
public void setExpiry_date(String expiry_date) {
this.expiry_date = expiry_date;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
}
}
}
@@ -0,0 +1,177 @@
package com.arpa.hndahesudintocctmsdriver.bean;
/**
* @ClassName OCRRoadBean
* @Author john
* @Date 2024/11/19 17:05
* @Description TODO
*/
public class OCRRoadBean {
private int code;
private DataDTO data;
private String msg;
private String remark;
private int res;
private boolean success;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public DataDTO getData() {
return data;
}
public void setData(DataDTO data) {
this.data = data;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public int getRes() {
return res;
}
public void setRes(int res) {
this.res = res;
}
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public static class DataDTO {
private String vehicleWeight;
private String issuingAuthority;
private String ownerName;
private String businessCertificate;
private String economicType;
private String businessScope;
private String vehicleNumber;
private String licenseNumber;
private String vehicleSize;
private String ownerAddress;
private String issueDate;
private String vehicleType;
public String getVehicleWeight() {
return vehicleWeight;
}
public void setVehicleWeight(String vehicleWeight) {
this.vehicleWeight = vehicleWeight;
}
public String getIssuingAuthority() {
return issuingAuthority;
}
public void setIssuingAuthority(String issuingAuthority) {
this.issuingAuthority = issuingAuthority;
}
public String getOwnerName() {
return ownerName;
}
public void setOwnerName(String ownerName) {
this.ownerName = ownerName;
}
public String getBusinessCertificate() {
return businessCertificate;
}
public void setBusinessCertificate(String businessCertificate) {
this.businessCertificate = businessCertificate;
}
public String getEconomicType() {
return economicType;
}
public void setEconomicType(String economicType) {
this.economicType = economicType;
}
public String getBusinessScope() {
return businessScope;
}
public void setBusinessScope(String businessScope) {
this.businessScope = businessScope;
}
public String getVehicleNumber() {
return vehicleNumber;
}
public void setVehicleNumber(String vehicleNumber) {
this.vehicleNumber = vehicleNumber;
}
public String getLicenseNumber() {
return licenseNumber;
}
public void setLicenseNumber(String licenseNumber) {
this.licenseNumber = licenseNumber;
}
public String getVehicleSize() {
return vehicleSize;
}
public void setVehicleSize(String vehicleSize) {
this.vehicleSize = vehicleSize;
}
public String getOwnerAddress() {
return ownerAddress;
}
public void setOwnerAddress(String ownerAddress) {
this.ownerAddress = ownerAddress;
}
public String getIssueDate() {
return issueDate;
}
public void setIssueDate(String issueDate) {
this.issueDate = issueDate;
}
public String getVehicleType() {
return vehicleType;
}
public void setVehicleType(String vehicleType) {
this.vehicleType = vehicleType;
}
}
}
@@ -71,6 +71,114 @@ public class OCRVehicleBackLicenseBean {
private String fileNumber;
private String carNumber;
private int licenseId;
private String note;
private String passengers;
private String vclDrwTn;
private String overallDimen;
private String vclN;
private String enTn;
private String loadTon;
private String inspectionRecord;
private String barCode;
private String approveTon;
private String recordId;
private String issuingAuthority;
public String getNote() {
return note;
}
public void setNote(String note) {
this.note = note;
}
public String getPassengers() {
return passengers;
}
public void setPassengers(String passengers) {
this.passengers = passengers;
}
public String getVclDrwTn() {
return vclDrwTn;
}
public void setVclDrwTn(String vclDrwTn) {
this.vclDrwTn = vclDrwTn;
}
public String getOverallDimen() {
return overallDimen;
}
public void setOverallDimen(String overallDimen) {
this.overallDimen = overallDimen;
}
public String getVclN() {
return vclN;
}
public void setVclN(String vclN) {
this.vclN = vclN;
}
public String getEnTn() {
return enTn;
}
public void setEnTn(String enTn) {
this.enTn = enTn;
}
public String getLoadTon() {
return loadTon;
}
public void setLoadTon(String loadTon) {
this.loadTon = loadTon;
}
public String getInspectionRecord() {
return inspectionRecord;
}
public void setInspectionRecord(String inspectionRecord) {
this.inspectionRecord = inspectionRecord;
}
public String getBarCode() {
return barCode;
}
public void setBarCode(String barCode) {
this.barCode = barCode;
}
public String getApproveTon() {
return approveTon;
}
public void setApproveTon(String approveTon) {
this.approveTon = approveTon;
}
public String getRecordId() {
return recordId;
}
public void setRecordId(String recordId) {
this.recordId = recordId;
}
public String getIssuingAuthority() {
return issuingAuthority;
}
public void setIssuingAuthority(String issuingAuthority) {
this.issuingAuthority = issuingAuthority;
}
public String getIsSave() {
return isSave;
@@ -63,6 +63,96 @@ public class OCRVehicleLicenseBean {
private String url;
private String vehicleNumber;
private String licenseId;
private String ownerName;
private String regTime;
private String issuingAuthority;
private String engine;
private String vclN;
private String licensedateOfissue;
private String vin;
private String vcltype;
private String vclBrand;
private String natureOfUsage;
public String getOwnerName() {
return ownerName;
}
public void setOwnerName(String ownerName) {
this.ownerName = ownerName;
}
public String getRegTime() {
return regTime;
}
public void setRegTime(String regTime) {
this.regTime = regTime;
}
public String getIssuingAuthority() {
return issuingAuthority;
}
public void setIssuingAuthority(String issuingAuthority) {
this.issuingAuthority = issuingAuthority;
}
public String getEngine() {
return engine;
}
public void setEngine(String engine) {
this.engine = engine;
}
public String getVclN() {
return vclN;
}
public void setVclN(String vclN) {
this.vclN = vclN;
}
public String getLicensedateOfissue() {
return licensedateOfissue;
}
public void setLicensedateOfissue(String licensedateOfissue) {
this.licensedateOfissue = licensedateOfissue;
}
public String getVin() {
return vin;
}
public void setVin(String vin) {
this.vin = vin;
}
public String getVcltype() {
return vcltype;
}
public void setVcltype(String vcltype) {
this.vcltype = vcltype;
}
public String getVclBrand() {
return vclBrand;
}
public void setVclBrand(String vclBrand) {
this.vclBrand = vclBrand;
}
public String getNatureOfUsage() {
return natureOfUsage;
}
public void setNatureOfUsage(String natureOfUsage) {
this.natureOfUsage = natureOfUsage;
}
public String getLicenseId() {
return licenseId;
@@ -0,0 +1,56 @@
package com.arpa.hndahesudintocctmsdriver.bean;
/**
* @ClassName WaybillStatusBean
* @Author john
* @Date 2024/10/14 15:40
* @Description TODO
*/
public class WaybillStatusBean {
private int res;
private int code;
private boolean success;
private String msg;
private String data;
public int getRes() {
return res;
}
public void setRes(int res) {
this.res = res;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
}
@@ -0,0 +1,11 @@
package com.arpa.hndahesudintocctmsdriver.cuspop
/**
* @ClassName MyRequestCallback
* @Author john
* @Date 2024/10/28 17:19
* @Description TODO
*/
interface MyRequestCallback{
fun onResult(allGranted: Boolean, grantedList: List<String?>, deniedList: List<String?>)
}
@@ -6,6 +6,7 @@ import com.arpa.hndahesudintocctmsdriver.R
import com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity
import com.lxj.xpopup.core.CenterPopupView
import kotlinx.android.synthetic.main.pop_sim_center.view.*
import org.bouncycastle.jcajce.provider.symmetric.Rijndael
/**
@@ -17,10 +18,14 @@ import kotlinx.android.synthetic.main.pop_sim_center.view.*
class SimCenterPop(context: Context) : CenterPopupView(context), View.OnClickListener {
lateinit var content: String
lateinit var titleLeft: String
lateinit var titleReft: String
lateinit var secMessage: String
constructor(context: Context, message: String) : this(context) {
constructor(context: Context, message: String,titleLeft:String = "取消",titleRight: String = "去注册") : this(context) {
content = message
this.titleReft = titleRight
this.titleLeft = titleLeft
}
@@ -28,6 +33,8 @@ class SimCenterPop(context: Context) : CenterPopupView(context), View.OnClickLis
override fun onCreate() {
super.onCreate()
tvCancel.text = titleLeft
tvOk.text = titleReft
tvCancel.setOnClickListener(this)
tvOk.setOnClickListener(this)
tvContent.text = "$content"
@@ -0,0 +1,36 @@
package com.arpa.hndahesudintocctmsdriver.cuspop
import android.content.Context
import com.arpa.hndahesudintocctmsdriver.R
import com.lxj.xpopup.core.PositionPopupView
import com.lxj.xpopup.enums.DragOrientation
import kotlinx.android.synthetic.main.popup_qq_msg.view.tvMessage
import kotlinx.android.synthetic.main.popup_qq_msg.view.tvTitle
/**
* Description: 自定义自由定位Position弹窗
* Create by dance, at 2019/6/14
*/
class TopMsgPopup(context: Context,title:String, message: String) : PositionPopupView(context) {
private var message: String
private var title: String
init {
this.message = message
this.title = title
}
override fun getImplLayoutId(): Int {
return R.layout.popup_qq_msg
}
override fun getDragOrientation(): DragOrientation {
return DragOrientation.DragToLeft
}
override fun onCreate() {
super.onCreate()
tvMessage.text = message
tvTitle.text = title
}
}
@@ -0,0 +1,33 @@
package com.arpa.hndahesudintocctmsdriver.event;
/**
* @author hlh
* @version 1.0.0
* @date 2021/10/20 14:43
* @description:
*/
public class HomeWaybillEvent {
private int message;
public int getMessage() {
return message;
}
public void setMessage(int message) {
this.message = message;
}
public HomeWaybillEvent() {
}
/**
*
* @param message 1:刷新运单列表
*/
public HomeWaybillEvent(int message) {
this.message = message;
}
}
@@ -0,0 +1,22 @@
package com.arpa.hndahesudintocctmsdriver.event;
/**
* @author hlh
* @version 1.0.0
* @date 2021/10/20 14:43
* @description:
*/
public class WalletEvent {
private String message;
public WalletEvent(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
@@ -13,6 +13,7 @@ import com.arpa.hndahesudintocctmsdriver.BuildConfig;
import com.arpa.hndahesudintocctmsdriver.parts.AuthParts;
import com.arpa.hndahesudintocctmsdriver.util.MessageUtils;
import com.arpa.hndahesudintocctmsdriver.util.msg.MsgUtil;
import com.dahe.mylibrary.utils.ToastUtils;
import com.google.gson.Gson;
import com.arpa.hndahesudintocctmsdriver.bean.DriverAuthDataBean;
import com.arpa.hndahesudintocctmsdriver.bean.FqBean;
@@ -42,6 +43,10 @@ public class ALProcess {
public static void verification(Context con){
DriverAuthDataBean auth= AuthParts.getAuth(con);
if (auth==null){
return;
}
Identity idy=new Identity();
//企业代码
idy.setEnterpriseCode(BuildConfig.isTest?ENTERPRISE_CODE_TEXT:ENTERPRISE_CODE);
@@ -3,6 +3,7 @@ package com.arpa.hndahesudintocctmsdriver.report;
import android.app.Application;
import android.content.Context;
import android.content.Intent;
import android.text.TextUtils;
import android.util.Log;
import com.amap.api.location.AMapLocationClient;
@@ -78,6 +79,9 @@ public class JTTProcess {
ShippingNoteInfo sni=new ShippingNoteInfo();
StartOrderBean.DataDTO.WayChildrenDTO startWay=sob.getData().getWayChildren().get(0);
StartOrderBean.DataDTO.WayChildrenDTO endWay=sob.getData().getWayChildren().get(sob.getData().getWayChildren().size()-1);
if (TextUtils.isEmpty(endWay.getLatitude())||TextUtils.isEmpty(endWay.getLongitude())){
return;
}
sni.setShippingNoteNumber(sob.getData().getShippingNoteNumber());
sni.setSerialNumber("0000");
sni.setStartLatitude(Double.parseDouble(startWay.getLatitude()));
@@ -143,6 +147,9 @@ public class JTTProcess {
ShippingNoteInfo sni=new ShippingNoteInfo();
StartOrderBean.DataDTO.WayChildrenDTO startWay=sob.getData().getWayChildren().get(0);
StartOrderBean.DataDTO.WayChildrenDTO endWay=sob.getData().getWayChildren().get(sob.getData().getWayChildren().size()-1);
if (TextUtils.isEmpty(endWay.getLatitude())||TextUtils.isEmpty(endWay.getLongitude())){
return;
}
sni.setShippingNoteNumber(sob.getData().getShippingNoteNumber());
sni.setSerialNumber("0000");
sni.setStartLatitude(Double.parseDouble(startWay.getLatitude()));
@@ -176,6 +183,9 @@ public class JTTProcess {
ShippingNoteInfo sni=new ShippingNoteInfo();
StartOrderBean.DataDTO.WayChildrenDTO startWay=sob.getData().getWayChildren().get(0);
StartOrderBean.DataDTO.WayChildrenDTO endWay=sob.getData().getWayChildren().get(sob.getData().getWayChildren().size()-1);
if (TextUtils.isEmpty(endWay.getLatitude())||TextUtils.isEmpty(endWay.getLongitude())){
return;
}
sni.setShippingNoteNumber(sob.getData().getShippingNoteNumber());
sni.setSerialNumber("0000");
sni.setStartLatitude(Double.parseDouble(startWay.getLatitude()));
@@ -208,6 +218,9 @@ public class JTTProcess {
ShippingNoteInfo sni=new ShippingNoteInfo();
StartOrderBean.DataDTO.WayChildrenDTO startWay=sob.getData().getWayChildren().get(0);
StartOrderBean.DataDTO.WayChildrenDTO endWay=sob.getData().getWayChildren().get(sob.getData().getWayChildren().size()-1);
if (TextUtils.isEmpty(endWay.getLatitude())||TextUtils.isEmpty(endWay.getLongitude())){
return;
}
sni.setShippingNoteNumber(sob.getData().getShippingNoteNumber());
sni.setSerialNumber("0000");
sni.setStartLatitude(Double.parseDouble(startWay.getLatitude()));
@@ -4,6 +4,7 @@ import android.content.Context;
import android.os.Handler;
import android.util.Log;
import com.arpa.hndahesudintocctmsdriver.BuildConfig;
import com.arpa.hndahesudintocctmsdriver.util.map.MapUtil;
import com.google.gson.Gson;
import com.arpa.hndahesudintocctmsdriver.request.bean.IDInputBean;
@@ -74,6 +75,22 @@ public class AuthRequest {
RequestUtil.start(1, "saveVehicleLicense", re, con, hd);
}
//查询车辆信息-行驶证/app/carDriver/saveVehicleLicense
public void getCarInfo(Context con, Handler hd, String carNum) {
Map<String,Object> map=new HashMap<>();
map.put("carNum",carNum);
Request re = OkHttpUtil.posts(new OkDate(BuildConfig.BASE_URL+"app/carDriver/onlyGetVehicleLicense", MapUtil.mapJson(map)), getToken(con), con);
RequestUtil.start(1, "getCarInfo", re, con, hd);
}
//绑定车辆信息-行驶证/app/carDriver/saveVehicleLicense
public void bindCar(Context con, Handler hd, String carId) {
Map<String,Object> map=new HashMap<>();
map.put("carId",carId);
Request re = OkHttpUtil.posts(new OkDate(BuildConfig.BASE_URL+"app/carDriver/bindCar", MapUtil.mapJson(map)), getToken(con), con);
RequestUtil.start(1, "bindCarInfo", re, con, hd);
}
//上传头像
public void upHeadImg(Context con, Handler hd, String imgUrl) {
String mt = "{\"headportrait\": \"" + imgUrl + "\"}";
@@ -152,6 +169,7 @@ public class AuthRequest {
Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getAuthUrl(), ""), getToken(con), con);
RequestUtil.start(1, "authUrl", re, con, hd);
}
//获取车牌颜色
public void getCarColor(Context con, Handler hd) {
// Map<String, Object> map = new HashMap<>();
@@ -1,5 +1,6 @@
package com.arpa.hndahesudintocctmsdriver.request;
import com.arpa.hndahesudintocctmsdriver.BuildConfig;
import com.google.gson.Gson;
import com.arpa.hndahesudintocctmsdriver.request.bean.LUInputBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.TrackInputBean;
@@ -72,6 +73,17 @@ public class HuoYuanRequset{
Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getAgreeOrder(),MapUtil.mapJson(map)),getToken(con),con);
RequestUtil.start(1, HuoYunDelActivity.END,re,con,hd);
}
// public void confirm2(String cid,int wid){
// Map<String,Object> map=new HashMap<>();
// map.put("carId",cid);
// map.put("orderId",wid);
// map.put("status",2);
// map.put("imgUrl","");
// Request re = OkHttpUtil.posts(new OkDate(BuildConfig.BASE_URL+"/app/driver/waybill/grab",MapUtil.mapJson(map)),getToken(con),con);
// RequestUtil.start(1, "jfaklsdjfklasjdflk",re,con,hd);
// }
//获取执行中的运单
public void startOrder(int id){
Map<String,Object> map=new HashMap<>();
@@ -79,6 +91,13 @@ public class HuoYuanRequset{
Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getGetStartOrder(),MapUtil.mapJson(map)),getToken(con),con);
RequestUtil.start(1, HuoYuanFragmengt.START_ORDER,re,con,hd);
}
public void startOrder2(int id){
Map<String,Object> map=new HashMap<>();
map.put("waybillId",id);
Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getGetStartOrder(),MapUtil.mapJson(map)),getToken(con),con);
RequestUtil.start(1, "refreshorderDetail",re,con,hd);
}
//装货
public void loading(LUInputBean lub){
Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getLOADING(), gson.toJson(lub)),getToken(con),con);
@@ -142,6 +161,32 @@ public class HuoYuanRequset{
Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getEvaluationV2(),MapUtil.mapJson(map)),getToken(con),con);
RequestUtil.start(1, StartYunDanActivity.KEEP_EVALUTE,re,con,hd);
}
/**
* 获取运单状态
* @param waybillId
*/
public void getWaybillStatus(int waybillId){
// Map<String,Object> map=new HashMap<>();
// map.put("waybillId",waybillId);
Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getGetWaybillStatus()+"?waybillId="+waybillId,""),getToken(con),con);
RequestUtil.start(1, "waybillStatus",re,con,hd);
}
/**
* 获取货源状态
* @param orderId
*/
public void getOrderStatus(int orderId){
// Map<String,Object> map=new HashMap<>();
// map.put("waybillId",waybillId);
Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getGetOrderStatus()+"?orderId="+orderId,""),getToken(con),con);
RequestUtil.start(1, "orderStatus",re,con,hd);
}
public final static String ASYMMETRYWAYBILL="waybill_getAsymmetryWaybill";
//获取装货失败信息
@@ -3,65 +3,132 @@ package com.arpa.hndahesudintocctmsdriver.request;
import android.content.Context;
import android.os.Handler;
import com.arpa.hndahesudintocctmsdriver.BuildConfig;
import com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity;
import com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity;
import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil;
import com.arpa.hndahesudintocctmsdriver.util.http.OkDate;
import com.arpa.hndahesudintocctmsdriver.util.http.OkHttpUtil;
import com.arpa.hndahesudintocctmsdriver.util.http.RequestUtil;
import java.io.File;
import okhttp3.Request;
public class OCRRequest {
public String getToken(Context con) {
return SPUtil.getSP(con, LoginActivity.USER,LoginActivity.USER_TOKEN);
return SPUtil.getSP(con, LoginActivity.USER, LoginActivity.USER_TOKEN);
}
//银行卡识别
public void ORCBank(Context con, Handler hd, File file){
Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getOrcBank()),getToken(con),file);
RequestUtil.start(12, "OCR_BANK",re,con,hd);
public void ORCBank(Context con, Handler hd, File file) {
Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getOrcBank()), getToken(con), file);
RequestUtil.start(12, "OCR_BANK", re, con, hd);
}
//银行卡识别-中交
public void ORCBankZj(Context con, Handler hd, String imgUrl) {
Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getOrcBank() + "?imgurl=" + imgUrl, ""), getToken(con), con);
RequestUtil.start(1, "OCR_BANK", re, con, hd);
}
//从业资格证-中交
public void ORCQualificaZj(Context con, Handler hd, String imgUrl) {
Request re = OkHttpUtil.posts(new OkDate(BuildConfig.BASE_URL+"sinoiov/ocr/getTransQualificationCertOCR" + "?imgurl=" + imgUrl, ""), getToken(con), con);
RequestUtil.start(1, "ORCQualificaZj", re, con, hd);
}
//道路运输许可证-中交
public void ORCRoadLicZj(Context con, Handler hd, String imgUrl) {
Request re = OkHttpUtil.posts(new OkDate(BuildConfig.BASE_URL+"sinoiov/ocr/getVehicleRoadLicenseOCR" + "?faceDataUrl=" + imgUrl, ""), getToken(con), con);
RequestUtil.start(1, "ORCRoadLicZj", re, con, hd);
}
//身份证正面识别
public void OCRCard(Context con, Handler hd, File file){
Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getIdCardFront()),getToken(con),file);
RequestUtil.start(12, CertificatesActivity.TYPE_NAME[0],re,con,hd);
public void OCRCard(Context con, Handler hd, File file) {
Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getIdCardFront()), getToken(con), file);
RequestUtil.start(12, CertificatesActivity.TYPE_NAME[0], re, con, hd);
}
//身份证背面识别
public void OCRCardBack(Context con, Handler hd, File file){
Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getIdCardBack()),getToken(con),file);
RequestUtil.start(12, CertificatesActivity.TYPE_NAME_BANK[0], re,con,hd);
public void OCRCardBack(Context con, Handler hd, File file) {
Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getIdCardBack()), getToken(con), file);
RequestUtil.start(12, CertificatesActivity.TYPE_NAME_BANK[0], re, con, hd);
}
//身份证正面识别-中交
public void OCRZjCard(Context con, Handler hd, String imgUrl) {
Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getIdCardFront() + "?faceDataUrl=" + imgUrl, ""), getToken(con), con);
RequestUtil.start(1, CertificatesActivity.TYPE_NAME[0], re, con, hd);
}
//身份证背面识别-中交
public void OCRZjCardBack(Context con, Handler hd, String imgUrl) {
Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getIdCardFront() + "?backDataUrl=" + imgUrl, ""), getToken(con), con);
RequestUtil.start(1, CertificatesActivity.TYPE_NAME_BANK[0], re, con, hd);
}
//驾驶证正面识别
public void OCRDrivingLicense(Context con, Handler hd, File file){
Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getDrivingLicense()),getToken(con),file);
RequestUtil.start(12, CertificatesActivity.TYPE_NAME[1],re,con,hd);
public void OCRDrivingLicense(Context con, Handler hd, File file) {
Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getDrivingLicense()), getToken(con), file);
RequestUtil.start(12, CertificatesActivity.TYPE_NAME[1], re, con, hd);
}
//驾驶证背面识别
public void OCRDrivingLicenseBack(Context con, Handler hd, File file){
Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getDrivingLicenseBack()),getToken(con),file);
RequestUtil.start(12, CertificatesActivity.TYPE_NAME_BANK[1],re,con,hd);
public void OCRDrivingLicenseBack(Context con, Handler hd, File file) {
Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getDrivingLicenseBack()), getToken(con), file);
RequestUtil.start(12, CertificatesActivity.TYPE_NAME_BANK[1], re, con, hd);
}
//驾驶证正面识别-中交
public void OCRDrivingLicenseZj(Context con, Handler hd, String imgUrl){
Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getDrivingLicense()+"?faceDataUrl="+imgUrl,""),getToken(con),con);
RequestUtil.start(1, CertificatesActivity.TYPE_NAME[1],re,con,hd);
}
//驾驶证背面识别-中交
public void OCRDrivingLicenseBackZj(Context con, Handler hd, String imgUrl){
Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getDrivingLicense()+"?backDataUrl="+imgUrl,""),getToken(con),con);
RequestUtil.start(1, CertificatesActivity.TYPE_NAME_BANK[1],re,con,hd);
}
//行驶证正面识别
public void OCRVehicleLicense(Context con, Handler hd, File file){
Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getVehicleLicense()),getToken(con),file);
RequestUtil.start(12, CertificatesActivity.TYPE_NAME[2],re,con,hd);
public void OCRVehicleLicense(Context con, Handler hd, File file) {
Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getVehicleLicense()), getToken(con), file);
RequestUtil.start(12, CertificatesActivity.TYPE_NAME[2], re, con, hd);
}
//行驶证背面识别
public void OCRVehicleLicenseBack(Context con, Handler hd, File file,String carId,String carNum,boolean isSave){
Request re = OkHttpUtil.postFiles(new OkDate(RequestConstant.getVehicleLicenseBack()),file,getToken(con),carId,carNum,isSave);
RequestUtil.start(12, CertificatesActivity.TYPE_NAME_BANK[2],re,con,hd);
}
public void OCRPlateLicense(Context con, Handler hd, File file){
Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getPlateLicense()),getToken(con),file);
RequestUtil.start(12, "carName",re,con,hd);
public void OCRVehicleLicenseBack(Context con, Handler hd, File file, String carId, String carNum, boolean isSave) {
Request re = OkHttpUtil.postFiles(new OkDate(RequestConstant.getVehicleLicenseBack()), file, getToken(con), carId, carNum, isSave);
RequestUtil.start(12, CertificatesActivity.TYPE_NAME_BANK[2], re, con, hd);
}
public void OCRCarPlateLicense(Context con, Handler hd, File file){
Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getPlateLicense2()),getToken(con),file);
RequestUtil.start(12, "carNum",re,con,hd);
//行驶证正面识别-中交
public void OCRVehicleLicenseZj(Context con, Handler hd, String imgUrl) {
Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getVehicleLicense() + "?faceDataUrl=" + imgUrl, ""), getToken(con), con);
RequestUtil.start(1, CertificatesActivity.TYPE_NAME[2], re, con, hd);
}
//行驶证背面识别-中交
public void OCRVehicleLicenseBackZj(Context con, Handler hd, String imgUrl) {
Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getVehicleLicense() + "?backDataUrl=" + imgUrl, ""), getToken(con), con);
RequestUtil.start(1, CertificatesActivity.TYPE_NAME_BANK[2], re, con, hd);
}
public void OCRPlateLicense(Context con, Handler hd, File file) {
Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getPlateLicense()), getToken(con), file);
RequestUtil.start(12, "carName", re, con, hd);
}
public void OCRCarPlateLicense(Context con, Handler hd, File file) {
Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getPlateLicense2()), getToken(con), file);
RequestUtil.start(12, "carNum", re, con, hd);
}
}
@@ -56,7 +56,7 @@ public class RequestConstant {
//运单列表
private static final String ORDER_LIST = "/app/driver/waybill/listV2";
//抢单
private static final String AGREE_ORDER = "/app/driver/waybill/grabDriverOrdersContruct";
private static final String AGREE_ORDER = "/app/driver/waybill/grabDriverOrdersContructV2";
//获取正在执行的运单/运单详情
private static final String GET_START_ORDER = "/app/driver/waybill/getExecuteWaybill";
//查看承运合同
@@ -81,6 +81,8 @@ public class RequestConstant {
private static final String COMPLAINT = "/app/driver/waybill/complaintV2";
//保存评价信息
private static final String EVALUATION_V2 = "/app/driver/waybill/evaluationV2";
private static final String GET_WAYBILL_STATUS = "/app/driver/waybill/getWaybillStatus";
private static final String GET_ORDER_STATUS = "/app/driver/order/getOrderStatus";
//车辆列表
private static final String GET_CAR_LIST = "/app/carDriver/getCarList";
//车辆详情
@@ -98,17 +100,21 @@ public class RequestConstant {
//--ORC识别--
//银行卡识别
private static final String ORC_BANK = "/common/ocr/bank";
// private static final String ORC_BANK = "/common/ocr/bank";
private static final String ORC_BANK = "sinoiov/ocr/getBankcardOCR";
//身份证正面
private static final String ID_CARD_FRONT = "/common/ocr/idCardFront";
// private static final String ID_CARD_FRONT = "/common/ocr/idCardFront";
private static final String ID_CARD_FRONT = "sinoiov/ocr/getIdCardLicenseV2";
//身份证识别反面
private static final String ID_CARD_BACK = "/common/ocr/idCardBack";
//驾驶证正面
private static final String DRIVING_LICENSE = "/common/ocr/drivingLicense";
// private static final String DRIVING_LICENSE = "/common/ocr/drivingLicense";
private static final String DRIVING_LICENSE = "sinoiov/ocr/getDrivingLicenseOCRV2";
//驾驶证副页
private static final String DRIVING_LICENSE_BACK = "/common/ocr/drivingLicenseBack";
//行驶证正面
private static final String VEHICLE_LICENSE = "/common/ocr/vehicleLicense";
// private static final String VEHICLE_LICENSE = "/common/ocr/vehicleLicense";
private static final String VEHICLE_LICENSE = "sinoiov/ocr/getVehicleLicenseOCRV2";
//行驶证副页
private static final String VEHICLE_LICENSE_BACK = "/common/ocr/v2/vehicleBackLicenseV3";
//身份证认证信息
@@ -124,6 +130,7 @@ public class RequestConstant {
private static final String DRIVERAUTHLICENSE = "/app/driver/auth/driverAuthLicense";
//行驶证认证
private static final String SAVEVEHICLELICENSE = "/app/carDriver/saveVehicleLicense";
// private static final String SAVEVEHICLELICENSE = "app/carDriver/save";
//从业资格证认证
private static final String DRIVER_AUTH_QUALIFICATION = "/app/driver/auth/driverAuthQualification";
//车辆等级证书
@@ -162,11 +169,16 @@ public class RequestConstant {
//车辆自动审核触发器
private static final String CAR_AUDIT = "/app/carDriver/carAutomaticAudit";
private static final String APP_INFO = "/common/app/logininfor";
public static String getCarAudit() {
return BASE_URL + CAR_AUDIT;
}
public static String postAppInfo() {
return BASE_URL + APP_INFO;
}
public static String getCarColor() {
return BASE_URL + CAR_COLOR;
}
@@ -326,6 +338,14 @@ public class RequestConstant {
return BASE_URL + EVALUATION_V2;
}
public static String getGetWaybillStatus() {
return BASE_URL + GET_WAYBILL_STATUS;
}
public static String getGetOrderStatus() {
return BASE_URL + GET_ORDER_STATUS;
}
public static String getDRIVERAUTHIDCARD() {
return BASE_URL + DRIVERAUTHIDCARD;
}
@@ -10,6 +10,7 @@ import android.provider.Settings;
import androidx.annotation.RequiresApi;
import com.arpa.hndahesudintocctmsdriver.bean.AppInfoBean;
import com.arpa.hndahesudintocctmsdriver.event.VehicleEvent;
import com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity;
import com.arpa.hndahesudintocctmsdriver.ui.business.Md5Util;
@@ -118,6 +119,14 @@ public class UserRequset {
RequestUtil.start(1, WoDeFragment.VEHICLE_DEL, re, con, hd);
}
//车辆详情
public void vehicleDelTwo(String id) {
Map<String, Object> map = new HashMap<>();
map.put("carId", id);
Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getGetCarDel(), MapUtil.mapJson(map)), getToken(con), con);
RequestUtil.start(1, "onlyGetDetail", re, con, hd);
}
//司机身份证认证
public void driverIDAuth() {
String url = RequestConstant.BASE_URL + "/app/driver/auth/authInfo";
@@ -154,7 +163,7 @@ public class UserRequset {
/**
* 判断是否开启未知应用安装权限
*/
private void isOpenAppNoRe(){
private void isOpenAppNoRe() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
boolean b = con.getPackageManager().canRequestPackageInstalls();
if (!b) {
@@ -169,8 +178,8 @@ public class UserRequset {
@RequiresApi(api = Build.VERSION_CODES.O)
private void startInstallPermissionSettingActivity() {
//注意这个是8.0新API
Uri packageURI = Uri.parse("package:" +con.getPackageName());
Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES,packageURI);
Uri packageURI = Uri.parse("package:" + con.getPackageName());
Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, packageURI);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
con.startActivity(intent);
}
@@ -221,7 +230,18 @@ public class UserRequset {
public void carAudit(String carId) {
Map<String, Object> map = new HashMap<>();
map.put("carId", carId);
Request re = OkHttpUtil.get(new OkDate(RequestConstant.getCarAudit(),"get", Md5Util.resNoUrl(map)),getToken(con));
Request re = OkHttpUtil.get(new OkDate(RequestConstant.getCarAudit(), "get", Md5Util.resNoUrl(map)), getToken(con));
RequestUtil.start(1, VehicleAuthActivity.CAR_AUDIO, re, con, hd);
}
public void postAppInfo(AppInfoBean appInfoBean, String type) {
// Request re = OkHttpUtil.get(new OkDate(RequestConstant.getCarAudit(),"get", gson.toJson(appInfoBean)),getToken(con));
Request re;
if ("put".equals(type)) {
re = OkHttpUtil.put(new OkDate(RequestConstant.postAppInfo(), type, gson.toJson(appInfoBean)), con);
} else {
re = OkHttpUtil.post(new OkDate(RequestConstant.postAppInfo(), type, gson.toJson(appInfoBean)), con);
}
RequestUtil.start(1, VehicleAuthActivity.APP_INFO, re, con, hd);
}
}
@@ -16,8 +16,123 @@ public class LicenseInputBean {
private int driverLicensePhoto;
private String endTime;
private String firstTime;
private String address;
private String quasiDriveType;
private String beginDate;
private String endDate;
private String fileNumber;
private String issuingAuthority;
private String sex;
private String name;
private String idcard;
private String organizationName;
private String startTime;
private String birthday;
private String country;
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public String getStartTime() {
return startTime;
}
public void setStartTime(String startTime) {
this.startTime = startTime;
}
public String getOrganizationName() {
return organizationName;
}
public void setOrganizationName(String organizationName) {
this.organizationName = organizationName;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getQuasiDriveType() {
return quasiDriveType;
}
public void setQuasiDriveType(String quasiDriveType) {
this.quasiDriveType = quasiDriveType;
}
public String getBeginDate() {
return beginDate;
}
public void setBeginDate(String beginDate) {
this.beginDate = beginDate;
}
public String getEndDate() {
return endDate;
}
public void setEndDate(String endDate) {
this.endDate = endDate;
}
public String getFileNumber() {
return fileNumber;
}
public void setFileNumber(String fileNumber) {
this.fileNumber = fileNumber;
}
public String getIssuingAuthority() {
return issuingAuthority;
}
public void setIssuingAuthority(String issuingAuthority) {
this.issuingAuthority = issuingAuthority;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getIdcard() {
return idcard;
}
public void setIdcard(String idcard) {
this.idcard = idcard;
}
public String getAllowType() {
return allowType;
@@ -62,14 +62,14 @@ public class MakeUpService extends Service {
@Override
public void onCreate() {
super.onCreate();
palyMp3();
// palyMp3();
}
//开始
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.e("服务开启","-----");
palyMp3();
return START_STICKY;
}
@@ -3,15 +3,12 @@ package com.arpa.hndahesudintocctmsdriver.service;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.Environment;
import android.os.Handler;
import android.os.IBinder;
import android.util.Log;
import androidx.annotation.Nullable;
import com.amap.api.location.AMapLocation;
import com.arpa.hndahesudintocctmsdriver.util.FileIOUtils;
import com.google.gson.Gson;
import com.arpa.hndahesudintocctmsdriver.bean.BaseBean;
import com.arpa.hndahesudintocctmsdriver.request.HuoYuanRequset;
@@ -21,13 +18,8 @@ import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil;
import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup;
import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants;
import java.io.File;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import java.util.logging.Filter;
/**
* @author hlh
@@ -38,51 +30,28 @@ import java.util.logging.Filter;
public class TrackService extends Service {
private Context con;
private TrackInputBean tib=new TrackInputBean();
private TrackInputBean tib = new TrackInputBean();
private LocationGDUtil l;
private int timeSum=1000*60;
private String snn="";
private Gson gson=new Gson();
private int timeSum = 1000 * 60 * 3;
private String snn = "";
private Gson gson = new Gson();
private HuoYuanRequset hyr;
private Handler hd=new Handler(msg -> {
switch (msg.what){
private Handler hd = new Handler(msg -> {
switch (msg.what) {
case RequsetCodeConstants.SUCCESS:
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());
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");
}
break;
case LocationGDUtil.RES:
if(CacheGroup.cacheList.get("getLocation")!=null){
AMapLocation location = gson.fromJson(CacheGroup.cacheList.get("getLocation"), AMapLocation.class);
String time2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String time = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
// 当前时间:${time2},经纬度:${it.latitude}:${it.longitude}
FileIOUtils.writeFileFromString(
Environment.getExternalStorageDirectory()
.toString() + "/crashinfo/" + "crash-"+time+".txt",
"当前时间:"+time2+",经纬度:"+location.getLatitude()+":"+location.getLongitude(),
true
);
// genzong(location);
CacheGroup.cacheList.remove("getLocation");
}
break;
case 16:
String time2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String time = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
FileIOUtils.writeFileFromString(
Environment.getExternalStorageDirectory()
.toString() + "/crashinfo/" + "crash-"+time+".txt",
"当前时间:"+time2+",定位失败",
true
);
genzong();
break;
}
return false;
@@ -90,32 +59,34 @@ public class TrackService extends Service {
@Nullable
@Override
public IBinder onBind(Intent intent) {return null; }
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
con=this;
hyr=new HuoYuanRequset(con,hd);
Log.e("开始循环上传,等待100ms","-----");
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("")) {
snn = SPUtil.getSP(con, "order", "ShippingNoteNumber");
if (!snn.equals("")) {
l = new LocationGDUtil(con, hd);
l.onCreate();
}else{
} else {
onDestroy();
}
}
},100,timeSum);
}, 100, timeSum);
}
//开始
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.e("服务开启","-----");
Log.e("服务开启", "-----");
return START_STICKY;
}
@@ -125,16 +96,19 @@ public class TrackService extends Service {
super.onDestroy();
}
public void genzong(AMapLocation location){
//经度
tib.setLatitude(location.getLatitude()+"");
//纬度
tib.setLongitude(location.getLongitude()+"");
Log.e("经度",location.getLatitude()+"");
Log.e("维度",location.getLongitude()+"");
//单号
tib.setShippingNoteNumber(snn);
hyr.trackTracking(tib);
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);
}
}
@@ -10,6 +10,7 @@ import android.view.KeyEvent
import android.widget.*
import androidx.fragment.app.Fragment
import com.arpa.hndahesudintocctmsdriver.R
import com.arpa.hndahesudintocctmsdriver.event.WalletEvent
import com.arpa.hndahesudintocctmsdriver.ui.home.HomeFragment
import com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity
import com.arpa.hndahesudintocctmsdriver.ui.my.MyFragment
@@ -23,6 +24,7 @@ import com.arpa.hndahesudintocctmsdriver.util.view.PanDuanUtil
import com.google.gson.Gson
import com.gyf.cactus.ext.cactusUpdateNotification
import com.permissionx.guolindev.PermissionX
import org.greenrobot.eventbus.EventBus
@Suppress("DIVISION_BY_ZERO")
@SuppressLint("SetTextI18n")
@@ -93,6 +95,7 @@ class MainActivity : BaseAppCompatActivity() {
bt.hide(fs[bt.index])
bt.selectItem(fs[1])
} else {
EventBus.getDefault().post(WalletEvent("refresh"))
bt.setDefaultFragment(fs[1])
}
bt.index = 1
@@ -126,9 +129,9 @@ class MainActivity : BaseAppCompatActivity() {
bt.index = 3
}
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
getPression()
}
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
// getPression()
// }
}
fun getPression() {
@@ -4,6 +4,7 @@ import android.content.Context;
import com.arpa.hndahesudintocctmsdriver.event.HomeEvent;
import com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity;
import com.arpa.hndahesudintocctmsdriver.util.SPUtils;
import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil;
import org.greenrobot.eventbus.EventBus;
@@ -39,6 +40,7 @@ public class UiAuxiliary {
public static void delLogin(Context con){
JPushInterface.deleteAlias(con,0);
SPUtils.remove(con,"curWaybillId");
SPUtil.insSP(con,LoginActivity.USER,LoginActivity.USER_TOKEN,"");
SPUtil.insSP(con,LoginActivity.USER,LoginActivity.USER_UNAME,"");
SPUtil.insSP(con,LoginActivity.USER,LoginActivity.USER_RNAME,"");
@@ -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);
@@ -20,9 +20,13 @@ import androidx.annotation.Nullable;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.arpa.hndahesudintocctmsdriver.bean.OCRQualiBean;
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;
import com.github.gzuliyujiang.wheelpicker.DatePicker;
@@ -83,13 +87,35 @@ public class AuthQualificationActivity extends BaseAppCompatActivity {
if (CacheGroup.cacheList.get("upload") != null) {
ub = gson.fromJson(CacheGroup.cacheList.get("upload"), UploadBean.class);
if (ub.getCode() == 200) {
if ("0".equals(type)) {//从业资格识别,党员认证不识别
new OCRRequest().ORCQualificaZj(con, hd, ub.getData().getUrl());
}
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);
}
CacheGroup.cacheList.remove("upload");
}
if (CacheGroup.cacheList.get("ORCQualificaZj") != null) {
OCRQualiBean ocrQualiBean = gson.fromJson(CacheGroup.cacheList.get("ORCQualificaZj"), OCRQualiBean.class);
if (ocrQualiBean.getCode() == 200 && ocrQualiBean.getData() != null) {
List<OCRQualiBean.DataDTO.QualificationCategoryListDTO> qualificationCategoryList = ocrQualiBean.getData().getQualification_category_list();
if (qualificationCategoryList != null && qualificationCategoryList.size() > 0) {
String expiryDate = qualificationCategoryList.get(0).getExpiry_date();
if (!TextUtils.isEmpty(expiryDate)&&expiryDate.contains("-")){
value2.setText(expiryDate);
}
}
} else {
Toast.makeText(con, "识别失败", Toast.LENGTH_SHORT).show();
}
CacheGroup.cacheList.remove("ORCQualificaZj");
}
if (CacheGroup.cacheList.get("isAuthDriverAuthQualification") != null) {
Log.e("is", CacheGroup.cacheList.get("isAuthDriverAuthQualification"));
ib = gson.fromJson(CacheGroup.cacheList.get("isAuthDriverAuthQualification"), IsAuthDriverAuthQualificationBean.class);
@@ -118,21 +144,20 @@ public class AuthQualificationActivity extends BaseAppCompatActivity {
}, 3000);
}
} else {
finish();
if (isOverCar){//从业资格证=》道路运输许可证
if (isOverCar) {//从业资格证=》道路运输许可证
Intent in = new Intent(con, PhotoCarActivity.class);
in.putExtra("type", 3);
in.putExtra("carId", carId);
startActivity(in);
}else{//资料传完 补传情况
} else {//资料传完 补传情况
Intent in = new Intent(con, AddCarSuccActivity.class);
in.putExtra("type", 3);
con.startActivity(in);
}
finish();
}
Toast.makeText(con, "资格证上传成功", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(con, bb.getMsg(), Toast.LENGTH_SHORT).show();
@@ -205,7 +230,7 @@ public class AuthQualificationActivity extends BaseAppCompatActivity {
data_view = findViewById(R.id.data_view);
type = getIntent().getExtras().getString("type");
carId = getIntent().getExtras().getString("carId", "");
isOverCar = getIntent().getExtras().getBoolean("isOverCar",false);
isOverCar = getIntent().getExtras().getBoolean("isOverCar", false);
ur = new UserRequset(con, hd);
initView(null);
if ("0".equals(type)) {
@@ -217,9 +242,9 @@ public class AuthQualificationActivity extends BaseAppCompatActivity {
}
//new RZRequest().isDriverAuthQualification(con,hd);
}
if (TextUtils.isEmpty(carId)){//carId不为空 从添加车辆进入 该操作不能跳过
if (TextUtils.isEmpty(carId)) {//carId不为空 从添加车辆进入 该操作不能跳过
tvSkip.setVisibility(View.VISIBLE);
}else{
} else {
tvSkip.setVisibility(View.GONE);
}
}
@@ -300,7 +325,6 @@ public class AuthQualificationActivity extends BaseAppCompatActivity {
tvSkip.setOnClickListener(v -> {
if (type.equals("0")) {
// finish();
if (key) {
@@ -348,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("已上传");
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,51 @@
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.ui.MainActivity;
import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity;
import com.dahe.mylibrary.utils.ActivityUtils;
/**
* @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();
});
}
}
@@ -1,9 +1,12 @@
package com.arpa.hndahesudintocctmsdriver.ui.auth;
import android.Manifest;
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.widget.ImageView;
@@ -16,9 +19,15 @@ import androidx.annotation.Nullable;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.arpa.hndahesudintocctmsdriver.H5Activity;
import com.arpa.hndahesudintocctmsdriver.H5Activity2;
import com.arpa.hndahesudintocctmsdriver.event.HomeEvent;
import com.arpa.hndahesudintocctmsdriver.event.PersonEvent;
import com.arpa.hndahesudintocctmsdriver.ui.business.BusinessActivity;
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;
@@ -42,6 +51,7 @@ import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants;
import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity;
import com.lxj.xpopup.util.SmartGlideImageLoader;
import com.permissionx.guolindev.PermissionX;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
@@ -98,11 +108,18 @@ public class PersonalAuthActivity extends BaseAppCompatActivity {
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);
// startActivity(intent);
EsignSdk.getInstance().startH5Activity(act, StringUtil.isNull(String.valueOf(bb.getData()), ""));
Intent intent = new Intent(this, H5Activity.class);
intent.putExtra("url", (String) bb.getData());
intent.putExtra("view_file", false);
// intent.putExtra("isGoCar", true);
startActivity(intent);
// Bundle t = new Bundle();
// t.putString("url",(String) bb.getData());
// t.putBoolean("view_file", false);
// ActivityUtils.startActivity(con, H5Activity2.class,t);
// EsignSdk.getInstance().startH5Activity(act, StringUtil.isNull(String.valueOf(bb.getData()), ""));
} else {
Toast.makeText(con, bb.getMsg(), Toast.LENGTH_LONG).show();
}//Log.e("url",CacheGroup.cacheList.get("authUrl"));
@@ -168,13 +185,25 @@ public class PersonalAuthActivity extends BaseAppCompatActivity {
// startActivityForResult(in, 12);
//EsignSdk.getInstance().startH5Activity(act,"https://smlh5.esign.cn/usercenterFront/oemAuth/v3/realName/index?contextKey=b7b103b15b866ec4c72beef1dfe20828&appId=7438873235");
if (key) {
// EsignSdk.getInstance().startH5Activity(act, "");
PermissionX.init(this)
.permissions(Manifest.permission.CAMERA)
.request((allGranted, grantedList, deniedList) -> {
if(allGranted) {
key = false;
new AuthRequest().getAuthUrl(con, hd);
new Handler().postDelayed(() -> {
key = true;
}, 3000);
} 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);
});
}
});
key = false;
new AuthRequest().getAuthUrl(con, hd);
new Handler().postDelayed(() -> {
key = true;
}, 3000);
}
});
//头像
@@ -212,7 +241,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);
}
}
@@ -276,6 +305,8 @@ public class PersonalAuthActivity extends BaseAppCompatActivity {
Toast.makeText(con, "签署场景成功", Toast.LENGTH_SHORT).show();
} else if ("realName".equalsIgnoreCase(jsonObject.getString("key"))) {
Toast.makeText(con, "实名认证成功", Toast.LENGTH_SHORT).show();
EsignSdk.getInstance().finishH5Activity();
finish();
} else {
Toast.makeText(con, "意愿认证成功", Toast.LENGTH_SHORT).show();
}
@@ -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;
@@ -20,10 +21,14 @@ import com.arpa.hndahesudintocctmsdriver.R;
import com.arpa.hndahesudintocctmsdriver.bean.BaseBean;
import com.arpa.hndahesudintocctmsdriver.bean.CarDelBean;
import com.arpa.hndahesudintocctmsdriver.bean.IsAuthDriverAuthQualificationBean;
import com.arpa.hndahesudintocctmsdriver.bean.OCRBankBean;
import com.arpa.hndahesudintocctmsdriver.bean.OCRRoadBean;
import com.arpa.hndahesudintocctmsdriver.bean.UploadBean;
import com.arpa.hndahesudintocctmsdriver.request.AuthRequest;
import com.arpa.hndahesudintocctmsdriver.request.OCRRequest;
import com.arpa.hndahesudintocctmsdriver.request.UserRequset;
import com.arpa.hndahesudintocctmsdriver.ui.my.WoDeFragment;
import com.arpa.hndahesudintocctmsdriver.ui.wallet.WalletFragment;
import com.arpa.hndahesudintocctmsdriver.util.alert.CustomDialog;
import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup;
import com.arpa.hndahesudintocctmsdriver.util.file.ImageFileCompressUtil;
@@ -31,7 +36,8 @@ 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;
import com.google.gson.Gson;
@@ -98,6 +104,23 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
}
CacheGroup.cacheList.remove(WoDeFragment.VEHICLE_DEL);
}
if (CacheGroup.cacheList.get("onlyGetDetail") != null) {
Log.e("--res--", CacheGroup.cacheList.get("onlyGetDetail"));
cdb = gson.fromJson(CacheGroup.cacheList.get("onlyGetDetail"), CarDelBean.class);
CacheGroup.cacheList.remove("onlyGetDetail");
}
if (CacheGroup.cacheList.get("ORCRoadLicZj") != null) {
if (customDialog != null && customDialog.isShowing())
customDialog.dismiss();
OCRRoadBean ib = new Gson().fromJson(CacheGroup.cacheList.get("ORCRoadLicZj"), OCRRoadBean.class);
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();
}
CacheGroup.cacheList.remove("ORCRoadLicZj");
}
if (CacheGroup.cacheList.get("upload") != null) {
@@ -113,22 +136,31 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
new AuthRequest().saveCarImg(con, hd, carId, ub.getData().getId(), 5);
break;
case 3:
//道路运输证ocr识别
new OCRRequest().ORCRoadLicZj(con, hd, ub.getData().getUrl());
new AuthRequest().saveCarImg(con, hd, carId, ub.getData().getId(), 2);
break;
case 4:
new AuthRequest().saveCarImg(con, hd, carId, ub.getData().getId(), 7);
break;
default:
if (customDialog != null && customDialog.isShowing())
customDialog.dismiss();
break;
}
url = ub.getData().getUrl();
// Glide.with(con).load(url).into(img);
Glide.with(con).load(path).into(img);
ImageLoader.getInstance().loadImage(con,path,img);
if (customDialog != null && customDialog.isShowing())
customDialog.dismiss();
CacheGroup.cacheList.remove("upload");
}
if (CacheGroup.cacheList.get("saveCarImg") != null) {
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) {
@@ -142,7 +174,8 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
Toast.makeText(con, "上传车辆登记证书照片", Toast.LENGTH_SHORT).show();
break;
case 3:
Toast.makeText(con, "上传道路运输证成功", Toast.LENGTH_SHORT).show();
ur.vehicleDelTwo(carId);
// Toast.makeText(con, "上传道路运输证成功", Toast.LENGTH_SHORT).show();
break;
case 4:
Toast.makeText(con, "交强险证件上传成功", Toast.LENGTH_SHORT).show();
@@ -157,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();
}
@@ -175,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);
@@ -188,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);
@@ -196,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 {
@@ -360,7 +393,7 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
* 展示大图片
*/
private void showBigImg() {
if ((type == 0 && TextUtils.isEmpty(cdb.getData().getRoadLicensePhoto())) || (type == 4 && TextUtils.isEmpty(cdb.getData().getPolicyPhotoUrl()))) {
if ((type == 3 && TextUtils.isEmpty(cdb.getData().getRoadLicensePhoto())) || (type == 4 && TextUtils.isEmpty(cdb.getData().getPolicyPhotoUrl()))) {
choicePhoto();
return;
}
@@ -405,8 +438,8 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
// .asImageViewer(img, cdb.getData().getRoadLicensePhoto(), true, -1, -1, 50, false, new CertificatesActivity.ImageLoader())
// .show();
break;
}
break;
case 4:
if (cdb.getData().getPolicyPhotoUrl() != null && !"".equals(cdb.getData().getPolicyPhotoUrl())) {
@@ -418,8 +451,8 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
// .asImageViewer(img, cdb.getData().getRoadLicensePhoto(), true, -1, -1, 50, false, new CertificatesActivity.ImageLoader())
// .show();
break;
}
break;
}
}
@@ -488,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);
@@ -517,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);
@@ -606,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);
}
}
@@ -55,6 +55,7 @@ public class VehicleAuthActivity extends BaseAppCompatActivity {
public String carId="";
public static final String DEL_CAR="delete_che";
public static final String CAR_AUDIO="CAR_AUDIO";
public static final String APP_INFO="APP_INFO";
private int submitIndex=0;
private BaseBean bb;
private ImageView show_img;
@@ -1,12 +1,17 @@
package com.arpa.hndahesudintocctmsdriver.ui.home;
import static com.sdk.base.framework.utils.app.AppUtils.getPackageName;
import android.Manifest;
import android.content.Context;
import android.content.Intent;
import android.graphics.Outline;
import android.location.Location;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Message;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
import android.view.Gravity;
@@ -23,6 +28,7 @@ import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.cardview.widget.CardView;
import androidx.fragment.app.FragmentActivity;
import com.alct.mdp.MDPLocationCollectionManager;
import com.alct.mdp.callback.OnDownloadResultListener;
@@ -36,22 +42,34 @@ import com.amap.api.maps.model.LatLng;
import com.amap.api.maps.model.Marker;
import com.amap.api.maps.model.MarkerOptions;
import com.amap.api.maps.model.MyLocationStyle;
import com.arpa.hndahesudintocctmsdriver.bean.BankCardListBean;
import com.arpa.hndahesudintocctmsdriver.bean.DriverExpireBean;
import com.arpa.hndahesudintocctmsdriver.bean.ImageConfig;
import com.arpa.hndahesudintocctmsdriver.bean.JTT;
import com.arpa.hndahesudintocctmsdriver.constant.JTTConstant;
import com.arpa.hndahesudintocctmsdriver.event.HomeEvent;
import com.arpa.hndahesudintocctmsdriver.event.HomeWaybillEvent;
import com.arpa.hndahesudintocctmsdriver.parts.StartOrderParts;
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.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;
import com.arpa.hndahesudintocctmsdriver.util.SPUtils;
import com.arpa.hndahesudintocctmsdriver.util.string.StringUtil;
import com.bumptech.glide.Glide;
import com.dahe.mylibrary.utils.TimeUtil;
import com.dahe.mylibrary.utils.ToastUtils;
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;
@@ -85,6 +103,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;
@@ -95,8 +114,11 @@ import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import pub.devrel.easypermissions.EasyPermissions;
/**
* @author hlh
* @version 1.0.0
@@ -117,7 +139,11 @@ public class HomeFragment extends BaseFragment {
private HuoYuanListBean hb;
private Gson gson = new Gson();
private CardView btn_news, btn_loadin, btn_update;
private LinearLayout order_all;
private LinearLayout order_all, llCurWay;
private TextView tvWaybill, tvGo, tvZX;
private ImageView ivType;
private HuoYuanListBean uab;
private List<Marker> list = new ArrayList<>();
private HuoYuanListDealBean hdb;
@@ -126,6 +152,10 @@ public class HomeFragment extends BaseFragment {
private ImageConfig ic;
private DriverExpireBean deb;
private XToast xToast;
private boolean isUpAppShow = false;
@Override
public void msgMethod(Message m) {
@@ -139,6 +169,23 @@ public class HomeFragment extends BaseFragment {
refreshLayout.finishRefresh(500);
keys = false;
}
//银行卡信息接收
if (CacheGroup.cacheList.get(dataName2) != null) {
BankCardListBean bcb = new Gson().fromJson(CacheGroup.cacheList.get(dataName2), BankCardListBean.class);
if (bcb.getCode() == 200) {
if (bcb.getData() == null || bcb.getData().getRecords() == null || bcb.getData().getRecords().size() < 1) {
new MessageUtils().showSimCenPop(con, "缺少银行卡可能会导致运费无法结算,是否去添加!", "取消", "确认", () -> {
Intent in333 = new Intent(con, UpBankActivity.class);
startActivity(in333);
});
}
} else {
Toast.makeText(con, bcb.getMsg(), Toast.LENGTH_SHORT).show();
}
CacheGroup.cacheList.remove(dataName2);
}
if (CacheGroup.cacheList.get("userdata") != null) {
ub = gson.fromJson(CacheGroup.cacheList.get("userdata"), UserBean.class);
if (ub.getCode() == 200) {
@@ -146,13 +193,13 @@ public class HomeFragment extends BaseFragment {
MsgUtil.addHdMsgWat(hd, 33);
//新用户注册,需弹窗提示注册
if ("0".equals(ub.getData().getRealAuthentication())) {
new MessageUtils().showSimCenPop(con, "该司机还未认证,未认证无法接单。是否去注册!", () -> {
Intent in = new Intent(con, CertificatesActivity.class);
in.putExtra("index", 0);
startActivity(in);
});
}
// if ("0".equals(ub.getData().getRealAuthentication())) {
// new MessageUtils().showSimCenPop(con, "该司机还未认证,未认证无法接单。是否去注册!", () -> {
// Intent in = new Intent(con, CertificatesActivity.class);
// in.putExtra("index", 0);
// startActivity(in);
// });
// }
} else {
Toast.makeText(con, ub.getMsg(), Toast.LENGTH_SHORT).show();
}
@@ -165,8 +212,24 @@ public class HomeFragment extends BaseFragment {
SPUtil.insSP(con, JTTConstant.JTT_DATA_NAME, JTTConstant.JTT_DATA_ORDER_KEY, gson.toJson(sob));
initStart();
StartOrderParts.setStartOrder(con, sob);
if (sob.getData() != null) {
ur.getJtts(sob.getData().getShippingNoteNumber());
if (sob.getData() != null && !sob.getData().getWaybillStatus().equals("已取消")) {
StartOrderBean.DataDTO.WayChildrenDTO xData = null;
for (int i = 0; i < sob.getData().getWayChildren().size(); i++) {
if (2 == sob.getData().getWayChildren().get(i).getType()) {
xData = sob.getData().getWayChildren().get(i);
break;
}
}
if (xData != null && xData.getStatus() == 3) {
SPUtils.remove(con, "curWaybillId");
llCurWay.setVisibility(View.GONE);
} else {
dealCurWay(sob.getData());
ur.getJtts(sob.getData().getShippingNoteNumber());
}
} else {
SPUtils.remove(con, "curWaybillId");
llCurWay.setVisibility(View.GONE);
}
} else {
Toast.makeText(con, sob.getMsg(), Toast.LENGTH_SHORT).show();
@@ -181,6 +244,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();
}
@@ -200,6 +276,40 @@ 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, "该司机缺少身份证,未认证无法接单。是否去添加!", "去添加", () -> {
Intent in = new Intent(con, CertificatesActivity.class);
in.putExtra("index", 0);
startActivity(in);
});
CacheGroup.cacheList.remove(WoDeFragment.AUTH_DATA);
return;
}
if (dad.getData() != null && TextUtils.isEmpty(dad.getData().getIdcard())) {
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, "该司机缺少银行卡,未认证无法接单。是否去添加!", "去添加", () -> {
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, "该司机缺少驾驶证,未认证无法接单。是否去添加!", "去添加", () -> {
Intent in = new Intent(con, CertificatesActivity.class);
in.putExtra("index", 0);
startActivity(in);
});
}
SPUtil.insSP(con, "data", "authdata", CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA));
if (dad.getData() != null && 100003 == dad.getData().getAuditStatus()) {
initAlct();
@@ -241,11 +351,15 @@ public class HomeFragment extends BaseFragment {
in.putExtra("url", deb.getData().getIdCardUpdateUrl());
}
}
if (!TextUtils.isEmpty(deb.getData().getDriverLicenseUpdateUrl()) || !TextUtils.isEmpty(deb.getData().getIdCardUpdateUrl())||
!TextUtils.isEmpty(deb.getData().getQualificationUpdateUrl())||!TextUtils.isEmpty(deb.getData().getRoadLicenseUpdateUrl())||
if (!TextUtils.isEmpty(deb.getData().getDriverLicenseUpdateUrl()) || !TextUtils.isEmpty(deb.getData().getIdCardUpdateUrl()) ||
!TextUtils.isEmpty(deb.getData().getQualificationUpdateUrl()) || !TextUtils.isEmpty(deb.getData().getRoadLicenseUpdateUrl()) ||
!TextUtils.isEmpty(deb.getData().getInsuranceUpdateUrl())) {
new XToast<>(act)
.setContentView(R.layout.view_bc)
if (xToast == null) {
xToast = new XToast(act);
} else if (xToast != null && xToast.isShow()) {
xToast.cancel();
}
xToast.setContentView(R.layout.view_bc)
// 设置成可拖拽的
.setDraggable()
// 设置显示时长
@@ -260,6 +374,22 @@ public class HomeFragment extends BaseFragment {
// 设置窗口背景阴影强度
//.setBackgroundDimAmount(0.5f)
.showAsDropDown(home_top, Gravity.BOTTOM, 1200, 1000);
// new XToast<>(act)
// .setContentView(R.layout.view_bc)
// // 设置成可拖拽的
// .setDraggable()
// // 设置显示时长
// .setDuration(1000 * 60 * 60 * 12)
// .setOnClickListener(R.id.img_kf, (toast, view) -> {
// toast.startActivity(in);
// Log.e("-is-", view.isInTouchMode() + "");
// })
// // 设置动画样式
// //.setAnimStyle(android.R.style.Animation_Translucent)
// // 设置外层是否能被触摸
// // 设置窗口背景阴影强度
// //.setBackgroundDimAmount(0.5f)
// .showAsDropDown(home_top, Gravity.BOTTOM, 1200, 1000);
}
CacheGroup.cacheList.remove("driverExpire");
}
@@ -320,8 +450,8 @@ public class HomeFragment extends BaseFragment {
EventBus.getDefault().register(this);
hyr = new HuoYuanRequset(con, hd);
ur = new UserRequset(con, hd);
initRefreshLoad();
initView(null);
initRefreshLoad();
btn_news.setOnClickListener(v -> {
});
@@ -427,6 +557,13 @@ public class HomeFragment extends BaseFragment {
order_box = v.findViewById(R.id.order_box);
auth_box = v.findViewById(R.id.auth_box);
order_all = v.findViewById(R.id.order_all);
llCurWay = v.findViewById(R.id.llCurWay);
tvWaybill = v.findViewById(R.id.tvWaybill);
tvGo = v.findViewById(R.id.tvGo);
tvZX = v.findViewById(R.id.loadingAddress);
ivType = v.findViewById(R.id.ivType);
ImageView fun_left = v.findViewById(R.id.fun_left);
ImageView fun_right = v.findViewById(R.id.fun_right);
fun_left.setOnClickListener(v16 -> startActivity(new Intent(con, OrderListActivity.class)));
@@ -481,18 +618,35 @@ public class HomeFragment extends BaseFragment {
v1.setOnClickListener(v2 -> {
switch (position) {
case 0:
//startActivity(new Intent(con, OrderListActivity.class));
PermissionX.init(getActivity())
.permissions(Manifest.permission.ACCESS_FINE_LOCATION)
.request((allGranted, grantedList, deniedList) -> {
PermissionUtils.Companion.getInstance().showPermissionMessage(getActivity(), "位置权限使用说明", "用于向您推荐可能感兴趣的住宿、饮食、加油站、汽车维修等",
new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
(allGranted, grantedList, deniedList) -> {
if (allGranted) {
Intent in = new Intent(con, BusinessActivity.class);
in.putExtra("type", "餐饮");
startActivity(in);
} else {
Toast.makeText(act.getBaseContext(), "请先开启定位权限", Toast.LENGTH_LONG).show();
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();
}
});
//startActivity(new Intent(con, OrderListActivity.class));
// PermissionX.init(getActivity())
// .permissions(Manifest.permission.ACCESS_FINE_LOCATION)
// .request((allGranted, grantedList, deniedList) -> {
// if (allGranted) {
// Intent in = new Intent(con, BusinessActivity.class);
// in.putExtra("type", "餐饮");
// startActivity(in);
// } else {
// Toast.makeText(act.getBaseContext(), "请先开启定位权限", Toast.LENGTH_LONG).show();
// }
// });
//Toast.makeText(con,"定位开启失败,请检查配置项",Toast.LENGTH_LONG).show();
break;
case 1:
@@ -516,6 +670,11 @@ public class HomeFragment extends BaseFragment {
in5.putExtra("url", "https://ks.wjx.top/vm/h6Jqu8A.aspx");
in5.putExtra("title", "知识竞猜");
startActivity(in5);
// Intent in = new Intent(getContext(), WebActivity.class);
// in.putExtra("url", "http://192.168.1.152:8080");
// in.putExtra("title", "隐私政策");
// getContext().startActivity(in);
break;
default:
break;
@@ -526,6 +685,100 @@ public class HomeFragment extends BaseFragment {
initMap();
}
StartOrderBean.DataDTO.WayChildrenDTO zData = new StartOrderBean.DataDTO.WayChildrenDTO();
StartOrderBean.DataDTO.WayChildrenDTO xData = new StartOrderBean.DataDTO.WayChildrenDTO();
/**
* 一装一卸逻辑
*
* @param data
*/
private void dealCurWay(StartOrderBean.DataDTO data) {
SPUtils.put(con, "curWaybillId", data.getWaybillId());
for (int i = 0; i < data.getWayChildren().size(); i++) {
if (1 == data.getWayChildren().get(i).getType()) {
zData = data.getWayChildren().get(i);
break;
}
}
for (int i = 0; i < data.getWayChildren().size(); i++) {
if (2 == data.getWayChildren().get(i).getType()) {
xData = data.getWayChildren().get(i);
break;
}
}
llCurWay.setVisibility(View.VISIBLE);
tvWaybill.setText(data.getShippingNoteNumber());
tvGo.setText(getGoText(zData.getStatus(), xData.getStatus()));
if (data.getWaybillStatus().equals("待装货")) {
tvZX.setText(zData.getAddress());
ivType.setBackgroundResource(R.mipmap.zhuang);
} else {
tvZX.setText(xData.getAddress());
ivType.setBackgroundResource(R.mipmap.xie);
}
tvGo.setOnClickListener(v -> {
int zStatus = zData.getStatus();
int xStatus = xData.getStatus();
if (zStatus == 0) {//未装货
Intent in = new Intent(con, ShangChuangImgActivity.class);
in.putExtra("type", 0);
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);
in.putExtra("type", 2);
in.putExtra("wid", zData.getId() + "");
in.putExtra("h_type", 0);
in.putExtra("sob", gson.toJson(sob));
startActivity(in);
} 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);
in.putExtra("type", 1);
in.putExtra("wid", xData.getId() + "");
in.putExtra("sob", gson.toJson(sob));
in.putExtra("keys", true);
startActivity(in);
} else {
ToastUtils.showToast(con, "请到卸货地再进行卸货操作!");
}
} else if (zStatus == 3 && xStatus == 2) {//已卸货,未上传卸货回单
Intent in = new Intent(con, ShangChuangImgActivity.class);
in.putExtra("type", 2);
in.putExtra("wid", xData.getId() + "");
in.putExtra("h_type", 1);
in.putExtra("sob", gson.toJson(sob));
in.putExtra("keys", true);
startActivity(in);
} else {
ToastUtils.showToast(con, "已完成该运单");
}
});
}
private String getGoText(int zStatus, int xStatus) {
if (zStatus == 0) {//未装货
return "去装货";
} else if (zStatus == 1 && xStatus == 4) {//已装货未上传回单
return "装货回单";
} else if (zStatus == 3 && xStatus == 4) {//已上传装货回单,未卸货
return "去卸货";
} else if (zStatus == 3 && xStatus == 2) {//已卸货,未上传卸货回单
return "卸货回单";
}
return "已完成";
}
/**
*
*/
@@ -545,12 +798,18 @@ public class HomeFragment extends BaseFragment {
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);
ur.User();
// if (!OneDayShowUtils.getInstance().todayIsShow(con)) {
// qr.getBankCardList();
// }
ur.getDriverExpire();
hyr.startOrder(0);
hyr.startOrder(curWaybillId == -1 ? 0 : curWaybillId);
// hyr.startOrder(0);
//获取权限 应用市场审核不通过
ur.driverAuthData();
}
// oldTime= Calendar.getInstance().getTimeInMillis();
@@ -609,8 +868,13 @@ public class HomeFragment extends BaseFragment {
Log.e("开始轨迹上传服务", "-----");
orderNum.setText("运单号:" + sob.getData().getShippingNoteNumber());
order_state.setText("" + sob.getData().getWaybillStatus());
Intent serviceIn = new Intent(con, TrackService.class);
getActivity().startService(serviceIn);
try {
Intent serviceIn = new Intent(con, TrackService.class);
getActivity().startService(serviceIn);
} catch (Exception e) {
e.printStackTrace();
}
} else {
SPUtil.insSP(con, "order", "ShippingNoteNumber", "");
order_start.setVisibility(View.GONE);
@@ -781,7 +1045,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());
@@ -802,7 +1066,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);
}
}
}
@@ -900,29 +1164,64 @@ public class HomeFragment extends BaseFragment {
// }
public void initAlct() {
PermissionX.init(getActivity())
.permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.RECORD_AUDIO)
.request((allGranted, grantedList, deniedList) -> {
if (allGranted) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
// if (!OneDayShowUtils.getInstance().todayIsShowQx(con)){
// boolean b = EasyPermissions.hasPermissions(getActivity(), Manifest.permission.WRITE_EXTERNAL_STORAGE,
// Manifest.permission.READ_EXTERNAL_STORAGE,
// Manifest.permission.ACCESS_FINE_LOCATION,
// Manifest.permission.ACCESS_COARSE_LOCATION);
// if (b) {
// ALProcess.verification(con);
// }
PermissionX.init(getActivity())
.permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.CAMERA,
Manifest.permission.ACCESS_COARSE_LOCATION)
.request((allGranted, grantedList, deniedList) -> {
if (allGranted) {
ALProcess.verification(con);
} else {
boolean accessCoarseLocation = deniedList.contains("android.permission.ACCESS_FINE_LOCATION");
boolean contains = deniedList.contains("android.permission.WRITE_EXTERNAL_STORAGE");
boolean camear = deniedList.contains("android.permission.CAMERA");
if (accessCoarseLocation | contains) {
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);
});
} else if (camear) {
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);
});
}
} else {
}
});
// }
}
});
ALProcess.verification(con);
MDPLocationCollectionManager.getInvoices(con, 10, 1, new OnDownloadResultListener() {
@Override
public void onSuccess(Object o) {
Log.e("--成功信息--", new Gson().toJson(o));
}
} else {
ALProcess.verification(con);
}
@Override
public void onFailure(String s, String s1) {
Log.e("--失败信息--", s + s1);
}
});
// ALProcess.verification(con);
// MDPLocationCollectionManager.getInvoices(con, 10, 1, new OnDownloadResultListener() {
// @Override
// public void onSuccess(Object o) {
// Log.e("--成功信息--", new Gson().toJson(o));
// }
//
// @Override
// public void onFailure(String s, String s1) {
// Log.e("--失败信息--", s + s1);
// }
// });
}
private MyLocationStyle myLocationStyle;//地图定位样式
@@ -998,6 +1297,33 @@ public class HomeFragment extends BaseFragment {
initView(null);
}
@Override
public void onStart() {
super.onStart();
refreshWaybills();
}
private void refreshWaybills() {
// 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);
}
}
class Model {
private int imageId;
@@ -1,16 +1,26 @@
package com.arpa.hndahesudintocctmsdriver.ui.home;
import static com.sdk.base.framework.utils.app.AppUtils.getPackageName;
import android.Manifest;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.provider.Settings;
import android.text.Html;
import android.text.Layout;
import android.text.TextUtils;
import android.text.method.HideReturnsTransformationMethod;
import android.text.method.PasswordTransformationMethod;
import android.util.Log;
import android.view.inputmethod.EditorInfo;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
@@ -22,14 +32,18 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.arpa.hndahesudintocctmsdriver.H5Activity;
import com.arpa.hndahesudintocctmsdriver.bean.JTT;
import com.arpa.hndahesudintocctmsdriver.bean.WaybillStatusBean;
import com.arpa.hndahesudintocctmsdriver.event.FaceEvent;
import com.arpa.hndahesudintocctmsdriver.event.HomeEvent;
import com.arpa.hndahesudintocctmsdriver.event.HomeWaybillEvent;
import com.arpa.hndahesudintocctmsdriver.parts.ConfigParts;
import com.arpa.hndahesudintocctmsdriver.parts.UserParts;
import com.arpa.hndahesudintocctmsdriver.report.ALProcess;
import com.arpa.hndahesudintocctmsdriver.report.JTTProcess;
import com.arpa.hndahesudintocctmsdriver.ui.MainActivity;
import com.arpa.hndahesudintocctmsdriver.ui.auth.PersonalAuthActivity;
import com.arpa.hndahesudintocctmsdriver.util.MessageUtils;
import com.arpa.hndahesudintocctmsdriver.util.SPUtils;
import com.arpa.hndahesudintocctmsdriver.util.img.ImageGetUtil;
import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil;
import com.arpa.hndahesudintocctmsdriver.util.string.StringUtil;
@@ -60,6 +74,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.permissionx.guolindev.PermissionX;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
@@ -103,20 +118,23 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
//Toast.makeText(con,"接单成功",Toast.LENGTH_SHORT).show();
customDialog.dismiss();
// EsignSdk.getInstance().startH5Activity(act, (String) bb.getData());
if (null==bb.getData()){
if (null == bb.getData()) {
UiAuxiliary.homeRequest("接单");
Intent in = new Intent(con, StartYunDanActivity.class);
in.putExtra("id", "0");
startActivity(in);
finish();
}else{
} else {
Intent intent = new Intent(this, H5Activity.class);
intent.putExtra("url", (String) bb.getData());
intent.putExtra("view_file", false);
intent.putExtra("title", "合同签署");
startActivity(intent);
}
//finish();
} else {
EventBus.getDefault().post(new HomeWaybillEvent(1));
finish();
Toast.makeText(con, bb.getMsg(), Toast.LENGTH_SHORT).show();
customDialog.dismiss();
}
@@ -134,6 +152,38 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
}
CacheGroup.cacheList.remove("jttRes");
}
if (CacheGroup.cacheList.get("orderStatus") != null) {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
Log.e("orderStatus", CacheGroup.cacheList.get("orderStatus"));
WaybillStatusBean status = gson.fromJson(CacheGroup.cacheList.get("orderStatus"), WaybillStatusBean.class);
if (status.getCode() == 200) {
if (status.getData() != null) {
//执行运单下一步操作
new XPopup.Builder(con)
.isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个
.asConfirm("请确认接单", "是否确定承运此运单?",
"取消", "确认",
() -> {
Log.e("--id--", "cid:" + cid + "---wid:" + id);
hyr.confirm(cid, id);
}, () -> customDialog.dismiss(), false, R.layout.alert_ok_cancel) //最后一个参数绑定已有布局
.show();
} else {//订单已取消
new MessageUtils().showSimCenPop(con, "运单异常将无法进行下步操作,请返回首页", "取消", "确定", () -> {
SPUtils.remove(con, "curWaybillId");
EventBus.getDefault().post(new HomeWaybillEvent(1));
ActivityUtils.finishToActivity(MainActivity.class, false);
});
}
} else {
Toast.makeText(con, status.getMsg(), Toast.LENGTH_SHORT).show();
}
CacheGroup.cacheList.remove("orderStatus");
}
break;
case 13:
int index = Integer.valueOf((String) m.obj);
@@ -141,16 +191,18 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
car.setText("选择车辆:" + clb.getData().get(index).getCarNumber());
cid = clb.getData().get(index).getCarId();
break;
case 1111://安联用户验证通过,接单
new XPopup.Builder(con)
.isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个
.asConfirm("请确认接单", "是否确定承运此运单?",
"取消", "确认",
() -> {
Log.e("--id--", "cid:" + cid + "---wid:" + id);
hyr.confirm(cid, id);
}, () -> customDialog.dismiss(), false, R.layout.alert_ok_cancel) //最后一个参数绑定已有布局
.show();
hyr.getOrderStatus(id);
// new XPopup.Builder(con)
// .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个
// .asConfirm("请确认接单", "是否确定承运此运单?",
// "取消", "确认",
// () -> {
// Log.e("--id--", "cid:" + cid + "---wid:" + id);
// hyr.confirm(cid, id);
// }, () -> customDialog.dismiss(), false, R.layout.alert_ok_cancel) //最后一个参数绑定已有布局
// .show();
break;
case 2222://安联用户验证不通过
customDialog.dismiss();
@@ -200,6 +252,8 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
//2021/02/27记,类型声明错误
ImageButton return_btn = v.findViewById(R.id.return_btn);
ImageButton xuan = v.findViewById(R.id.xuan);
CheckBox checkBox = v.findViewById(R.id.cb);
TextView totalFreight = v.findViewById(R.id.totalFreight);
ImageButton btnFp = v.findViewById(R.id.btnFp);
TextView effectiveTime = v.findViewById(R.id.effectiveTime);
TextView check_contract = v.findViewById(R.id.check_contract);
@@ -210,6 +264,15 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
return_btn.setOnClickListener(v16 -> {
finish();
});
totalFreight.setText("****");
checkBox.setOnCheckedChangeListener((buttonView, isChecked) -> {
if (isChecked) {
totalFreight.setText(hyd.getData().getTotalFreight());
} else {
totalFreight.setText("****");
}
// totalFreight.setTransformationMethod(isChecked? HideReturnsTransformationMethod.getInstance(): PasswordTransformationMethod.getInstance());
});
// String textSource = "同意在符合相关税务机关要求的情况下代开<font color='#ff0000'>增值税发票</font>";
String textSource = "公司已对运输合同条款充分解释说明,本人已充分理解、认可并签署;同意符合税务机关要求下<font color='#ff0000'>代开增值税发票</font>,产生的增值税及附加税本人承担。";
tvZzs.setText(Html.fromHtml(textSource));
@@ -358,7 +421,6 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
// }, 2500);
// new Handler().postDelayed(() -> {
//
//
@@ -423,10 +485,53 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
* 先判断安联用户信息验证,随后接单
*/
private void reOrder() {
customDialog = new CustomDialog(con, "正在接单...");
customDialog.show();
//验证安联用户是否通过
ALProcess.verification(con, hd);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
try {
PermissionX.init(this)
.permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION)
.request((allGranted, grantedList, deniedList) -> {
if (allGranted) {
customDialog = new CustomDialog(con, "正在接单...");
customDialog.show();
//验证安联用户是否通过
ALProcess.verification(con, hd);
} else {
boolean accessCoarseLocation = deniedList.contains("android.permission.ACCESS_FINE_LOCATION");
boolean contains = deniedList.contains("android.permission.WRITE_EXTERNAL_STORAGE");
if (accessCoarseLocation | contains) {
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);
});
}
}
});
} catch (Exception e) {
e.printStackTrace();
customDialog = new CustomDialog(con, "正在接单...");
customDialog.show();
//验证安联用户是否通过
ALProcess.verification(con, hd);
}
} else {
customDialog = new CustomDialog(con, "正在接单...");
customDialog.show();
//验证安联用户是否通过
ALProcess.verification(con, hd);
}
// customDialog = new CustomDialog(con, "正在接单...");
// customDialog.show();
// //验证安联用户是否通过
// ALProcess.verification(con, hd);
}
}
@@ -186,9 +186,11 @@ public class OrderAllActivity extends BaseActivity {
case 200006:
state4.setTextColor(getResources().getColor(R.color.blue));
state4.setText(" 已评价");
case 200005:
state3.setTextColor(getResources().getColor(R.color.blue));
state3.setText(" 已结算");
case 200005:
// state3.setTextColor(getResources().getColor(R.color.blue));
// state3.setText(" 已结算");
case 200004:
state2.setTextColor(getResources().getColor(R.color.blue));
state2.setText(" 已卸货");
@@ -3,6 +3,7 @@ package com.arpa.hndahesudintocctmsdriver.ui.home;
import android.content.Intent;
import android.os.Bundle;
import android.os.Message;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.animation.AlphaAnimation;
@@ -40,8 +41,10 @@ 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.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;
@@ -73,6 +76,7 @@ import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.function.Predicate;
public class StartYunDanActivity extends BaseActivity {
@@ -104,11 +108,14 @@ public class StartYunDanActivity extends BaseActivity {
switch (m.what) {
case RequsetCodeConstants.SUCCESS:
//获取页面数据
if (CacheGroup.cacheList.get(HuoYuanFragmengt.START_ORDER) != null && CacheGroup.cacheList.get(GET_EVALUTE) != null) {
if (CacheGroup.cacheList.get("refreshorderDetail") != null && CacheGroup.cacheList.get(GET_EVALUTE) != null) {
Log.e("-评论-", CacheGroup.cacheList.get(GET_EVALUTE));
Log.e("-运单-", CacheGroup.cacheList.get(HuoYuanFragmengt.START_ORDER));
sob = gson.fromJson(CacheGroup.cacheList.get(HuoYuanFragmengt.START_ORDER), StartOrderBean.class);
Log.e("-运单-", CacheGroup.cacheList.get("refreshorderDetail"));
sob = gson.fromJson(CacheGroup.cacheList.get("refreshorderDetail"), StartOrderBean.class);
wnb = gson.fromJson(CacheGroup.cacheList.get(GET_EVALUTE), WNewsBean.class);
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
if (sob.getCode() == 200 && sob.getData() != null) {
id = sob.getData().getWaybillId();
initView(null);
@@ -120,7 +127,7 @@ public class StartYunDanActivity extends BaseActivity {
} else {
Toast.makeText(con, sob.getMsg(), Toast.LENGTH_SHORT).show();
}
CacheGroup.cacheList.remove(HuoYuanFragmengt.START_ORDER);
CacheGroup.cacheList.remove("refreshorderDetail");
CacheGroup.cacheList.remove(GET_EVALUTE);
}
//保存评价
@@ -202,9 +209,33 @@ public class StartYunDanActivity extends BaseActivity {
initStartBody(v);
break;
case R.layout.item_yundan_yunxing:
LinearLayout llMoney = v.findViewById(R.id.llMoney);
if (!sob.getData().getWaybillStatus().equals("已装货")
&& !sob.getData().getWaybillStatus().equals("待装货")
&& !sob.getData().getWaybillStatus().equals("待接单")) {
if (sob.getData().getWaybillStatus().equals("已装货")) {
StartOrderBean.DataDTO.WayChildrenDTO mySdw = new StartOrderBean.DataDTO.WayChildrenDTO();
for (int i = 0; i < sob.getData().getWayChildren().size(); i++) {
StartOrderBean.DataDTO.WayChildrenDTO sdw = sob.getData().getWayChildren().get(i);
if (sdw.getType() == 1) {
mySdw = sdw;
break;
}
}
if (mySdw.getStatus() == 3) {
llMoney.setVisibility(View.GONE);
} else {
llMoney.setVisibility(View.VISIBLE);
}
} else {
llMoney.setVisibility(View.VISIBLE);
}
} else {
llMoney.setVisibility(View.GONE);
}
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:
@@ -446,13 +477,23 @@ public class StartYunDanActivity extends BaseActivity {
return str;
}
private CustomDialog customDialog;
@Override
protected void onResume() {
super.onResume();
if (map != null) {
map.onResume();
}
hyr.startOrder(id);
if (customDialog==null){
customDialog = new CustomDialog(con, "网络请求中...");
customDialog.show();
}else{
if (!customDialog.isShowing()){
customDialog.show();
}
}
hyr.startOrder2(id);
hyr.getEvaluate(id);
}
@@ -563,6 +604,10 @@ public class StartYunDanActivity extends BaseActivity {
public void search() {
String latitude = sob.getData().getWayChildren().get((sob.getData().getWayChildren().size() - 1)).getLatitude();
if (TextUtils.isEmpty(latitude)) {
return;
}
// try {
// AMapLocationClient.updatePrivacyShow(con,true,true);
// AMapLocationClient.updatePrivacyAgree(con,true);
@@ -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))
@@ -1,8 +1,12 @@
package com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan;
import static com.sdk.base.framework.utils.app.AppUtils.getPackageName;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Message;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
import android.view.Gravity;
@@ -15,24 +19,33 @@ import android.widget.Toast;
import androidx.annotation.Nullable;
import com.alct.mdp.MDPLocationCollectionManager;
import com.alct.mdp.callback.OnDownloadResultListener;
import com.alct.mdp.callback.OnResultListener;
import com.alct.mdp.model.Goods;
import com.alct.mdp.model.Image;
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.report.ALProcess;
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.NfcUtils;
import com.arpa.hndahesudintocctmsdriver.util.SPUtils;
import com.arpa.hndahesudintocctmsdriver.util.alert.ToastUtil;
import com.arpa.hndahesudintocctmsdriver.util.img.GetCarImageAlert;
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.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;
import com.luck.picture.lib.config.PictureConfig;
@@ -56,6 +69,8 @@ import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity;
import com.lxj.xpopup.util.SmartGlideImageLoader;
import org.greenrobot.eventbus.EventBus;
import java.io.File;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
@@ -88,13 +103,20 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
private boolean locationKey = false;
private TextView tv_loaction;
private boolean isFinish = false;
@Override
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()){
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
Log.e("upload", CacheGroup.cacheList.get("upload"));
@@ -102,7 +124,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);
@@ -112,20 +134,64 @@ 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();
}
Log.e("waybillStatus", CacheGroup.cacheList.get("waybillStatus"));
WaybillStatusBean status = gson.fromJson(CacheGroup.cacheList.get("waybillStatus"), WaybillStatusBean.class);
if (status.getCode() == 200) {
if (status.getData() != null) {
//执行运单下一步操作
typeRequest();
} else {//订单已取消
new MessageUtils().showSimCenPop(con, "运单异常将无法进行下步操作,请返回首页", "取消", "确定", () -> {
SPUtils.remove(con, "curWaybillId");
EventBus.getDefault().post(new HomeWaybillEvent());
ActivityUtils.finishToActivity(MainActivity.class, false);
});
}
} else {
Toast.makeText(con, status.getMsg(), Toast.LENGTH_SHORT).show();
}
CacheGroup.cacheList.remove("waybillStatus");
}
for (int i = 0; i < TYPE_NAME.length; i++) {
if (CacheGroup.cacheList.get(TYPE_NAME[i]) != null) {
BaseBean bb = gson.fromJson(CacheGroup.cacheList.get(TYPE_NAME[i]), BaseBean.class);
if (!isFinishing()&&customDialog!=null&&customDialog.isShowing()){
customDialog.dismiss();
}
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 ((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]);
@@ -150,13 +216,16 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
if (sob.getData().getCarNumber().equals(value)) {
hyr.uploadFile(new File(path));
} else {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
new MessageUtils().showCenMessage(ShangChuangImgActivity.this, "车牌号不匹配!", "请重新拍照或联系管理员");
}
} else {
hyr.uploadFile(new File(path));
}
} else {//识别失败后返回code500
if (!isFinishing()&&customDialog!=null&&customDialog.isShowing()){
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
if (index == 0) {//装卸货车辆需要识别车牌号){
@@ -171,7 +240,7 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
break;
case 14://定位成功
locationKey = true;
if (!isFinishing()&&customDialog!=null&&customDialog.isShowing()){
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
tv_loaction.setText("定位成功");
@@ -181,12 +250,21 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
break;
case 16://定位失败
locationKey = false;
if (!isFinishing()&&customDialog!=null&&customDialog.isShowing()){
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
tv_loaction.setText("定位失败,点击重试");
tv_loaction.setTextColor(getResources().getColor(R.color.loaction_no_color, null));
Toast.makeText(con, "定位失败,请确认开启定位后重试!", Toast.LENGTH_LONG).show();
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(con, "定位失败,请确认开启定位后重试!", Toast.LENGTH_LONG).show();
//定位结果接收
//finish();
break;
@@ -211,6 +289,7 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
break;
}
}
private LatLng latLng;
public LatLng convertGPSToBaidu(LatLng srLatLng) {
@@ -249,6 +328,7 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
sobStr = getIntent().getExtras().getString("sob");
//Log.e("---sdwStr--",sdwStr);
sob = new Gson().fromJson(sobStr, StartOrderBean.class);
initView(null);
customDialog = new CustomDialog(con, "正在定位当前位置...");
customDialog.show();
@@ -293,7 +373,9 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
}
submit.setOnClickListener(v -> {
if (imgIds.size() != 0) {
typeRequest();
//判断运单是否已取消
hyr.getWaybillStatus(sob.getData().getWaybillId());
// typeRequest();
} else {
Toast.makeText(con, "请先上传一张图片", Toast.LENGTH_SHORT).show();
}
@@ -339,7 +421,7 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
Log.e("图片地址:", path);
gia.dis();
if (customDialog!=null&&!customDialog.isShowing()){
if (customDialog != null && !customDialog.isShowing()) {
customDialog = new CustomDialog(con, "网络请求中...");
customDialog.show();
}
@@ -358,7 +440,7 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
Log.e("图片地址:", path);
gia.dis();
if (customDialog!=null&&!customDialog.isShowing()){
if (customDialog != null && !customDialog.isShowing()) {
customDialog = new CustomDialog(con, "网络请求中...");
customDialog.show();
}
@@ -376,12 +458,12 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
// 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:
if (customDialog!=null&&!customDialog.isShowing()){
customDialog = new CustomDialog(con, "网络请求中...");
customDialog.show();
}
//装货
if (imgIds != null && imgIds.size() > 0) {
lub.setLatitude(lgdu.getLatitude() + "");
@@ -392,16 +474,48 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
Log.e("--装货信息", gson.toJson(lub));
if (locationKey) {//高德定位
if (keys) {
nfc();
loadInfo();
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();
}
upLocation(lgdu.getLatitude()+"",lgdu.getLongitude()+"",sob.getData().getShippingNoteNumber());
}
@Override
public void onFailure(String s, String s1) {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
ToastUtils.showToast(con, s1);
}
});
// nfc();
// loadInfo();
// up_traffic_start();
// up_image_z();
}
} 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;
@@ -416,16 +530,46 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
Log.e("--卸货信息", gson.toJson(lub));
if (locationKey) {
if (keys) {
nfc();
uploadInfo();
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();
}
upLocation(lgdu.getLatitude()+"",lgdu.getLongitude()+"",sob.getData().getShippingNoteNumber());
}
@Override
public void onFailure(String s, String s1) {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
ToastUtils.showToast(con, s1);
}
});
// nfc();
// uploadInfo();
}
} 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;
@@ -450,9 +594,15 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
}
hyr.receipt(urib);
} 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;
@@ -563,9 +713,10 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
@Override
public void onSuccess() {
if (!isFinishing()&&customDialog!=null&&customDialog.isShowing()){
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
EventBus.getDefault().post(new HomeWaybillEvent());
Log.e("上报安联", "装货照片上传成功");
Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
finish();
@@ -598,9 +749,10 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
@Override
public void onSuccess() {
if (!isFinishing()&&customDialog!=null&&customDialog.isShowing()){
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
EventBus.getDefault().post(new HomeWaybillEvent());
Log.e("上报安联", "卸货照片上传成功");
Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
finish();
@@ -609,6 +761,9 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
@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);
@@ -634,9 +789,11 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
@Override
public void onSuccess() {
if (!isFinishing()&&customDialog!=null&&customDialog.isShowing()){
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();
@@ -684,8 +841,6 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
}
/**
* 上传安联和交通厅,平台-装货
*/
@@ -714,7 +869,7 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(装货):", s + s1);
if (!isFinishing()&&customDialog!=null&&customDialog.isShowing()){
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
new MessageUtils().showCenMessage(con, s1);
@@ -754,7 +909,7 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(卸货):", s + s1);
if (!isFinishing()&&customDialog!=null&&customDialog.isShowing()){
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
new MessageUtils().showCenMessage(con, s1);
@@ -765,4 +920,12 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
}
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);
}
}
@@ -16,6 +16,8 @@ import android.text.style.ClickableSpan;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TextView;
@@ -24,10 +26,14 @@ import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.cardview.widget.CardView;
import com.arpa.hndahesudintocctmsdriver.bean.AppInfoBean;
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.alert.CustomDialog;
import com.arpa.hndahesudintocctmsdriver.weight.OnLimitClickHelper;
import com.dahe.mylibrary.net.CommonResponseBean;
import com.google.gson.Gson;
import com.arpa.hndahesudintocctmsdriver.R;
@@ -71,9 +77,9 @@ public class LoginActivity extends BaseActivity {
private LoginBean loginBean;
private TimerTask tt;
private int timer_sum = 60;
private ImageButton agree_btn;
private CardView no_btn;
private CheckBox cb;
private UserRequset ur;
private CustomDialog customDialog;
@Override
public void msgMethod(Message m) {
@@ -92,23 +98,42 @@ 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) {
SPUtil.insSP(con, USER, USER_TOKEN, loginBean.getData().getToken());
SPUtil.insSP(con, USER, USER_UNAME, loginBean.getData().getUname());
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");
UiAuxiliary.homeRequest("登录成功");
finish();
} else {
appInfoBean.setStatus("1");
appInfoBean.setUserPhone(String.valueOf(input_phone.getText()));
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;
}
@@ -125,8 +150,7 @@ public class LoginActivity extends BaseActivity {
input_phone = findViewById(R.id.input_phone);
input_code = findViewById(R.id.input_code);
getCode = findViewById(R.id.getCode);
agree_btn = findViewById(R.id.agree_btn);
no_btn = findViewById(R.id.no_btn);
cb = findViewById(R.id.cb);
ur = new UserRequset(con, hd);
initView(null);
}
@@ -139,21 +163,18 @@ public class LoginActivity extends BaseActivity {
@Override
public void initView(Object obj) {
super.initView(obj);
agree_btn.setOnClickListener(v -> {
agree_btn.setVisibility(View.GONE);
no_btn.setVisibility(View.VISIBLE);
key = false;
cb.setOnCheckedChangeListener((buttonView, isChecked) -> {
if (isChecked) {
key = true;
} else {
key = false;
}
});
no_btn.setOnClickListener(v -> {
agree_btn.setVisibility(View.VISIBLE);
no_btn.setVisibility(View.GONE);
key = true;
});
ConfigBean cb = ConfigParts.getConfigParts(con);
if (cb != null) {
url1 = cb.getData().getUserUrl();
url2 = "http://agreement.dahehuoyun.com/currency/#/";
url1 = "https://agreement.dahehuoyun.com/#/user";
url2 = "https://agreement.dahehuoyun.com/currency/#/";
}
TextView tv_content = findViewById(R.id.tv_content);
String str = "我已阅读并同意相关服务条款和隐私政策《用户服务协议》和《隐私政策》";
@@ -166,7 +187,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);
@@ -186,7 +207,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);
@@ -221,12 +242,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);
@@ -238,7 +263,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()
@@ -30,10 +30,12 @@ import androidx.core.app.ActivityCompat;
import com.alct.mdp.MDPLocationCollectionManager;
import com.arpa.hndahesudintocctmsdriver.BuildConfig;
import com.arpa.hndahesudintocctmsdriver.bean.AppInfoBean;
import com.arpa.hndahesudintocctmsdriver.bean.ImageConfig;
import com.arpa.hndahesudintocctmsdriver.parts.ConfigParts;
import com.arpa.hndahesudintocctmsdriver.report.JTTProcess;
import com.arpa.hndahesudintocctmsdriver.request.UserRequset;
import com.arpa.hndahesudintocctmsdriver.ui.UiAuxiliary;
import com.arpa.hndahesudintocctmsdriver.ui.business.BusinessActivity;
import com.arpa.hndahesudintocctmsdriver.util.SPUtils;
import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup;
@@ -138,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
}
@@ -159,6 +162,16 @@ public class WelcomeActivity extends BaseAppCompatActivity {
initRequest();
}
}, 1000);
AppInfoBean appInfoBean = new AppInfoBean();
if (!UiAuxiliary.isLogin(con)) {
ur.postAppInfo(appInfoBean, "post");
}else{
String sp = SPUtil.getSP(con, LoginActivity.USER, LoginActivity.USER_UNAME);
appInfoBean.setUserPhone(sp);
appInfoBean.setStatus("0");
ur.postAppInfo(appInfoBean, "post");
}
// String[] permissions=new String[]{
// Manifest.permission.ACCESS_FINE_LOCATION,
@@ -280,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,18 @@ 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.google.gson.Gson;
import com.lxj.xpopup.XPopup;
@@ -93,6 +96,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 +284,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 +305,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);
// }
}
}
@@ -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;
@@ -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,14 +122,14 @@ 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);
});
r6.setOnClickListener(v12 -> {
String[] title={"平台客服:"+kefu,"银行客服:95528","技术咨询:13460042961"};
String[] value={kefu,"95528","13460042961"};
String[] title={"平台客服:"+kefu};
String[] value={kefu};
new XPopup.Builder(con)
.isDarkTheme(false)
.isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个
@@ -13,9 +13,18 @@ import android.widget.Toast;
import androidx.annotation.Nullable;
import com.arpa.hndahesudintocctmsdriver.bean.DriverAuthDataBean;
import com.arpa.hndahesudintocctmsdriver.bean.UploadBean;
import com.arpa.hndahesudintocctmsdriver.request.AuthRequest;
import com.arpa.hndahesudintocctmsdriver.request.UserRequset;
import com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity;
import com.arpa.hndahesudintocctmsdriver.ui.my.WoDeFragment;
import com.arpa.hndahesudintocctmsdriver.util.MessageUtils;
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;
@@ -33,6 +42,8 @@ import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity;
import com.luck.picture.lib.PictureSelector;
import com.luck.picture.lib.config.PictureConfig;
import com.luck.picture.lib.entity.LocalMedia;
import com.lxj.xpopup.XPopup;
import com.lxj.xpopup.util.SmartGlideImageLoader;
import java.io.File;
import java.util.List;
@@ -47,13 +58,17 @@ public class UpBankActivity extends BaseAppCompatActivity implements OnLimitClic
private ImageView up_bank_img;
private EditText bank_name, bank_number;
private TextView submit;
private TextView submit, skip;
private ImageView return_btn;
public GetImageAlert gia = new GetImageAlert();
String path;
private OCRBankBean ib;
DriverAuthDataBean dad;
boolean isAuth = false;
private WalletRequest qr;
private TextView tp;
private String imageId;
@Override
public void msgMethod(Message m) {
@@ -62,19 +77,45 @@ public class UpBankActivity extends BaseAppCompatActivity implements OnLimitClic
case RequsetCodeConstants.SUCCESS:
if (CacheGroup.cacheList.get("OCR_BANK") != null) {
ib = new Gson().fromJson(CacheGroup.cacheList.get("OCR_BANK"), OCRBankBean.class);
if (ib.getCode() == 200) {
customDialog.dismiss();
if (ib.getCode() == 200&&ib.getData()!=null) {
initView(null);
customDialog.dismiss();
WalletFragment.isInsBank = true;
} else {
Toast.makeText(con, ib.getMsg(), Toast.LENGTH_SHORT).show();
Toast.makeText(con, "识别失败", Toast.LENGTH_SHORT).show();
}
CacheGroup.cacheList.remove("OCR_BANK");
}
if (CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA) != null) {
dad = new Gson().fromJson(CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA), DriverAuthDataBean.class);
if (dad.getCode() == 200) {
if (dad.getData() != null && !TextUtils.isEmpty(dad.getData().getCardNo())) {
isAuth = true;
skip.setVisibility(View.GONE);
submit.setBackgroundResource(R.drawable.bg_btn_grey);
bank_name.setText(dad.getData().getBankName());
bank_number.setText(dad.getData().getCardNo());
ImageLoader.getInstance().loadImage(con,dad.getData().getBankImgUrl(),up_bank_img);
}
} else {
Toast.makeText(con, dad.getMsg(), Toast.LENGTH_SHORT).show();
}
CacheGroup.cacheList.remove(WoDeFragment.AUTH_DATA);
}
if (CacheGroup.cacheList.get("insBank") != null) {
if (customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
BaseBean bb = new Gson().fromJson(CacheGroup.cacheList.get("insBank"), BaseBean.class);
if (bb.getCode() == 200) {
customDialog.dismiss();
if (type == 1) {
Intent in = new Intent(con, CertificatesActivity.class);
in.putExtra("index", 1);
startActivity(in);
}
Toast.makeText(con, "绑定成功", Toast.LENGTH_SHORT).show();
finish();
} else {
@@ -82,18 +123,39 @@ public class UpBankActivity extends BaseAppCompatActivity implements OnLimitClic
}
CacheGroup.cacheList.remove("insBank");
}
if (CacheGroup.cacheList.get("upload") != null) {
UploadBean ub = new Gson().fromJson(CacheGroup.cacheList.get("upload"), UploadBean.class);
if (ub.getCode() == 200) {
imageId = ub.getData().getId()+"";
new OCRRequest().ORCBankZj(con, hd, ub.getData().getUrl());
} else {
Toast.makeText(con, ub.getMsg(), Toast.LENGTH_SHORT).show();
}
CacheGroup.cacheList.remove("upload");
}
break;
case ImageFileCompressUtil.COMPRESS_SUCCESS:
customDialog = new CustomDialog(con, "上传识别中...");
customDialog.show();
path = (String) m.obj;
new OCRRequest().ORCBank(con, hd, new File(path));
new AuthRequest().upload(con, hd, new File(path));
// new OCRRequest().ORCBank(con, hd, new File(path));
break;
}
}
private CustomDialog customDialog;
/**
* 1:司机注册自动跳转
* 0:钱包添加银行卡
*/
private int type = 0;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -101,27 +163,47 @@ public class UpBankActivity extends BaseAppCompatActivity implements OnLimitClic
setContentView(R.layout.activity_bank_auth);
act = this;
con = this;
Bundle extras = getIntent().getExtras();
if (extras != null) {
type = getIntent().getExtras().getInt("type");
}
up_bank_img = findViewById(R.id.up_bank_img);
bank_name = findViewById(R.id.bank_name);
bank_number = findViewById(R.id.bank_number);
submit = findViewById(R.id.submit);
skip = findViewById(R.id.skip);
return_btn = findViewById(R.id.return_btn);
qr = new WalletRequest(con, hd);
up_bank_img.setOnClickListener(v -> {
gia.showPopueWindow(this);
if (isAuth) {
new XPopup.Builder(con)
.asImageViewer(up_bank_img, dad.getData().getBankImgUrl(), new SmartGlideImageLoader(R.mipmap.ic_launcher_round))
.show();
} else {
gia.showPopueWindow(this);
}
});
submit.setOnClickListener(new OnLimitClickHelper(this));
skip.setOnClickListener(new OnLimitClickHelper(this));
return_btn.setOnClickListener(v -> {
finish();
});
if (type == 1) {
skip.setVisibility(View.VISIBLE);
} else {
skip.setVisibility(View.GONE);
}
UserRequset ur = new UserRequset(con, hd);
ur.driverAuthData();
}
@Override
public void initView(Object obj) {
super.initView(obj);
bank_name.setText(ib.getData().getBankName());
bank_number.setText(ib.getData().getBankCardNumber());
Glide.with(con).load(ib.getData().getUrl()).into(up_bank_img);
bank_number.setText(ib.getData().getCardNumber());
ImageLoader.getInstance().loadImage(con,path,up_bank_img);
}
@Override
@@ -160,10 +242,11 @@ public class UpBankActivity extends BaseAppCompatActivity implements OnLimitClic
}
InsBankInputBean ibib = new InsBankInputBean();
ibib.setCardNo(bankNumber);
ibib.setCardType(Integer.parseInt(ib.getData().getBankCardType()));
// ibib.setCardType(Integer.parseInt(ib.getData().getType()));
ibib.setCardType(1);
ibib.setBankName(bankName);
ibib.setCardUserType(1);
ibib.setImageId(ib.getData().getId());
ibib.setImageId(Integer.parseInt(imageId));
Log.e("-res-", new Gson().toJson(ibib));
qr.insBankCard(ibib);
}
@@ -172,12 +255,26 @@ public class UpBankActivity extends BaseAppCompatActivity implements OnLimitClic
public void onClick(View view) {
switch (view.getId()) {
case R.id.submit:
if (isAuth) {
Intent in = new Intent(con, CertificatesActivity.class);
in.putExtra("index", 1);
startActivity(in);
finish();
return;
}
if (ib != null) {
submit();
} else {
Toast.makeText(con, "请先上传图片", Toast.LENGTH_SHORT).show();
}
break;
case R.id.skip:
new MessageUtils().showSimCenPop(con, "确定跳过银行卡?,可能会导致运费无法结算!", "取消", "确认", () -> {
Intent in = new Intent(con, CertificatesActivity.class);
in.putExtra("index", 1);
startActivity(in);
});
break;
}
}
}
@@ -15,6 +15,8 @@ import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.arpa.hndahesudintocctmsdriver.event.VehicleEvent;
import com.arpa.hndahesudintocctmsdriver.event.WalletEvent;
import com.arpa.hndahesudintocctmsdriver.parts.UserParts;
import com.google.gson.Gson;
import com.lxj.xpopup.XPopup;
@@ -32,6 +34,8 @@ import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseFragment;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.jetbrains.annotations.NotNull;
@@ -123,6 +127,7 @@ public class WalletFragment extends BaseFragment{
@Override
public View onCreateView(@NonNull @NotNull LayoutInflater inflater, @Nullable @org.jetbrains.annotations.Nullable ViewGroup container, @Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) {
root=inflater.inflate(R.layout.fragmengt_qianbao,container,false);
EventBus.getDefault().register(this);
dataName2="bcb";
con=root.getContext();
rv=root.findViewById(R.id.rv);
@@ -231,6 +236,7 @@ public class WalletFragment extends BaseFragment{
bank_remove.setVisibility(View.VISIBLE);
} else{
bank_number.setVisibility(View.GONE);
bank_title_1.setText("未添加银行卡");
bank_add.setVisibility(View.VISIBLE);
bank_remove.setVisibility(View.GONE);
}
@@ -316,5 +322,14 @@ public class WalletFragment extends BaseFragment{
// .show();
// }
@Subscribe
public void processResult(WalletEvent event) {
Log.e("-msg-", event.getMessage());
refreshLayout.autoRefresh();
}
@Override
public void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
}
}
@@ -5,9 +5,12 @@ 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;
@@ -81,6 +84,11 @@ public class WebActivity extends BaseActivity {
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资源
@@ -111,6 +119,12 @@ public class WebActivity extends BaseActivity {
wv.loadUrl(url);
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);
@@ -149,6 +163,12 @@ public class WebActivity extends BaseActivity {
view.loadUrl(url);
return true;
}
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
super.onReceivedSslError(view, handler, error);
handler.proceed();
}
});
}
@@ -183,7 +203,8 @@ public class WebActivity extends BaseActivity {
@JavascriptInterface
public String getUserToken(){
Log.e("-token-",UserParts.getUser(con).getData().getToken());
// Log.e("-token-",UserParts.getUser(con).getData().getToken());
// return "woshitoken-androidfasdf";
return UserParts.getUser(con).getData().getToken();
}
@@ -191,7 +212,11 @@ public class WebActivity extends BaseActivity {
public void isSuccess(){
finish();
}
@JavascriptInterface
public void isPdfSuccess(){
Toast.makeText(con, "签署成功", Toast.LENGTH_SHORT).show();
finish();
}
}
@@ -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();
}
}
}
@@ -1,240 +0,0 @@
package com.arpa.hndahesudintocctmsdriver.util;
import com.arpa.hndahesudintocctmsdriver.FileUtils;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
/**
* @ClassName FileIOUtils
* @Author john
* @Date 2024/3/29 09:50
* @Description TODO
*/
public class FileIOUtils {
private FileIOUtils() {
throw new UnsupportedOperationException("u can't instantiate me...");
}
private static final String LINE_SEP = System.getProperty("line.separator");
/**
* 将输入流写入文件
*
* @param filePath 路径
* @param is 输入流
* @return {@code true}: 写入成功<br>{@code false}: 写入失败
*/
public static boolean writeFileFromIS(String filePath, final InputStream is) {
return writeFileFromIS(FileUtils.getFileByPath(filePath), is, false);
}
/**
* 将输入流写入文件
*
* @param filePath 路径
* @param is 输入流
* @param append 是否追加在文件末
* @return {@code true}: 写入成功<br>{@code false}: 写入失败
*/
public static boolean writeFileFromIS(String filePath, final InputStream is, boolean append) {
return writeFileFromIS(FileUtils.getFileByPath(filePath), is, append);
}
/**
* 将输入流写入文件
*
* @param file 文件
* @param is 输入流
* @return {@code true}: 写入成功<br>{@code false}: 写入失败
*/
public static boolean writeFileFromIS(File file, final InputStream is) {
return writeFileFromIS(file, is, false);
}
/**
* 将输入流写入文件
*
* @param file 文件
* @param is 输入流
* @param append 是否追加在文件末
* @return {@code true}: 写入成功<br>{@code false}: 写入失败
*/
public static boolean writeFileFromIS(File file, final InputStream is, boolean append) {
if (!FileUtils.createOrExistsFile(file) || is == null) return false;
OutputStream os = null;
try {
os = new BufferedOutputStream(new FileOutputStream(file, append));
byte data[] = new byte[1024];
int len;
while ((len = is.read(data, 0, 1024)) != -1) {
os.write(data, 0, len);
}
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
} finally {
try {
is.close();
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 将字符串写入文件
*
* @param filePath 文件路径
* @param content 写入内容
* @return {@code true}: 写入成功<br>{@code false}: 写入失败
*/
public static boolean writeFileFromString(String filePath, String content) {
return writeFileFromString(FileUtils.getFileByPath(filePath), content, false);
}
/**
* 将字符串写入文件
*
* @param filePath 文件路径
* @param content 写入内容
* @param append 是否追加在文件末
* @return {@code true}: 写入成功<br>{@code false}: 写入失败
*/
public static boolean writeFileFromString(String filePath, String content, boolean append) {
return writeFileFromString(FileUtils.getFileByPath(filePath), content, append);
}
/**
* 将字符串写入文件
*
* @param file 文件
* @param content 写入内容
* @return {@code true}: 写入成功<br>{@code false}: 写入失败
*/
public static boolean writeFileFromString(File file, String content) {
return writeFileFromString(file, content, false);
}
/**
* 将字符串写入文件
*
* @param file 文件
* @param content 写入内容
* @param append 是否追加在文件末
* @return {@code true}: 写入成功<br>{@code false}: 写入失败
*/
public static boolean writeFileFromString(File file, String content, boolean append) {
if (file == null || content == null) return false;
if (!FileUtils.createOrExistsFile(file)) return false;
BufferedWriter bw = null;
try {
bw = new BufferedWriter(new FileWriter(file, append));
bw.write(content);
bw.newLine();
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
} finally {
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 读取文件到字符串中
*
* @param filePath 文件路径
* @return 字符串
*/
public static String readFile2String(String filePath) {
return readFile2String(FileUtils.getFileByPath(filePath), null);
}
/**
* 读取文件到字符串中
*
* @param filePath 文件路径
* @param charsetName 编码格式
* @return 字符串
*/
public static String readFile2String(String filePath, String charsetName) {
return readFile2String(FileUtils.getFileByPath(filePath), charsetName);
}
/**
* 读取文件到字符串中
*
* @param file 文件
* @return 字符串
*/
public static String readFile2String(File file) {
return readFile2String(file, null);
}
/**
* 读取文件到字符串中
*
* @param file 文件
* @param charsetName 编码格式
* @return 字符串
*/
public static String readFile2String(File file, String charsetName) {
if (!FileUtils.isFileExists(file)) return null;
BufferedReader reader = null;
try {
StringBuilder sb = new StringBuilder();
if (isSpace(charsetName)) {
reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
} else {
reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), charsetName));
}
String line;
while ((line = reader.readLine()) != null) {
sb.append(line).append(LINE_SEP);
}
// delete the last line separator
return sb.delete(sb.length() - LINE_SEP.length(), sb.length()).toString();
} catch (IOException e) {
e.printStackTrace();
return null;
} finally {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
private static boolean isSpace(String s) {
if (s == null) return true;
for (int i = 0, len = s.length(); i < len; ++i) {
if (!Character.isWhitespace(s.charAt(i))) {
return false;
}
}
return true;
}
}
@@ -27,7 +27,8 @@ class MessageUtils {
XPopup.Builder(ctx) //
.hasNavigationBar(false)
.isDestroyOnDismiss(true) //对于只使用一次的弹窗对象,推荐设置这个
.asCustom(MessagePop(ctx, message).setOnMyItemClickListener(object : MessagePop.OnMyItemClickListener{
.asCustom(MessagePop(ctx, message).setOnMyItemClickListener(object :
MessagePop.OnMyItemClickListener {
override fun onItemClick(startTime: String, endTime: String) {
}
}))
@@ -38,14 +39,20 @@ class MessageUtils {
XPopup.Builder(ctx) //
.hasNavigationBar(false)
.isDestroyOnDismiss(true) //对于只使用一次的弹窗对象,推荐设置这个
.asCustom(MessagePop(ctx, message,message2).setOnMyItemClickListener(object : MessagePop.OnMyItemClickListener{
.asCustom(MessagePop(ctx, message, message2).setOnMyItemClickListener(object :
MessagePop.OnMyItemClickListener {
override fun onItemClick(startTime: String, endTime: String) {
}
}))
.show()
}
fun showSimCenPop(ctx: Context, message: String,onMyItemClickListener: SimCenterPop.OnMyItemClickListener){
fun showSimCenPop(
ctx: Context,
message: String,
titleRight:String = "去注册",
onMyItemClickListener: SimCenterPop.OnMyItemClickListener
) {
// XPopup.Builder(ctx) //
// .hasNavigationBar(false)
@@ -62,7 +69,36 @@ class MessageUtils {
XPopup.Builder(ctx) //
.hasNavigationBar(false)
.isDestroyOnDismiss(true) //对于只使用一次的弹窗对象,推荐设置这个
.asCustom(SimCenterPop(ctx,message).setOnMyItemClickListener(onMyItemClickListener))
.asCustom(SimCenterPop(ctx, message, titleRight = titleRight).setOnMyItemClickListener(onMyItemClickListener))
.show()
}
fun showSimCenPop(
ctx: Context,
message: String,
left: String,
right: String,
onMyItemClickListener: SimCenterPop.OnMyItemClickListener
) {
// XPopup.Builder(ctx) //
// .hasNavigationBar(false)
// .isDestroyOnDismiss(true) //对于只使用一次的弹窗对象,推荐设置这个
// .asCustom(SimCenterPop(ctx,message).setOnMyItemClickListener(object : SimCenterPop.OnMyItemClickListener{
// override fun onItemClick() {
// val intent = Intent(ctx, CertificatesActivity::class.java)
// intent.putExtra("index", type)
// ctx.startActivity(intent)
// }
// }))
// .show()
XPopup.Builder(ctx) //
.hasNavigationBar(false)
.isDestroyOnDismiss(true) //对于只使用一次的弹窗对象,推荐设置这个
.dismissOnTouchOutside(false)
.asCustom(SimCenterPop(ctx, message,left,right).setOnMyItemClickListener(onMyItemClickListener))
.show()
}
@@ -0,0 +1,76 @@
package com.arpa.hndahesudintocctmsdriver.util;
import android.content.Context;
import android.text.TextUtils;
import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil;
import com.dahe.mylibrary.utils.TimeUtil;
import com.dahe.mylibrary.utils.ToastUtils;
import java.text.SimpleDateFormat;
import java.util.Locale;
/**
* @ClassName OneDayShowUtils
* @Author john
* @Date 2024/9/11 15:33
* @Description TODO
*/
public class OneDayShowUtils {
private static class SingletonHolder {
private static final OneDayShowUtils INSTANCE = new OneDayShowUtils();
}
private OneDayShowUtils() {
}
public static final OneDayShowUtils getInstance() {
return OneDayShowUtils.SingletonHolder.INSTANCE;
}
/**
*
* @param ctx
* @return true:当天已弹出 false:当天未弹出
*/
public boolean todayIsShow(Context ctx) {
String preday = (String) SPUtils.get(ctx, "PREDAY", "");
if (TextUtils.isEmpty(preday)) {
String nowString = TimeUtil.getNowString("yyyy-MM-dd");
SPUtils.put(ctx, "PREDAY", nowString);
return false;
} else {
boolean today = TimeUtil.isToday(preday, new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()));
if (!today) {
String nowString = TimeUtil.getNowString("yyyy-MM-dd");
SPUtils.put(ctx, "PREDAY", nowString);
}
return today;
}
}
/**
*
* @param ctx
* @return true:当天已弹出 false:当天未弹出
*/
public boolean todayIsShowQx(Context ctx) {
String preday = (String) SPUtils.get(ctx, "permission", "");
if (TextUtils.isEmpty(preday)) {
String nowString = TimeUtil.getNowString("yyyy-MM-dd");
SPUtils.put(ctx, "permission", nowString);
return false;
} else {
boolean today = TimeUtil.isToday(preday, new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()));
if (!today) {
String nowString = TimeUtil.getNowString("yyyy-MM-dd");
SPUtils.put(ctx, "permission", nowString);
}
return today;
}
}
}
@@ -0,0 +1,137 @@
package com.arpa.hndahesudintocctmsdriver.util
import android.app.Activity
import android.content.Context
import androidx.annotation.NonNull
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.FragmentActivity
import com.arpa.hndahesudintocctmsdriver.cuspop.MessagePop
import com.arpa.hndahesudintocctmsdriver.cuspop.MyRequestCallback
import com.arpa.hndahesudintocctmsdriver.cuspop.TopMsgPopup
import com.arpa.hndahesudintocctmsdriver.cuspop.SimCenterPop
import com.lxj.xpopup.XPopup
import com.lxj.xpopup.core.BasePopupView
import com.permissionx.guolindev.PermissionX
import com.permissionx.guolindev.callback.RequestCallback
/**
* @ClassName MessageUtils
* @Author 用户
* @Date 2023/8/15 09:51
* @Description TODO
*/
class PermissionUtils {
companion object {
fun getInstance() = InstanceHelper.sSingle
}
object InstanceHelper {
val sSingle = PermissionUtils()
}
/**
* 显示权限申请
* @param activity AppCompatActivity
* @param message String
* @param permission List<String>
* @param callback RequestCallback
* @return BasePopupView?
*/
fun showPermissionMessage(activity: FragmentActivity,title:String, message: String,vararg permission:String,callback: MyRequestCallback){
val show = XPopup.Builder(activity)
.hasShadowBg(false)
.hasBlurBg(false)
.isTouchThrough(true)
.isCenterHorizontal(true)
.offsetY(140)
.asCustom(
TopMsgPopup(
activity,
title,
message
)
)
.show()
PermissionX.init(activity)
.permissions(listOf(*permission))
.request { allGranted, grantedList, deniedList ->
show.dismiss()
if (callback!=null){
callback.onResult(allGranted,grantedList,deniedList)
}
}
}
fun showCenMessage(ctx: Context, message: String, message2: String) {
XPopup.Builder(ctx) //
.hasNavigationBar(false)
.isDestroyOnDismiss(true) //对于只使用一次的弹窗对象,推荐设置这个
.asCustom(MessagePop(ctx, message, message2).setOnMyItemClickListener(object :
MessagePop.OnMyItemClickListener {
override fun onItemClick(startTime: String, endTime: String) {
}
}))
.show()
}
fun showSimCenPop(
ctx: Context,
message: String,
onMyItemClickListener: SimCenterPop.OnMyItemClickListener
) {
// XPopup.Builder(ctx) //
// .hasNavigationBar(false)
// .isDestroyOnDismiss(true) //对于只使用一次的弹窗对象,推荐设置这个
// .asCustom(SimCenterPop(ctx,message).setOnMyItemClickListener(object : SimCenterPop.OnMyItemClickListener{
// override fun onItemClick() {
// val intent = Intent(ctx, CertificatesActivity::class.java)
// intent.putExtra("index", type)
// ctx.startActivity(intent)
// }
// }))
// .show()
XPopup.Builder(ctx) //
.hasNavigationBar(false)
.isDestroyOnDismiss(true) //对于只使用一次的弹窗对象,推荐设置这个
.asCustom(SimCenterPop(ctx, message).setOnMyItemClickListener(onMyItemClickListener))
.show()
}
fun showSimCenPop(
ctx: Context,
message: String,
left: String,
right: String,
onMyItemClickListener: SimCenterPop.OnMyItemClickListener
) {
// XPopup.Builder(ctx) //
// .hasNavigationBar(false)
// .isDestroyOnDismiss(true) //对于只使用一次的弹窗对象,推荐设置这个
// .asCustom(SimCenterPop(ctx,message).setOnMyItemClickListener(object : SimCenterPop.OnMyItemClickListener{
// override fun onItemClick() {
// val intent = Intent(ctx, CertificatesActivity::class.java)
// intent.putExtra("index", type)
// ctx.startActivity(intent)
// }
// }))
// .show()
XPopup.Builder(ctx) //
.hasNavigationBar(false)
.isDestroyOnDismiss(true) //对于只使用一次的弹窗对象,推荐设置这个
.asCustom(
SimCenterPop(ctx, message, left, right).setOnMyItemClickListener(
onMyItemClickListener
)
)
.show()
}
}
@@ -81,6 +81,39 @@ public class OkHttpUtil {
return request;
}
public static Request put(OkDate od, Context con){
MediaType mediaType = MediaType.parse("application/json");
if(od.getMadiaType()!=null && od.getMadiaType().equals("")){
od.setMadiaType("{}");
}
// JSONObject jsonObject = JSON.parseObject(od.getMadiaType());
// jsonObject.put("timestamp", DateUtil.current());
// jsonObject.put("deviceId", GetUtil.getDeviceId(con));
// String sign = SecureUtil.signParamsSha1(jsonObject,SIGN_PASSWORD);
// Log.e("jsonObject",jsonObject.toString());
// Log.e("sign",sign);
// Map<String,Object> map=new HashMap<>();
// map.put("data",SecurityUtil.encrypt(jsonObject.toString()));
// Log.e("参数1",od.getMadiaType());
// Log.e("参数2",MapUtil.mapJson(map));
//MapUtil.mapJson(map)
RequestBody body = RequestBody.create(mediaType,od.getMadiaType());
Headers.Builder hb=new Headers.Builder();
hb.add("Content-Type","application/json");
hb.add("Cache-Control","no-cache");
Request request = new Request.Builder()
.url(od.getUrl())
.put(body)
.headers(hb.build())
.addHeader("Version", VersionUtil.getVersion(con))
.addHeader("VersionCode",String.valueOf(AppUtils.getAppVersionCode()))
//.addHeader("sign",sign)
.removeHeader("User-Agent")
.addHeader("User-Agent",GetUtil.getUserAgent(con))
.build();
return request;
}
public static Request get(OkDate od){
Headers.Builder hb=new Headers.Builder();
hb.add("Content-Type","application/json");
@@ -1,6 +1,11 @@
package com.arpa.hndahesudintocctmsdriver.util.img;
import static com.sdk.base.framework.utils.app.AppUtils.getPackageName;
import android.Manifest;
import android.content.Intent;
import android.net.Uri;
import android.provider.Settings;
import android.view.Gravity;
import android.view.View;
import android.view.WindowManager;
@@ -13,6 +18,7 @@ import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.arpa.hndahesudintocctmsdriver.R;
import com.arpa.hndahesudintocctmsdriver.util.MessageUtils;
import com.arpa.hndahesudintocctmsdriver.util.PicturlUtil;
import com.permissionx.guolindev.PermissionX;
@@ -56,12 +62,17 @@ public class GetCarImageAlert {
}
btn_xiangce.setOnClickListener(v -> {
PermissionX.init(act)
.permissions(Manifest.permission.READ_EXTERNAL_STORAGE)
.permissions(Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE)
.request((allGranted, grantedList, deniedList) -> {
if (allGranted) {
PicturlUtil.selectPicter(act, new ArrayList<>(), 1);
} else {
Toast.makeText(act.getBaseContext(), "开启权限失败,请手动开启权限", Toast.LENGTH_LONG).show();
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);
});
}
});
});
@@ -74,7 +85,12 @@ public class GetCarImageAlert {
// file=ImageGetUtil.createImageFile(act);
// ImageGetUtil.cameraAlbumGetImage(act,file);
} else {
Toast.makeText(act.getBaseContext(), "开启权限失败,请手动开启权限", Toast.LENGTH_LONG).show();
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);
});
}
});
});
@@ -86,7 +102,12 @@ public class GetCarImageAlert {
if (allGranted) {
openCam(act);
} else {
Toast.makeText(act.getBaseContext(), "开启权限失败,请手动开启权限", Toast.LENGTH_LONG).show();
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);
});
}
});
}
@@ -1,6 +1,11 @@
package com.arpa.hndahesudintocctmsdriver.util.img;
import static com.sdk.base.framework.utils.app.AppUtils.getPackageName;
import android.Manifest;
import android.content.Intent;
import android.net.Uri;
import android.provider.Settings;
import android.view.Gravity;
import android.view.View;
import android.view.WindowManager;
@@ -10,6 +15,7 @@ import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.arpa.hndahesudintocctmsdriver.util.MessageUtils;
import com.arpa.hndahesudintocctmsdriver.util.PicturlUtil;
import com.arpa.hndahesudintocctmsdriver.R;
import com.permissionx.guolindev.PermissionX;
@@ -45,25 +51,37 @@ public class GetImageAlert {
btn_xiangce.setOnClickListener(v -> {
PermissionX.init(act)
.permissions(Manifest.permission.READ_EXTERNAL_STORAGE)
.permissions(Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.CAMERA)
.request((allGranted, grantedList, deniedList) -> {
if (allGranted) {
PicturlUtil.selectPicter(act, new ArrayList<>(), 1);
} else {
Toast.makeText(act.getBaseContext(), "开启权限失败,请手动开启权限", Toast.LENGTH_LONG).show();
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);
});
// Toast.makeText(act.getBaseContext(), "开启权限失败,请手动开启权限", Toast.LENGTH_LONG).show();
}
});
});
btn_paizhao.setOnClickListener(v -> {
PermissionX.init(act)
.permissions(Manifest.permission.CAMERA)
.permissions(Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.CAMERA)
.request((allGranted, grantedList, deniedList) -> {
if (allGranted) {
file = ImageGetUtil.createImageFile(act);
ImageGetUtil.cameraAlbumGetImage(act, file);
} else {
Toast.makeText(act.getBaseContext(), "开启权限失败,请手动开启权限", Toast.LENGTH_LONG).show();
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);
});
// Toast.makeText(act.getBaseContext(), "开启权限失败,请手动开启权限", Toast.LENGTH_LONG).show();
}
});
});
@@ -8,9 +8,7 @@ import com.amap.api.location.AMapLocation;
import com.amap.api.location.AMapLocationClient;
import com.amap.api.location.AMapLocationClientOption;
import com.amap.api.location.AMapLocationListener;
import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup;
import com.arpa.hndahesudintocctmsdriver.util.msg.MsgUtil;
import com.google.gson.Gson;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -76,7 +74,6 @@ public class LocationGDUtil {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date(aMapLocation.getTime());
df.format(date);
CacheGroup.cacheList.put("getLocation",new Gson().toJson(aMapLocation));
MsgUtil.addHdMsgWat(hd,RES);
if (mLocationClient!=null) {
mLocationClient.onDestroy();
@@ -0,0 +1,101 @@
package com.arpa.hndahesudintocctmsdriver.util.location;
import static com.arpa.hndahesudintocctmsdriver.util.location.LocationGDUtil.RES;
import android.Manifest;
import android.content.Context;
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.os.Handler;
import androidx.annotation.NonNull;
import androidx.core.app.ActivityCompat;
import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup;
import com.arpa.hndahesudintocctmsdriver.util.msg.MsgUtil;
import com.dahe.mylibrary.utils.ToastUtils;
import com.google.gson.Gson;
import java.util.List;
import java.util.Locale;
/**
* @ClassName LocationManagerUtil
* @Author john
* @Date 2024/7/25 15:21
* @Description LocationManager本地定位
*/
public class LocationManagerUtil {
public static LocationManagerUtil mInstance = null;
public static LocationManagerUtil getInstance() {
if (null == mInstance) {
synchronized (LocationManagerUtil.class) {
if (null == mInstance) {
mInstance = new LocationManagerUtil();
}
}
}
return mInstance;
}
private LocationManagerUtil() {
}
public void getLocation(Context ctx, Handler hd) {
LocationManager locationManager = (LocationManager) ctx.getSystemService(Context.LOCATION_SERVICE);
//创建定位条件器
Criteria criteria = new Criteria();
//设置精度Criteria.ACCURACY_FINE表示精确Criteria.ACCURACY_COARSE表示粗略
criteria.setAccuracy(Criteria.ACCURACY_FINE);
//设置是否需要海拔信息
criteria.setAltitudeRequired(true);
//设置是否需要方位信息
criteria.setBearingRequired(true);
//设置是否允许运营商扣费
criteria.setCostAllowed(true);
//设置对电源的需求
criteria.setPowerRequirement(Criteria.POWER_LOW);
String bestProvider = locationManager.getBestProvider(criteria, true);
if (bestProvider != null) {
if (ActivityCompat.checkSelfPermission(ctx, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(ctx, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ToastUtils.showToast(ctx, "请查看定位权限");
return;
}
locationManager.requestLocationUpdates(bestProvider, 300, 0, new LocationListener() {
@Override
public void onLocationChanged(@NonNull Location location) {
try {
Geocoder geocoder = new Geocoder(ctx, Locale.getDefault());
List<Address> fromLocation = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
if (fromLocation != null && !fromLocation.isEmpty()) {
Address address = fromLocation.get(0);
String addressLine = address.getAddressLine(0);
String adminArea = address.getAdminArea();//
String locality = address.getLocality();//
String subLocality = address.getSubLocality();//
String featureName = address.getFeatureName();//详细地址
CacheGroup.cacheList.put("getLocation", new Gson().toJson(address));
MsgUtil.addHdMsgWat(hd, RES);
locationManager.removeUpdates(this);
}
} catch (Exception e) {
}
}
});
} else {
ToastUtils.showToast(ctx, "定位失败,请查看定位权限");
}
}
}
@@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 788 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 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>
+5
View File
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<corners android:radius="@dimen/dp_10"/>
<solid android:color="#fff"/>
</shape>
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/icon_eye_open" android:state_checked="true"></item>
<item android:drawable="@drawable/icon_eye_close" android:state_checked="false"></item>
<item android:drawable="@drawable/icon_eye_close"></item>
</selector>
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/read_select" android:state_checked="true"></item>
<item android:drawable="@drawable/read_nor" android:state_checked="false"></item>
<item android:drawable="@drawable/read_nor"></item>
</selector>
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/red" />
<corners
android:radius="@dimen/dp_14" />
</shape>
+130 -72
View File
@@ -5,34 +5,50 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@drawable/bg_theme"
android:id="@+id/activity_bank_auth">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:layout_marginTop="@dimen/dp_58"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_58">
<ImageView
android:id="@+id/return_btn"
android:layout_marginLeft="@dimen/dp_20"
android:layout_width="@dimen/dp_40"
android:layout_height="@dimen/dp_31"
android:src="@mipmap/return_lefts"
android:layout_marginLeft="@dimen/dp_20"
android:padding="@dimen/dp_10"
android:scaleType="fitXY"/>
<TextView
android:layout_marginTop="@dimen/dp_10"
android:id="@+id/submit"
android:layout_marginRight="@dimen/dp_30"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="提交"
android:textColor="@color/theme_color"
android:textSize="@dimen/sp_15"
/>
android:scaleType="fitXY"
android:src="@mipmap/return_lefts" />
<!-- <TextView-->
<!-- android:id="@+id/skip"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginTop="@dimen/dp_10"-->
<!-- android:layout_marginRight="@dimen/dp_30"-->
<!-- android:layout_toLeftOf="@+id/submit"-->
<!-- android:text="跳过"-->
<!-- android:textColor="@color/theme_color"-->
<!-- android:textSize="@dimen/sp_15"-->
<!-- android:visibility="gone" />-->
<!-- <TextView-->
<!-- android:id="@+id/submit"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_alignParentRight="true"-->
<!-- android:layout_marginTop="@dimen/dp_10"-->
<!-- android:layout_marginRight="@dimen/dp_30"-->
<!-- android:text="提交"-->
<!-- android:textColor="@color/theme_color"-->
<!-- android:textSize="@dimen/sp_15" />-->
</RelativeLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -41,47 +57,52 @@
android:text="银行卡信息"
android:textColor="#ff000000"
android:textSize="@dimen/sp_23" />
<TextView
android:layout_marginLeft="@dimen/dp_38"
android:layout_marginTop="@dimen/dp_20"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/red"
android:layout_marginLeft="@dimen/dp_38"
android:layout_marginTop="@dimen/dp_20"
android:text="*注意: 请添加本人银行卡, 否则无法提现成功"
></TextView>
android:textColor="@color/red"></TextView>
<androidx.cardview.widget.CardView
android:layout_marginTop="@dimen/dp_20"
android:layout_marginLeft="@dimen/dp_38"
android:layout_marginRight="@dimen/dp_38"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_163"
android:layout_marginLeft="@dimen/dp_38"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginRight="@dimen/dp_38"
app:cardCornerRadius="@dimen/dp_10">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:id="@+id/up_bank_img"
android:src="@mipmap/bank_img"
android:layout_width="@dimen/dp_249"
android:layout_height="@dimen/dp_138"
android:scaleType="fitXY"/>
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:scaleType="fitXY"
android:src="@mipmap/bank_img" />
<TextView
android:layout_marginBottom="@dimen/dp_21"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="点击上传银行卡正面照"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"/>
android:layout_marginBottom="@dimen/dp_21"
android:text="点击上传银行卡正面照" />
</RelativeLayout>
</androidx.cardview.widget.CardView>
<LinearLayout
android:layout_marginTop="@dimen/dp_15"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_15"
android:orientation="horizontal">
<TextView
android:id="@+id/zj_name2"
android:layout_width="wrap_content"
@@ -92,85 +113,122 @@
android:textColor="#ffc4c4ce"
android:textSize="@dimen/sp_13" />
</LinearLayout>
<LinearLayout
android:layout_marginTop="@dimen/dp_13"
android:layout_marginLeft="@dimen/dp_38"
android:layout_marginRight="@dimen/dp_38"
android:padding="@dimen/dp_14"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginLeft="@dimen/dp_38"
android:layout_marginTop="@dimen/dp_13"
android:layout_marginRight="@dimen/dp_38"
android:background="@drawable/bg_bai"
android:elevation="@dimen/dp_1">
<com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView
android:id="@+id/brv"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
android:elevation="@dimen/dp_1"
android:orientation="vertical"
android:padding="@dimen/dp_14">
<!-- <com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView-->
<!-- android:id="@+id/brv"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content" />-->
<LinearLayout
android:layout_marginBottom="@dimen/dp_10"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_10"
android:orientation="horizontal">
<TextView
android:paddingTop="@dimen/dp_10"
android:paddingBottom="@dimen/dp_10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="银行名称"
android:textColor="#ffc4c4ce"
android:textSize="@dimen/sp_13"
/>
<EditText
android:paddingTop="@dimen/dp_10"
android:paddingBottom="@dimen/dp_10"
android:text="银行名称"
android:textColor="#ffc4c4ce"
android:textSize="@dimen/sp_13" />
<EditText
android:id="@+id/bank_name"
android:layout_alignParentRight="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#ff000000"
android:textSize="@dimen/sp_13"
android:maxLines="1"
android:ellipsize="end"
android:inputType="text"
android:layout_alignParentRight="true"
android:layout_marginLeft="@dimen/dp_30"
android:background="@null"
/>
android:ellipsize="end"
android:inputType="text"
android:maxLines="1"
android:paddingTop="@dimen/dp_10"
android:paddingBottom="@dimen/dp_10"
android:textColor="#ff000000"
android:textSize="@dimen/sp_13" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_1"
android:background="@drawable/bottom_xu"/>
android:background="@drawable/bottom_xu" />
<LinearLayout
android:layout_marginTop="@dimen/dp_10"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
android:orientation="horizontal">
<TextView
android:paddingTop="@dimen/dp_10"
android:paddingBottom="@dimen/dp_10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="银行卡号"
android:textColor="#ffc4c4ce"
android:textSize="@dimen/sp_13"
/>
<EditText
android:paddingTop="@dimen/dp_10"
android:paddingBottom="@dimen/dp_10"
android:text="银行卡号"
android:textColor="#ffc4c4ce"
android:textSize="@dimen/sp_13" />
<EditText
android:id="@+id/bank_number"
android:layout_alignParentRight="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#ff000000"
android:textSize="@dimen/sp_13"
android:inputType="number"
android:maxLines="1"
android:ellipsize="end"
android:layout_alignParentRight="true"
android:layout_marginLeft="@dimen/dp_30"
android:background="@null"
/>
android:ellipsize="end"
android:inputType="number"
android:maxLines="1"
android:paddingTop="@dimen/dp_10"
android:paddingBottom="@dimen/dp_10"
android:textColor="#ff000000"
android:textSize="@dimen/sp_13" />
</LinearLayout>
</LinearLayout>
<View
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
<Button
android:id="@+id/skip"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_42"
android:layout_marginLeft="@dimen/dp_38"
android:layout_marginRight="@dimen/dp_38"
android:background="@drawable/bg_btn_grey"
android:text="跳过"
android:textColor="#fff"
android:textSize="@dimen/sp_15" />
<Button
android:id="@+id/submit"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_42"
android:layout_marginLeft="@dimen/dp_38"
android:layout_marginTop="@dimen/dp_22"
android:layout_marginRight="@dimen/dp_38"
android:layout_marginBottom="@dimen/dp_50"
android:background="@drawable/bg_btn_green"
android:text="下一步"
android:textColor="#fff"
android:textSize="@dimen/sp_15" />
</LinearLayout>
</RelativeLayout>
@@ -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>
+11 -29
View File
@@ -47,6 +47,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入手机号码"
android:inputType="phone"
android:textColor="#ff000000"
android:textSize="@dimen/sp_14"
android:maxLength="11"
@@ -65,6 +66,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:inputType="number"
android:id="@+id/input_code"
android:paddingTop="@dimen/dp_12"
android:paddingBottom="@dimen/dp_12"
@@ -104,35 +106,15 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<androidx.cardview.widget.CardView
android:padding="@dimen/dp_7"
android:layout_marginTop="@dimen/dp_2"
android:layout_width="@dimen/dp_14"
android:layout_height="@dimen/dp_14"
app:cardCornerRadius="@dimen/dp_7"
app:cardBackgroundColor="@color/theme_color"
app:cardElevation="@dimen/dp_0">
<androidx.cardview.widget.CardView
android:padding="@dimen/dp_7"
android:id="@+id/no_btn"
android:layout_width="@dimen/dp_12"
android:layout_height="@dimen/dp_12"
app:cardCornerRadius="@dimen/dp_6"
app:cardBackgroundColor="#fff"
android:layout_gravity="center"
app:cardElevation="@dimen/dp_0">
</androidx.cardview.widget.CardView>
<ImageButton
android:id="@+id/agree_btn"
android:layout_width="@dimen/dp_14"
android:layout_height="@dimen/dp_14"
android:src="@mipmap/choice"
android:scaleType="fitXY"
android:background="#fff"
android:layout_gravity="center"
android:visibility="gone"
/>
</androidx.cardview.widget.CardView>
<CheckBox
android:layout_marginTop="@dimen/dp_3"
android:id="@+id/cb"
android:layout_width="@dimen/dp_28"
android:layout_height="@dimen/dp_34"
android:button="@null"
android:checked="false"
android:drawableStart="@drawable/select_read"/>
<TextView
android:id="@+id/tv_content"
android:layout_width="wrap_content"
+147 -91
View File
@@ -1,47 +1,54 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/huoyuan_xq"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:id="@+id/huoyuan_xq"
android:background="#fff">
android:background="#fff"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/theme_color"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="@dimen/dp_20">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_68">
<ImageButton
android:layout_marginLeft="@dimen/dp_38"
android:id="@+id/return_btn"
android:layout_width="@dimen/dp_21"
android:layout_height="@dimen/dp_18"
android:layout_marginLeft="@dimen/dp_38"
android:background="@null"
android:scaleType="fitXY"
android:src="@mipmap/return_btn" />
<ImageButton
android:layout_marginRight="@dimen/dp_38"
android:layout_width="@dimen/dp_18"
android:layout_height="@dimen/dp_18"
android:src="@mipmap/share2"
android:layout_alignParentRight="true"
android:scaleType="fitXY"
android:layout_marginRight="@dimen/dp_38"
android:background="@null"
android:visibility="gone"/>
android:scaleType="fitXY"
android:src="@mipmap/share2"
android:visibility="gone" />
</RelativeLayout>
<RelativeLayout
android:layout_marginTop="@dimen/dp_8"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_8">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -49,73 +56,102 @@
android:text="货源详情"
android:textColor="#fff"
android:textSize="@dimen/sp_23" />
<TextView
android:layout_marginTop="@dimen/dp_11"
android:layout_marginRight="@dimen/dp_37"
android:layout_alignParentRight="true"
android:id="@+id/huozhu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginTop="@dimen/dp_11"
android:layout_marginRight="@dimen/dp_37"
android:text="联系货主"
android:textColor="#fff"
android:textSize="@dimen/sp_13" />
<TextView
android:layout_marginTop="@dimen/dp_11"
android:layout_marginRight="@dimen/dp_37"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginTop="@dimen/dp_11"
android:layout_marginRight="@dimen/dp_37"
android:text="拒绝"
android:textColor="#fff"
android:textSize="@dimen/sp_15"
android:visibility="gone"/>
android:visibility="gone" />
</RelativeLayout>
<LinearLayout
android:layout_marginTop="@dimen/dp_38"
android:layout_marginLeft="@dimen/dp_38"
android:layout_marginRight="@dimen/dp_38"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_38"
android:layout_marginTop="@dimen/dp_38"
android:layout_marginRight="@dimen/dp_38"
android:orientation="vertical">
<LinearLayout
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:id="@+id/totalFreight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="****"
android:textColor="#ffffffff"
android:textSize="@dimen/sp_40" />
<CheckBox
android:id="@+id/cb"
android:layout_width="@dimen/dp_30"
android:layout_height="@dimen/dp_30"
android:layout_marginLeft="@dimen/dp_10"
android:layout_marginTop="@dimen/dp_3"
android:button="@null"
android:checked="false"
android:drawableStart="@drawable/select_eye"
android:gravity="center">
</CheckBox>
</LinearLayout>
<TextView
android:id="@+id/totalFreight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="0000"
android:textColor="#ffffffff"
android:textSize="@dimen/sp_40" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="净赚运费(元)"
android:textColor="#ffffffff"
android:textSize="@dimen/sp_13"
android:layout_gravity="center"
/>
android:textSize="@dimen/sp_13" />
<View
android:layout_marginTop="@dimen/dp_16"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_1"
android:background="#EFEFEF"/>
android:layout_marginTop="@dimen/dp_16"
android:background="#EFEFEF" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_28"
android:orientation="horizontal">
<RelativeLayout
android:layout_width="@dimen/dp_0"
android:layout_height="match_parent"
android:layout_weight="1">
<TextView
android:layout_marginLeft="@dimen/dp_5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/dp_5"
android:text="预估里程(km)"
android:textColor="#ffffffff"
android:textSize="@dimen/sp_12"
android:layout_centerVertical="true"
/>
android:textSize="@dimen/sp_12" />
<TextView
android:id="@+id/distance"
@@ -128,10 +164,12 @@
android:textColor="#ffffffff"
android:textSize="@dimen/sp_12" />
</RelativeLayout>
<View
android:layout_width="@dimen/dp_1"
android:layout_height="wrap_content"
android:background="#EFEFEF"/>
android:background="#EFEFEF" />
<RelativeLayout
android:layout_width="@dimen/dp_0"
android:layout_height="match_parent"
@@ -158,14 +196,17 @@
android:textSize="@dimen/sp_12" />
</RelativeLayout>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_1"
android:background="#EFEFEF"/>
android:background="#EFEFEF" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_28"
android:orientation="horizontal">
<RelativeLayout
android:layout_width="@dimen/dp_0"
android:layout_height="match_parent"
@@ -191,10 +232,12 @@
android:textColor="#ffffffff"
android:textSize="@dimen/sp_12" />
</RelativeLayout>
<View
android:layout_width="@dimen/dp_1"
android:layout_height="wrap_content"
android:background="#EFEFEF"/>
android:background="#EFEFEF" />
<RelativeLayout
android:layout_width="@dimen/dp_0"
android:layout_height="match_parent"
@@ -224,59 +267,67 @@
android:textSize="@dimen/sp_12" />
</RelativeLayout>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_1"
android:background="#EFEFEF"/>
android:layout_width="match_parent"
android:layout_height="@dimen/dp_1"
android:background="#EFEFEF" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_28"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/dp_5"
android:text="运输要求:"
android:textColor="#ffffffff"
android:textSize="@dimen/sp_12"
android:layout_gravity="center"/>
<TextView
android:layout_marginLeft="@dimen/dp_7"
android:id="@+id/requirement"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/dp_5"
android:text=""
android:textColor="#ffffffff"
android:textSize="@dimen/sp_12"
android:layout_gravity="center"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_gravity="center"
android:layout_marginLeft="@dimen/dp_5"
android:text="运输要求:"
android:textColor="#ffffffff"
android:textSize="@dimen/sp_12" />
<TextView
android:id="@+id/requirement"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="@dimen/dp_7"
android:layout_marginRight="@dimen/dp_5"
android:text=""
android:textColor="#ffffffff"
android:textSize="@dimen/sp_12" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_1"
android:background="#EFEFEF"/>
android:background="#EFEFEF" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/bg_bai">
android:background="@drawable/bg_bai"
android:orientation="vertical">
<LinearLayout
android:layout_marginLeft="@dimen/dp_39"
android:layout_marginTop="@dimen/dp_17"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_39"
android:layout_marginTop="@dimen/dp_17"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="货源单号:"
android:textColor="#333333"
android:textSize="@dimen/sp_13" />
<TextView
android:id="@+id/orderNum"
android:layout_width="wrap_content"
@@ -285,42 +336,48 @@
android:textColor="#333333"
android:textSize="@dimen/sp_13" />
</LinearLayout>
<androidx.cardview.widget.CardView
android:layout_marginLeft="@dimen/dp_15"
android:layout_marginRight="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_15"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="@dimen/dp_14"
android:layout_marginLeft="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_15"
android:layout_marginRight="@dimen/dp_15"
app:cardBackgroundColor="#fff"
app:cardCornerRadius="@dimen/dp_14"
app:cardElevation="@dimen/dp_0">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView
android:id="@+id/zhuang_rv1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView
android:id="@+id/zhuang_rv2"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_17">
<TextView
android:id="@+id/car"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/dp_39"
android:text="选择车辆"
android:textColor="#ff000000"
android:textSize="@dimen/sp_13"
android:layout_centerVertical="true"/>
android:textSize="@dimen/sp_13" />
<ImageButton
android:id="@+id/xuanze"
@@ -328,8 +385,8 @@
android:layout_height="@dimen/dp_29"
android:layout_alignParentRight="true"
android:layout_marginRight="@dimen/dp_38"
android:padding="@dimen/dp_5"
android:background="@null"
android:padding="@dimen/dp_5"
android:scaleType="fitXY"
android:src="@mipmap/add1" />
</RelativeLayout>
@@ -346,39 +403,37 @@
android:layout_height="@dimen/dp_25"
android:layout_gravity="center"
android:layout_marginLeft="@dimen/dp_38"
android:padding="@dimen/dp_5"
android:background="@null"
android:padding="@dimen/dp_5"
android:scaleType="fitXY"
android:src="@mipmap/no_xuan" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="@dimen/dp_7"
android:text="同意并签署"
android:textColor="#000000"
android:textSize="@dimen/sp_13"
android:layout_gravity="center"/>
android:textSize="@dimen/sp_13" />
<TextView
android:id="@+id/check_contract"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="《运输合同》"
android:textColor="@color/theme_color_news"
android:textSize="@dimen/sp_13"
android:layout_gravity="center"/>
android:textSize="@dimen/sp_13" />
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_7"
>
android:layout_marginTop="@dimen/dp_7">
<ImageButton
android:visibility="invisible"
android:id="@+id/btnFp"
android:layout_width="@dimen/dp_25"
android:layout_height="@dimen/dp_25"
@@ -387,38 +442,39 @@
android:background="@null"
android:padding="@dimen/dp_5"
android:scaleType="fitXY"
android:src="@mipmap/no_xuan" />
android:src="@mipmap/no_xuan"
android:visibility="invisible" />
<TextView
android:layout_toRightOf="@+id/btnFp"
android:id="@+id/tvZzs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="@dimen/dp_7"
android:layout_toRightOf="@+id/btnFp"
android:text="同意在符合相关税务机关要求的情况下代开增值税发票"
android:textColor="#000000"
android:textSize="@dimen/sp_13"
android:layout_gravity="center"/>
android:textSize="@dimen/sp_13" />
<TextView
android:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="增值税发票"
android:textColor="@color/red"
android:textSize="@dimen/sp_13"
android:layout_gravity="center"/>
android:visibility="gone" />
</RelativeLayout>
<Button
android:layout_marginLeft="@dimen/dp_38"
android:layout_marginRight="@dimen/dp_38"
android:id="@+id/confirm_btn"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_38"
android:layout_gravity="center"
android:layout_marginLeft="@dimen/dp_38"
android:layout_marginTop="@dimen/dp_12"
android:layout_marginRight="@dimen/dp_38"
android:layout_marginBottom="@dimen/dp_60"
android:background="@drawable/bg_btn"
android:text="确认接单"
+108
View File
@@ -168,6 +168,114 @@
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_12" />
</LinearLayout>
<LinearLayout
android:visibility="gone"
android:id="@+id/llCurWay"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_140"
android:layout_marginLeft="@dimen/dp_5"
android:layout_marginRight="@dimen/dp_5"
android:background="@drawable/bg_huoyuan">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/dp_25"
android:layout_marginLeft="@dimen/dp_25"
android:layout_marginRight="@dimen/dp_25"
android:layout_marginBottom="@dimen/dp_22">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="运输中订单:"
android:textColor="#ff333333"
android:textSize="@dimen/sp_16" />
<TextView
android:id="@+id/tvWaybill"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_10"
android:text="1321561432123156"
android:textColor="#ff333333"
android:textSize="@dimen/sp_16" />
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_6">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/ivType"
android:layout_width="@dimen/dp_20"
android:layout_height="@dimen/dp_20"
android:layout_gravity="center"
android:scaleType="fitXY"
android:background="@mipmap/zhuang" />
<TextView
android:id="@+id/loadingAddress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="@dimen/dp_5"
android:ellipsize="end"
android:maxLines="1"
android:text="郑州市市委党校郑州市市委党校郑州市市委党校郑州市市委党校"
android:textColor="#ff333333"
android:textSize="@dimen/sp_15" />
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/tvGo"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_28"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:background="@drawable/shape_red_bg14"
android:paddingLeft="@dimen/dp_14"
android:paddingRight="@dimen/dp_14"
android:text="去装货"
android:gravity="center"
android:textColor="@color/white"
android:textSize="@dimen/sp_13" />
</RelativeLayout>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
<!-- <LinearLayout
android:layout_marginTop="@dimen/dp_4"
android:layout_width="match_parent"
+3 -2
View File
@@ -99,7 +99,7 @@
<TextView
android:id="@+id/loadingAddress"
android:layout_width="@dimen/dp_120"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="@dimen/dp_5"
@@ -125,7 +125,7 @@
<TextView
android:id="@+id/receiverAddress"
android:layout_width="@dimen/dp_120"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="@dimen/dp_5"
@@ -140,6 +140,7 @@
</LinearLayout>
<LinearLayout
android:visibility="gone"
android:layout_marginRight="@dimen/dp_10"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
@@ -123,6 +123,7 @@
</LinearLayout>
</LinearLayout>
<LinearLayout
android:visibility="gone"
android:layout_marginRight="@dimen/dp_10"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
+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>
@@ -52,6 +52,7 @@
/>
</LinearLayout>
<LinearLayout
android:id="@+id/llMoney"
android:layout_marginTop="@dimen/dp_5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+26
View File
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:background="@drawable/bg_round2"
android:layout_marginLeft="@dimen/dp_16"
android:layout_marginRight="@dimen/dp_16"
android:padding="20dp"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tvTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="提示"
android:textColor="@color/black"
android:textSize="@dimen/sp_16"
android:textStyle="bold"
/>
<TextView
android:id="@+id/tvMessage"
android:textColor="@color/black"
android:textSize="@dimen/sp_14"
android:text=""
android:layout_marginTop="@dimen/dp_4"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

@@ -1,14 +0,0 @@
package com.arpa.hndahesudintocctmsdriver
import org.junit.Test
/**
* Example local unit test, which will execute on the development machine (host).
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
class ExampleUnitTest {
@Test
fun addition_isCorrect() {
}
}
+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()
+2
View File
@@ -79,6 +79,8 @@ dependencies {
api rootProject.ext.dependencies["Search"]
api 'com.gyf.cactus:cactus:1.1.3-beta13'
api 'com.github.gcacace:signature-pad:1.3.1'
//
// api 'com.umeng.umsdk:common:9.4.4'
// api 'com.umeng.umsdk:asms:1.4.1'
@@ -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);
@@ -1,5 +1,6 @@
package com.dahe.mylibrary.utils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PatternUtils {
@@ -25,4 +26,13 @@ public class PatternUtils {
public static boolean isLetter(String password){
return Pattern.matches(REGEX_WORD, password);
}
public static String getNumByStr(String str){
Pattern compile = Pattern.compile("\\d+");
Matcher matcher = compile.matcher(str);
while (matcher.find()) {
return matcher.group();
}
return "";
}
}