Compare commits

..

119 Commits

Author SHA1 Message Date
e3b6ba4f1c 实名认证url为空优化 2024-12-25 10:54:28 +08:00
58a3f502da 76版 打开权限设置工具类 2024-12-20 08:32:00 +08:00
80a257273b 根据华为市场复审75版本 2024-12-17 10:12:03 +08:00
5a846d220d 根据华为市场审核修改隐私政策格式 2024-12-17 10:02:49 +08:00
01bd0e03ff 多种类型经纬度转换工具类 2024-12-13 18:04:33 +08:00
82b1413429 合同显示不全优化 2024-12-11 10:24:12 +08:00
8b2007a11d 74版本 2024-12-09 16:40:35 +08:00
d181d819b0 域名拦截 2024-12-09 15:57:37 +08:00
1042fbd283 刷新优化 2024-12-09 09:22:31 +08:00
f1ffdd31af 账户状态刷新 2024-12-06 16:06:59 +08:00
3b7a77c45b 货源详情默认选中指派车辆 2024-12-06 09:45:12 +08:00
7fdb48817f 货源详情重复打开 2024-12-05 16:11:47 +08:00
496319c04b 修改运单详情启动模式2 2024-12-05 10:48:32 +08:00
86d3599110 外部跳回测试 2024-12-05 10:10:40 +08:00
23ca8f1411 h5页面添加shceme 2024-12-04 17:22:20 +08:00
cfc32bfe66 页面销毁glide报错处理 2024-12-04 16:11:44 +08:00
ab59be9f94 上传照片添加容错机制 2024-12-04 10:53:26 +08:00
e59e2d0fa4 登录添加未成功不可重复点击判断 2024-12-04 10:34:24 +08:00
041bcaf2ec 登录按钮添加防抖以及加载loading 2024-12-04 09:14:33 +08:00
291578cd72 道路运输证识别优化 2024-12-03 16:13:32 +08:00
1ef4f3b9ca 从业资格空指针优化 2024-12-03 15:48:43 +08:00
ab34920c8f 位置上传添加回调 2024-12-03 11:19:32 +08:00
63026819f8 装卸货位置上传 2024-12-03 11:09:22 +08:00
83fc537c8d 刷脸认证成功页面优化 2024-12-03 11:06:22 +08:00
7a02706b75 刷脸认证成功页面本地化 2024-12-03 10:22:58 +08:00
d78ec09c04 新建刷脸成功页面 2024-12-02 11:53:38 +08:00
40d344e245 提升app更新弹窗未最高等级 2024-12-02 10:26:43 +08:00
866a46a7cb 检测更新bug修复 2024-12-02 10:10:15 +08:00
e4bdf1384f 添加aliyun grradle 2024-11-30 15:13:56 +08:00
cabbe363a9 从业资格loading优化 2024-11-28 11:17:55 +08:00
6fc87c0d2e 刷脸失败异常处理 2024-11-27 14:20:00 +08:00
61c22800f7 状态提示调整,绑定车辆不校验 2024-11-25 10:52:58 +08:00
deb11d4d99 73版本 2024-11-25 09:57:09 +08:00
77481c73f6 注册自动流转优化 2024-11-25 09:48:59 +08:00
2da410bcd4 添加挂车优化 2024-11-22 16:35:54 +08:00
c6005ee9a1 隐私政策拦截 2024-11-22 15:55:20 +08:00
65994b8eda ocr识别优化 2024-11-21 16:38:33 +08:00
df7a29e54b h5title优化 2024-11-21 11:07:34 +08:00
7c63bb1d39 驾驶证新增字段 2024-11-21 10:40:09 +08:00
8bbae1cf92 驾驶证ocr上传 2024-11-21 10:13:35 +08:00
97e0c5f629 行驶证存在添加绑定逻辑 2024-11-20 16:40:26 +08:00
95667723e9 行驶证接口对接1 2024-11-20 10:36:35 +08:00
1fd37db329 行驶证接口对接 2024-11-20 09:57:03 +08:00
51075e72c8 道路运输证ocr中交 2024-11-20 08:32:05 +08:00
5bc0a041de 中交-身份证 驾驶证 行驶证 从业资格 2024-11-19 16:46:02 +08:00
c11974e9c1 e签宝实名认证回调,首页缺失证件提醒优化, 2024-11-19 08:37:40 +08:00
ccf70796a3 优化运单列表状态显示 2024-11-11 09:14:58 +08:00
7b3abfeafc 72版本 2024-10-29 14:55:28 +08:00
9dc92a1bc7 添加权限说明,推送冲突注释 2024-10-29 14:51:58 +08:00
5fdaa0b213 动态获取权限添加顶部文字说明 2024-10-28 17:27:21 +08:00
446aed1574 首页不强制权限申请 2024-10-28 15:14:23 +08:00
6f573aee98 定位服务启动失败 2024-10-28 10:00:42 +08:00
15bec78cb8 定位权限优化 2024-10-25 17:29:27 +08:00
3a44129b03 首页权限获取优化 2024-10-25 15:54:13 +08:00
96819e08b4 70版本 2024-10-23 08:36:48 +08:00
db9990eec0 执行中运单完成状态优化,运单详情偶发不刷新,登录数据类型控制 2024-10-22 17:15:34 +08:00
a2be579ae9 装卸货状态不一致处理 2024-10-21 17:16:20 +08:00
873e0b81cf 经纬度异常处理 2024-10-21 11:02:47 +08:00
4cba8a8246 首页证件补传重复弹出优化 2024-10-18 09:01:26 +08:00
ba86cfb234 取消运单导致运单操作异常处理 2024-10-14 16:58:40 +08:00
6d2656a1f7 高德轨迹显示异常处理 2024-10-14 10:56:05 +08:00
d9ec95fbc8 切换账号执行运单显示异常,上传银行卡loading显示优化 2024-10-12 10:50:18 +08:00
3c65d1f691 loading优化 2024-09-24 15:33:39 +08:00
c8b6e75d7d 钱包页面自动刷新 2024-09-23 09:56:37 +08:00
0e8ea7147f 银行卡添加日弹判断 2024-09-11 16:32:27 +08:00
9364706365 升级69版 2024-09-10 11:12:47 +08:00
d385764b56 取消运单优化 2024-09-04 16:05:05 +08:00
eeadd1d196 首页添加执行中运单跳转功能 2024-09-04 09:23:31 +08:00
0e9224a034 用户注册添加银行卡逻辑,首页添加银行卡提示入口 2024-08-27 09:27:30 +08:00
a20d49ecdf 协议https无法打开,临时切回http 2024-08-05 15:00:02 +08:00
7a89c41ed2 68版 2024-08-05 09:00:26 +08:00
894246456a 添加运单金额隐藏逻辑 2024-08-01 15:10:45 +08:00
212d12db47 LocationManager定位封装 2024-07-25 16:49:56 +08:00
9db4b16e24 https无法打开处理 2024-07-23 15:59:00 +08:00
361ad6111c 手机信息上报完善 2024-07-23 15:31:04 +08:00
8ba586c204 手机信息上报 2024-07-23 11:03:23 +08:00
c45e623a58 67版本 2024-07-23 09:43:51 +08:00
b6d43b53e5 高德地图key替换 2024-07-23 09:04:40 +08:00
553dbeed41 道路运输证查看大图 2024-07-22 11:28:20 +08:00
3e67b50097 迁移https 2024-07-18 16:02:17 +08:00
c6a5363cfe 银行卡解绑显示错乱优化 2024-07-17 11:34:31 +08:00
ba031f075c 登录也优化点击范围 2024-07-17 09:12:30 +08:00
ef6247fc22 卸货,装卸回单添加loading 2024-07-16 17:38:32 +08:00
9766690957 66版本 2024-07-16 11:03:49 +08:00
1009561bde 高德企业账号key替换 2024-07-15 17:20:29 +08:00
0d3e35d6f7 新增司机,车辆显示错乱修复 2024-07-15 11:29:21 +08:00
c1355629eb 页面显示bug修复 2024-07-10 17:24:36 +08:00
06cc3ba9db 修复软键盘与输入框联动以及提交添加loading 2024-07-10 15:05:19 +08:00
9202ba437c 车辆详情偶发不刷新问题处理 2024-07-09 10:18:07 +08:00
93b36a59b3 新增牵引车后转挂车报错优化 2024-07-08 10:29:25 +08:00
9600c213d4 删除车辆刷新列表奔溃处理 2024-07-08 09:49:52 +08:00
bc86fdf444 补充VersionCode请求头 2024-07-05 10:34:09 +08:00
bc135b9e98 车头,挂车,道路运输证新增绑定逻辑,优化车辆解绑逻辑 2024-07-04 16:50:35 +08:00
141c38182f 协议网址替换 2024-06-21 10:38:03 +08:00
491c9b8c84 装卸货,回单添加loading 2024-06-21 08:53:53 +08:00
ce1356509b 整改优化 2024-06-17 11:19:25 +08:00
7e40fef702 隐私协议统一替换 2024-05-22 15:09:14 +08:00
6071e05014 协议临时性替换 2024-05-20 16:43:45 +08:00
dba86a51e9 添加备案号 2024-04-27 09:49:05 +08:00
4e38376f74 上传银行卡防抖处理 2024-04-22 15:33:55 +08:00
2842812fb0 图标修复 2024-04-17 14:29:08 +08:00
4dddcc5d96 拍照bug修复 2024-01-04 15:29:33 +08:00
f352932fa9 3.3.3版本 2023-11-09 14:54:09 +08:00
b6645b7d1f 3.3.2版本 2023-11-08 15:31:58 +08:00
109a713850 从业资格证重复上传优化 2023-11-02 16:26:40 +08:00
fb164ccb15 更换极光推送key 2023-10-19 14:45:30 +08:00
d3915a92a0 多渠道高德key动态切换 2023-10-16 14:34:17 +08:00
35c37fdf51 升级优化 2023-10-12 15:36:18 +08:00
c3a3a5cfe6 测试,正式包分别打包 2023-10-11 09:45:39 +08:00
a7aee4af57 好运测试图标自动切换 2023-10-10 17:28:45 +08:00
1c3d20ac43 loading框bug修复,补传卸货优化 2023-10-09 16:52:42 +08:00
f37ffa779a 补传类优化 2023-10-07 11:24:51 +08:00
7d60c08e61 挂车bug修复 2023-10-07 09:26:21 +08:00
45d8b3351d 拍照点击区域优化 2023-09-27 16:51:03 +08:00
10a379ed8f 版本更新库升级 2023-09-22 11:05:39 +08:00
a44df1ee8c app更新优化,添加立即安装按钮 2023-09-22 10:41:00 +08:00
50cc329a4d 3.2.9上传照片去除百度定位 2023-09-21 15:12:30 +08:00
360f492b8a 订单流程优化,添加bugly, 2023-09-19 10:33:40 +08:00
dc4f34efd7 电话动态权限,bugly添加,优化卸货逻辑 2023-09-14 16:37:13 +08:00
189 changed files with 9127 additions and 6115 deletions

View File

@ -33,13 +33,15 @@ android {
// } // }
} }
defaultConfig { defaultConfig {
applicationId "com.arpa.hndahesudintocctmsdriver" applicationId "com.arpa.hndahesudintocctmsdriver"
minSdkVersion 23 minSdkVersion 24
targetSdkVersion 30 targetSdkVersion 30
versionCode 57 versionCode 76
versionName "3.2.7" versionName "3.4.6"
flavorDimensions "CHANNEL_VALUE" flavorDimensions "CHANNEL_VALUE"
flavorDimensions "app_icon"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
javaCompileOptions { javaCompileOptions {
@ -56,27 +58,7 @@ android {
// 'x86', 'x86_64', 'mips', 'mips64' , 'arm64-v8a' // 'x86', 'x86_64', 'mips', 'mips64' , 'arm64-v8a'
} }
manifestPlaceholders = [
JPUSH_PKGNAME : applicationId,
JPUSH_APPKEY : "571d93ae5117da6dee848c92", //JPush Appkey.
JPUSH_CHANNEL : "developer-default", //.
MEIZU_APPKEY : "MZ-魅族的APPKEY",
MEIZU_APPID : "MZ-魅族的APPID",
XIAOMI_APPID : "MI-小米的APPID",
XIAOMI_APPKEY : "MI-小米的APPKEY",
OPPO_APPKEY : "OP-oppo的APPKEY",
OPPO_APPID : "OP-oppo的APPID",
OPPO_APPSECRET : "OP-oppo的APPSECRET",
VIVO_APPKEY : "vivo的APPKEY",
VIVO_APPID : "vivo的APPID"
]
} }
// sourceSets {
// main {
// jniLibs.srcDirs = ['libs']
// }
// }
sourceSets { sourceSets {
main { main {
@ -115,15 +97,30 @@ android {
productFlavors { productFlavors {
qa { qa {
manifestPlaceholders = [CHANNEL_VALUE: "好运司机测试"] applicationId "com.arpa.hndahesudintocctmsdriver.text"
manifestPlaceholders = [CHANNEL_VALUE: "司机测试",
app_icon : "@drawable/diver_logo_text",
GAODEKEY : "6791d69f6221a0841b521763af86eb01",
JPUSH_PKGNAME: applicationId,
JPUSH_APPKEY : "fba6f55621c670d8c1fe9191", //JPush Appkey.
JPUSH_CHANNEL: "developer-default"//.
]
buildConfigField("String", "OPEN_AL_URL", "\"https://oapi-staging.alct56.com\"") 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" buildConfigField "boolean", "isTest", "true"
//APP名称androidMainfest中引用 //APP名称androidMainfest中引用
resValue "string", "appName", "司机测试" resValue "string", "appName", "司机测试"
} }
product { product {
manifestPlaceholders = [CHANNEL_VALUE: "大河好运司机"] applicationId "com.arpa.hndahesudintocctmsdriver"
manifestPlaceholders = [CHANNEL_VALUE: "大河好运司机",
app_icon : "@drawable/diver_logo",
GAODEKEY : "9480fd96746922630e9bf6c75a101059",
JPUSH_PKGNAME: applicationId,
JPUSH_APPKEY : "fba6f55621c670d8c1fe9191", //JPush Appkey.
JPUSH_CHANNEL: "developer-default"//.
]
buildConfigField("String", "OPEN_AL_URL", "\"https://oapi.alct56.com\"") buildConfigField("String", "OPEN_AL_URL", "\"https://oapi.alct56.com\"")
buildConfigField("String", "BASE_URL", "\"http://app.dahehuoyun.com/api/\"") buildConfigField("String", "BASE_URL", "\"http://app.dahehuoyun.com/api/\"")
buildConfigField "boolean", "isTest", "false" buildConfigField "boolean", "isTest", "false"
@ -132,9 +129,9 @@ android {
} }
} }
productFlavors.all { flavor -> // productFlavors.all { flavor ->
flavor.manifestPlaceholders = [CHANNEL_VALUE: name] // flavor.manifestPlaceholders = [CHANNEL_VALUE: name]
} // }
android.applicationVariants.all { variant -> android.applicationVariants.all { variant ->
@ -176,8 +173,8 @@ dependencies {
implementation 'com.scwang.smart:refresh-footer-ball:2.0.1' // implementation 'com.scwang.smart:refresh-footer-ball:2.0.1' //
implementation 'com.scwang.smart:refresh-footer-classics:2.0.1' // implementation 'com.scwang.smart:refresh-footer-classics:2.0.1' //
// //
implementation 'com.github.jenly1314.AppUpdater:app-updater:1.1.0' implementation 'com.github.jenly1314.AppUpdater:app-updater:1.2.0'
implementation 'com.github.jenly1314.AppUpdater:app-dialog:1.1.0' implementation 'com.github.jenly1314.AppUpdater:app-dialog:1.2.0'
// //
implementation 'com.github.zhpanvip:BannerViewPager:3.5.4' implementation 'com.github.zhpanvip:BannerViewPager:3.5.4'
// //
@ -233,6 +230,5 @@ dependencies {
implementation 'com.github.getActivity:XToast:8.2' implementation 'com.github.getActivity:XToast:8.2'
implementation project(path: ':mylibrary') implementation project(path: ':mylibrary')
implementation project(path: ':ocr_ui')
} }

View File

@ -2,6 +2,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
package="com.arpa.hndahesudintocctmsdriver"> package="com.arpa.hndahesudintocctmsdriver">
<uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="android.permission.CALL_PHONE" />
<!-- 白名单 --> <!-- 白名单 -->
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" /> <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
@ -53,7 +54,7 @@
android:name="com.arpa.hndahesudintocctmsdriver.App" android:name="com.arpa.hndahesudintocctmsdriver.App"
android:allowBackup="true" android:allowBackup="true"
android:excludeFromRecents="true" android:excludeFromRecents="true"
android:icon="@drawable/diver_logo" android:icon="@mipmap/diver_logo"
android:label="@string/appName" android:label="@string/appName"
android:largeHeap="true" android:largeHeap="true"
android:requestLegacyExternalStorage="true" android:requestLegacyExternalStorage="true"
@ -93,7 +94,8 @@
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.auth.PhotoCarActivity" android:name="com.arpa.hndahesudintocctmsdriver.ui.auth.PhotoCarActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity <activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.auth.VehicleAuthActivity" android:name="com.arpa.hndahesudintocctmsdriver.ui.auth.VehicleAuthActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
@ -111,6 +113,21 @@
</activity> </activity>
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan.ShangChuangImgActivityBC"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
</activity>
<activity <activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan.ShangChuangImgActivity2" android:name="com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan.ShangChuangImgActivity2"
android:screenOrientation="portrait"> android:screenOrientation="portrait">
@ -145,15 +162,22 @@
</activity> </activity>
<activity <activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity" android:name="com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity"
android:screenOrientation="portrait"/> android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" />
<activity <activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.auth.AddCarSuccActivity" 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 <activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity" android:name="com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.login.WelcomeActivity" android:name="com.arpa.hndahesudintocctmsdriver.ui.login.WelcomeActivity"
android:exported="true"
android:screenOrientation="portrait"> android:screenOrientation="portrait">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
@ -180,6 +204,7 @@
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.home.StartYunDanActivity" android:name="com.arpa.hndahesudintocctmsdriver.ui.home.StartYunDanActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"> android:screenOrientation="portrait">
</activity> </activity>
@ -196,6 +221,10 @@
android:name="com.arpa.hndahesudintocctmsdriver.ui.web.WebActivity" android:name="com.arpa.hndahesudintocctmsdriver.ui.web.WebActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:windowSoftInputMode="stateAlwaysHidden" /> android:windowSoftInputMode="stateAlwaysHidden" />
<activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.web.WebOnlyOneActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateAlwaysHidden" />
<activity <activity
android:name="com.arpa.hndahesudintocctmsdriver.ui.web.WebKfActivity" android:name="com.arpa.hndahesudintocctmsdriver.ui.web.WebKfActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
@ -247,7 +276,7 @@
<!--高德地图--> <!--高德地图-->
<meta-data <meta-data
android:name="com.amap.api.v2.apikey" android:name="com.amap.api.v2.apikey"
android:value="78019612271411eca3af34db91930620" /> android:value="${GAODEKEY}" />
<!-- android:value="702eaa84675618b8eb69298d9fd42ca3" />--> <!-- android:value="702eaa84675618b8eb69298d9fd42ca3" />-->
<service android:name="com.amap.api.location.APSService"></service> <service android:name="com.amap.api.location.APSService"></service>
@ -259,7 +288,7 @@
<!-- 极光--> <!-- 极光-->
<meta-data <meta-data
android:name="JPUSH_APPKEY" android:name="JPUSH_APPKEY"
android:value="571d93ae5117da6dee848c92" /> <!-- </>值来自开发者平台取得的AppKey --> android:value="fba6f55621c670d8c1fe9191" /> <!-- </>值来自开发者平台取得的AppKey -->
<meta-data <meta-data
android:name="JPUSH_CHANNEL" android:name="JPUSH_CHANNEL"
@ -344,10 +373,39 @@
<activity <activity
android:name=".H5Activity" android:name=".H5Activity"
android:screenOrientation="portrait" android:launchMode="singleTask"
android:launchMode="singleTask"> android:screenOrientation="portrait">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.VIEW" /> <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.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" /> <category android:name="android.intent.category.BROWSABLE" />
@ -382,7 +440,7 @@
</receiver> </receiver>
<provider <provider
android:name="androidx.core.content.FileProvider" android:name="androidx.core.content.FileProvider"
android:authorities="com.arpa.hndahesudintocctmsdriver.fileprovider" android:authorities="${applicationId}.fileprovider"
android:exported="false" android:exported="false"
android:grantUriPermissions="true" android:grantUriPermissions="true"
tools:ignore="WrongManifestParent"> tools:ignore="WrongManifestParent">

View File

@ -23,6 +23,7 @@ import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil;
import com.gyf.cactus.Cactus; import com.gyf.cactus.Cactus;
import com.gyf.cactus.callback.CactusBackgroundCallback; import com.gyf.cactus.callback.CactusBackgroundCallback;
import com.gyf.cactus.callback.CactusCallback; import com.gyf.cactus.callback.CactusCallback;
import com.tencent.bugly.crashreport.CrashReport;
import com.umeng.commonsdk.UMConfigure; import com.umeng.commonsdk.UMConfigure;
import cn.jiguang.verifysdk.api.JVerificationInterface; import cn.jiguang.verifysdk.api.JVerificationInterface;
@ -46,6 +47,7 @@ public class App extends Application {
mApplication = this; mApplication = this;
con = getBaseContext(); con = getBaseContext();
CommonBaseLibrary.getInstance().init(this, Api.BASE_URL); CommonBaseLibrary.getInstance().init(this, Api.BASE_URL);
CrashReport.initCrashReport(getApplicationContext(), "0fa55ffad8", false);
String state = SPUtil.getSP(con, "state_data", "authorization_state"); String state = SPUtil.getSP(con, "state_data", "authorization_state");
if ("1".equals(state)) { if ("1".equals(state)) {
try { try {
@ -61,8 +63,8 @@ public class App extends Application {
} }
//在使用SDK各组件之前初始化context信息传入ApplicationContext //在使用SDK各组件之前初始化context信息传入ApplicationContext
// 路由初始化 // 路由初始化
JVerificationInterface.setDebugMode(true); // JVerificationInterface.setDebugMode(true);
JVerificationInterface.init(this, 5000, (code, msg) -> Log.d("tag", "code = " + code + " msg = " + msg)); // JVerificationInterface.init(this, 5000, (code, msg) -> Log.d("tag", "code = " + code + " msg = " + msg));
//友盟 //友盟
//设置非debug版本开启 //设置非debug版本开启
if (!isDebugVersion(con)) { if (!isDebugVersion(con)) {

View File

@ -3,6 +3,7 @@ package com.arpa.hndahesudintocctmsdriver;
import android.Manifest; import android.Manifest;
import android.annotation.TargetApi; import android.annotation.TargetApi;
import android.app.Activity; import android.app.Activity;
import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.net.Uri; import android.net.Uri;
@ -40,10 +41,14 @@ import androidx.appcompat.app.AppCompatActivity;
import com.arpa.hndahesudintocctmsdriver.cuspop.SimCenterPop; import com.arpa.hndahesudintocctmsdriver.cuspop.SimCenterPop;
import com.arpa.hndahesudintocctmsdriver.event.FaceEvent; import com.arpa.hndahesudintocctmsdriver.event.FaceEvent;
import com.arpa.hndahesudintocctmsdriver.event.HomeEvent; 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.UiAuxiliary;
import com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity; 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.ui.home.StartYunDanActivity;
import com.arpa.hndahesudintocctmsdriver.util.MessageUtils; import com.arpa.hndahesudintocctmsdriver.util.MessageUtils;
import com.dahe.mylibrary.utils.ActivityUtils;
import com.dahe.mylibrary.utils.ToastUtils; import com.dahe.mylibrary.utils.ToastUtils;
import com.esign.esignsdk.EsignSdk; import com.esign.esignsdk.EsignSdk;
import com.esign.esignsdk.h5.base.WBH5FaceVerifySDK; import com.esign.esignsdk.h5.base.WBH5FaceVerifySDK;
@ -73,25 +78,38 @@ public class H5Activity extends AppCompatActivity {
String curUrl = null; String curUrl = null;
boolean viewFile = false; boolean viewFile = false;
boolean isGoCar = false;
long time = System.currentTimeMillis(); long time = System.currentTimeMillis();
ValueCallback<Uri> uploadMessage; ValueCallback<Uri> uploadMessage;
private ValueCallback<Uri[]> uploadMessageAboveL; private ValueCallback<Uri[]> uploadMessageAboveL;
private final static int FILE_CHOOSER_RESULT_CODE = 10000; private final static int FILE_CHOOSER_RESULT_CODE = 10000;
private Context ctx;
private boolean isOk = false;
@Override @Override
protected void onCreate(@Nullable Bundle savedInstanceState) { protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
super.setContentView(R.layout.activity_h5); super.setContentView(R.layout.activity_h5);
ctx = this;
mWebView = findViewById(R.id.webview); mWebView = findViewById(R.id.webview);
ImageView back = findViewById(R.id.back); ImageView back = findViewById(R.id.back);
TextView close = findViewById(R.id.close); TextView close = findViewById(R.id.close);
TextView tvTitle = findViewById(R.id.tv_title);
WebSettings webSetting = mWebView.getSettings(); WebSettings webSetting = mWebView.getSettings();
String title = getIntent().getStringExtra("title");
if (!TextUtils.isEmpty(title)) {
tvTitle.setText(title);
}
back.setOnClickListener(v -> { back.setOnClickListener(v -> {
if (isOk) {
ActivityUtils.finishToActivity(MainActivity.class, false);
return;
}
if (mWebView.canGoBack()) { if (mWebView.canGoBack()) {
mWebView.goBack(); mWebView.goBack();
} else { } else {
@ -100,6 +118,10 @@ public class H5Activity extends AppCompatActivity {
}); });
close.setOnClickListener(v -> { close.setOnClickListener(v -> {
if (isOk) {
ActivityUtils.finishToActivity(MainActivity.class, false);
return;
}
if (mWebView.canGoBack()) { if (mWebView.canGoBack()) {
mWebView.goBack(); mWebView.goBack();
} else { } else {
@ -114,6 +136,9 @@ public class H5Activity extends AppCompatActivity {
webSetting.setLoadWithOverviewMode(true); webSetting.setLoadWithOverviewMode(true);
webSetting.setAllowFileAccess(true); webSetting.setAllowFileAccess(true);
webSetting.setAppCacheEnabled(true); webSetting.setAppCacheEnabled(true);
webSetting.setAllowContentAccess(true);
webSetting.setLoadsImagesAutomatically(true);
webSetting.setMediaPlaybackRequiresUserGesture(true);
String appCachePath = getApplication().getCacheDir().getAbsolutePath(); String appCachePath = getApplication().getCacheDir().getAbsolutePath();
webSetting.setAppCachePath(appCachePath); webSetting.setAppCachePath(appCachePath);
webSetting.setDatabaseEnabled(true); webSetting.setDatabaseEnabled(true);
@ -180,11 +205,21 @@ public class H5Activity extends AppCompatActivity {
private void processExtraData() { private void processExtraData() {
Intent intent = getIntent(); Intent intent = getIntent();
isGoCar = intent.getBooleanExtra("isGoCar", false);
Uri uri = intent.getData(); Uri uri = intent.getData();
Log.e("test", "===" + uri); Log.e("test", "===" + uri);
if (uri != null) { if (uri != null) {
// 芝麻认证刷脸结束返回获取后续操作页面地址 // 芝麻认证刷脸结束返回获取后续操作页面地址
// String callbackUrl = uri.getQueryParameter("callback"); // 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"); String callbackUrl = uri.getQueryParameter("realnameUrl");
if (!TextUtils.isEmpty(callbackUrl)) { if (!TextUtils.isEmpty(callbackUrl)) {
@ -197,15 +232,29 @@ public class H5Activity extends AppCompatActivity {
} else { } else {
String url = intent.getStringExtra("url"); String url = intent.getStringExtra("url");
if (TextUtils.isEmpty(url)) {
ActivityUtils.finishToActivity(MainActivity.class, false);
return;
}
viewFile = intent.getBooleanExtra("view_file", false); viewFile = intent.getBooleanExtra("view_file", false);
if (url.startsWith("alipay")) { if (url.startsWith("alipay")) {
try { try {
Intent intent2 = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); Intent intent2 = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
intent2.putExtra("isGoCar", isGoCar);
startActivity(intent2); startActivity(intent2);
return; return;
} catch (Exception e) { } catch (Exception e) {
} }
// }else if (url.startsWith("https://agreement.dahehuoyun.com/#/1ba5c216/912f4c9587/5eb5184653/6ef9")) {
} else if (url.startsWith("https://agreement.dahehuoyun.com")) {
Intent in = new Intent(ctx, FaceSuccActivity.class);
startActivity(in);
if (isGoCar) {
ActivityUtils.finishToActivity(MainActivity.class, false);
} else {
finish();
}
return;
} }
if (curUrl == null) { if (curUrl == null) {
curUrl = url; curUrl = url;
@ -224,28 +273,31 @@ public class H5Activity extends AppCompatActivity {
Uri uri = Uri.parse(url); Uri uri = Uri.parse(url);
Log.e("test", "要加载的地址:" + uri.getScheme() + " " + 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")) {
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")){
// if (url.contains("callback")) { // isOk = true;
// // 实名认证结束 返回按钮/倒计时返回/暂不认证 // view.loadUrl(url);
// boolean status = uri.getBooleanQueryParameter("passed", false); // new MessageUtils().showSimCenPop(ctx, "个人信息上传成功,请添加车辆信息!", "去添加",() -> {
// if (status) { // Intent in = new Intent(ctx, CertificatesActivity.class);
// // in.putExtra("index", 2);
// new Handler().postDelayed(() -> { // startActivity(in);
// FaceEvent he = new FaceEvent("刷脸成功"); // ActivityUtils.finishToActivity(MainActivity.class,false);
// EventBus.getDefault().post(he); // });
// finish();
// }, 4000);
// }else{
// if (mWebView.canGoBack()) {
// mWebView.goBack();
// }
// Toast.makeText(H5Activity.this, "认证失败,请重新刷脸认证", Toast.LENGTH_SHORT).show();
// }
// return true; // return true;
// } // }
if (uri.getScheme().equals("http") || uri.getScheme().equals("https")) {
view.loadUrl(url); view.loadUrl(url);
return true; return true;
} else if (uri.getScheme().equals("js") || uri.getScheme().equals("jsbridge")) { } else if (uri.getScheme().equals("js") || uri.getScheme().equals("jsbridge")) {
@ -282,6 +334,12 @@ public class H5Activity extends AppCompatActivity {
// 实名认证结束 返回按钮/倒计时返回/暂不认证 // 实名认证结束 返回按钮/倒计时返回/暂不认证
boolean status = uri.getBooleanQueryParameter("status", false); boolean status = uri.getBooleanQueryParameter("status", false);
if (status) { if (status) {
//认证成功返回
new Handler().postDelayed(() -> {
FaceEvent he = new FaceEvent("刷脸成功");
EventBus.getDefault().post(he);
finish();
}, 800);
//认证成功返回 //认证成功返回
Toast.makeText(H5Activity.this, "认证成功", Toast.LENGTH_LONG).show(); Toast.makeText(H5Activity.this, "认证成功", Toast.LENGTH_LONG).show();
finish(); finish();
@ -299,6 +357,12 @@ public class H5Activity extends AppCompatActivity {
boolean status = uri.getBooleanQueryParameter("status", false); boolean status = uri.getBooleanQueryParameter("status", false);
if (status) { if (status) {
//认证成功返回 //认证成功返回
//认证成功返回
// new Handler().postDelayed(() -> {
// FaceEvent he = new FaceEvent("刷脸成功");
// EventBus.getDefault().post(he);
// finish();
// }, 800);
Toast.makeText(H5Activity.this, "认证成功", Toast.LENGTH_LONG).show(); Toast.makeText(H5Activity.this, "认证成功", Toast.LENGTH_LONG).show();
finish(); finish();
} }

View File

@ -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);
}
}

View File

@ -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 + '\'' +
'}';
}
}

View File

@ -66,6 +66,11 @@ public class CarDelBean {
private String owner; private String owner;
private String roadLicense; private String roadLicense;
private String roadLicensePhoto; private String roadLicensePhoto;
private String trailerLicenseId;
private String policyPhotoUrl;
private String insuranceCompany;
private String insuranceEndDay;
private String roadLicenseSend; private String roadLicenseSend;
private String roadLicenseValidity; private String roadLicenseValidity;
private String threeImage; private String threeImage;
@ -79,6 +84,14 @@ public class CarDelBean {
private String carPlateColorValue; private String carPlateColorValue;
private String needUpQCPhoto; private String needUpQCPhoto;
public String getTrailerLicenseId() {
return trailerLicenseId;
}
public void setTrailerLicenseId(String trailerLicenseId) {
this.trailerLicenseId = trailerLicenseId;
}
public String getNeedUpQCPhoto() { public String getNeedUpQCPhoto() {
return needUpQCPhoto; return needUpQCPhoto;
} }
@ -95,6 +108,30 @@ public class CarDelBean {
this.carPlateColorValue = carPlateColorValue; this.carPlateColorValue = carPlateColorValue;
} }
public String getPolicyPhotoUrl() {
return policyPhotoUrl == null ? "" : policyPhotoUrl;
}
public void setPolicyPhotoUrl(String policyPhotoUrl) {
this.policyPhotoUrl = policyPhotoUrl;
}
public String getInsuranceCompany() {
return insuranceCompany == null ? "" : insuranceCompany;
}
public void setInsuranceCompany(String insuranceCompany) {
this.insuranceCompany = insuranceCompany;
}
public String getInsuranceEndDay() {
return insuranceEndDay == null ? "" : insuranceEndDay;
}
public void setInsuranceEndDay(String insuranceEndDay) {
this.insuranceEndDay = insuranceEndDay;
}
public String getCarEnergyTypValue() { public String getCarEnergyTypValue() {
return carEnergyTypValue; return carEnergyTypValue;
} }
@ -271,6 +308,15 @@ public class CarDelBean {
private String threeImage; private String threeImage;
private String type; private String type;
private String vehicleNumber; private String vehicleNumber;
private String trailerLicenseId;
public String getTrailerLicenseId() {
return trailerLicenseId;
}
public void setTrailerLicenseId(String trailerLicenseId) {
this.trailerLicenseId = trailerLicenseId;
}
public String getBackImage() { public String getBackImage() {
return backImage == null ? "" : backImage; return backImage == null ? "" : backImage;

View File

@ -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;
}
}
}

View File

@ -57,12 +57,15 @@ public class DriverAuthDataBean {
private String idcardValidity; private String idcardValidity;
private String dirverAllowType; private String dirverAllowType;
private int idcardPhoto; private int idcardPhoto;
private String bankImgUrl;
private String bankName;
private String cardNo;
private int idcardBackPhoto; private int idcardBackPhoto;
private Object idcardPhotoHold; private Object idcardPhotoHold;
private String idcardAddress; private String idcardAddress;
private String idcardName; private String idcardName;
private int idcardSex; private int idcardSex;
private int idCardStatus; private int idCardStatus;//身份证认证状态-1未提交 0待认证 1认证通过 2认证失败
private int driverLicenseStatus; private int driverLicenseStatus;
private int qualificationCertificateStatus; private int qualificationCertificateStatus;
private String idCardReason; private String idCardReason;
@ -141,6 +144,30 @@ public class DriverAuthDataBean {
private Object mbindStatus; private Object mbindStatus;
private Object mreason; 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() { public int getId() {
return id; return id;
} }

View File

@ -48,6 +48,33 @@ public class DriverExpireBean {
public static class DataDTO { public static class DataDTO {
private String driverLicenseUpdateUrl; private String driverLicenseUpdateUrl;
private String idCardUpdateUrl; private String idCardUpdateUrl;
private String qualificationUpdateUrl;
private String roadLicenseUpdateUrl;
private String insuranceUpdateUrl;
public String getRoadLicenseUpdateUrl() {
return roadLicenseUpdateUrl;
}
public void setRoadLicenseUpdateUrl(String roadLicenseUpdateUrl) {
this.roadLicenseUpdateUrl = roadLicenseUpdateUrl;
}
public String getInsuranceUpdateUrl() {
return insuranceUpdateUrl;
}
public void setInsuranceUpdateUrl(String insuranceUpdateUrl) {
this.insuranceUpdateUrl = insuranceUpdateUrl;
}
public String getQualificationUpdateUrl() {
return qualificationUpdateUrl;
}
public void setQualificationUpdateUrl(String qualificationUpdateUrl) {
this.qualificationUpdateUrl = qualificationUpdateUrl;
}
public String getDriverLicenseUpdateUrl() { public String getDriverLicenseUpdateUrl() {
return driverLicenseUpdateUrl; return driverLicenseUpdateUrl;

View File

@ -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;
}
}
}

View File

@ -83,6 +83,8 @@ public class HuoYuanDelBean {
private String vehicleTypeName; private String vehicleTypeName;
private int vehicleLength; private int vehicleLength;
private String vehicleLengthName; private String vehicleLengthName;
private String carNumber;
private String carId;
private String namedDrivers; private String namedDrivers;
private String requirement; private String requirement;
private String totalFreight; private String totalFreight;
@ -97,6 +99,23 @@ public class HuoYuanDelBean {
private Object contactName; private Object contactName;
private Object contactPhone; private Object contactPhone;
public String getCarNumber() {
return carNumber == null ? "" : carNumber;
}
public void setCarNumber(String carNumber) {
this.carNumber = carNumber;
}
public String getCarId() {
return carId == null ? "" : carId;
}
public void setCarId(String carId) {
this.carId = carId;
}
public int getId() { public int getId() {
return id; return id;
} }

View File

@ -55,6 +55,33 @@ public class OCRBankBean {
private String validDate; private String validDate;
private String bankCardType; private String bankCardType;
private String bankName; 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() { public int getId() {
return id; return id;

View File

@ -60,6 +60,33 @@ public class OCRCardBackBean {
private String startTime; private String startTime;
private String endTime; private String endTime;
private String organizationName; 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() { public int getId() {
return id; return id;

View File

@ -63,6 +63,51 @@ public class OCRCardBean {
private String cardId; private String cardId;
private String birthday; private String birthday;
private String sex; 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() { public int getId() {
return id; return id;

View File

@ -58,6 +58,42 @@ public class OCRDrivingLicenseBackBean {
private int id; private int id;
private String url; private String url;
private String archivesName; 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() { public int getId() {
return id; return id;

View File

@ -68,6 +68,70 @@ public class OCRDrivingLicenseBean {
private String allowType; private String allowType;
private String sex; private String sex;
private String startTime; 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() { public int getId() {
return id; return id;

View File

@ -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;
}
}
}
}

View File

@ -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;
}
}
}

View File

@ -59,6 +59,7 @@ public class OCRVehicleBackLicenseBean {
private int id; private int id;
private String url; private String url;
private String checkRecord; private String checkRecord;
private String isSave;
private String approvedCapacity; private String approvedCapacity;
private String allCapacity; private String allCapacity;
private String size; private String size;
@ -70,6 +71,122 @@ public class OCRVehicleBackLicenseBean {
private String fileNumber; private String fileNumber;
private String carNumber; private String carNumber;
private int licenseId; 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;
}
public void setIsSave(String isSave) {
this.isSave = isSave;
}
public int getLicenseId() { public int getLicenseId() {
return licenseId; return licenseId;

View File

@ -49,7 +49,9 @@ public class OCRVehicleLicenseBean {
private String address; private String address;
private int carId; private int carId;
private String carNumber; private String carNumber;
private boolean carExist;
private String dateIssue; private String dateIssue;
private String backImage;
private String engineNumber; private String engineNumber;
private int id; private int id;
private String model; private String model;
@ -60,6 +62,131 @@ public class OCRVehicleLicenseBean {
private String type; private String type;
private String url; private String url;
private String vehicleNumber; 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;
}
public void setLicenseId(String licenseId) {
this.licenseId = licenseId;
}
private DataDto2 existCarInfo;
public DataDto2 getExistCarInfo() {
return existCarInfo;
}
public void setExistCarInfo(DataDto2 existCarInfo) {
this.existCarInfo = existCarInfo;
}
public boolean isCarExist() {
return carExist;
}
public String getBackImage() {
return backImage;
}
public void setBackImage(String backImage) {
this.backImage = backImage;
}
public void setCarExist(boolean carExist) {
this.carExist = carExist;
}
public String getAddress() { public String getAddress() {
return address == null ? "" : address; return address == null ? "" : address;
@ -173,4 +300,44 @@ public class OCRVehicleLicenseBean {
this.vehicleNumber = vehicleNumber; this.vehicleNumber = vehicleNumber;
} }
} }
public static class DataDto2 {
private String backImage;
private String carId;
private String licenseId;
private CarDelBean.DataDTO trailerResVo;
public CarDelBean.DataDTO getTrailerResVo() {
return trailerResVo;
}
public void setTrailerResVo(CarDelBean.DataDTO trailerResVo) {
this.trailerResVo = trailerResVo;
}
public String getLicenseId() {
return licenseId;
}
public void setLicenseId(String licenseId) {
this.licenseId = licenseId;
}
public String getBackImage() {
return backImage == null ? "" : backImage;
}
public void setBackImage(String backImage) {
this.backImage = backImage;
}
public String getCarId() {
return carId;
}
public void setCarId(String carId) {
this.carId = carId;
}
}
} }

View File

@ -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;
}
}

View File

@ -1,11 +1,18 @@
package com.arpa.hndahesudintocctmsdriver.cuspop package com.arpa.hndahesudintocctmsdriver.cuspop
import android.Manifest
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.net.Uri import android.net.Uri
import android.view.View import android.view.View
import android.widget.Toast
import androidx.fragment.app.FragmentActivity
import com.arpa.hndahesudintocctmsdriver.R import com.arpa.hndahesudintocctmsdriver.R
import com.arpa.hndahesudintocctmsdriver.util.alert.ToastUtil
import com.dahe.mylibrary.utils.ToastUtils
import com.lxj.xpopup.core.CenterPopupView import com.lxj.xpopup.core.CenterPopupView
import com.lxj.xpopup.util.XPermission
import com.permissionx.guolindev.PermissionX
import kotlinx.android.synthetic.main.load.view.* import kotlinx.android.synthetic.main.load.view.*
import kotlinx.android.synthetic.main.pop_message_center.view.* import kotlinx.android.synthetic.main.pop_message_center.view.*
@ -48,11 +55,16 @@ class MessagePop(context: Context) : CenterPopupView(context), View.OnClickListe
} }
R.id.tvOk,R.id.tvPhone -> { R.id.tvOk,R.id.tvPhone -> {
dismiss() dismiss()
if (XPermission.create(context).isGranted(Manifest.permission.CALL_PHONE)){
val toString = tvPhone.text.toString() val toString = tvPhone.text.toString()
val intent = Intent(Intent.ACTION_DIAL) val intent = Intent(Intent.ACTION_DIAL)
val data = Uri.parse("tel:$toString") val data = Uri.parse("tel:$toString")
intent.data = data intent.data = data
context.startActivity(intent) context.startActivity(intent)
}else{
ToastUtils.showToast(context,"请开启电话权限")
}
// BaseUtils.callPhone(content as Activity, tvPhone.text.toString()) // BaseUtils.callPhone(content as Activity, tvPhone.text.toString())
} }
} }

View File

@ -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?>)
}

View File

@ -6,6 +6,7 @@ import com.arpa.hndahesudintocctmsdriver.R
import com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity import com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity
import com.lxj.xpopup.core.CenterPopupView import com.lxj.xpopup.core.CenterPopupView
import kotlinx.android.synthetic.main.pop_sim_center.view.* 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 { class SimCenterPop(context: Context) : CenterPopupView(context), View.OnClickListener {
lateinit var content: String lateinit var content: String
lateinit var titleLeft: String
lateinit var titleReft: String
lateinit var secMessage: 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 content = message
this.titleReft = titleRight
this.titleLeft = titleLeft
} }
@ -28,6 +33,8 @@ class SimCenterPop(context: Context) : CenterPopupView(context), View.OnClickLis
override fun onCreate() { override fun onCreate() {
super.onCreate() super.onCreate()
tvCancel.text = titleLeft
tvOk.text = titleReft
tvCancel.setOnClickListener(this) tvCancel.setOnClickListener(this)
tvOk.setOnClickListener(this) tvOk.setOnClickListener(this)
tvContent.text = "$content" tvContent.text = "$content"

View File

@ -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
}
}

View File

@ -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;
}
}

View File

@ -0,0 +1,21 @@
package com.arpa.hndahesudintocctmsdriver.event;
/**
* @author hlh
* @version 1.0.0
* @date 2021/11/2 18:51
* @description:
*/
public class RefreshCarListEvent {
private String message;
public RefreshCarListEvent(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}

View File

@ -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;
}
}

View File

@ -13,6 +13,7 @@ import com.arpa.hndahesudintocctmsdriver.BuildConfig;
import com.arpa.hndahesudintocctmsdriver.parts.AuthParts; import com.arpa.hndahesudintocctmsdriver.parts.AuthParts;
import com.arpa.hndahesudintocctmsdriver.util.MessageUtils; import com.arpa.hndahesudintocctmsdriver.util.MessageUtils;
import com.arpa.hndahesudintocctmsdriver.util.msg.MsgUtil; import com.arpa.hndahesudintocctmsdriver.util.msg.MsgUtil;
import com.dahe.mylibrary.utils.ToastUtils;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.arpa.hndahesudintocctmsdriver.bean.DriverAuthDataBean; import com.arpa.hndahesudintocctmsdriver.bean.DriverAuthDataBean;
import com.arpa.hndahesudintocctmsdriver.bean.FqBean; import com.arpa.hndahesudintocctmsdriver.bean.FqBean;
@ -42,6 +43,10 @@ public class ALProcess {
public static void verification(Context con){ public static void verification(Context con){
DriverAuthDataBean auth= AuthParts.getAuth(con); DriverAuthDataBean auth= AuthParts.getAuth(con);
if (auth==null){
return;
}
Identity idy=new Identity(); Identity idy=new Identity();
//企业代码 //企业代码
idy.setEnterpriseCode(BuildConfig.isTest?ENTERPRISE_CODE_TEXT:ENTERPRISE_CODE); idy.setEnterpriseCode(BuildConfig.isTest?ENTERPRISE_CODE_TEXT:ENTERPRISE_CODE);

View File

@ -3,6 +3,7 @@ package com.arpa.hndahesudintocctmsdriver.report;
import android.app.Application; import android.app.Application;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import com.amap.api.location.AMapLocationClient; import com.amap.api.location.AMapLocationClient;
@ -78,6 +79,9 @@ public class JTTProcess {
ShippingNoteInfo sni=new ShippingNoteInfo(); ShippingNoteInfo sni=new ShippingNoteInfo();
StartOrderBean.DataDTO.WayChildrenDTO startWay=sob.getData().getWayChildren().get(0); StartOrderBean.DataDTO.WayChildrenDTO startWay=sob.getData().getWayChildren().get(0);
StartOrderBean.DataDTO.WayChildrenDTO endWay=sob.getData().getWayChildren().get(sob.getData().getWayChildren().size()-1); 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.setShippingNoteNumber(sob.getData().getShippingNoteNumber());
sni.setSerialNumber("0000"); sni.setSerialNumber("0000");
sni.setStartLatitude(Double.parseDouble(startWay.getLatitude())); sni.setStartLatitude(Double.parseDouble(startWay.getLatitude()));
@ -115,6 +119,9 @@ public class JTTProcess {
//参数 ShippingNoteInfo start 接口中的参数 ShippingNoteInfo //参数 ShippingNoteInfo start 接口中的参数 ShippingNoteInfo
//这里 shippingNoteInfo 信息只需传入运单号和分单号即可 //这里 shippingNoteInfo 信息只需传入运单号和分单号即可
public static void send(Context con,StartOrderBean sob,String remark){ public static void send(Context con,StartOrderBean sob,String remark){
if (sob.getData()==null){
return;
}
ShippingNoteInfo[] snis=new ShippingNoteInfo[1]; ShippingNoteInfo[] snis=new ShippingNoteInfo[1];
ShippingNoteInfo sni=new ShippingNoteInfo(); ShippingNoteInfo sni=new ShippingNoteInfo();
sni.setShippingNoteNumber(sob.getData().getShippingNoteNumber()); sni.setShippingNoteNumber(sob.getData().getShippingNoteNumber());
@ -143,6 +150,9 @@ public class JTTProcess {
ShippingNoteInfo sni=new ShippingNoteInfo(); ShippingNoteInfo sni=new ShippingNoteInfo();
StartOrderBean.DataDTO.WayChildrenDTO startWay=sob.getData().getWayChildren().get(0); StartOrderBean.DataDTO.WayChildrenDTO startWay=sob.getData().getWayChildren().get(0);
StartOrderBean.DataDTO.WayChildrenDTO endWay=sob.getData().getWayChildren().get(sob.getData().getWayChildren().size()-1); 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.setShippingNoteNumber(sob.getData().getShippingNoteNumber());
sni.setSerialNumber("0000"); sni.setSerialNumber("0000");
sni.setStartLatitude(Double.parseDouble(startWay.getLatitude())); sni.setStartLatitude(Double.parseDouble(startWay.getLatitude()));
@ -176,6 +186,9 @@ public class JTTProcess {
ShippingNoteInfo sni=new ShippingNoteInfo(); ShippingNoteInfo sni=new ShippingNoteInfo();
StartOrderBean.DataDTO.WayChildrenDTO startWay=sob.getData().getWayChildren().get(0); StartOrderBean.DataDTO.WayChildrenDTO startWay=sob.getData().getWayChildren().get(0);
StartOrderBean.DataDTO.WayChildrenDTO endWay=sob.getData().getWayChildren().get(sob.getData().getWayChildren().size()-1); 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.setShippingNoteNumber(sob.getData().getShippingNoteNumber());
sni.setSerialNumber("0000"); sni.setSerialNumber("0000");
sni.setStartLatitude(Double.parseDouble(startWay.getLatitude())); sni.setStartLatitude(Double.parseDouble(startWay.getLatitude()));
@ -208,6 +221,9 @@ public class JTTProcess {
ShippingNoteInfo sni=new ShippingNoteInfo(); ShippingNoteInfo sni=new ShippingNoteInfo();
StartOrderBean.DataDTO.WayChildrenDTO startWay=sob.getData().getWayChildren().get(0); StartOrderBean.DataDTO.WayChildrenDTO startWay=sob.getData().getWayChildren().get(0);
StartOrderBean.DataDTO.WayChildrenDTO endWay=sob.getData().getWayChildren().get(sob.getData().getWayChildren().size()-1); 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.setShippingNoteNumber(sob.getData().getShippingNoteNumber());
sni.setSerialNumber("0000"); sni.setSerialNumber("0000");
sni.setStartLatitude(Double.parseDouble(startWay.getLatitude())); sni.setStartLatitude(Double.parseDouble(startWay.getLatitude()));

View File

@ -4,6 +4,7 @@ import android.content.Context;
import android.os.Handler; import android.os.Handler;
import android.util.Log; import android.util.Log;
import com.arpa.hndahesudintocctmsdriver.BuildConfig;
import com.arpa.hndahesudintocctmsdriver.util.map.MapUtil; import com.arpa.hndahesudintocctmsdriver.util.map.MapUtil;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.arpa.hndahesudintocctmsdriver.request.bean.IDInputBean; import com.arpa.hndahesudintocctmsdriver.request.bean.IDInputBean;
@ -74,6 +75,22 @@ public class AuthRequest {
RequestUtil.start(1, "saveVehicleLicense", re, con, hd); 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) { public void upHeadImg(Context con, Handler hd, String imgUrl) {
String mt = "{\"headportrait\": \"" + imgUrl + "\"}"; String mt = "{\"headportrait\": \"" + imgUrl + "\"}";
@ -124,6 +141,17 @@ public class AuthRequest {
RequestUtil.start(1, "saveCarRoadLicenseNo", re, con, hd); RequestUtil.start(1, "saveCarRoadLicenseNo", re, con, hd);
} }
//车辆交强保险
public void saveTrafficInsurance(Context con, Handler hd, String id, String insuranceEndDay, String insuranceCompany) {
String mt = "{\n" +
"\t\"carId\": \"" + id + "\",\n" +
"\t\"insuranceEndDay\": \"" + insuranceEndDay + "\",\n" +
"\t\"insuranceCompany\": \"" + insuranceCompany + "\",\n" +
"}";
Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getTrafficInsurance(), mt), getToken(con), con);
RequestUtil.start(1, "saveTrafficInsurance", re, con, hd);
}
//获取资格证认证信息 //获取资格证认证信息
public void isDriverAuthQualification(Context con, Handler hd) { public void isDriverAuthQualification(Context con, Handler hd) {
Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getIsAuthDriverAuthQualification(), ""), getToken(con), con); Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getIsAuthDriverAuthQualification(), ""), getToken(con), con);
@ -141,6 +169,7 @@ public class AuthRequest {
Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getAuthUrl(), ""), getToken(con), con); Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getAuthUrl(), ""), getToken(con), con);
RequestUtil.start(1, "authUrl", re, con, hd); RequestUtil.start(1, "authUrl", re, con, hd);
} }
//获取车牌颜色 //获取车牌颜色
public void getCarColor(Context con, Handler hd) { public void getCarColor(Context con, Handler hd) {
// Map<String, Object> map = new HashMap<>(); // Map<String, Object> map = new HashMap<>();

View File

@ -1,5 +1,6 @@
package com.arpa.hndahesudintocctmsdriver.request; package com.arpa.hndahesudintocctmsdriver.request;
import com.arpa.hndahesudintocctmsdriver.BuildConfig;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.arpa.hndahesudintocctmsdriver.request.bean.LUInputBean; import com.arpa.hndahesudintocctmsdriver.request.bean.LUInputBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.TrackInputBean; 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); Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getAgreeOrder(),MapUtil.mapJson(map)),getToken(con),con);
RequestUtil.start(1, HuoYunDelActivity.END,re,con,hd); 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){ public void startOrder(int id){
Map<String,Object> map=new HashMap<>(); 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); Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getGetStartOrder(),MapUtil.mapJson(map)),getToken(con),con);
RequestUtil.start(1, HuoYuanFragmengt.START_ORDER,re,con,hd); 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){ public void loading(LUInputBean lub){
Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getLOADING(), gson.toJson(lub)),getToken(con),con); Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getLOADING(), gson.toJson(lub)),getToken(con),con);
@ -89,6 +108,11 @@ public class HuoYuanRequset{
Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getUNLOADING(), gson.toJson(lub)),getToken(con),con); Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getUNLOADING(), gson.toJson(lub)),getToken(con),con);
RequestUtil.start(1, ShangChuangImgActivity.TYPE_NAME[1],re,con,hd); RequestUtil.start(1, ShangChuangImgActivity.TYPE_NAME[1],re,con,hd);
} }
//卸货-补传
public void dischargeCargo4(LUInputBean lub){
Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getUNLOADING4(), gson.toJson(lub)),getToken(con),con);
RequestUtil.start(1, ShangChuangImgActivity.TYPE_NAME[1],re,con,hd);
}
//回单 //回单
public void receipt(UploadReceiptInputBean urib){ public void receipt(UploadReceiptInputBean urib){
Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getUploadReceipt(), gson.toJson(urib)),getToken(con),con); Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getUploadReceipt(), gson.toJson(urib)),getToken(con),con);
@ -137,6 +161,32 @@ public class HuoYuanRequset{
Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getEvaluationV2(),MapUtil.mapJson(map)),getToken(con),con); Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getEvaluationV2(),MapUtil.mapJson(map)),getToken(con),con);
RequestUtil.start(1, StartYunDanActivity.KEEP_EVALUTE,re,con,hd); 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"; public final static String ASYMMETRYWAYBILL="waybill_getAsymmetryWaybill";
//获取装货失败信息 //获取装货失败信息

View File

@ -3,13 +3,16 @@ package com.arpa.hndahesudintocctmsdriver.request;
import android.content.Context; import android.content.Context;
import android.os.Handler; import android.os.Handler;
import com.arpa.hndahesudintocctmsdriver.BuildConfig;
import com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity; import com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity;
import com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity; import com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity;
import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil;
import com.arpa.hndahesudintocctmsdriver.util.http.OkDate; import com.arpa.hndahesudintocctmsdriver.util.http.OkDate;
import com.arpa.hndahesudintocctmsdriver.util.http.OkHttpUtil; import com.arpa.hndahesudintocctmsdriver.util.http.OkHttpUtil;
import com.arpa.hndahesudintocctmsdriver.util.http.RequestUtil; import com.arpa.hndahesudintocctmsdriver.util.http.RequestUtil;
import java.io.File; import java.io.File;
import okhttp3.Request; import okhttp3.Request;
public class OCRRequest { public class OCRRequest {
@ -23,37 +26,101 @@ public class OCRRequest {
Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getOrcBank()), getToken(con), file); Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getOrcBank()), getToken(con), file);
RequestUtil.start(12, "OCR_BANK", re, con, hd); 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) { public void OCRCard(Context con, Handler hd, File file) {
Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getIdCardFront()), getToken(con), file); Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getIdCardFront()), getToken(con), file);
RequestUtil.start(12, CertificatesActivity.TYPE_NAME[0], re, con, hd); RequestUtil.start(12, CertificatesActivity.TYPE_NAME[0], re, con, hd);
} }
//身份证背面识别 //身份证背面识别
public void OCRCardBack(Context con, Handler hd, File file) { public void OCRCardBack(Context con, Handler hd, File file) {
Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getIdCardBack()), getToken(con), file); Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getIdCardBack()), getToken(con), file);
RequestUtil.start(12, CertificatesActivity.TYPE_NAME_BANK[0], re, con, hd); 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) { public void OCRDrivingLicense(Context con, Handler hd, File file) {
Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getDrivingLicense()), getToken(con), file); Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getDrivingLicense()), getToken(con), file);
RequestUtil.start(12, CertificatesActivity.TYPE_NAME[1], re, con, hd); RequestUtil.start(12, CertificatesActivity.TYPE_NAME[1], re, con, hd);
} }
//驾驶证背面识别 //驾驶证背面识别
public void OCRDrivingLicenseBack(Context con, Handler hd, File file) { public void OCRDrivingLicenseBack(Context con, Handler hd, File file) {
Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getDrivingLicenseBack()), getToken(con), file); Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getDrivingLicenseBack()), getToken(con), file);
RequestUtil.start(12, CertificatesActivity.TYPE_NAME_BANK[1], re, con, hd); 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) { public void OCRVehicleLicense(Context con, Handler hd, File file) {
Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getVehicleLicense()), getToken(con), file); Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getVehicleLicense()), getToken(con), file);
RequestUtil.start(12, CertificatesActivity.TYPE_NAME[2], re, con, hd); RequestUtil.start(12, CertificatesActivity.TYPE_NAME[2], re, con, hd);
} }
//行驶证背面识别 //行驶证背面识别
public void OCRVehicleLicenseBack(Context con, Handler hd, File file,String carId,String carNum){ 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); 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); RequestUtil.start(12, CertificatesActivity.TYPE_NAME_BANK[2], 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) { public void OCRPlateLicense(Context con, Handler hd, File file) {
Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getPlateLicense()), getToken(con), file); Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getPlateLicense()), getToken(con), file);
RequestUtil.start(12, "carName", re, con, hd); RequestUtil.start(12, "carName", re, con, hd);

View File

@ -56,7 +56,7 @@ public class RequestConstant {
//运单列表 //运单列表
private static final String ORDER_LIST = "/app/driver/waybill/listV2"; 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"; private static final String GET_START_ORDER = "/app/driver/waybill/getExecuteWaybill";
//查看承运合同 //查看承运合同
@ -67,6 +67,8 @@ public class RequestConstant {
private static final String LOADING = "/app/driver/waybill/loadingV2"; private static final String LOADING = "/app/driver/waybill/loadingV2";
//卸货 //卸货
private static final String UNLOADING = "/app/driver/waybill/unloadV2"; private static final String UNLOADING = "/app/driver/waybill/unloadV2";
//卸货-补传
private static final String UNLOADING4 = "/app/driver/waybill/unloadV4";
//上传回单 //上传回单
private static final String UPLOAD_RECEIPT = "/app/driver/waybill/uploadReceipt"; private static final String UPLOAD_RECEIPT = "/app/driver/waybill/uploadReceipt";
//轨迹跟踪 //轨迹跟踪
@ -79,12 +81,14 @@ public class RequestConstant {
private static final String COMPLAINT = "/app/driver/waybill/complaintV2"; private static final String COMPLAINT = "/app/driver/waybill/complaintV2";
//保存评价信息 //保存评价信息
private static final String EVALUATION_V2 = "/app/driver/waybill/evaluationV2"; 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"; private static final String GET_CAR_LIST = "/app/carDriver/getCarList";
//车辆详情 //车辆详情
private static final String GET_CAR_DEL = "/app/carDriver/getCarInfo"; private static final String GET_CAR_DEL = "/app/carDriver/getCarInfo";
//删除车辆 //删除车辆
private static final String DEL_CAR="/app/carDriver/removeCar"; private static final String DEL_CAR = "/app/carDriver/unBindCar";
//上传车辆照片 //上传车辆照片
private static final String SAVECARIMG = "/app/carDriver/saveCarImg"; private static final String SAVECARIMG = "/app/carDriver/saveCarImg";
//上传头像保存 //上传头像保存
@ -96,17 +100,21 @@ public class RequestConstant {
//--ORC识别-- //--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 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 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"; private static final String VEHICLE_LICENSE_BACK = "/common/ocr/v2/vehicleBackLicenseV3";
//身份证认证信息 //身份证认证信息
@ -122,12 +130,16 @@ public class RequestConstant {
private static final String DRIVERAUTHLICENSE = "/app/driver/auth/driverAuthLicense"; private static final String DRIVERAUTHLICENSE = "/app/driver/auth/driverAuthLicense";
//行驶证认证 //行驶证认证
private static final String SAVEVEHICLELICENSE = "/app/carDriver/saveVehicleLicense"; 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"; private static final String DRIVER_AUTH_QUALIFICATION = "/app/driver/auth/driverAuthQualification";
//车辆等级证书 //车辆等级证书
private static final String DRIVER_AUTH_SAVECARREGISTERNO = "/app/carDriver/saveCarRegisterNo"; private static final String DRIVER_AUTH_SAVECARREGISTERNO = "/app/carDriver/saveCarRegisterNo";
//道路运输信息 //道路运输信息
private static final String DRIVER_AUTH_SAVECARROADLICENSENO = "/app/carDriver/saveCarRoadLicenseNo"; private static final String DRIVER_AUTH_SAVECARROADLICENSENO = "/app/carDriver/saveCarRoadLicenseNo";
//交强险
private static final String DRIVER_TRAFFIC_INSU = "/app/carDriver/saveCarInsurace";
//党员认证 //党员认证
private static final String PARTY_MEMBER = "/app/user/partyMember"; private static final String PARTY_MEMBER = "/app/user/partyMember";
//实名认证 //实名认证
@ -157,11 +169,16 @@ public class RequestConstant {
//车辆自动审核触发器 //车辆自动审核触发器
private static final String CAR_AUDIT = "/app/carDriver/carAutomaticAudit"; private static final String CAR_AUDIT = "/app/carDriver/carAutomaticAudit";
private static final String APP_INFO = "/common/app/logininfor";
public static String getCarAudit() { public static String getCarAudit() {
return BASE_URL + CAR_AUDIT; return BASE_URL + CAR_AUDIT;
} }
public static String postAppInfo() {
return BASE_URL + APP_INFO;
}
public static String getCarColor() { public static String getCarColor() {
return BASE_URL + CAR_COLOR; return BASE_URL + CAR_COLOR;
} }
@ -209,9 +226,13 @@ public class RequestConstant {
return BASE_URL + BANK_CARD_LIST; return BASE_URL + BANK_CARD_LIST;
} }
public static String getXiaoXiListUrl() { return BASE_URL + XIAOXI_LIST; } public static String getXiaoXiListUrl() {
return BASE_URL + XIAOXI_LIST;
}
public static String getXiaoxiAll() { return BASE_URL +XIAOXI_ALL; } public static String getXiaoxiAll() {
return BASE_URL + XIAOXI_ALL;
}
public static String getOrderList() { public static String getOrderList() {
return BASE_URL + ORDER_LIST; return BASE_URL + ORDER_LIST;
@ -241,6 +262,10 @@ public class RequestConstant {
return BASE_URL + UNLOADING; return BASE_URL + UNLOADING;
} }
public static String getUNLOADING4() {
return BASE_URL + UNLOADING4;
}
public static String getGetEvaluate() { public static String getGetEvaluate() {
return BASE_URL + GET_EVALUATE; return BASE_URL + GET_EVALUATE;
} }
@ -293,15 +318,33 @@ public class RequestConstant {
return BASE_URL + ISAUTH_IDCARD; return BASE_URL + ISAUTH_IDCARD;
} }
public static String getIsauthDriverauthLicense() { return BASE_URL +ISAUTH_DRIVERAUTH_LICENSE; } public static String getIsauthDriverauthLicense() {
return BASE_URL + ISAUTH_DRIVERAUTH_LICENSE;
}
public static String getUploadReceipt() { return BASE_URL +UPLOAD_RECEIPT; } public static String getUploadReceipt() {
return BASE_URL + UPLOAD_RECEIPT;
}
public static String getUPLOAD() { return BASE_URL +UPLOAD; } public static String getUPLOAD() {
return BASE_URL + UPLOAD;
}
public static String getTrackTracking() {return BASE_URL +TRACK_TRACKING; } public static String getTrackTracking() {
return BASE_URL + TRACK_TRACKING;
}
public static String getEvaluationV2() { return BASE_URL +EVALUATION_V2; } public static String getEvaluationV2() {
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() { public static String getDRIVERAUTHIDCARD() {
return BASE_URL + DRIVERAUTHIDCARD; return BASE_URL + DRIVERAUTHIDCARD;
@ -319,27 +362,49 @@ public class RequestConstant {
return BASE_URL + SAVECARIMG; return BASE_URL + SAVECARIMG;
} }
public static String getUploadHead() { return BASE_URL +UPLOAD_HEAD; } public static String getUploadHead() {
return BASE_URL + UPLOAD_HEAD;
}
public static String getInsBankcard() { public static String getInsBankcard() {
return BASE_URL + INS_BANKCARD; return BASE_URL + INS_BANKCARD;
} }
public static String getDelCar() { return BASE_URL +DEL_CAR; } public static String getDelCar() {
return BASE_URL + DEL_CAR;
}
public static String getXiaoxiDel() { return BASE_URL +XIAOXI_DEL; } public static String getXiaoxiDel() {
return BASE_URL + XIAOXI_DEL;
}
public static String getCOMPLAINT() { return BASE_URL+COMPLAINT; } public static String getCOMPLAINT() {
return BASE_URL + COMPLAINT;
}
public static String getXiaoxiDelAll() { return BASE_URL+XIAOXI_DEL_ALL; } public static String getXiaoxiDelAll() {
return BASE_URL + XIAOXI_DEL_ALL;
}
public static String getDriverAuthQualification() { return BASE_URL+DRIVER_AUTH_QUALIFICATION; } public static String getDriverAuthQualification() {
return BASE_URL + DRIVER_AUTH_QUALIFICATION;
}
public static String getDriverSaveCarRegisterNo() { return BASE_URL+DRIVER_AUTH_SAVECARREGISTERNO; } public static String getDriverSaveCarRegisterNo() {
return BASE_URL + DRIVER_AUTH_SAVECARREGISTERNO;
}
public static String getDriverSaveCarRoadLicenseNo() { return BASE_URL+DRIVER_AUTH_SAVECARROADLICENSENO; } public static String getDriverSaveCarRoadLicenseNo() {
return BASE_URL + DRIVER_AUTH_SAVECARROADLICENSENO;
}
public static String getSaveDrawCar() { return BASE_URL+SAVE_DRAW_CAR; } public static String getTrafficInsurance() {
return BASE_URL + DRIVER_TRAFFIC_INSU;
}
public static String getSaveDrawCar() {
return BASE_URL + SAVE_DRAW_CAR;
}
public static String getIsAuthDriverAuthQualification() { public static String getIsAuthDriverAuthQualification() {
return BASE_URL + IS_AUTH_DRIVER_AUTH_QUALIFICATION; return BASE_URL + IS_AUTH_DRIVER_AUTH_QUALIFICATION;
@ -381,7 +446,9 @@ public class RequestConstant {
return BASE_URL + WITHDRAWALS_CONFIG; return BASE_URL + WITHDRAWALS_CONFIG;
} }
public static String getGetErrorOrder() { return BASE_URL+GET_ERROR_ORDER; } public static String getGetErrorOrder() {
return BASE_URL + GET_ERROR_ORDER;
}
public static String getGetExampleList() { public static String getGetExampleList() {
return BASE_URL + GET_EXAMPLE_LIST; return BASE_URL + GET_EXAMPLE_LIST;

View File

@ -10,6 +10,7 @@ import android.provider.Settings;
import androidx.annotation.RequiresApi; import androidx.annotation.RequiresApi;
import com.arpa.hndahesudintocctmsdriver.bean.AppInfoBean;
import com.arpa.hndahesudintocctmsdriver.event.VehicleEvent; import com.arpa.hndahesudintocctmsdriver.event.VehicleEvent;
import com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity; import com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity;
import com.arpa.hndahesudintocctmsdriver.ui.business.Md5Util; import com.arpa.hndahesudintocctmsdriver.ui.business.Md5Util;
@ -79,6 +80,12 @@ public class UserRequset {
RequestUtil.start(1, "userdata", re, con, hd); RequestUtil.start(1, "userdata", re, con, hd);
} }
//账户信息
public void User2() {
Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getUserUrl(), ""), getToken(con), con);
RequestUtil.start(1, "userdata2", re, con, hd);
}
//司机认证信息 //司机认证信息
public void driverAuthData() { public void driverAuthData() {
String mt = "{}"; String mt = "{}";
@ -118,6 +125,14 @@ public class UserRequset {
RequestUtil.start(1, WoDeFragment.VEHICLE_DEL, re, con, hd); 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() { public void driverIDAuth() {
String url = RequestConstant.BASE_URL + "/app/driver/auth/authInfo"; String url = RequestConstant.BASE_URL + "/app/driver/auth/authInfo";
@ -224,4 +239,15 @@ public class UserRequset {
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); 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);
}
} }

View File

@ -15,6 +15,15 @@ public class LUInputBean {
private String locationAddress; private String locationAddress;
private String longitude; private String longitude;
private String waybillId; private String waybillId;
private String realLoadTime;
public String getRealLoadTime() {
return realLoadTime;
}
public void setRealLoadTime(String realLoadTime) {
this.realLoadTime = realLoadTime;
}
public List<Integer> getImageId() { public List<Integer> getImageId() {
return imageId; return imageId;

View File

@ -16,8 +16,123 @@ public class LicenseInputBean {
private int driverLicensePhoto; private int driverLicensePhoto;
private String endTime; private String endTime;
private String firstTime; 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() { public String getAllowType() {
return allowType; return allowType;

View File

@ -10,6 +10,7 @@ import android.util.Log;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.arpa.hndahesudintocctmsdriver.R;
import com.arpa.hndahesudintocctmsdriver.request.HuoYuanRequset; import com.arpa.hndahesudintocctmsdriver.request.HuoYuanRequset;
import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup;
import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants; import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants;
@ -27,11 +28,14 @@ public class MakeUpService extends Service {
public void palyMp3(){ public void palyMp3(){
Log.e("开始播放","-----"); Log.e("开始播放","-----");
try { try {
AssetFileDescriptor fd =getAssets().openFd("kujp9scu.mp3"); MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.kujp9scu);
mediaPlayer.setDataSource(fd); mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
mediaPlayer.setLooping(false);//设置为循环播放 @Override
mediaPlayer.prepare();//初始化播放器MediaPlayer public void onPrepared(MediaPlayer mediaPlayer) {
mediaPlayer.start(); mediaPlayer.start();
}
});
mediaPlayer.prepareAsync();
Log.e("播放成功","-----"); Log.e("播放成功","-----");
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
@ -58,14 +62,14 @@ public class MakeUpService extends Service {
@Override @Override
public void onCreate() { public void onCreate() {
super.onCreate(); super.onCreate();
palyMp3(); // palyMp3();
} }
//开始 //开始
@Override @Override
public int onStartCommand(Intent intent, int flags, int startId) { public int onStartCommand(Intent intent, int flags, int startId) {
Log.e("服务开启","-----"); Log.e("服务开启","-----");
palyMp3();
return START_STICKY; return START_STICKY;
} }

View File

@ -59,7 +59,9 @@ public class TrackService extends Service {
@Nullable @Nullable
@Override @Override
public IBinder onBind(Intent intent) {return null; } public IBinder onBind(Intent intent) {
return null;
}
@Override @Override
public void onCreate() { public void onCreate() {
@ -95,6 +97,9 @@ public class TrackService extends Service {
} }
public void genzong() { public void genzong() {
if (l == null || l.getLatitude() == 0d) {
return;
}
//经度 //经度
tib.setLatitude(l.getLatitude() + ""); tib.setLatitude(l.getLatitude() + "");
//纬度 //纬度

View File

@ -10,6 +10,7 @@ import android.view.KeyEvent
import android.widget.* import android.widget.*
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import com.arpa.hndahesudintocctmsdriver.R import com.arpa.hndahesudintocctmsdriver.R
import com.arpa.hndahesudintocctmsdriver.event.WalletEvent
import com.arpa.hndahesudintocctmsdriver.ui.home.HomeFragment import com.arpa.hndahesudintocctmsdriver.ui.home.HomeFragment
import com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity import com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity
import com.arpa.hndahesudintocctmsdriver.ui.my.MyFragment 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.google.gson.Gson
import com.gyf.cactus.ext.cactusUpdateNotification import com.gyf.cactus.ext.cactusUpdateNotification
import com.permissionx.guolindev.PermissionX import com.permissionx.guolindev.PermissionX
import org.greenrobot.eventbus.EventBus
@Suppress("DIVISION_BY_ZERO") @Suppress("DIVISION_BY_ZERO")
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
@ -93,6 +95,7 @@ class MainActivity : BaseAppCompatActivity() {
bt.hide(fs[bt.index]) bt.hide(fs[bt.index])
bt.selectItem(fs[1]) bt.selectItem(fs[1])
} else { } else {
EventBus.getDefault().post(WalletEvent("refresh"))
bt.setDefaultFragment(fs[1]) bt.setDefaultFragment(fs[1])
} }
bt.index = 1 bt.index = 1
@ -126,9 +129,9 @@ class MainActivity : BaseAppCompatActivity() {
bt.index = 3 bt.index = 3
} }
} }
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
getPression() // getPression()
} // }
} }
fun getPression() { fun getPression() {
@ -138,6 +141,7 @@ class MainActivity : BaseAppCompatActivity() {
Manifest.permission.ACCESS_BACKGROUND_LOCATION, Manifest.permission.ACCESS_BACKGROUND_LOCATION,
Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.CALL_PHONE,
Manifest.permission.RECORD_AUDIO, Manifest.permission.RECORD_AUDIO,
Manifest.permission.CAMERA) Manifest.permission.CAMERA)
.request { allGranted, grantedList, deniedList -> .request { allGranted, grantedList, deniedList ->

View File

@ -4,6 +4,7 @@ import android.content.Context;
import com.arpa.hndahesudintocctmsdriver.event.HomeEvent; import com.arpa.hndahesudintocctmsdriver.event.HomeEvent;
import com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity; import com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity;
import com.arpa.hndahesudintocctmsdriver.util.SPUtils;
import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
@ -38,7 +39,8 @@ public class UiAuxiliary {
} }
public static void delLogin(Context con){ public static void delLogin(Context con){
JPushInterface.deleteAlias(con,0); // JPushInterface.deleteAlias(con,0);
SPUtils.remove(con,"curWaybillId");
SPUtil.insSP(con,LoginActivity.USER,LoginActivity.USER_TOKEN,""); SPUtil.insSP(con,LoginActivity.USER,LoginActivity.USER_TOKEN,"");
SPUtil.insSP(con,LoginActivity.USER,LoginActivity.USER_UNAME,""); SPUtil.insSP(con,LoginActivity.USER,LoginActivity.USER_UNAME,"");
SPUtil.insSP(con,LoginActivity.USER,LoginActivity.USER_RNAME,""); SPUtil.insSP(con,LoginActivity.USER,LoginActivity.USER_RNAME,"");

View File

@ -14,6 +14,7 @@ import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import com.arpa.hndahesudintocctmsdriver.ui.web.WebOnlyOneActivity;
import com.lxj.xpopup.core.CenterPopupView; import com.lxj.xpopup.core.CenterPopupView;
import com.arpa.hndahesudintocctmsdriver.R; import com.arpa.hndahesudintocctmsdriver.R;
import com.arpa.hndahesudintocctmsdriver.ui.web.WebActivity; import com.arpa.hndahesudintocctmsdriver.ui.web.WebActivity;
@ -68,7 +69,7 @@ public class AgreementAlert extends CenterPopupView {
@Override @Override
public void onClick(View widget) { 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("url",url2);
in.putExtra("title","用户服务协议"); in.putExtra("title","用户服务协议");
getContext().startActivity(in); getContext().startActivity(in);
@ -87,7 +88,7 @@ public class AgreementAlert extends CenterPopupView {
@Override @Override
public void onClick(View widget) { 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("url",url);
in.putExtra("title","隐私政策"); in.putExtra("title","隐私政策");
getContext().startActivity(in); getContext().startActivity(in);

View File

@ -1,7 +1,11 @@
package com.arpa.hndahesudintocctmsdriver.ui.alert; package com.arpa.hndahesudintocctmsdriver.ui.alert;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.provider.Settings;
import android.util.Log; import android.util.Log;
import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.ImageButton; import android.widget.ImageButton;
import android.widget.LinearLayout; import android.widget.LinearLayout;
@ -12,6 +16,8 @@ import androidx.annotation.NonNull;
import com.king.app.updater.AppUpdater; import com.king.app.updater.AppUpdater;
import com.king.app.updater.callback.AppUpdateCallback; import com.king.app.updater.callback.AppUpdateCallback;
import com.king.app.updater.constant.Constants;
import com.king.app.updater.util.AppUtils;
import com.lxj.xpopup.core.CenterPopupView; import com.lxj.xpopup.core.CenterPopupView;
import com.arpa.hndahesudintocctmsdriver.R; import com.arpa.hndahesudintocctmsdriver.R;
@ -27,8 +33,8 @@ import java.io.File;
*/ */
public class UpAppAlert extends CenterPopupView { public class UpAppAlert extends CenterPopupView {
private TextView content,vs; private TextView content, vs, tvContent;
private Button tv_cancel,tv_confirm; private Button tv_cancel, tv_confirm, tvOk;
private LinearLayout up_div; private LinearLayout up_div;
private String url = ""; private String url = "";
private String body = ""; private String body = "";
@ -52,6 +58,7 @@ public class UpAppAlert extends CenterPopupView {
protected int getImplLayoutId() { protected int getImplLayoutId() {
return R.layout.alert_up_app; return R.layout.alert_up_app;
} }
public UpAppAlert(@NonNull @NotNull Context context) { public UpAppAlert(@NonNull @NotNull Context context) {
super(context); super(context);
@ -63,6 +70,8 @@ public class UpAppAlert extends CenterPopupView {
content = findViewById(R.id.tv_content); content = findViewById(R.id.tv_content);
tv_cancel = findViewById(R.id.tv_cancel); tv_cancel = findViewById(R.id.tv_cancel);
tv_confirm = findViewById(R.id.tv_confirm); tv_confirm = findViewById(R.id.tv_confirm);
tvContent = findViewById(R.id.tvContent);
tvOk = findViewById(R.id.tvOk);
up_div = findViewById(R.id.up_div); up_div = findViewById(R.id.up_div);
progress_view = findViewById(R.id.progress); progress_view = findViewById(R.id.progress);
content = findViewById(R.id.tv_content); content = findViewById(R.id.tv_content);
@ -83,9 +92,9 @@ public class UpAppAlert extends CenterPopupView {
System.exit(1); System.exit(1);
}); });
tv_confirm.setOnClickListener(v -> { tv_confirm.setOnClickListener(v -> {
new AppUpdater.Builder() new AppUpdater.Builder(con)
.setUrl(url) .setUrl(url)
.build(con) .build()
.setUpdateCallback(new AppUpdateCallback() { .setUpdateCallback(new AppUpdateCallback() {
@Override @Override
public void onStart(String url) { public void onStart(String url) {
@ -93,6 +102,7 @@ public class UpAppAlert extends CenterPopupView {
tv_confirm.setVisibility(GONE); tv_confirm.setVisibility(GONE);
up_div.setVisibility(VISIBLE); up_div.setVisibility(VISIBLE);
} }
@Override @Override
public void onProgress(long progress, long total, boolean isChange) { public void onProgress(long progress, long total, boolean isChange) {
// Log.e("progress",progress+""); // Log.e("progress",progress+"");
@ -109,7 +119,11 @@ public class UpAppAlert extends CenterPopupView {
@Override @Override
public void onFinish(File file) { public void onFinish(File file) {
tvContent.setText("下载完成,请及时安装!");
tvOk.setVisibility(VISIBLE);
tvOk.setOnClickListener(v1 -> {
AppUtils.installApk(getContext(), file, getContext().getPackageName() + Constants.DEFAULT_FILE_PROVIDER);
});
} }
}) })
.start(); .start();

View File

@ -18,10 +18,17 @@ import android.widget.Toast;
import androidx.annotation.Nullable; 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.parts.UserParts;
import com.arpa.hndahesudintocctmsdriver.request.OCRRequest;
import com.arpa.hndahesudintocctmsdriver.util.string.StringUtil; import com.arpa.hndahesudintocctmsdriver.util.string.StringUtil;
import com.bumptech.glide.Glide; 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.EsignSdk;
import com.esign.esignsdk.data.AuthEvent;
import com.github.gzuliyujiang.wheelpicker.DatePicker; import com.github.gzuliyujiang.wheelpicker.DatePicker;
import com.github.gzuliyujiang.wheelpicker.annotation.DateMode; import com.github.gzuliyujiang.wheelpicker.annotation.DateMode;
import com.google.gson.Gson; import com.google.gson.Gson;
@ -45,6 +52,8 @@ import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity; import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity;
import com.lxj.xpopup.util.SmartGlideImageLoader; import com.lxj.xpopup.util.SmartGlideImageLoader;
import org.greenrobot.eventbus.Subscribe;
import java.io.File; import java.io.File;
import java.util.List; import java.util.List;
@ -78,13 +87,35 @@ public class AuthQualificationActivity extends BaseAppCompatActivity {
if (CacheGroup.cacheList.get("upload") != null) { if (CacheGroup.cacheList.get("upload") != null) {
ub = gson.fromJson(CacheGroup.cacheList.get("upload"), UploadBean.class); ub = gson.fromJson(CacheGroup.cacheList.get("upload"), UploadBean.class);
if (ub.getCode() == 200) { if (ub.getCode() == 200) {
if ("0".equals(type)) {//从业资格识别党员认证不识别
new OCRRequest().ORCQualificaZj(con, hd, ub.getData().getUrl());
}
url = 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); up_img.setVisibility(View.GONE);
img.setVisibility(View.VISIBLE); img.setVisibility(View.VISIBLE);
} }
CacheGroup.cacheList.remove("upload"); 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) { if (CacheGroup.cacheList.get("isAuthDriverAuthQualification") != null) {
Log.e("is", CacheGroup.cacheList.get("isAuthDriverAuthQualification")); Log.e("is", CacheGroup.cacheList.get("isAuthDriverAuthQualification"));
ib = gson.fromJson(CacheGroup.cacheList.get("isAuthDriverAuthQualification"), IsAuthDriverAuthQualificationBean.class); ib = gson.fromJson(CacheGroup.cacheList.get("isAuthDriverAuthQualification"), IsAuthDriverAuthQualificationBean.class);
@ -101,6 +132,7 @@ public class AuthQualificationActivity extends BaseAppCompatActivity {
BaseBean bb = gson.fromJson(CacheGroup.cacheList.get("driverAuthQualification"), BaseBean.class); BaseBean bb = gson.fromJson(CacheGroup.cacheList.get("driverAuthQualification"), BaseBean.class);
if (bb.getCode() == 200) { if (bb.getCode() == 200) {
// initAuth(); // initAuth();
isAuth = true;
//判断是否从车辆进来 carId为空从个人认证进来需跳转实名认证不为空车辆信息进入需跳转车辆照片 //判断是否从车辆进来 carId为空从个人认证进来需跳转实名认证不为空车辆信息进入需跳转车辆照片
if (TextUtils.isEmpty(carId)) { if (TextUtils.isEmpty(carId)) {
//从业资格证->实名认证 //从业资格证->实名认证
@ -112,7 +144,6 @@ public class AuthQualificationActivity extends BaseAppCompatActivity {
}, 3000); }, 3000);
} }
} else { } else {
finish();
if (isOverCar) {//从业资格证=道路运输许可证 if (isOverCar) {//从业资格证=道路运输许可证
Intent in = new Intent(con, PhotoCarActivity.class); Intent in = new Intent(con, PhotoCarActivity.class);
in.putExtra("type", 3); in.putExtra("type", 3);
@ -123,10 +154,10 @@ public class AuthQualificationActivity extends BaseAppCompatActivity {
in.putExtra("type", 3); in.putExtra("type", 3);
con.startActivity(in); con.startActivity(in);
} }
finish();
} }
Toast.makeText(con, "资格证上传成功", Toast.LENGTH_SHORT).show(); Toast.makeText(con, "资格证上传成功", Toast.LENGTH_SHORT).show();
} else { } else {
Toast.makeText(con, bb.getMsg(), Toast.LENGTH_SHORT).show(); Toast.makeText(con, bb.getMsg(), Toast.LENGTH_SHORT).show();
@ -155,6 +186,7 @@ public class AuthQualificationActivity extends BaseAppCompatActivity {
// finish(); // finish();
EsignSdk.getInstance().startH5Activity(act, StringUtil.isNull(String.valueOf(bb.getData()), "")); EsignSdk.getInstance().startH5Activity(act, StringUtil.isNull(String.valueOf(bb.getData()), ""));
} else { } else {
finish();
Toast.makeText(con, bb.getMsg(), Toast.LENGTH_LONG).show(); Toast.makeText(con, bb.getMsg(), Toast.LENGTH_LONG).show();
}//Log.e("url",CacheGroup.cacheList.get("authUrl")); }//Log.e("url",CacheGroup.cacheList.get("authUrl"));
CacheGroup.cacheList.remove("authUrl"); CacheGroup.cacheList.remove("authUrl");
@ -229,6 +261,11 @@ public class AuthQualificationActivity extends BaseAppCompatActivity {
gia.showPopueWindow(this); gia.showPopueWindow(this);
} }
}); });
up_img.setOnClickListener(v -> {
if (!isAuth) {
gia.showPopueWindow(this);
}
});
img.setOnClickListener(v -> { img.setOnClickListener(v -> {
if (!"".equals(url)) { if (!"".equals(url)) {
new XPopup.Builder(con).asImageViewer(img, url, new SmartGlideImageLoader(R.mipmap.ic_launcher_round)).show(); new XPopup.Builder(con).asImageViewer(img, url, new SmartGlideImageLoader(R.mipmap.ic_launcher_round)).show();
@ -238,19 +275,21 @@ public class AuthQualificationActivity extends BaseAppCompatActivity {
} }
}); });
value2.setOnClickListener(v -> { value2.setOnClickListener(v -> {
if (!isAuth) {
DatePicker picker = new DatePicker(this); DatePicker picker = new DatePicker(this);
picker.setBodyWidth(300); picker.setBodyWidth(300);
picker.setOnDatePickedListener((year, month, day) -> value2.setText(year + "-" + month + "-" + day)); picker.setOnDatePickedListener((year, month, day) -> value2.setText(year + "-" + month + "-" + day));
picker.getWheelLayout().setDateMode(DateMode.YEAR_MONTH_DAY); picker.getWheelLayout().setDateMode(DateMode.YEAR_MONTH_DAY);
picker.getWheelLayout().setDateLabel("", "", ""); picker.getWheelLayout().setDateLabel("", "", "");
picker.show(); picker.show();
}
}); });
submit.setOnClickListener(v -> { submit.setOnClickListener(v -> {
if (!isAuth) { if (!isAuth) {
String id = value1.getText() + ""; String id = value1.getText() + "";
String date = value2.getText() + ""; String date = value2.getText() + "";
if ("0".equals(type)) { if ("0".equals(type)) {
if (!"".equals(id) && !"".equals(date) && !"".equals(url)) { if (!"".equals(date) && !"".equals(url)) {
new AuthRequest().driverAuthQualification(con, hd, id, ub.getData().getId(), date); new AuthRequest().driverAuthQualification(con, hd, id, ub.getData().getId(), date);
} else { } else {
Toast.makeText(con, "请补充证件信息", Toast.LENGTH_SHORT).show(); Toast.makeText(con, "请补充证件信息", Toast.LENGTH_SHORT).show();
@ -286,7 +325,6 @@ public class AuthQualificationActivity extends BaseAppCompatActivity {
tvSkip.setOnClickListener(v -> { tvSkip.setOnClickListener(v -> {
if (type.equals("0")) { if (type.equals("0")) {
// finish(); // finish();
if (key) { if (key) {
@ -334,13 +372,13 @@ public class AuthQualificationActivity extends BaseAppCompatActivity {
value2.setText(ib.getData().getQualificationCertificateValidity()); value2.setText(ib.getData().getQualificationCertificateValidity());
up_img.setVisibility(View.GONE); up_img.setVisibility(View.GONE);
img.setVisibility(View.VISIBLE); img.setVisibility(View.VISIBLE);
Glide.with(con).load(url).into(img); ImageLoader.getInstance().loadImage(con,url,img);
upload_img.setText("已上传"); upload_img.setText("已上传");
} else { } else {
submit.setBackgroundResource(R.drawable.bg_btn_grey); submit.setBackgroundResource(R.drawable.bg_btn_grey);
isAuth = true; isAuth = true;
url = userBean.getData().getPartyMemberUrl(); url = userBean.getData().getPartyMemberUrl();
Glide.with(con).load(url).into(img); ImageLoader.getInstance().loadImage(con,url,img);
up_img.setVisibility(View.GONE); up_img.setVisibility(View.GONE);
img.setVisibility(View.VISIBLE); img.setVisibility(View.VISIBLE);
upload_img.setText("已上传"); upload_img.setText("已上传");
@ -374,4 +412,31 @@ public class AuthQualificationActivity extends BaseAppCompatActivity {
} }
} }
@Subscribe
public void processResult(AuthEvent auth) {
//添加实名/意愿/签署完成之后的逻辑
Log.e("-回调信息-", auth.result);
JSONObject jsonObject = JSON.parseObject(auth.result);
if ("success".equalsIgnoreCase(jsonObject.getString("res"))) {
if ("sign".equalsIgnoreCase(jsonObject.getString("key"))) {
Toast.makeText(con, "签署场景成功", Toast.LENGTH_SHORT).show();
} else if ("realName".equalsIgnoreCase(jsonObject.getString("key"))) {
Toast.makeText(con, "实名认证成功", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(con, "意愿认证成功", Toast.LENGTH_SHORT).show();
}
finish();
} else {
if ("sign".equalsIgnoreCase(jsonObject.getString("key"))) {
Toast.makeText(con, "签署场景失败", Toast.LENGTH_SHORT).show();
} else if ("realName".equalsIgnoreCase(jsonObject.getString("key"))) {
Toast.makeText(con, "实名认证失败", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(con, "意愿认证失败", Toast.LENGTH_SHORT).show();
}
EsignSdk.getInstance().finishH5Activity();
finish();
}
}
} }

View File

@ -0,0 +1,62 @@
package com.arpa.hndahesudintocctmsdriver.ui.auth;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import androidx.annotation.Nullable;
import com.arpa.hndahesudintocctmsdriver.R;
import com.arpa.hndahesudintocctmsdriver.event.PersonEvent;
import com.arpa.hndahesudintocctmsdriver.ui.MainActivity;
import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity;
import com.dahe.mylibrary.utils.ActivityUtils;
import org.greenrobot.eventbus.EventBus;
/**
* @ClassName FaceSuccActivity
* @Author john
* @Date 2024/12/2 10:27
* @Description TODO
*/
public class FaceSuccActivity extends BaseAppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
StateStyleUtil.stateTextColor(this);
setContentView(R.layout.activity_face_succ_result);
con = this;
initView(null);
Button btnHome = findViewById(R.id.btnHome);
Button btnAddCar = findViewById(R.id.btnAddCar);
boolean isGoCar = getIntent().getBooleanExtra("isGoCar", false);
if (isGoCar) {
btnHome.setText("返回首页");
btnAddCar.setVisibility(View.VISIBLE);
} else {
btnHome.setText("返回");
btnAddCar.setVisibility(View.GONE);
}
btnHome.setOnClickListener(v -> {
finish();
});
btnAddCar.setOnClickListener(v -> {
Intent in = new Intent(con, CertificatesActivity.class);
in.putExtra("index", 2);
startActivity(in);
finish();
});
}
@Override
protected void onPause() {
super.onPause();
EventBus.getDefault().post(new PersonEvent("刷脸成功"));
}
}

View File

@ -1,9 +1,14 @@
package com.arpa.hndahesudintocctmsdriver.ui.auth; package com.arpa.hndahesudintocctmsdriver.ui.auth;
import static com.sdk.base.framework.utils.app.AppUtils.getPackageName;
import android.Manifest;
import android.content.Intent; import android.content.Intent;
import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Message; import android.os.Message;
import android.provider.Settings;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.widget.ImageView; import android.widget.ImageView;
@ -16,9 +21,15 @@ import androidx.annotation.Nullable;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.arpa.hndahesudintocctmsdriver.H5Activity; import com.arpa.hndahesudintocctmsdriver.H5Activity;
import com.arpa.hndahesudintocctmsdriver.H5Activity2;
import com.arpa.hndahesudintocctmsdriver.event.HomeEvent; import com.arpa.hndahesudintocctmsdriver.event.HomeEvent;
import com.arpa.hndahesudintocctmsdriver.event.PersonEvent; 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.bumptech.glide.Glide;
import com.dahe.mylibrary.utils.ActivityUtils;
import com.dahe.mylibrary.utils.ImageLoader;
import com.esign.esignsdk.EsignSdk; import com.esign.esignsdk.EsignSdk;
import com.esign.esignsdk.data.AuthEvent; import com.esign.esignsdk.data.AuthEvent;
import com.google.gson.Gson; import com.google.gson.Gson;
@ -42,6 +53,7 @@ import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants;
import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity; import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity;
import com.lxj.xpopup.util.SmartGlideImageLoader; import com.lxj.xpopup.util.SmartGlideImageLoader;
import com.permissionx.guolindev.PermissionX;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.Subscribe;
@ -65,15 +77,15 @@ public class PersonalAuthActivity extends BaseAppCompatActivity {
super.msgMethod(m); super.msgMethod(m);
switch (m.what) { switch (m.what) {
case RequsetCodeConstants.SUCCESS: case RequsetCodeConstants.SUCCESS:
if (CacheGroup.cacheList.get("userdata") != null) { if (CacheGroup.cacheList.get("userdata2") != null) {
ub = gson.fromJson(CacheGroup.cacheList.get("userdata"), UserBean.class); ub = gson.fromJson(CacheGroup.cacheList.get("userdata2"), UserBean.class);
if (ub.getCode() == 200) { if (ub.getCode() == 200) {
initView(ub); initView(ub);
SPUtil.insSP(con, "data", "userdata", CacheGroup.cacheList.get("userdata")); SPUtil.insSP(con, "data", "userdata", CacheGroup.cacheList.get("userdata2"));
} else { } else {
Toast.makeText(con, ub.getMsg(), Toast.LENGTH_SHORT).show(); Toast.makeText(con, ub.getMsg(), Toast.LENGTH_SHORT).show();
} }
CacheGroup.cacheList.remove("userdata"); CacheGroup.cacheList.remove("userdata2");
} }
if (CacheGroup.cacheList.get("upload") != null) { if (CacheGroup.cacheList.get("upload") != null) {
upb = gson.fromJson(CacheGroup.cacheList.get("upload"), UploadBean.class); upb = gson.fromJson(CacheGroup.cacheList.get("upload"), UploadBean.class);
@ -98,11 +110,18 @@ public class PersonalAuthActivity extends BaseAppCompatActivity {
BaseBean bb = gson.fromJson(CacheGroup.cacheList.get("authUrl"), BaseBean.class); BaseBean bb = gson.fromJson(CacheGroup.cacheList.get("authUrl"), BaseBean.class);
if (bb.getCode() == 200) { if (bb.getCode() == 200) {
// Intent intent = new Intent(this, H5Activity.class); Intent intent = new Intent(this, H5Activity.class);
// intent.putExtra("url", (String) bb.getData()); intent.putExtra("url", (String) bb.getData());
// intent.putExtra("view_file", false); intent.putExtra("view_file", false);
// startActivity(intent); // intent.putExtra("isGoCar", true);
EsignSdk.getInstance().startH5Activity(act, StringUtil.isNull(String.valueOf(bb.getData()), "")); 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 { } else {
Toast.makeText(con, bb.getMsg(), Toast.LENGTH_LONG).show(); Toast.makeText(con, bb.getMsg(), Toast.LENGTH_LONG).show();
}//Log.e("url",CacheGroup.cacheList.get("authUrl")); }//Log.e("url",CacheGroup.cacheList.get("authUrl"));
@ -168,18 +187,45 @@ public class PersonalAuthActivity extends BaseAppCompatActivity {
// startActivityForResult(in, 12); // startActivityForResult(in, 12);
//EsignSdk.getInstance().startH5Activity(act,"https://smlh5.esign.cn/usercenterFront/oemAuth/v3/realName/index?contextKey=b7b103b15b866ec4c72beef1dfe20828&appId=7438873235"); //EsignSdk.getInstance().startH5Activity(act,"https://smlh5.esign.cn/usercenterFront/oemAuth/v3/realName/index?contextKey=b7b103b15b866ec4c72beef1dfe20828&appId=7438873235");
if (key) { if (key) {
// EsignSdk.getInstance().startH5Activity(act, ""); PermissionX.init(this)
.permissions(Manifest.permission.CAMERA)
.request((allGranted, grantedList, deniedList) -> {
if(allGranted) {
key = false; key = false;
new AuthRequest().getAuthUrl(con, hd); new AuthRequest().getAuthUrl(con, hd);
new Handler().postDelayed(() -> { new Handler().postDelayed(() -> {
key = true; key = true;
}, 3000); }, 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);
});
}
});
} }
}); });
//头像 //头像
up_img.setOnClickListener(v -> { up_img.setOnClickListener(v -> {
PermissionUtils.Companion.getInstance().showPermissionMessage(this, "拍摄,媒体查询权限使用说明", "用于拍照或者选择图片用于上传头像功能",
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.CAMERA},
(allGranted, grantedList, deniedList) -> {
if (allGranted) {
gia.showPopueWindow(this); gia.showPopueWindow(this);
} else {
new MessageUtils().showSimCenPop(con, "缺少拍摄,媒体查询权限,将无法为您提供服务,去开启!", "取消", "确认", () -> {
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", getPackageName(), null);
intent.setData(uri);
startActivity(intent);
});
// Toast.makeText(act.getBaseContext(), "请先开启定位权限", Toast.LENGTH_LONG).show();
}
});
}); });
up_head.setOnClickListener(v -> { up_head.setOnClickListener(v -> {
if (ub.getData().getHeadportraitUrl() != null && !ub.getData().getHeadportraitUrl().equals("")) { if (ub.getData().getHeadportraitUrl() != null && !ub.getData().getHeadportraitUrl().equals("")) {
@ -193,10 +239,15 @@ public class PersonalAuthActivity extends BaseAppCompatActivity {
}); });
hyr = new HuoYuanRequset(con, hd); hyr = new HuoYuanRequset(con, hd);
ur = new UserRequset(con, hd); ur = new UserRequset(con, hd);
ur.User();
EventBus.getDefault().register(this); EventBus.getDefault().register(this);
} }
@Override
protected void onStart() {
super.onStart();
ur.User2();
}
@Override @Override
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();
@ -212,7 +263,7 @@ public class PersonalAuthActivity extends BaseAppCompatActivity {
TextView name = findViewById(R.id.rname); TextView name = findViewById(R.id.rname);
name.setText(StringUtil.isNull(ub.getData().getRname(), "未实名")); name.setText(StringUtil.isNull(ub.getData().getRname(), "未实名"));
if (ub.getData().getHeadportraitUrl() != null && !ub.getData().getHeadportraitUrl().equals("")) { 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);
} }
} }
@ -220,7 +271,7 @@ public class PersonalAuthActivity extends BaseAppCompatActivity {
public void personResult(PersonEvent home) { public void personResult(PersonEvent home) {
Log.e("-res-", home.getMessage()); Log.e("-res-", home.getMessage());
if (ur != null) { if (ur != null) {
ur.User(); ur.User2();
} }
} }
@ -276,6 +327,8 @@ public class PersonalAuthActivity extends BaseAppCompatActivity {
Toast.makeText(con, "签署场景成功", Toast.LENGTH_SHORT).show(); Toast.makeText(con, "签署场景成功", Toast.LENGTH_SHORT).show();
} else if ("realName".equalsIgnoreCase(jsonObject.getString("key"))) { } else if ("realName".equalsIgnoreCase(jsonObject.getString("key"))) {
Toast.makeText(con, "实名认证成功", Toast.LENGTH_SHORT).show(); Toast.makeText(con, "实名认证成功", Toast.LENGTH_SHORT).show();
EsignSdk.getInstance().finishH5Activity();
finish();
} else { } else {
Toast.makeText(con, "意愿认证成功", Toast.LENGTH_SHORT).show(); Toast.makeText(con, "意愿认证成功", Toast.LENGTH_SHORT).show();
} }

View File

@ -3,6 +3,7 @@ package com.arpa.hndahesudintocctmsdriver.ui.auth;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.os.Message; import android.os.Message;
import android.text.InputType;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
@ -20,17 +21,25 @@ import com.arpa.hndahesudintocctmsdriver.R;
import com.arpa.hndahesudintocctmsdriver.bean.BaseBean; import com.arpa.hndahesudintocctmsdriver.bean.BaseBean;
import com.arpa.hndahesudintocctmsdriver.bean.CarDelBean; import com.arpa.hndahesudintocctmsdriver.bean.CarDelBean;
import com.arpa.hndahesudintocctmsdriver.bean.IsAuthDriverAuthQualificationBean; 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.bean.UploadBean;
import com.arpa.hndahesudintocctmsdriver.request.AuthRequest; import com.arpa.hndahesudintocctmsdriver.request.AuthRequest;
import com.arpa.hndahesudintocctmsdriver.request.OCRRequest;
import com.arpa.hndahesudintocctmsdriver.request.UserRequset; import com.arpa.hndahesudintocctmsdriver.request.UserRequset;
import com.arpa.hndahesudintocctmsdriver.ui.my.WoDeFragment; 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.cache.CacheGroup;
import com.arpa.hndahesudintocctmsdriver.util.file.ImageFileCompressUtil; import com.arpa.hndahesudintocctmsdriver.util.file.ImageFileCompressUtil;
import com.arpa.hndahesudintocctmsdriver.util.img.GetImageAlert; import com.arpa.hndahesudintocctmsdriver.util.img.GetImageAlert;
import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity; import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView; 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; import com.google.gson.Gson;
import com.luck.picture.lib.PictureSelector; import com.luck.picture.lib.PictureSelector;
import com.luck.picture.lib.config.PictureConfig; import com.luck.picture.lib.config.PictureConfig;
@ -49,23 +58,24 @@ import java.util.List;
*/ */
public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnClickListener { public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnClickListener {
private String[] titles = {"车辆照片", "NFC照片", "车辆登记证书", "道路运输许可证"}; private String[] titles = {"车辆照片", "NFC照片", "车辆登记证书", "道路运输许可证", "车辆交强险"};
private String[] name1 = {"车辆照片", "NFC照片", "车辆登记证书照片", "道路运输许可证照片"}; private String[] name1 = {"车辆照片", "NFC照片", "车辆登记证书照片", "道路运输许可证照片", "车辆交强险照片"};
private String[] name2 = {"请上传车辆照片", "请上传NFC照片", "请上传车辆登记证书照片", "请上传道路运输许可证照片"}; private String[] name2 = {"请上传车辆照片", "请上传NFC照片", "请上传车辆登记证书照片", "请上传道路运输许可证照片", "请上传车辆交强险照片"};
private Boolean[] isShowEdit = {false, false, true, true}; private Boolean[] isShowEdit = {false, false, true, true, true};
private Boolean[] isShowSkip = {true, false, false, true}; private Boolean[] isShowSkip = {true, false, false, true, true};
private String[] tips = { private String[] tips = {
"", "",
"*注意: 没有粘贴NFC芯片的车辆无需上传,可直接跳过", "*注意: 没有粘贴NFC芯片的车辆无需上传,可直接跳过",
"*注意: 没有可直接跳过,等候下次上传", "*注意: 没有可直接跳过,等候下次上传",
"*注意: 4.5吨以下车辆不需要上传,可直接跳过"}; "*注意: 4.5吨以下车辆不需要上传,可直接跳过",
""};
private BaseRecyclerView brv; private BaseRecyclerView brv;
private ImageView img; private ImageView img;
private TextView title1, title2, title3, zjimg_name, upload_img, tvTips, tvSkip; private TextView title1, title2, title3, zjimg_name, upload_img, tvTips, tvSkip, value2;
private EditText value1; private EditText value1;
private LinearLayout llInfo; private LinearLayout llInfo, llDate;
private RelativeLayout up_img; private RelativeLayout up_img;
private Button submit; private Button submit;
@ -75,7 +85,9 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
private int type;//页面类型 private int type;//页面类型
private String path, carId, url;//图片路径 private String path, carId, url;//图片路径
private boolean carExist = false;
private GetImageAlert gia = new GetImageAlert(); private GetImageAlert gia = new GetImageAlert();
private CustomDialog customDialog;
@Override @Override
public void msgMethod(Message m) { public void msgMethod(Message m) {
@ -92,6 +104,23 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
} }
CacheGroup.cacheList.remove(WoDeFragment.VEHICLE_DEL); 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) { if (CacheGroup.cacheList.get("upload") != null) {
@ -107,16 +136,31 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
new AuthRequest().saveCarImg(con, hd, carId, ub.getData().getId(), 5); new AuthRequest().saveCarImg(con, hd, carId, ub.getData().getId(), 5);
break; break;
case 3: case 3:
//道路运输证ocr识别
new OCRRequest().ORCRoadLicZj(con, hd, ub.getData().getUrl());
new AuthRequest().saveCarImg(con, hd, carId, ub.getData().getId(), 2); new AuthRequest().saveCarImg(con, hd, carId, ub.getData().getId(), 2);
break; 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(); url = ub.getData().getUrl();
Glide.with(con).load(url).into(img); // Glide.with(con).load(url).into(img);
ImageLoader.getInstance().loadImage(con,path,img);
CacheGroup.cacheList.remove("upload"); CacheGroup.cacheList.remove("upload");
} }
if (CacheGroup.cacheList.get("saveCarImg") != null) { 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); BaseBean bb = gson.fromJson(CacheGroup.cacheList.get("saveCarImg"), BaseBean.class);
if (bb.getCode() == 200) { if (bb.getCode() == 200) {
switch (type) { switch (type) {
@ -130,7 +174,11 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
Toast.makeText(con, "上传车辆登记证书照片", Toast.LENGTH_SHORT).show(); Toast.makeText(con, "上传车辆登记证书照片", Toast.LENGTH_SHORT).show();
break; break;
case 3: 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();
break; break;
} }
} else { } else {
@ -142,11 +190,11 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
Log.e("is", CacheGroup.cacheList.get("saveCarRegisterNo")); Log.e("is", CacheGroup.cacheList.get("saveCarRegisterNo"));
IsAuthDriverAuthQualificationBean ib = gson.fromJson(CacheGroup.cacheList.get("saveCarRegisterNo"), IsAuthDriverAuthQualificationBean.class); IsAuthDriverAuthQualificationBean ib = gson.fromJson(CacheGroup.cacheList.get("saveCarRegisterNo"), IsAuthDriverAuthQualificationBean.class);
if (ib.getCode() == 200) { if (ib.getCode() == 200) {
finish();
Intent in = new Intent(con, PhotoCarActivity.class); Intent in = new Intent(con, PhotoCarActivity.class);
in.putExtra("type", 3); in.putExtra("type", 3);
in.putExtra("carId", carId); in.putExtra("carId", carId);
con.startActivity(in); con.startActivity(in);
finish();
} else { } else {
Toast.makeText(con, ib.getMsg(), Toast.LENGTH_SHORT).show(); Toast.makeText(con, ib.getMsg(), Toast.LENGTH_SHORT).show();
} }
@ -158,14 +206,13 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
IsAuthDriverAuthQualificationBean ib = gson.fromJson(CacheGroup.cacheList.get("saveCarRoadLicenseNo"), IsAuthDriverAuthQualificationBean.class); IsAuthDriverAuthQualificationBean ib = gson.fromJson(CacheGroup.cacheList.get("saveCarRoadLicenseNo"), IsAuthDriverAuthQualificationBean.class);
if (ib.getCode() == 200) { if (ib.getCode() == 200) {
//判断是否需要跳转挂车行驶证页面 //判断是否需要跳转挂车行驶证页面
if (!"".equals(carId) ){ if (!"".equals(carId) && cdb.getData() != null) {
if (cdb.getData().getIsTrailer() == 1&&!TextUtils.isEmpty(cdb.getData().getTrailerResVo().getCarNumber())){//需要挂车并且传过挂车直接结束 if (cdb.getData().getIsTrailer() == 1 && cdb.getData().getTrailerResVo() != null && !TextUtils.isEmpty(cdb.getData().getTrailerResVo().getCarNumber())) {//需要挂车并且传过挂车直接结束
finish();
Intent in = new Intent(con, AddCarSuccActivity.class); Intent in = new Intent(con, AddCarSuccActivity.class);
in.putExtra("type", 3); in.putExtra("type", 3);
con.startActivity(in); con.startActivity(in);
}else if(cdb.getData().getIsTrailer() == 1&&TextUtils.isEmpty(cdb.getData().getTrailerResVo().getCarNumber())){//需要挂车没传过挂车到挂车页面
finish(); finish();
} else if (cdb.getData().getIsTrailer() == 1 && cdb.getData().getTrailerResVo() != null && TextUtils.isEmpty(cdb.getData().getTrailerResVo().getCarNumber())) {//需要挂车没传过挂车到挂车页面
Intent in = new Intent(con, CertificatesActivity.class); Intent in = new Intent(con, CertificatesActivity.class);
in.putExtra("index", 3); in.putExtra("index", 3);
in.putExtra("carId", carId); in.putExtra("carId", carId);
@ -173,6 +220,7 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
in.putExtra("cheData", new Gson().toJson(cdb)); in.putExtra("cheData", new Gson().toJson(cdb));
} }
startActivity(in); startActivity(in);
finish();
} else if (cdb.getData().getIsTrailer() == 0) {//不需要挂车 } else if (cdb.getData().getIsTrailer() == 0) {//不需要挂车
if ("1".equals(cdb.getData().getNeedUpQCPhoto())) {//需要从业资格证 if ("1".equals(cdb.getData().getNeedUpQCPhoto())) {//需要从业资格证
Intent in = new Intent(con, AuthQualificationActivity.class); Intent in = new Intent(con, AuthQualificationActivity.class);
@ -181,14 +229,17 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
in.putExtra("isOverCar", false); in.putExtra("isOverCar", false);
startActivity(in); startActivity(in);
} else { } else {
finish();
Intent in = new Intent(con, AddCarSuccActivity.class); Intent in = new Intent(con, AddCarSuccActivity.class);
in.putExtra("type", 3); in.putExtra("type", 3);
con.startActivity(in); con.startActivity(in);
finish();
} }
} }
} else {
finish();
} }
// if (!"".equals(carId) && cdb.getData().getIsTrailer() == 1) { // if (!"".equals(carId) && cdb.getData().getIsTrailer() == 1) {
// if (!"".equals(carId)) { // if (!"".equals(carId)) {
// finish(); // finish();
@ -213,8 +264,23 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
} }
CacheGroup.cacheList.remove("saveCarRoadLicenseNo"); CacheGroup.cacheList.remove("saveCarRoadLicenseNo");
} }
if (CacheGroup.cacheList.get("saveTrafficInsurance") != null) {
Log.e("is", CacheGroup.cacheList.get("saveTrafficInsurance"));
IsAuthDriverAuthQualificationBean ddb = gson.fromJson(CacheGroup.cacheList.get("saveTrafficInsurance"), IsAuthDriverAuthQualificationBean.class);
if (ddb.getCode() == 200) {
Toast.makeText(con, "保存成功", Toast.LENGTH_SHORT).show();
finish();
} else {
Toast.makeText(con, ddb.getMsg(), Toast.LENGTH_SHORT).show();
}
CacheGroup.cacheList.remove("saveTrafficInsurance");
}
break; break;
case ImageFileCompressUtil.COMPRESS_SUCCESS: case ImageFileCompressUtil.COMPRESS_SUCCESS:
customDialog = new CustomDialog(con, "加载中...");
customDialog.show();
path = (String) m.obj; path = (String) m.obj;
new AuthRequest().upload(con, hd, new File(path)); new AuthRequest().upload(con, hd, new File(path));
break; break;
@ -233,6 +299,7 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
title1 = findViewById(R.id.title1); title1 = findViewById(R.id.title1);
title2 = findViewById(R.id.title2); title2 = findViewById(R.id.title2);
title3 = findViewById(R.id.name1); title3 = findViewById(R.id.name1);
value2 = findViewById(R.id.value2);
up_img = findViewById(R.id.up_img); up_img = findViewById(R.id.up_img);
img = findViewById(R.id.img); img = findViewById(R.id.img);
zjimg_name = findViewById(R.id.zjimg_name); zjimg_name = findViewById(R.id.zjimg_name);
@ -240,6 +307,7 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
tvTips = findViewById(R.id.tvTips); tvTips = findViewById(R.id.tvTips);
value1 = findViewById(R.id.value1); value1 = findViewById(R.id.value1);
llInfo = findViewById(R.id.llInfo); llInfo = findViewById(R.id.llInfo);
llDate = findViewById(R.id.llDate);
tvSkip = findViewById(R.id.tvSkip); tvSkip = findViewById(R.id.tvSkip);
submit = findViewById(R.id.submit); submit = findViewById(R.id.submit);
@ -247,10 +315,12 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
submit.setOnClickListener(this); submit.setOnClickListener(this);
upload_img.setOnClickListener(this); upload_img.setOnClickListener(this);
img.setOnClickListener(this); img.setOnClickListener(this);
value2.setOnClickListener(this);
type = getIntent().getExtras().getInt("type"); type = getIntent().getExtras().getInt("type");
carId = getIntent().getExtras().getString("carId", ""); carId = getIntent().getExtras().getString("carId", "");
carExist = getIntent().getExtras().getBoolean("carExist", false);
changeViewByType(type); changeViewByType(type);
ur = new UserRequset(con, hd); ur = new UserRequset(con, hd);
@ -307,6 +377,14 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
case R.id.img: case R.id.img:
showBigImg(); showBigImg();
break; break;
case R.id.value2:
DatePicker picker = new DatePicker(this);
picker.setBodyWidth(300);
picker.setOnDatePickedListener((year, month, day) -> value2.setText(year + "-" + month + "-" + day));
picker.getWheelLayout().setDateMode(DateMode.YEAR_MONTH_DAY);
picker.getWheelLayout().setDateLabel("", "", "");
picker.show();
break;
} }
} }
@ -315,6 +393,10 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
* 展示大图片 * 展示大图片
*/ */
private void showBigImg() { private void showBigImg() {
if ((type == 3 && TextUtils.isEmpty(cdb.getData().getRoadLicensePhoto())) || (type == 4 && TextUtils.isEmpty(cdb.getData().getPolicyPhotoUrl()))) {
choicePhoto();
return;
}
switch (type) { switch (type) {
case 0: case 0:
if (cdb.getData().getRoadLicensePhoto() != null && !cdb.getData().getCarImage().equals("")) { if (cdb.getData().getRoadLicensePhoto() != null && !cdb.getData().getCarImage().equals("")) {
@ -356,8 +438,21 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
// .asImageViewer(img, cdb.getData().getRoadLicensePhoto(), true, -1, -1, 50, false, new CertificatesActivity.ImageLoader()) // .asImageViewer(img, cdb.getData().getRoadLicensePhoto(), true, -1, -1, 50, false, new CertificatesActivity.ImageLoader())
// .show(); // .show();
break;
} }
break;
case 4:
if (cdb.getData().getPolicyPhotoUrl() != null && !"".equals(cdb.getData().getPolicyPhotoUrl())) {
//roadLicensePhoto
new XPopup.Builder(con)
.asImageViewer(img, cdb.getData().getPolicyPhotoUrl(), new SmartGlideImageLoader(R.mipmap.ic_launcher))
.show();
// new XPopup.Builder(con)
// .asImageViewer(img, cdb.getData().getRoadLicensePhoto(), true, -1, -1, 50, false, new CertificatesActivity.ImageLoader())
// .show();
}
break;
} }
} }
@ -407,6 +502,15 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
} }
new AuthRequest().saveCarRoadLicenseNo(con, hd, carId, s1); new AuthRequest().saveCarRoadLicenseNo(con, hd, carId, s1);
break; break;
case 4:
String s2 = value1.getText().toString();
String v2 = value2.getText().toString();
if (TextUtils.isEmpty(s2) || TextUtils.isEmpty(v2)) {
Toast.makeText(this, "请补充证件信息", Toast.LENGTH_SHORT).show();
return;
}
new AuthRequest().saveTrafficInsurance(con, hd, carId, v2, s2);
break;
} }
} }
@ -417,27 +521,38 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
if (null != cdb) { if (null != cdb) {
if (0 == type) { if (0 == type) {
if (!TextUtils.isEmpty(cdb.getData().getCarImage())) { 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); submit.setBackgroundResource(R.drawable.bg_btn_grey);
upload_img.setText("已上传"); upload_img.setText("已上传");
} }
} else if (1 == type) { } else if (1 == type) {
if (!TextUtils.isEmpty(cdb.getData().getNfcImage())) { 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); submit.setBackgroundResource(R.drawable.bg_btn_grey);
upload_img.setText("已上传"); upload_img.setText("已上传");
} }
} else if (2 == type) { } else if (2 == type) {
if (!TextUtils.isEmpty(cdb.getData().getRegisterImage())) { 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()); value1.setText(cdb.getData().getRegisterNo());
submit.setBackgroundResource(R.drawable.bg_btn_grey); submit.setBackgroundResource(R.drawable.bg_btn_grey);
upload_img.setText("已上传"); upload_img.setText("已上传");
} }
} else if (3 == type) { } else if (3 == type) {
if (!TextUtils.isEmpty(cdb.getData().getRoadLicensePhoto())) { 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()); value1.setText(cdb.getData().getRoadLicense());
if (!carExist) {
submit.setBackgroundResource(R.drawable.bg_btn_grey);
upload_img.setText("已上传");
}
}
} else if (4 == type) {
if (!TextUtils.isEmpty(cdb.getData().getPolicyPhotoUrl())) {
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); submit.setBackgroundResource(R.drawable.bg_btn_grey);
upload_img.setText("已上传"); upload_img.setText("已上传");
} }
@ -523,6 +638,13 @@ public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnCl
tvTips.setText(tips[type]); tvTips.setText(tips[type]);
tvSkip.setVisibility(isShowSkip[type] ? View.GONE : View.VISIBLE); tvSkip.setVisibility(isShowSkip[type] ? View.GONE : View.VISIBLE);
llInfo.setVisibility(isShowEdit[type] ? View.VISIBLE : View.GONE); 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);
}
} }

View File

@ -14,7 +14,10 @@ import android.widget.Toast;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.arpa.hndahesudintocctmsdriver.event.RefreshCarListEvent;
import com.arpa.hndahesudintocctmsdriver.event.VehicleEvent; import com.arpa.hndahesudintocctmsdriver.event.VehicleEvent;
import com.arpa.hndahesudintocctmsdriver.util.alert.ToastUtil;
import com.dahe.mylibrary.utils.ToastUtils;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.luck.picture.lib.PictureSelector; import com.luck.picture.lib.PictureSelector;
import com.luck.picture.lib.config.PictureConfig; import com.luck.picture.lib.config.PictureConfig;
@ -38,6 +41,7 @@ import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
@ -51,6 +55,7 @@ public class VehicleAuthActivity extends BaseAppCompatActivity {
public String carId=""; public String carId="";
public static final String DEL_CAR="delete_che"; public static final String DEL_CAR="delete_che";
public static final String CAR_AUDIO="CAR_AUDIO"; public static final String CAR_AUDIO="CAR_AUDIO";
public static final String APP_INFO="APP_INFO";
private int submitIndex=0; private int submitIndex=0;
private BaseBean bb; private BaseBean bb;
private ImageView show_img; private ImageView show_img;
@ -65,7 +70,7 @@ public class VehicleAuthActivity extends BaseAppCompatActivity {
CacheGroup.cacheList.remove(CAR_AUDIO); CacheGroup.cacheList.remove(CAR_AUDIO);
} }
if(CacheGroup.cacheList.get(WoDeFragment.VEHICLE_DEL)!=null){ if(CacheGroup.cacheList.get(WoDeFragment.VEHICLE_DEL)!=null){
Log.e("--res--",CacheGroup.cacheList.get(WoDeFragment.VEHICLE_DEL)); Log.e("--res--lijia",CacheGroup.cacheList.get(WoDeFragment.VEHICLE_DEL));
cdb=gson.fromJson(CacheGroup.cacheList.get(WoDeFragment.VEHICLE_DEL), CarDelBean.class); cdb=gson.fromJson(CacheGroup.cacheList.get(WoDeFragment.VEHICLE_DEL), CarDelBean.class);
if(cdb.getCode()==200){ if(cdb.getCode()==200){
initView(null); initView(null);
@ -79,6 +84,8 @@ public class VehicleAuthActivity extends BaseAppCompatActivity {
bb=gson.fromJson(CacheGroup.cacheList.get(DEL_CAR),BaseBean.class); bb=gson.fromJson(CacheGroup.cacheList.get(DEL_CAR),BaseBean.class);
if (bb.getCode()==200) { if (bb.getCode()==200) {
Toast.makeText(con,"删除成功",Toast.LENGTH_SHORT).show(); Toast.makeText(con,"删除成功",Toast.LENGTH_SHORT).show();
RefreshCarListEvent ve = new RefreshCarListEvent("");
EventBus.getDefault().post(ve);
finish(); finish();
}else{ }else{
Toast.makeText(con,"删除失败:"+bb.getMsg(),Toast.LENGTH_SHORT).show(); Toast.makeText(con,"删除失败:"+bb.getMsg(),Toast.LENGTH_SHORT).show();
@ -166,6 +173,13 @@ public class VehicleAuthActivity extends BaseAppCompatActivity {
private GetImageAlert gia=new GetImageAlert(); private GetImageAlert gia=new GetImageAlert();
private boolean key1,key2,key3=false; private boolean key1,key2,key3=false;
@Override
protected void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
}
@Override @Override
public void initView(Object obj) { public void initView(Object obj) {
super.initView(obj); super.initView(obj);
@ -207,11 +221,12 @@ public class VehicleAuthActivity extends BaseAppCompatActivity {
RelativeLayout r5=v.findViewById(R.id.r5); RelativeLayout r5=v.findViewById(R.id.r5);
RelativeLayout r6=v.findViewById(R.id.r6); RelativeLayout r6=v.findViewById(R.id.r6);
RelativeLayout r7=v.findViewById(R.id.r7); RelativeLayout r7=v.findViewById(R.id.r7);
RelativeLayout r8=v.findViewById(R.id.r8);
View vs1=v.findViewById(R.id.vs1); View vs1=v.findViewById(R.id.vs1);
View vs2=v.findViewById(R.id.vs2); View vs2=v.findViewById(R.id.vs2);
r4.setVisibility(View.GONE); r4.setVisibility(View.GONE);
r5.setVisibility(View.GONE); r5.setVisibility(View.GONE);
vs1.setVisibility(View.GONE); // vs1.setVisibility(View.GONE);
vs2.setVisibility(View.GONE); vs2.setVisibility(View.GONE);
if(!"".equals(carId) && cdb.getData().getIsTrailer()==1){ if(!"".equals(carId) && cdb.getData().getIsTrailer()==1){
r4.setVisibility(View.VISIBLE); r4.setVisibility(View.VISIBLE);
@ -301,6 +316,17 @@ public class VehicleAuthActivity extends BaseAppCompatActivity {
Toast.makeText(con,"请先绑定挂车",Toast.LENGTH_SHORT).show(); Toast.makeText(con,"请先绑定挂车",Toast.LENGTH_SHORT).show();
} }
}); });
r8.setOnClickListener(v1->{
if(!"".equals(carId)){
Intent in = new Intent(con, PhotoCarActivity.class);
in.putExtra("type", 4);
in.putExtra("carId", carId);
con.startActivity(in);
}else{
Toast.makeText(con,"请先绑定行驶证",Toast.LENGTH_SHORT).show();
}
});
del.setOnClickListener(v13 -> { del.setOnClickListener(v13 -> {
new XPopup.Builder(con) new XPopup.Builder(con)
.isDestroyOnDismiss(true) //对于只使用一次的弹窗推荐设置这个 .isDestroyOnDismiss(true) //对于只使用一次的弹窗推荐设置这个
@ -384,7 +410,7 @@ public class VehicleAuthActivity extends BaseAppCompatActivity {
super.onResume(); super.onResume();
} }
@Subscribe @Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
public void processResult(VehicleEvent event) { public void processResult(VehicleEvent event) {
Log.e("-msg-",event.getMessage()); Log.e("-msg-",event.getMessage());
if(!"".equals(event.getMessage())) { if(!"".equals(event.getMessage())) {

View File

@ -1,12 +1,17 @@
package com.arpa.hndahesudintocctmsdriver.ui.home; package com.arpa.hndahesudintocctmsdriver.ui.home;
import static com.sdk.base.framework.utils.app.AppUtils.getPackageName;
import android.Manifest; import android.Manifest;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.graphics.Outline; import android.graphics.Outline;
import android.location.Location; import android.location.Location;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Message; import android.os.Message;
import android.provider.Settings;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.Gravity; import android.view.Gravity;
@ -23,6 +28,7 @@ import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.cardview.widget.CardView; import androidx.cardview.widget.CardView;
import androidx.fragment.app.FragmentActivity;
import com.alct.mdp.MDPLocationCollectionManager; import com.alct.mdp.MDPLocationCollectionManager;
import com.alct.mdp.callback.OnDownloadResultListener; import com.alct.mdp.callback.OnDownloadResultListener;
@ -36,23 +42,34 @@ import com.amap.api.maps.model.LatLng;
import com.amap.api.maps.model.Marker; import com.amap.api.maps.model.Marker;
import com.amap.api.maps.model.MarkerOptions; import com.amap.api.maps.model.MarkerOptions;
import com.amap.api.maps.model.MyLocationStyle; import com.amap.api.maps.model.MyLocationStyle;
import com.arpa.hndahesudintocctmsdriver.bean.BankCardListBean;
import com.arpa.hndahesudintocctmsdriver.bean.DriverExpireBean; import com.arpa.hndahesudintocctmsdriver.bean.DriverExpireBean;
import com.arpa.hndahesudintocctmsdriver.bean.ImageConfig; import com.arpa.hndahesudintocctmsdriver.bean.ImageConfig;
import com.arpa.hndahesudintocctmsdriver.bean.JTT; import com.arpa.hndahesudintocctmsdriver.bean.JTT;
import com.arpa.hndahesudintocctmsdriver.constant.JTTConstant; import com.arpa.hndahesudintocctmsdriver.constant.JTTConstant;
import com.arpa.hndahesudintocctmsdriver.event.HomeEvent; import com.arpa.hndahesudintocctmsdriver.event.HomeEvent;
import com.arpa.hndahesudintocctmsdriver.event.HomeWaybillEvent;
import com.arpa.hndahesudintocctmsdriver.parts.StartOrderParts; import com.arpa.hndahesudintocctmsdriver.parts.StartOrderParts;
import com.arpa.hndahesudintocctmsdriver.report.JTTProcess; import com.arpa.hndahesudintocctmsdriver.report.JTTProcess;
import com.arpa.hndahesudintocctmsdriver.request.WalletRequest;
import com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity; 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.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.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.arpa.hndahesudintocctmsdriver.util.string.StringUtil;
import com.baidu.ocr.ui.camera.CameraActivity;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.dahe.mylibrary.utils.TimeUtil;
import com.dahe.mylibrary.utils.ToastUtils;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.gyf.cactus.Cactus; import com.gyf.cactus.Cactus;
import com.hjq.xtoast.XToast; import com.hjq.xtoast.XToast;
import com.lxj.xpopup.XPopup; import com.lxj.xpopup.XPopup;
import com.lxj.xpopup.core.BasePopupView;
import com.lxj.xpopup.interfaces.OnConfirmListener; import com.lxj.xpopup.interfaces.OnConfirmListener;
import com.arpa.hndahesudintocctmsdriver.R; import com.arpa.hndahesudintocctmsdriver.R;
import com.arpa.hndahesudintocctmsdriver.report.ALProcess; import com.arpa.hndahesudintocctmsdriver.report.ALProcess;
@ -86,6 +103,7 @@ import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants;
import com.arpa.hndahesudintocctmsdriver.util.time.Timer; import com.arpa.hndahesudintocctmsdriver.util.time.Timer;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseFragment; import com.arpa.hndahesudintocctmsdriver.util.view.BaseFragment;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView; import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView;
import com.lxj.xpopup.interfaces.SimpleCallback;
import com.permissionx.guolindev.PermissionX; import com.permissionx.guolindev.PermissionX;
import com.youth.banner.Banner; import com.youth.banner.Banner;
import com.youth.banner.BannerConfig; import com.youth.banner.BannerConfig;
@ -95,10 +113,12 @@ import com.youth.banner.loader.ImageLoader;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.Subscribe;
import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
import pub.devrel.easypermissions.EasyPermissions;
/** /**
* @author hlh * @author hlh
* @version 1.0.0 * @version 1.0.0
@ -119,7 +139,11 @@ public class HomeFragment extends BaseFragment {
private HuoYuanListBean hb; private HuoYuanListBean hb;
private Gson gson = new Gson(); private Gson gson = new Gson();
private CardView btn_news, btn_loadin, btn_update; 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 HuoYuanListBean uab;
private List<Marker> list = new ArrayList<>(); private List<Marker> list = new ArrayList<>();
private HuoYuanListDealBean hdb; private HuoYuanListDealBean hdb;
@ -128,6 +152,10 @@ public class HomeFragment extends BaseFragment {
private ImageConfig ic; private ImageConfig ic;
private DriverExpireBean deb; private DriverExpireBean deb;
private XToast xToast;
private boolean isUpAppShow = false;
@Override @Override
public void msgMethod(Message m) { public void msgMethod(Message m) {
@ -141,6 +169,23 @@ public class HomeFragment extends BaseFragment {
refreshLayout.finishRefresh(500); refreshLayout.finishRefresh(500);
keys = false; 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) { if (CacheGroup.cacheList.get("userdata") != null) {
ub = gson.fromJson(CacheGroup.cacheList.get("userdata"), UserBean.class); ub = gson.fromJson(CacheGroup.cacheList.get("userdata"), UserBean.class);
if (ub.getCode() == 200) { if (ub.getCode() == 200) {
@ -148,13 +193,13 @@ public class HomeFragment extends BaseFragment {
MsgUtil.addHdMsgWat(hd, 33); MsgUtil.addHdMsgWat(hd, 33);
//新用户注册需弹窗提示注册 //新用户注册需弹窗提示注册
if ("0".equals(ub.getData().getRealAuthentication())){ // if ("0".equals(ub.getData().getRealAuthentication())) {
new MessageUtils().showSimCenPop(con, "该司机还未认证,未认证无法接单。是否去注册!", () -> { // new MessageUtils().showSimCenPop(con, "该司机还未认证,未认证无法接单。是否去注册!", () -> {
Intent in=new Intent(con, CertificatesActivity.class); // Intent in = new Intent(con, CertificatesActivity.class);
in.putExtra("index",0); // in.putExtra("index", 0);
startActivity(in); // startActivity(in);
}); // });
} // }
} else { } else {
Toast.makeText(con, ub.getMsg(), Toast.LENGTH_SHORT).show(); Toast.makeText(con, ub.getMsg(), Toast.LENGTH_SHORT).show();
} }
@ -167,9 +212,25 @@ public class HomeFragment extends BaseFragment {
SPUtil.insSP(con, JTTConstant.JTT_DATA_NAME, JTTConstant.JTT_DATA_ORDER_KEY, gson.toJson(sob)); SPUtil.insSP(con, JTTConstant.JTT_DATA_NAME, JTTConstant.JTT_DATA_ORDER_KEY, gson.toJson(sob));
initStart(); initStart();
StartOrderParts.setStartOrder(con, sob); StartOrderParts.setStartOrder(con, sob);
if (sob.getData() != null) { 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()); ur.getJtts(sob.getData().getShippingNoteNumber());
} }
} else {
SPUtils.remove(con, "curWaybillId");
llCurWay.setVisibility(View.GONE);
}
} else { } else {
Toast.makeText(con, sob.getMsg(), Toast.LENGTH_SHORT).show(); Toast.makeText(con, sob.getMsg(), Toast.LENGTH_SHORT).show();
} }
@ -183,6 +244,19 @@ public class HomeFragment extends BaseFragment {
new XPopup.Builder(con) new XPopup.Builder(con)
.dismissOnBackPressed(false) .dismissOnBackPressed(false)
.dismissOnTouchOutside(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())) .asCustom(new UpAppAlert(con, uab.getData().getDownloadUrl(), uab.getData().getContent(), uab.getData().getVersion(), uab.getData().getForce()))
.show(); .show();
} }
@ -202,6 +276,40 @@ public class HomeFragment extends BaseFragment {
if (CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA) != null) { if (CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA) != null) {
DriverAuthDataBean dad = gson.fromJson(CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA), DriverAuthDataBean.class); DriverAuthDataBean dad = gson.fromJson(CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA), DriverAuthDataBean.class);
if (dad.getCode() == 200) { 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)); SPUtil.insSP(con, "data", "authdata", CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA));
if (dad.getData() != null && 100003 == dad.getData().getAuditStatus()) { if (dad.getData() != null && 100003 == dad.getData().getAuditStatus()) {
initAlct(); initAlct();
@ -243,9 +351,15 @@ public class HomeFragment extends BaseFragment {
in.putExtra("url", deb.getData().getIdCardUpdateUrl()); in.putExtra("url", deb.getData().getIdCardUpdateUrl());
} }
} }
if (!"".equals(deb.getData().getDriverLicenseUpdateUrl()) || !"".equals(deb.getData().getIdCardUpdateUrl())) { if (!TextUtils.isEmpty(deb.getData().getDriverLicenseUpdateUrl()) || !TextUtils.isEmpty(deb.getData().getIdCardUpdateUrl()) ||
new XToast<>(act) !TextUtils.isEmpty(deb.getData().getQualificationUpdateUrl()) || !TextUtils.isEmpty(deb.getData().getRoadLicenseUpdateUrl()) ||
.setContentView(R.layout.view_bc) !TextUtils.isEmpty(deb.getData().getInsuranceUpdateUrl())) {
if (xToast == null) {
xToast = new XToast(act);
} else if (xToast != null && xToast.isShow()) {
xToast.cancel();
}
xToast.setContentView(R.layout.view_bc)
// 设置成可拖拽的 // 设置成可拖拽的
.setDraggable() .setDraggable()
// 设置显示时长 // 设置显示时长
@ -260,6 +374,22 @@ public class HomeFragment extends BaseFragment {
// 设置窗口背景阴影强度 // 设置窗口背景阴影强度
//.setBackgroundDimAmount(0.5f) //.setBackgroundDimAmount(0.5f)
.showAsDropDown(home_top, Gravity.BOTTOM, 1200, 1000); .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"); CacheGroup.cacheList.remove("driverExpire");
} }
@ -320,8 +450,8 @@ public class HomeFragment extends BaseFragment {
EventBus.getDefault().register(this); EventBus.getDefault().register(this);
hyr = new HuoYuanRequset(con, hd); hyr = new HuoYuanRequset(con, hd);
ur = new UserRequset(con, hd); ur = new UserRequset(con, hd);
initRefreshLoad();
initView(null); initView(null);
initRefreshLoad();
btn_news.setOnClickListener(v -> { btn_news.setOnClickListener(v -> {
}); });
@ -338,20 +468,13 @@ public class HomeFragment extends BaseFragment {
} }
}); });
news_btn.setOnClickListener(v -> { news_btn.setOnClickListener(v -> {
// TODO: 2023/8/30 测试orc拍照 if (UiAuxiliary.isLogin(con)) {
Intent intent = new Intent(getActivity(), CameraActivity.class); Intent in = new Intent(con, NewActivity.class);
intent.putExtra(CameraActivity.KEY_OUTPUT_FILE_PATH, startActivity(in);
new File(getActivity().getFilesDir(), "pic.jpg").getAbsolutePath()); } else {
intent.putExtra(CameraActivity.KEY_CONTENT_TYPE, CameraActivity.CONTENT_TYPE_ID_CARD_FRONT); Intent in = new Intent(con, LoginActivity.class);
startActivityForResult(intent, 1111); startActivity(in);
}
// if (UiAuxiliary.isLogin(con)) {
// Intent in = new Intent(con, NewActivity.class);
// startActivity(in);
// } else {
// Intent in = new Intent(con, LoginActivity.class);
// startActivity(in);
// }
}); });
//Intent serviceIn=new Intent(con, LocationService.class); //Intent serviceIn=new Intent(con, LocationService.class);
//getActivity().startService(serviceIn); //getActivity().startService(serviceIn);
@ -434,6 +557,13 @@ public class HomeFragment extends BaseFragment {
order_box = v.findViewById(R.id.order_box); order_box = v.findViewById(R.id.order_box);
auth_box = v.findViewById(R.id.auth_box); auth_box = v.findViewById(R.id.auth_box);
order_all = v.findViewById(R.id.order_all); 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_left = v.findViewById(R.id.fun_left);
ImageView fun_right = v.findViewById(R.id.fun_right); ImageView fun_right = v.findViewById(R.id.fun_right);
fun_left.setOnClickListener(v16 -> startActivity(new Intent(con, OrderListActivity.class))); fun_left.setOnClickListener(v16 -> startActivity(new Intent(con, OrderListActivity.class)));
@ -488,18 +618,35 @@ public class HomeFragment extends BaseFragment {
v1.setOnClickListener(v2 -> { v1.setOnClickListener(v2 -> {
switch (position) { switch (position) {
case 0: case 0:
//startActivity(new Intent(con, OrderListActivity.class)); PermissionUtils.Companion.getInstance().showPermissionMessage(getActivity(), "位置权限使用说明", "用于向您推荐可能感兴趣的住宿、饮食、加油站、汽车维修等",
PermissionX.init(getActivity()) new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
.permissions(Manifest.permission.ACCESS_FINE_LOCATION) (allGranted, grantedList, deniedList) -> {
.request((allGranted, grantedList, deniedList) -> {
if (allGranted) { if (allGranted) {
Intent in = new Intent(con, BusinessActivity.class); Intent in = new Intent(con, BusinessActivity.class);
in.putExtra("type", "餐饮"); in.putExtra("type", "餐饮");
startActivity(in); startActivity(in);
} else { } 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(); //Toast.makeText(con,"定位开启失败,请检查配置项",Toast.LENGTH_LONG).show();
break; break;
case 1: case 1:
@ -523,6 +670,11 @@ public class HomeFragment extends BaseFragment {
in5.putExtra("url", "https://ks.wjx.top/vm/h6Jqu8A.aspx"); in5.putExtra("url", "https://ks.wjx.top/vm/h6Jqu8A.aspx");
in5.putExtra("title", "知识竞猜"); in5.putExtra("title", "知识竞猜");
startActivity(in5); 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; break;
default: default:
break; break;
@ -533,6 +685,100 @@ public class HomeFragment extends BaseFragment {
initMap(); 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 "已完成";
}
/** /**
* *
*/ */
@ -552,13 +798,18 @@ public class HomeFragment extends BaseFragment {
ur.upApp(); ur.upApp();
hyr.getHuoYuan(1, 100); hyr.getHuoYuan(1, 100);
ur.getImage(1); ur.getImage(1);
WalletRequest qr = new WalletRequest(con, hd);
if (UiAuxiliary.isLogin(con)) { if (UiAuxiliary.isLogin(con)) {
int curWaybillId = (int) SPUtils.get(con, "curWaybillId", -1);
ur.User(); ur.User();
// if (!OneDayShowUtils.getInstance().todayIsShow(con)) {
// qr.getBankCardList();
// }
ur.getDriverExpire(); ur.getDriverExpire();
hyr.startOrder(0); hyr.startOrder(curWaybillId == -1 ? 0 : curWaybillId);
// hyr.startOrder(0);
//获取权限 应用市场审核不通过
ur.driverAuthData(); ur.driverAuthData();
} }
// oldTime= Calendar.getInstance().getTimeInMillis(); // oldTime= Calendar.getInstance().getTimeInMillis();
@ -617,8 +868,13 @@ public class HomeFragment extends BaseFragment {
Log.e("开始轨迹上传服务", "-----"); Log.e("开始轨迹上传服务", "-----");
orderNum.setText("运单号:" + sob.getData().getShippingNoteNumber()); orderNum.setText("运单号:" + sob.getData().getShippingNoteNumber());
order_state.setText("" + sob.getData().getWaybillStatus()); order_state.setText("" + sob.getData().getWaybillStatus());
try {
Intent serviceIn = new Intent(con, TrackService.class); Intent serviceIn = new Intent(con, TrackService.class);
getActivity().startService(serviceIn); getActivity().startService(serviceIn);
} catch (Exception e) {
e.printStackTrace();
}
} else { } else {
SPUtil.insSP(con, "order", "ShippingNoteNumber", ""); SPUtil.insSP(con, "order", "ShippingNoteNumber", "");
order_start.setVisibility(View.GONE); order_start.setVisibility(View.GONE);
@ -789,7 +1045,7 @@ public class HomeFragment extends BaseFragment {
banner.isAutoPlay(true); banner.isAutoPlay(true);
banner.setIndicatorGravity(BannerConfig.CENTER); banner.setIndicatorGravity(BannerConfig.CENTER);
banner.setOnBannerListener(position -> {//System.out.println("跳转"); 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); Intent inL = new Intent(con, LoginActivity.class);
in.putExtra("url", ic.getData().get(position).getJumpUrl()); in.putExtra("url", ic.getData().get(position).getJumpUrl());
in.putExtra("title", ic.getData().get(position).getTitle()); in.putExtra("title", ic.getData().get(position).getTitle());
@ -810,7 +1066,7 @@ public class HomeFragment extends BaseFragment {
@Override @Override
public void displayImage(Context context, Object path, ImageView imageView) { public void displayImage(Context context, Object path, ImageView imageView) {
if (HomeFragment.this != null && getActivity() != null && !getActivity().isDestroyed()) { 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);
} }
} }
} }
@ -908,29 +1164,64 @@ public class HomeFragment extends BaseFragment {
// } // }
public void initAlct() { public void initAlct() {
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()) PermissionX.init(getActivity())
.permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE, .permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.RECORD_AUDIO) Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.CAMERA,
Manifest.permission.ACCESS_COARSE_LOCATION)
.request((allGranted, grantedList, deniedList) -> { .request((allGranted, grantedList, deniedList) -> {
if (allGranted) { 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 { } else {
}
});
ALProcess.verification(con); ALProcess.verification(con);
MDPLocationCollectionManager.getInvoices(con, 10, 1, new OnDownloadResultListener() {
@Override
public void onSuccess(Object o) {
Log.e("--成功信息--", new Gson().toJson(o));
} }
@Override // ALProcess.verification(con);
public void onFailure(String s, String s1) { // MDPLocationCollectionManager.getInvoices(con, 10, 1, new OnDownloadResultListener() {
Log.e("--失败信息--", s + s1); // @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;//地图定位样式 private MyLocationStyle myLocationStyle;//地图定位样式
@ -1006,6 +1297,33 @@ public class HomeFragment extends BaseFragment {
initView(null); 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 { class Model {
private int imageId; private int imageId;

View File

@ -1,15 +1,26 @@
package com.arpa.hndahesudintocctmsdriver.ui.home; package com.arpa.hndahesudintocctmsdriver.ui.home;
import static com.sdk.base.framework.utils.app.AppUtils.getPackageName;
import android.Manifest; import android.Manifest;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.net.Uri; import android.net.Uri;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Message; import android.os.Message;
import android.provider.Settings;
import android.text.Html; 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.util.Log;
import android.view.inputmethod.EditorInfo;
import android.widget.Button; import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ImageButton; import android.widget.ImageButton;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
@ -21,14 +32,18 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.arpa.hndahesudintocctmsdriver.H5Activity; import com.arpa.hndahesudintocctmsdriver.H5Activity;
import com.arpa.hndahesudintocctmsdriver.bean.JTT; import com.arpa.hndahesudintocctmsdriver.bean.JTT;
import com.arpa.hndahesudintocctmsdriver.bean.WaybillStatusBean;
import com.arpa.hndahesudintocctmsdriver.event.FaceEvent; import com.arpa.hndahesudintocctmsdriver.event.FaceEvent;
import com.arpa.hndahesudintocctmsdriver.event.HomeEvent; import com.arpa.hndahesudintocctmsdriver.event.HomeEvent;
import com.arpa.hndahesudintocctmsdriver.event.HomeWaybillEvent;
import com.arpa.hndahesudintocctmsdriver.parts.ConfigParts; import com.arpa.hndahesudintocctmsdriver.parts.ConfigParts;
import com.arpa.hndahesudintocctmsdriver.parts.UserParts; import com.arpa.hndahesudintocctmsdriver.parts.UserParts;
import com.arpa.hndahesudintocctmsdriver.report.ALProcess; import com.arpa.hndahesudintocctmsdriver.report.ALProcess;
import com.arpa.hndahesudintocctmsdriver.report.JTTProcess; import com.arpa.hndahesudintocctmsdriver.report.JTTProcess;
import com.arpa.hndahesudintocctmsdriver.ui.MainActivity;
import com.arpa.hndahesudintocctmsdriver.ui.auth.PersonalAuthActivity; import com.arpa.hndahesudintocctmsdriver.ui.auth.PersonalAuthActivity;
import com.arpa.hndahesudintocctmsdriver.util.MessageUtils; import com.arpa.hndahesudintocctmsdriver.util.MessageUtils;
import com.arpa.hndahesudintocctmsdriver.util.SPUtils;
import com.arpa.hndahesudintocctmsdriver.util.img.ImageGetUtil; import com.arpa.hndahesudintocctmsdriver.util.img.ImageGetUtil;
import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil;
import com.arpa.hndahesudintocctmsdriver.util.string.StringUtil; import com.arpa.hndahesudintocctmsdriver.util.string.StringUtil;
@ -59,6 +74,7 @@ import com.arpa.hndahesudintocctmsdriver.util.time.Timer;
import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity; import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView; import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView;
import com.permissionx.guolindev.PermissionX;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.Subscribe;
@ -102,16 +118,23 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
//Toast.makeText(con,"接单成功",Toast.LENGTH_SHORT).show(); //Toast.makeText(con,"接单成功",Toast.LENGTH_SHORT).show();
customDialog.dismiss(); customDialog.dismiss();
// EsignSdk.getInstance().startH5Activity(act, (String) bb.getData()); // EsignSdk.getInstance().startH5Activity(act, (String) bb.getData());
if (null == bb.getData()) {
UiAuxiliary.homeRequest("接单");
Intent in = new Intent(con, StartYunDanActivity.class);
in.putExtra("id", "0");
startActivity(in);
finish();
} else {
Intent intent = new Intent(this, H5Activity.class); Intent intent = new Intent(this, H5Activity.class);
intent.putExtra("url", (String) bb.getData()); intent.putExtra("url", (String) bb.getData());
intent.putExtra("view_file", false); intent.putExtra("view_file", false);
intent.putExtra("title", "合同签署");
startActivity(intent); startActivity(intent);
}
//finish(); //finish();
} else { } else {
EventBus.getDefault().post(new HomeWaybillEvent(1));
finish();
Toast.makeText(con, bb.getMsg(), Toast.LENGTH_SHORT).show(); Toast.makeText(con, bb.getMsg(), Toast.LENGTH_SHORT).show();
customDialog.dismiss(); customDialog.dismiss();
} }
@ -129,14 +152,17 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
} }
CacheGroup.cacheList.remove("jttRes"); CacheGroup.cacheList.remove("jttRes");
} }
break;
case 13:
int index = Integer.valueOf((String) m.obj); if (CacheGroup.cacheList.get("orderStatus") != null) {
Log.e("--选择车辆--", clb.getData().get(index).getCarNumber()); if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
car.setText("选择车辆:" + clb.getData().get(index).getCarNumber()); customDialog.dismiss();
cid = clb.getData().get(index).getCarId(); }
break; Log.e("orderStatus", CacheGroup.cacheList.get("orderStatus"));
case 1111://安联用户验证通过接单 WaybillStatusBean status = gson.fromJson(CacheGroup.cacheList.get("orderStatus"), WaybillStatusBean.class);
if (status.getCode() == 200) {
if (status.getData() != null) {
//执行运单下一步操作
new XPopup.Builder(con) new XPopup.Builder(con)
.isDestroyOnDismiss(true) //对于只使用一次的弹窗推荐设置这个 .isDestroyOnDismiss(true) //对于只使用一次的弹窗推荐设置这个
.asConfirm("请确认接单", "是否确定承运此运单?", .asConfirm("请确认接单", "是否确定承运此运单?",
@ -146,6 +172,37 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
hyr.confirm(cid, id); hyr.confirm(cid, id);
}, () -> customDialog.dismiss(), false, R.layout.alert_ok_cancel) //最后一个参数绑定已有布局 }, () -> customDialog.dismiss(), false, R.layout.alert_ok_cancel) //最后一个参数绑定已有布局
.show(); .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);
Log.e("--选择车辆--", clb.getData().get(index).getCarNumber());
car.setText("选择车辆:" + clb.getData().get(index).getCarNumber());
cid = clb.getData().get(index).getCarId();
break;
case 1111://安联用户验证通过接单
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; break;
case 2222://安联用户验证不通过 case 2222://安联用户验证不通过
customDialog.dismiss(); customDialog.dismiss();
@ -195,6 +252,8 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
//2021/02/27记类型声明错误 //2021/02/27记类型声明错误
ImageButton return_btn = v.findViewById(R.id.return_btn); ImageButton return_btn = v.findViewById(R.id.return_btn);
ImageButton xuan = v.findViewById(R.id.xuan); 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); ImageButton btnFp = v.findViewById(R.id.btnFp);
TextView effectiveTime = v.findViewById(R.id.effectiveTime); TextView effectiveTime = v.findViewById(R.id.effectiveTime);
TextView check_contract = v.findViewById(R.id.check_contract); TextView check_contract = v.findViewById(R.id.check_contract);
@ -205,6 +264,15 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
return_btn.setOnClickListener(v16 -> { return_btn.setOnClickListener(v16 -> {
finish(); 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>";
String textSource = "公司已对运输合同条款充分解释说明,本人已充分理解、认可并签署;同意符合税务机关要求下<font color='#ff0000'>代开增值税发票</font>,产生的增值税及附加税本人承担。"; String textSource = "公司已对运输合同条款充分解释说明,本人已充分理解、认可并签署;同意符合税务机关要求下<font color='#ff0000'>代开增值税发票</font>,产生的增值税及附加税本人承担。";
tvZzs.setText(Html.fromHtml(textSource)); tvZzs.setText(Html.fromHtml(textSource));
@ -247,7 +315,11 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
}); });
// //
ImageButton xuanze = v.findViewById(R.id.xuanze); ImageButton xuanze = v.findViewById(R.id.xuanze);
if (clb != null && clb.getData().size() == 1) {
if (hyd!=null&&hyd.getData()!=null&& !TextUtils.isEmpty(hyd.getData().getCarNumber())){
cid = hyd.getData().getCarId();
car.setText("选择车辆:" + hyd.getData().getCarNumber());
}else if (clb != null && clb.getData().size() == 1) {
cid = clb.getData().get(0).getCarId(); cid = clb.getData().get(0).getCarId();
car.setText("选择车辆:" + clb.getData().get(0).getCarNumber()); car.setText("选择车辆:" + clb.getData().get(0).getCarNumber());
} }
@ -340,6 +412,7 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
UiAuxiliary.homeRequest("接单"); UiAuxiliary.homeRequest("接单");
Intent in = new Intent(con, StartYunDanActivity.class); Intent in = new Intent(con, StartYunDanActivity.class);
in.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
in.putExtra("id", "0"); in.putExtra("id", "0");
startActivity(in); startActivity(in);
finish(); finish();
@ -353,7 +426,6 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
// }, 2500); // }, 2500);
// new Handler().postDelayed(() -> { // new Handler().postDelayed(() -> {
// //
// //
@ -418,10 +490,58 @@ public class HuoYunDelActivity extends BaseAppCompatActivity {
* 先判断安联用户信息验证随后接单 * 先判断安联用户信息验证随后接单
*/ */
private void reOrder() { private void reOrder() {
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 = new CustomDialog(con, "正在接单...");
customDialog.show(); customDialog.show();
//验证安联用户是否通过 //验证安联用户是否通过
ALProcess.verification(con, hd); 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);
}
@Override
protected void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
}
} }

View File

@ -186,9 +186,11 @@ public class OrderAllActivity extends BaseActivity {
case 200006: case 200006:
state4.setTextColor(getResources().getColor(R.color.blue)); state4.setTextColor(getResources().getColor(R.color.blue));
state4.setText(" 已评价"); state4.setText(" 已评价");
case 200005:
state3.setTextColor(getResources().getColor(R.color.blue)); state3.setTextColor(getResources().getColor(R.color.blue));
state3.setText(" 已结算"); state3.setText(" 已结算");
case 200005:
// state3.setTextColor(getResources().getColor(R.color.blue));
// state3.setText(" 已结算");
case 200004: case 200004:
state2.setTextColor(getResources().getColor(R.color.blue)); state2.setTextColor(getResources().getColor(R.color.blue));
state2.setText(" 已卸货"); state2.setText(" 已卸货");

View File

@ -3,6 +3,7 @@ package com.arpa.hndahesudintocctmsdriver.ui.home;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.os.Message; import android.os.Message;
import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import android.view.animation.AlphaAnimation; 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.RideRouteResult;
import com.amap.api.services.route.RouteSearch; import com.amap.api.services.route.RouteSearch;
import com.amap.api.services.route.WalkRouteResult; import com.amap.api.services.route.WalkRouteResult;
import com.arpa.hndahesudintocctmsdriver.util.alert.CustomDialog;
import com.arpa.hndahesudintocctmsdriver.util.alert.ToastUtil; import com.arpa.hndahesudintocctmsdriver.util.alert.ToastUtil;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.dahe.mylibrary.utils.ImageLoader;
import com.dahe.mylibrary.utils.TimeUtil; import com.dahe.mylibrary.utils.TimeUtil;
import com.dahe.mylibrary.utils.ToastUtils; import com.dahe.mylibrary.utils.ToastUtils;
import com.google.android.material.bottomsheet.BottomSheetBehavior; import com.google.android.material.bottomsheet.BottomSheetBehavior;
@ -73,6 +76,7 @@ import org.jetbrains.annotations.NotNull;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.function.Predicate;
public class StartYunDanActivity extends BaseActivity { public class StartYunDanActivity extends BaseActivity {
@ -104,11 +108,14 @@ public class StartYunDanActivity extends BaseActivity {
switch (m.what) { switch (m.what) {
case RequsetCodeConstants.SUCCESS: 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(GET_EVALUTE));
Log.e("-运单-", CacheGroup.cacheList.get(HuoYuanFragmengt.START_ORDER)); Log.e("-运单-", CacheGroup.cacheList.get("refreshorderDetail"));
sob = gson.fromJson(CacheGroup.cacheList.get(HuoYuanFragmengt.START_ORDER), StartOrderBean.class); sob = gson.fromJson(CacheGroup.cacheList.get("refreshorderDetail"), StartOrderBean.class);
wnb = gson.fromJson(CacheGroup.cacheList.get(GET_EVALUTE), WNewsBean.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) { if (sob.getCode() == 200 && sob.getData() != null) {
id = sob.getData().getWaybillId(); id = sob.getData().getWaybillId();
initView(null); initView(null);
@ -120,7 +127,7 @@ public class StartYunDanActivity extends BaseActivity {
} else { } else {
Toast.makeText(con, sob.getMsg(), Toast.LENGTH_SHORT).show(); Toast.makeText(con, sob.getMsg(), Toast.LENGTH_SHORT).show();
} }
CacheGroup.cacheList.remove(HuoYuanFragmengt.START_ORDER); CacheGroup.cacheList.remove("refreshorderDetail");
CacheGroup.cacheList.remove(GET_EVALUTE); CacheGroup.cacheList.remove(GET_EVALUTE);
} }
//保存评价 //保存评价
@ -202,9 +209,33 @@ public class StartYunDanActivity extends BaseActivity {
initStartBody(v); initStartBody(v);
break; break;
case R.layout.item_yundan_yunxing: 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); ImageView head_img = v.findViewById(R.id.head_img);
if (ub != null && ub.getData() != null && !ub.getData().getHeadportraitUrl().equals("")) { 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; break;
default: default:
@ -387,22 +418,22 @@ public class StartYunDanActivity extends BaseActivity {
for (int i = 0; i < sob.getData().getWayChildren().size(); i++) { for (int i = 0; i < sob.getData().getWayChildren().size(); i++) {
if (sob.getData().getWayChildren().get(i).getType() == 1) { if (sob.getData().getWayChildren().get(i).getType() == 1) {
zInfo = sob.getData().getWayChildren().get(i); zInfo = sob.getData().getWayChildren().get(i);
int dis = TimeUtil.compareNowDate(TimeUtil.string2Millis(zInfo.getImageTakenDate(), TimeUtil.DEFAULT_FORMAT4));
if (dis > 5) {
if (zInfo.getReceiptUrl() != null && zInfo.getReceiptUrl().size() > 0) { if (zInfo.getReceiptUrl() != null && zInfo.getReceiptUrl().size() > 0) {
int dis = TimeUtil.compareNowDate(TimeUtil.string2Millis(zInfo.getImageTakenDate(), TimeUtil.DEFAULT_FORMAT4));
if (dis > 5) {//大于五分钟可以接单
Intent in = new Intent(con, ShangChuangImgActivity.class); Intent in = new Intent(con, ShangChuangImgActivity.class);
in.putExtra("type", type); in.putExtra("type", type);
in.putExtra("wid", wid); in.putExtra("wid", wid);
in.putExtra("sob", gson.toJson(sob)); in.putExtra("sob", gson.toJson(sob));
in.putExtra("keys", key); in.putExtra("keys", key);
startActivity(in); startActivity(in);
} else {
ToastUtils.showToast(StartYunDanActivity.this, "请到卸货地再进行卸货操作!");
}
break; break;
} else { } else {
ToastUtils.showToast(StartYunDanActivity.this, "请先上传出货单,再进行卸货操作!"); ToastUtils.showToast(StartYunDanActivity.this, "请先上传出货单,再进行卸货操作!");
} }
} else {//大于五分钟可以接单
ToastUtils.showToast(StartYunDanActivity.this, "装卸货时间间隔过短,请稍后重试!");
}
break; break;
} }
} }
@ -446,13 +477,23 @@ public class StartYunDanActivity extends BaseActivity {
return str; return str;
} }
private CustomDialog customDialog;
@Override @Override
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();
if (map != null) { if (map != null) {
map.onResume(); 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); hyr.getEvaluate(id);
} }
@ -563,6 +604,10 @@ public class StartYunDanActivity extends BaseActivity {
public void search() { public void search() {
String latitude = sob.getData().getWayChildren().get((sob.getData().getWayChildren().size() - 1)).getLatitude();
if (TextUtils.isEmpty(latitude)) {
return;
}
// try { // try {
// AMapLocationClient.updatePrivacyShow(con,true,true); // AMapLocationClient.updatePrivacyShow(con,true,true);
// AMapLocationClient.updatePrivacyAgree(con,true); // AMapLocationClient.updatePrivacyAgree(con,true);

View File

@ -21,6 +21,7 @@ import com.bumptech.glide.Glide;
import com.arpa.hndahesudintocctmsdriver.R; import com.arpa.hndahesudintocctmsdriver.R;
import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity; import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity;
import com.dahe.mylibrary.utils.ImageLoader;
import java.io.File; import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;
@ -58,7 +59,7 @@ public class VideoReleaseActivity extends BaseActivity {
public void initView(Object obj) { public void initView(Object obj) {
super.initView(obj); super.initView(obj);
getFirstframe(videoPath); 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){ public void submit(View v){

View File

@ -8,6 +8,7 @@ import android.widget.TextView;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.dahe.mylibrary.utils.ImageLoader;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.lxj.xpopup.XPopup; import com.lxj.xpopup.XPopup;
import com.arpa.hndahesudintocctmsdriver.R; import com.arpa.hndahesudintocctmsdriver.R;
@ -72,7 +73,7 @@ public class GetShangChuanActivity extends BaseActivity {
//coordinate.setText(StringUtil.isNull(sdw.getLongitude(),"")+","+StringUtil.isNull(sdw.getLatitude(),"")); //coordinate.setText(StringUtil.isNull(sdw.getLongitude(),"")+","+StringUtil.isNull(sdw.getLatitude(),""));
//coordinate2.setText(StringUtil.isNull(sdw.getReceiptLongitude(),"")+","+StringUtil.isNull(sdw.getReceiptLatitude(),"")); //coordinate2.setText(StringUtil.isNull(sdw.getReceiptLongitude(),"")+","+StringUtil.isNull(sdw.getReceiptLatitude(),""));
if(sdw.getSendPutImagesUrl()!=null && sdw.getSendPutImagesUrl().size()>=1){ 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 -> { img1.setOnClickListener(v -> {
new XPopup.Builder(con) new XPopup.Builder(con)
.asImageViewer(img1,sdw.getSendPutImagesUrl().get(0), new SmartGlideImageLoader(R.mipmap.ic_launcher)) .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){ 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 -> { img2.setOnClickListener(v -> {
new XPopup.Builder(con) new XPopup.Builder(con)
.asImageViewer(img2,sdw.getReceiptUrl().get(0), new SmartGlideImageLoader(R.mipmap.ic_launcher)) .asImageViewer(img2,sdw.getReceiptUrl().get(0), new SmartGlideImageLoader(R.mipmap.ic_launcher))

View File

@ -1,8 +1,12 @@
package com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan; package com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan;
import static com.sdk.base.framework.utils.app.AppUtils.getPackageName;
import android.content.Intent; import android.content.Intent;
import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.os.Message; import android.os.Message;
import android.provider.Settings;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.Gravity; import android.view.Gravity;
@ -15,25 +19,32 @@ import android.widget.Toast;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.alct.mdp.MDPLocationCollectionManager; import com.alct.mdp.MDPLocationCollectionManager;
import com.alct.mdp.callback.OnDownloadResultListener;
import com.alct.mdp.callback.OnResultListener; import com.alct.mdp.callback.OnResultListener;
import com.alct.mdp.model.Goods; import com.alct.mdp.model.Goods;
import com.alct.mdp.model.Image; import com.alct.mdp.model.Image;
import com.alct.mdp.model.Location; import com.alct.mdp.model.Location;
import com.alct.mdp.model.ShipmentStatusEnum;
import com.arpa.hndahesudintocctmsdriver.BuildConfig;
import com.arpa.hndahesudintocctmsdriver.bean.CarInfoBean; import com.arpa.hndahesudintocctmsdriver.bean.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.report.JTTProcess;
import com.arpa.hndahesudintocctmsdriver.request.OCRRequest; 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.BitmapUtil;
import com.arpa.hndahesudintocctmsdriver.util.MessageUtils; import com.arpa.hndahesudintocctmsdriver.util.MessageUtils;
import com.arpa.hndahesudintocctmsdriver.util.NfcUtils; import com.arpa.hndahesudintocctmsdriver.util.NfcUtils;
import com.arpa.hndahesudintocctmsdriver.util.SPUtils;
import com.arpa.hndahesudintocctmsdriver.util.alert.ToastUtil; import com.arpa.hndahesudintocctmsdriver.util.alert.ToastUtil;
import com.arpa.hndahesudintocctmsdriver.util.img.GetCarImageAlert; import com.arpa.hndahesudintocctmsdriver.util.img.GetCarImageAlert;
import com.arpa.hndahesudintocctmsdriver.util.location.LocationUtil; import com.arpa.hndahesudintocctmsdriver.util.location.LocationUtil;
import com.baidu.mapapi.CoordType;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.model.LatLng; import com.baidu.mapapi.model.LatLng;
import com.baidu.mapapi.utils.CoordinateConverter; import com.baidu.mapapi.utils.CoordinateConverter;
import com.bumptech.glide.Glide; 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.dahe.mylibrary.utils.ToastUtils;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.luck.picture.lib.PictureSelector; import com.luck.picture.lib.PictureSelector;
@ -47,7 +58,6 @@ import com.arpa.hndahesudintocctmsdriver.bean.UploadBean;
import com.arpa.hndahesudintocctmsdriver.request.HuoYuanRequset; import com.arpa.hndahesudintocctmsdriver.request.HuoYuanRequset;
import com.arpa.hndahesudintocctmsdriver.request.bean.LUInputBean; import com.arpa.hndahesudintocctmsdriver.request.bean.LUInputBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.UploadReceiptInputBean; import com.arpa.hndahesudintocctmsdriver.request.bean.UploadReceiptInputBean;
import com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity;
import com.arpa.hndahesudintocctmsdriver.util.location.LocationGDUtil; import com.arpa.hndahesudintocctmsdriver.util.location.LocationGDUtil;
import com.arpa.hndahesudintocctmsdriver.util.alert.CustomDialog; import com.arpa.hndahesudintocctmsdriver.util.alert.CustomDialog;
import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup;
@ -59,6 +69,8 @@ import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity; import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity;
import com.lxj.xpopup.util.SmartGlideImageLoader; import com.lxj.xpopup.util.SmartGlideImageLoader;
import org.greenrobot.eventbus.EventBus;
import java.io.File; import java.io.File;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.util.ArrayList; import java.util.ArrayList;
@ -91,17 +103,28 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
private boolean locationKey = false; private boolean locationKey = false;
private TextView tv_loaction; private TextView tv_loaction;
private boolean isFinish = false;
@Override @Override
public void msgMethod(Message m) { public void msgMethod(Message m) {
super.msgMethod(m); super.msgMethod(m);
switch (m.what) { switch (m.what) {
case RequsetCodeConstants.ERROR:
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
break;
case RequsetCodeConstants.SUCCESS: case RequsetCodeConstants.SUCCESS:
if (CacheGroup.cacheList.get("upload") != null) { if (CacheGroup.cacheList.get("upload") != null) {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
Log.e("upload", CacheGroup.cacheList.get("upload")); Log.e("upload", CacheGroup.cacheList.get("upload"));
ub = gson.fromJson(CacheGroup.cacheList.remove("upload"), UploadBean.class); ub = gson.fromJson(CacheGroup.cacheList.remove("upload"), UploadBean.class);
if (ub.getCode() == 200) { if (ub.getCode() == 200) {
imgIds.add(ub.getData().getId()); imgIds.add(ub.getData().getId());
Glide.with(con).load(ub.getData().getUrl()).into(res_img); // Glide.with(con).load(ub.getData().getUrl()).into(res_img);
ImageLoader.getInstance().loadImage(con,path,res_img);
res_img.setVisibility(View.VISIBLE); res_img.setVisibility(View.VISIBLE);
img_delete.setVisibility(View.VISIBLE); img_delete.setVisibility(View.VISIBLE);
img_icon.setVisibility(View.GONE); img_icon.setVisibility(View.GONE);
@ -111,21 +134,68 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
} }
CacheGroup.cacheList.remove("upload"); 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++) { for (int i = 0; i < TYPE_NAME.length; i++) {
if (CacheGroup.cacheList.get(TYPE_NAME[i]) != null) { if (CacheGroup.cacheList.get(TYPE_NAME[i]) != null) {
BaseBean bb = gson.fromJson(CacheGroup.cacheList.get(TYPE_NAME[i]), BaseBean.class); BaseBean bb = gson.fromJson(CacheGroup.cacheList.get(TYPE_NAME[i]), BaseBean.class);
if (bb.getCode() == 200) { if (bb.getCode() == 200) {
if (!keys) { if (index == 2) {
if (!keys) {//装货回单
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
EventBus.getDefault().post(new HomeWaybillEvent());
Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show(); Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
finish(); finish();
} else { }
} 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(); Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
finish(); finish();
} }
} else { } else {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
EventBus.getDefault().post(new HomeWaybillEvent());
finish();
Toast.makeText(con, bb.getMsg(), Toast.LENGTH_SHORT).show(); Toast.makeText(con, bb.getMsg(), Toast.LENGTH_SHORT).show();
} }
CacheGroup.cacheList.remove(TYPE_NAME[i]); CacheGroup.cacheList.remove(TYPE_NAME[i]);
break;
} }
} }
if (CacheGroup.cacheList.get("carName") != null) { if (CacheGroup.cacheList.get("carName") != null) {
@ -146,12 +216,18 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
if (sob.getData().getCarNumber().equals(value)) { if (sob.getData().getCarNumber().equals(value)) {
hyr.uploadFile(new File(path)); hyr.uploadFile(new File(path));
} else { } else {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
new MessageUtils().showCenMessage(ShangChuangImgActivity.this, "车牌号不匹配!", "请重新拍照或联系管理员"); new MessageUtils().showCenMessage(ShangChuangImgActivity.this, "车牌号不匹配!", "请重新拍照或联系管理员");
} }
} else { } else {
hyr.uploadFile(new File(path)); hyr.uploadFile(new File(path));
} }
} else {//识别失败后返回code500 } else {//识别失败后返回code500
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
if (index == 0) {//装卸货车辆需要识别车牌号){ if (index == 0) {//装卸货车辆需要识别车牌号){
Toast.makeText(con, "装货照片包含车牌号、三分之二车身或者装卸货场景。", Toast.LENGTH_SHORT).show(); Toast.makeText(con, "装货照片包含车牌号、三分之二车身或者装卸货场景。", Toast.LENGTH_SHORT).show();
} else if (index == 1) { } else if (index == 1) {
@ -164,17 +240,31 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
break; break;
case 14://定位成功 case 14://定位成功
locationKey = true; locationKey = true;
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss(); customDialog.dismiss();
}
tv_loaction.setText("定位成功"); tv_loaction.setText("定位成功");
tv_loaction.setTextColor(getResources().getColor(R.color.theme_color, null)); tv_loaction.setTextColor(getResources().getColor(R.color.theme_color, null));
latLng = convertGPSToBaidu(new LatLng(lgdu.getLatitude(), lgdu.getLongitude()));
initLocation(); initLocation();
break; break;
case 16://定位失败 case 16://定位失败
locationKey = false; locationKey = false;
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss(); customDialog.dismiss();
}
tv_loaction.setText("定位失败,点击重试"); tv_loaction.setText("定位失败,点击重试");
tv_loaction.setTextColor(getResources().getColor(R.color.loaction_no_color, null)); 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(); //finish();
break; break;
@ -189,7 +279,7 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
// if(index==1 || index==2){ // if(index==1 || index==2){
// new OCRRequest().OCRPlateLicense(con,hd,new File(path)); // new OCRRequest().OCRPlateLicense(con,hd,new File(path));
// } // }
if (index == 0 || index == 1) {//装卸货车辆需要识别车牌号 if ((index == 0 || index == 1) && !BuildConfig.isTest) {//装卸货车辆需要识别车牌号,测试环境不校验车牌号
new OCRRequest().OCRCarPlateLicense(con, hd, new File(path)); new OCRRequest().OCRCarPlateLicense(con, hd, new File(path));
} else { } else {
hyr.uploadFile(new File(path)); hyr.uploadFile(new File(path));
@ -200,6 +290,15 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
} }
} }
private LatLng latLng;
public LatLng convertGPSToBaidu(LatLng srLatLng) {
CoordinateConverter converter = new CoordinateConverter();
converter.from(CoordinateConverter.CoordType.COMMON);
converter.coord(srLatLng);
return converter.convert();
}
private String wid; private String wid;
private int h_type; private int h_type;
String sobStr = ""; String sobStr = "";
@ -229,14 +328,15 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
sobStr = getIntent().getExtras().getString("sob"); sobStr = getIntent().getExtras().getString("sob");
//Log.e("---sdwStr--",sdwStr); //Log.e("---sdwStr--",sdwStr);
sob = new Gson().fromJson(sobStr, StartOrderBean.class); sob = new Gson().fromJson(sobStr, StartOrderBean.class);
initView(null); initView(null);
customDialog = new CustomDialog(con, "正在定位当前位置..."); customDialog = new CustomDialog(con, "正在定位当前位置...");
customDialog.show(); customDialog.show();
lgdu = new LocationGDUtil(con, hd); lgdu = new LocationGDUtil(con, hd);
//启动定位 //启动定位
lgdu.onCreate(); lgdu.onCreate();
lu = new LocationUtil(con, hd); // lu = new LocationUtil(con, hd);
lu.onCreate(); // lu.onCreate();
// if (keys) { // if (keys) {
// lu = new LocationUtil(con, hd); // lu = new LocationUtil(con, hd);
// lu.onCreate(); // lu.onCreate();
@ -245,8 +345,8 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
if (!locationKey) { if (!locationKey) {
customDialog.show(); customDialog.show();
lgdu.onCreate(); lgdu.onCreate();
lu = new LocationUtil(con, hd); // lu = new LocationUtil(con, hd);
lu.onCreate(); // lu.onCreate();
} }
}); });
hyr = new HuoYuanRequset(con, hd); hyr = new HuoYuanRequset(con, hd);
@ -273,7 +373,9 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
} }
submit.setOnClickListener(v -> { submit.setOnClickListener(v -> {
if (imgIds.size() != 0) { if (imgIds.size() != 0) {
typeRequest(); //判断运单是否已取消
hyr.getWaybillStatus(sob.getData().getWaybillId());
// typeRequest();
} else { } else {
Toast.makeText(con, "请先上传一张图片", Toast.LENGTH_SHORT).show(); Toast.makeText(con, "请先上传一张图片", Toast.LENGTH_SHORT).show();
} }
@ -318,6 +420,12 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
path = gia.getFile().getPath(); path = gia.getFile().getPath();
Log.e("图片地址:", path); Log.e("图片地址:", path);
gia.dis(); gia.dis();
if (customDialog != null && !customDialog.isShowing()) {
customDialog = new CustomDialog(con, "网络请求中...");
customDialog.show();
}
ImageFileCompressUtil.imageFileCompress(con, new File(path), hd); ImageFileCompressUtil.imageFileCompress(con, new File(path), hd);
} else if (requestCode == PictureConfig.CHOOSE_REQUEST && resultCode == RESULT_OK) { } else if (requestCode == PictureConfig.CHOOSE_REQUEST && resultCode == RESULT_OK) {
List<LocalMedia> imgs = PictureSelector.obtainMultipleResult(data); List<LocalMedia> imgs = PictureSelector.obtainMultipleResult(data);
@ -331,6 +439,12 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
path = paths; path = paths;
Log.e("图片地址:", path); Log.e("图片地址:", path);
gia.dis(); gia.dis();
if (customDialog != null && !customDialog.isShowing()) {
customDialog = new CustomDialog(con, "网络请求中...");
customDialog.show();
}
ImageFileCompressUtil.imageFileCompress(con, new File(path), hd); ImageFileCompressUtil.imageFileCompress(con, new File(path), hd);
} }
} }
@ -344,6 +458,10 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
// for(int i=0;i<imgIds.size();i++){ // for(int i=0;i<imgIds.size();i++){
// Log.e("--imgIds--",imgIds.get(i)+""); // Log.e("--imgIds--",imgIds.get(i)+"");
// } // }
if (customDialog != null && !customDialog.isShowing()) {
customDialog = new CustomDialog(con, "网络请求中...");
customDialog.show();
}
switch (index) { switch (index) {
case 0: case 0:
//装货 //装货
@ -356,20 +474,48 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
Log.e("--装货信息", gson.toJson(lub)); Log.e("--装货信息", gson.toJson(lub));
if (locationKey) {//高德定位 if (locationKey) {//高德定位
if (keys) { if (keys) {
if (lu!=null&&lu.getErrorCode()!=161){ MDPLocationCollectionManager.getShipmentStatus(con, sob.getData().getShippingNoteNumber(), new OnDownloadResultListener() {
ToastUtils.showToast(this,"百度地图定位失败,请确认开启定位后重试!"); @Override
return; public void onSuccess(Object o) {
}
String string = o.toString();
if (string.equals("PICKUPED")) {//安联装货单平台未装货
isFinish = true;
//平台确认装货
hyr.loading(lub);
} else {
nfc(); nfc();
loadInfo(); 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_traffic_start();
// up_image_z(); // up_image_z();
} }
} else { } else {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
Toast.makeText(con, "定位异常,请重新定位", Toast.LENGTH_SHORT).show(); Toast.makeText(con, "定位异常,请重新定位", Toast.LENGTH_SHORT).show();
} }
} else { } else {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
Toast.makeText(con, "图片上传异常,请重新上传", Toast.LENGTH_SHORT).show(); Toast.makeText(con, "图片上传异常,请重新上传", Toast.LENGTH_SHORT).show();
} }
break; break;
@ -384,20 +530,46 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
Log.e("--卸货信息", gson.toJson(lub)); Log.e("--卸货信息", gson.toJson(lub));
if (locationKey) { if (locationKey) {
if (keys) { if (keys) {
if (lu!=null&&lu.getErrorCode()!=161){ MDPLocationCollectionManager.getShipmentStatus(con, sob.getData().getShippingNoteNumber(), new OnDownloadResultListener() {
ToastUtils.showToast(this,"百度地图定位失败,请确认开启定位后重试!"); @Override
return; public void onSuccess(Object o) {
} if (o.toString().equals("UNLOADED")) {//安联装货单平台未装货
//卸货状态-平台
isFinish = true;
hyr.dischargeCargo(lub);
} else {
nfc(); nfc();
uploadInfo(); 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 { } else {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
Toast.makeText(con, "定位异常,请重新定位", Toast.LENGTH_SHORT).show(); Toast.makeText(con, "定位异常,请重新定位", Toast.LENGTH_SHORT).show();
} }
} else { } else {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
Toast.makeText(con, "图片上传异常,请重新上传", Toast.LENGTH_SHORT).show(); Toast.makeText(con, "图片上传异常,请重新上传", Toast.LENGTH_SHORT).show();
} }
break; break;
@ -416,19 +588,21 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
Log.e("--回单信息", gson.toJson(urib)); Log.e("--回单信息", gson.toJson(urib));
if (locationKey) { if (locationKey) {
if (index == 2 && keys) { if (index == 2 && keys) {
if (lu!=null&&lu.getErrorCode()!=161){
ToastUtils.showToast(this,"百度地图定位失败,请确认开启定位后重试!");
return;
}
up_trafficSign(); up_trafficSign();
up_trafficReceipt(); up_trafficReceipt();
receipt_image(); receipt_image();
} }
hyr.receipt(urib); hyr.receipt(urib);
} else { } else {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
Toast.makeText(con, "定位异常,请重新定位", Toast.LENGTH_SHORT).show(); Toast.makeText(con, "定位异常,请重新定位", Toast.LENGTH_SHORT).show();
} }
} else { } else {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
Toast.makeText(con, "图片上传异常,请重新上传", Toast.LENGTH_SHORT).show(); Toast.makeText(con, "图片上传异常,请重新上传", Toast.LENGTH_SHORT).show();
} }
break; break;
@ -439,34 +613,6 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
private StartOrderBean sob; private StartOrderBean sob;
//上传安联和交通厅-装货
public void up_traffic_start() {
//安联
if (sob.getData().getReportAlct() == 1) {
Location l = new Location();
l.setBaiduLongitude(lu.getLongitude());
l.setBaiduLatitude(lu.getLatitude());
l.setLocation(lu.getAddress());
l.setTime(Timer.getTimerT());
MDPLocationCollectionManager.pickup(con, sob.getData().getShippingNoteNumber(), l, new com.alct.mdp.callback.OnResultListener() {
@Override
public void onSuccess() {
Log.e("上报安联", "装货上传成功");
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(装货):", s + s1);
new MessageUtils().showCenMessage(con, s1);
}
});
}
//交通厅
if (sob.getData().getReport() == 1) {
JTTProcess.start(con, sob, "");
}
}
public void nfc() { public void nfc() {
// if(sob.getData().getNfcId().equals(nfcStr)){ // if(sob.getData().getNfcId().equals(nfcStr)){
// Toast.makeText(con,"nfcId匹配失败",Toast.LENGTH_LONG).show(); // Toast.makeText(con,"nfcId匹配失败",Toast.LENGTH_LONG).show();
@ -488,41 +634,13 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
}); });
} }
//上传安联和交通厅-卸货
public void up_traffic_end() {
//安联
if (sob.getData().getReportAlct() == 1) {
Location l = new Location();
l.setBaiduLongitude(lu.getLongitude());
l.setBaiduLatitude(lu.getLatitude());
l.setLocation(lu.getAddress());
l.setTime(Timer.getTimerT());
Log.e("-安联卸货信息-", gson.toJson(l));
MDPLocationCollectionManager.unload(con, sob.getData().getShippingNoteNumber(), l, new com.alct.mdp.callback.OnResultListener() {
@Override
public void onSuccess() {
Log.e("上报安联", "卸货上传成功");
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(卸货):", s + s1);
}
});
}
//交通厅
if (sob.getData().getReport() == 1) {
JTTProcess.stop(con, sob, "");
}
}
//上传安联-签收 //上传安联-签收
public void up_trafficSign() { public void up_trafficSign() {
//安联 //安联
Location l = new Location(); Location l = new Location();
l.setBaiduLongitude(lu.getLongitude()); l.setBaiduLongitude(latLng.longitude);
l.setBaiduLatitude(lu.getLatitude()); l.setBaiduLatitude(latLng.latitude);
l.setLocation(lu.getAddress()); l.setLocation(lgdu.getAddress());
l.setTime(Timer.getTimerT()); l.setTime(Timer.getTimerT());
List<Goods> gs = new ArrayList<>(); List<Goods> gs = new ArrayList<>();
for (StartOrderBean.DataDTO.WayChildrenDTO wayChild : sob.getData().getWayChildren()) { for (StartOrderBean.DataDTO.WayChildrenDTO wayChild : sob.getData().getWayChildren()) {
@ -560,9 +678,9 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
public void up_trafficReceipt() { public void up_trafficReceipt() {
//安联 //安联
Location l = new Location(); Location l = new Location();
l.setBaiduLongitude(lu.getLongitude()); l.setBaiduLongitude(latLng.longitude);
l.setBaiduLatitude(lu.getLatitude()); l.setBaiduLatitude(latLng.latitude);
l.setLocation(lu.getAddress()); l.setLocation(lgdu.getAddress());
l.setTime(Timer.getTimerT()); l.setTime(Timer.getTimerT());
MDPLocationCollectionManager.pod(con, sob.getData().getShippingNoteNumber(), l, new com.alct.mdp.callback.OnResultListener() { MDPLocationCollectionManager.pod(con, sob.getData().getShippingNoteNumber(), l, new com.alct.mdp.callback.OnResultListener() {
@ -588,14 +706,20 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
image.setFileExt(FileUtil.lastName(file)); image.setFileExt(FileUtil.lastName(file));
image.setFileName(FileUtil.fileName(file)); image.setFileName(FileUtil.fileName(file));
image.setImageTakenDate(Timer.getTimerT()); image.setImageTakenDate(Timer.getTimerT());
image.setBaiduLongitude(lu.getLongitude()); image.setBaiduLongitude(latLng.longitude);
image.setBaiduLatitude(lu.getLatitude()); image.setBaiduLatitude(latLng.latitude);
image.setLocation(lu.getAddress()); image.setLocation(lgdu.getAddress());
MDPLocationCollectionManager.uploadPickupImage(con, sob.getData().getShippingNoteNumber(), image, new com.alct.mdp.callback.OnResultListener() { MDPLocationCollectionManager.uploadPickupImage(con, sob.getData().getShippingNoteNumber(), image, new com.alct.mdp.callback.OnResultListener() {
@Override @Override
public void onSuccess() { public void onSuccess() {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
EventBus.getDefault().post(new HomeWaybillEvent());
Log.e("上报安联", "装货照片上传成功"); Log.e("上报安联", "装货照片上传成功");
Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
finish();
} }
@Override @Override
@ -618,19 +742,28 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
image.setFileExt(FileUtil.lastName(file)); image.setFileExt(FileUtil.lastName(file));
image.setFileName(FileUtil.fileName(file)); image.setFileName(FileUtil.fileName(file));
image.setImageTakenDate(Timer.getTimerT()); image.setImageTakenDate(Timer.getTimerT());
image.setBaiduLongitude(lu.getLongitude()); image.setBaiduLongitude(latLng.longitude);
image.setBaiduLatitude(lu.getLatitude()); image.setBaiduLatitude(latLng.latitude);
image.setLocation(lu.getAddress()); image.setLocation(lgdu.getAddress());
MDPLocationCollectionManager.uploadUnloadImage(con, sob.getData().getShippingNoteNumber(), image, new com.alct.mdp.callback.OnResultListener() { MDPLocationCollectionManager.uploadUnloadImage(con, sob.getData().getShippingNoteNumber(), image, new com.alct.mdp.callback.OnResultListener() {
@Override @Override
public void onSuccess() { public void onSuccess() {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
EventBus.getDefault().post(new HomeWaybillEvent());
Log.e("上报安联", "卸货照片上传成功"); Log.e("上报安联", "卸货照片上传成功");
Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
finish();
} }
@Override @Override
public void onFailure(String s, String s1) { public void onFailure(String s, String s1) {
Log.e("上报安联失败(卸货照片):", s + 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());
// SPUtil.insSP(con,"make","卸货-"+sob.getData().getShippingNoteNumber(),gson.toJson(image)); // SPUtil.insSP(con,"make","卸货-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
// Intent serviceIn=new Intent(con, MakeUpAlService.class); // Intent serviceIn=new Intent(con, MakeUpAlService.class);
@ -649,14 +782,21 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
image.setFileExt(FileUtil.lastName(file)); image.setFileExt(FileUtil.lastName(file));
image.setFileName(FileUtil.fileName(file)); image.setFileName(FileUtil.fileName(file));
image.setImageTakenDate(Timer.getTimerT()); image.setImageTakenDate(Timer.getTimerT());
image.setBaiduLongitude(lu.getLongitude()); image.setBaiduLongitude(latLng.longitude);
image.setBaiduLatitude(lu.getLatitude()); image.setBaiduLatitude(latLng.latitude);
image.setLocation(lu.getAddress()); image.setLocation(lgdu.getAddress());
MDPLocationCollectionManager.uploadPODImage(con, sob.getData().getShippingNoteNumber(), image, new com.alct.mdp.callback.OnResultListener() { MDPLocationCollectionManager.uploadPODImage(con, sob.getData().getShippingNoteNumber(), image, new com.alct.mdp.callback.OnResultListener() {
@Override @Override
public void onSuccess() { public void onSuccess() {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
SPUtils.remove(con, "curWaybillId");
EventBus.getDefault().post(new HomeWaybillEvent());
Log.e("上报安联", "回单照片上传成功"); Log.e("上报安联", "回单照片上传成功");
Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
finish();
} }
@Override @Override
@ -700,6 +840,7 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
Log.e("nfc", nfcStr); Log.e("nfc", nfcStr);
} }
/** /**
* 上传安联和交通厅,平台-装货 * 上传安联和交通厅,平台-装货
*/ */
@ -707,9 +848,9 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
//安联 //安联
if (sob.getData().getReportAlct() == 1) { if (sob.getData().getReportAlct() == 1) {
Location l = new Location(); Location l = new Location();
l.setBaiduLongitude(lu.getLongitude()); l.setBaiduLongitude(latLng.longitude);
l.setBaiduLatitude(lu.getLatitude()); l.setBaiduLatitude(latLng.latitude);
l.setLocation(lu.getAddress()); l.setLocation(lgdu.getAddress());
l.setTime(Timer.getTimerT()); l.setTime(Timer.getTimerT());
MDPLocationCollectionManager.pickup(con, sob.getData().getShippingNoteNumber(), l, new com.alct.mdp.callback.OnResultListener() { MDPLocationCollectionManager.pickup(con, sob.getData().getShippingNoteNumber(), l, new com.alct.mdp.callback.OnResultListener() {
@Override @Override
@ -719,15 +860,18 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
if (sob.getData().getReport() == 1) { if (sob.getData().getReport() == 1) {
JTTProcess.start(con, sob, ""); JTTProcess.start(con, sob, "");
} }
//装货照片
up_image_z();
//装货状态 //装货状态
hyr.loading(lub); hyr.loading(lub);
//装货照片
up_image_z();
} }
@Override @Override
public void onFailure(String s, String s1) { public void onFailure(String s, String s1) {
Log.e("上报安联失败(装货):", s + s1); Log.e("上报安联失败(装货):", s + s1);
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
new MessageUtils().showCenMessage(con, s1); new MessageUtils().showCenMessage(con, s1);
} }
}); });
@ -743,9 +887,9 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
//安联 //安联
if (sob.getData().getReportAlct() == 1) { if (sob.getData().getReportAlct() == 1) {
Location l = new Location(); Location l = new Location();
l.setBaiduLongitude(lu.getLongitude()); l.setBaiduLongitude(latLng.longitude);
l.setBaiduLatitude(lu.getLatitude()); l.setBaiduLatitude(latLng.latitude);
l.setLocation(lu.getAddress()); l.setLocation(lgdu.getAddress());
l.setTime(Timer.getTimerT()); l.setTime(Timer.getTimerT());
Log.e("-安联卸货信息-", gson.toJson(l)); Log.e("-安联卸货信息-", gson.toJson(l));
MDPLocationCollectionManager.unload(con, sob.getData().getShippingNoteNumber(), l, new com.alct.mdp.callback.OnResultListener() { MDPLocationCollectionManager.unload(con, sob.getData().getShippingNoteNumber(), l, new com.alct.mdp.callback.OnResultListener() {
@ -756,15 +900,18 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
if (sob.getData().getReport() == 1) { if (sob.getData().getReport() == 1) {
JTTProcess.stop(con, sob, ""); JTTProcess.stop(con, sob, "");
} }
//卸货照片-安联
up_image();
//卸货状态-平台 //卸货状态-平台
hyr.dischargeCargo(lub); hyr.dischargeCargo(lub);
//卸货照片-安联
up_image();
} }
@Override @Override
public void onFailure(String s, String s1) { public void onFailure(String s, String s1) {
Log.e("上报安联失败(卸货):", s + s1); Log.e("上报安联失败(卸货):", s + s1);
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
new MessageUtils().showCenMessage(con, s1); new MessageUtils().showCenMessage(con, s1);
} }
}); });
@ -773,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);
}
} }

View File

@ -0,0 +1,889 @@
package com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan;
import android.content.Intent;
import android.os.Bundle;
import android.os.Message;
import android.text.TextUtils;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.Nullable;
import com.alct.mdp.MDPLocationCollectionManager;
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.amap.api.maps.CameraUpdateFactory;
import com.amap.api.services.core.AMapException;
import com.amap.api.services.core.LatLonPoint;
import com.amap.api.services.geocoder.GeocodeAddress;
import com.amap.api.services.geocoder.GeocodeQuery;
import com.amap.api.services.geocoder.GeocodeResult;
import com.amap.api.services.geocoder.GeocodeSearch;
import com.amap.api.services.geocoder.RegeocodeResult;
import com.amap.api.services.help.Inputtips;
import com.amap.api.services.help.InputtipsQuery;
import com.amap.api.services.help.Tip;
import com.arpa.hndahesudintocctmsdriver.R;
import com.arpa.hndahesudintocctmsdriver.bean.BaseBean;
import com.arpa.hndahesudintocctmsdriver.bean.CarInfoBean;
import com.arpa.hndahesudintocctmsdriver.bean.StartOrderBean;
import com.arpa.hndahesudintocctmsdriver.bean.UploadBean;
import com.arpa.hndahesudintocctmsdriver.report.JTTProcess;
import com.arpa.hndahesudintocctmsdriver.request.HuoYuanRequset;
import com.arpa.hndahesudintocctmsdriver.request.OCRRequest;
import com.arpa.hndahesudintocctmsdriver.request.bean.LUInputBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.UploadReceiptInputBean;
import com.arpa.hndahesudintocctmsdriver.util.BitmapUtil;
import com.arpa.hndahesudintocctmsdriver.util.MessageUtils;
import com.arpa.hndahesudintocctmsdriver.util.NfcUtils;
import com.arpa.hndahesudintocctmsdriver.util.alert.CustomDialog;
import com.arpa.hndahesudintocctmsdriver.util.alert.ToastUtil;
import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup;
import com.arpa.hndahesudintocctmsdriver.util.file.FileUtil;
import com.arpa.hndahesudintocctmsdriver.util.file.ImageFileCompressUtil;
import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants;
import com.arpa.hndahesudintocctmsdriver.util.img.GetCarImageAlert;
import com.arpa.hndahesudintocctmsdriver.util.location.LocationGDUtil;
import com.arpa.hndahesudintocctmsdriver.util.location.LocationUtil;
import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil;
import com.arpa.hndahesudintocctmsdriver.util.time.Timer;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity;
import com.baidu.mapapi.model.LatLng;
import com.baidu.mapapi.utils.CoordinateConverter;
import com.bumptech.glide.Glide;
import com.dahe.mylibrary.utils.ToastUtils;
import com.github.gzuliyujiang.wheelpicker.DatePicker;
import com.github.gzuliyujiang.wheelpicker.DatimePicker;
import com.github.gzuliyujiang.wheelpicker.annotation.DateMode;
import com.github.gzuliyujiang.wheelpicker.annotation.TimeMode;
import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
import com.github.gzuliyujiang.wheelpicker.contract.OnDatimePickedListener;
import com.github.gzuliyujiang.wheelpicker.entity.DateEntity;
import com.github.gzuliyujiang.wheelpicker.entity.DatimeEntity;
import com.google.gson.Gson;
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.interfaces.OnSelectListener;
import com.lxj.xpopup.util.SmartGlideImageLoader;
import java.io.File;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class ShangChuangImgActivityBC extends BaseAppCompatActivity implements Inputtips.InputtipsListener {
private TextView submit, name_top, name_body, address, tips, tips_x,tvDate,tvLocation;
private RelativeLayout getImg;
private EditText etAddress;
private Button btnOk;
private ImageView res_img, img_icon, img_delete;
private String[] names = {"装货", "卸货", "回单"};
public static String[] TYPE_NAME = {"zhuanghuo", "xiehuo", "huidan"};
private int index = 0;
//
private Gson gson = new Gson();
//
private LUInputBean lub = new LUInputBean();
private UploadReceiptInputBean urib = new UploadReceiptInputBean();
private LocationGDUtil lgdu;
public LocationUtil lu;
private List<Integer> imgIds = new ArrayList<>();
private UploadBean ub;
private HuoYuanRequset hyr;
//
private GetCarImageAlert gia = new GetCarImageAlert();
private CustomDialog customDialog;
private int id = 0;
private boolean key = true;
private boolean keys = false;
private boolean locationKey = false;
private TextView tv_loaction;
private String selDate;
private GeocodeSearch geocoderSearch;
private TempLoca tempLoca = new TempLoca();
private TempLoca tempLocaBd = new TempLoca();
@Override
public void onGetInputtips(List<Tip> tipList, int rCode) {
if (rCode == AMapException.CODE_AMAP_SUCCESS) {
List<String> names = new ArrayList<String>();
if(tipList != null) {
int size = tipList.size();
for (int i = 0; i < size; i++) {
Tip tip = tipList.get(i);
if(tip != null) {
names.add(tip.getDistrict()+tip.getName());
}
}
new XPopup.Builder(this)
.isDestroyOnDismiss(true) //对于只使用一次的弹窗推荐设置这个
.hasShadowBg(false) // 去掉半透明背景
.atView(etAddress)
.asAttachList(names.toArray(new String[0]), new int[]{}, new OnSelectListener() {
@Override
public void onSelect(int position, String text) {
Tip tip = tipList.get(position);
etAddress.setText(tip.getDistrict()+tip.getAddress()+tip.getName());
LatLonPoint latLonPoint = tip.getPoint();
tempLoca.setAddress(etAddress.getText().toString());
tempLoca.setLatitude(latLonPoint.getLatitude());
tempLoca.setLongitude(latLonPoint.getLongitude());
tempLoca.setTime(tvDate.getText().toString());
LatLng latLng = convertGPSToBaidu(new LatLng(latLonPoint.getLatitude(), latLonPoint.getLongitude()));
tempLocaBd.setLongitude(latLng.longitude);
tempLocaBd.setLatitude(latLng.latitude);
tempLocaBd.setAddress(etAddress.getText().toString());
tempLocaBd.setTime(tvDate.getText().toString());
}
})
.show();
// SimpleAdapter aAdapter = new SimpleAdapter(getApplicationContext(), listString, R.layout.item_layout,
// new String[]{"name", "address"}, new int[]{R.id.poi_field_id, R.id.poi_value_id});
//
// minputlist.setAdapter(aAdapter);
// aAdapter.notifyDataSetChanged();
}
} else {
}
}
class TempLoca{
private double latitude;
private double longitude;
private String address;
private String time;
public TempLoca() {
}
public TempLoca(double latitude, double longitude, String address, String time) {
this.latitude = latitude;
this.longitude = longitude;
this.address = address;
this.time = time;
}
public double getLatitude() {
return latitude;
}
public void setLatitude(double latitude) {
this.latitude = latitude;
}
public double getLongitude() {
return longitude;
}
public void setLongitude(double longitude) {
this.longitude = longitude;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
}
@Override
public void msgMethod(Message m) {
super.msgMethod(m);
switch (m.what) {
case RequsetCodeConstants.SUCCESS:
if (CacheGroup.cacheList.get("upload") != null) {
Log.e("upload", CacheGroup.cacheList.get("upload"));
ub = gson.fromJson(CacheGroup.cacheList.remove("upload"), UploadBean.class);
if (ub.getCode() == 200) {
imgIds.add(ub.getData().getId());
Glide.with(con).load(ub.getData().getUrl()).into(res_img);
res_img.setVisibility(View.VISIBLE);
img_delete.setVisibility(View.VISIBLE);
img_icon.setVisibility(View.GONE);
key = false;
} else {
Toast.makeText(con, ub.getMsg(), Toast.LENGTH_SHORT).show();
}
CacheGroup.cacheList.remove("upload");
}
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 (bb.getCode() == 200) {
if (index == 2) {
if (!keys){//装货回单
Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
finish();
}
}
} else {
Toast.makeText(con, bb.getMsg(), Toast.LENGTH_SHORT).show();
}
CacheGroup.cacheList.remove(TYPE_NAME[i]);
break;
}
}
if (CacheGroup.cacheList.get("carName") != null) {
BaseBean bb = gson.fromJson(CacheGroup.cacheList.get("carName"), BaseBean.class);
if (bb.getCode() == 200) {
}
CacheGroup.cacheList.remove("carName");
}
if (CacheGroup.cacheList.get("carNum") != null) {
Log.e("upload", CacheGroup.cacheList.get("carNum"));
CarInfoBean ub = gson.fromJson(CacheGroup.cacheList.remove("carNum"), CarInfoBean.class);
if (ub.getCode() == 200 && ub.getData().getData().getPrism_keyValueInfo().size() > 0) {
String value = ub.getData().getData().getPrism_keyValueInfo().get(0).getValue();
String forceMatching = ub.getData().getForceMatching();
if ("1".equals(forceMatching)) {//是否强校验车牌号 1:强校验
if (sob.getData().getCarNumber().equals(value)) {
hyr.uploadFile(new File(path));
} else {
new MessageUtils().showCenMessage(ShangChuangImgActivityBC.this, "车牌号不匹配!", "请重新拍照或联系管理员");
}
} else {
hyr.uploadFile(new File(path));
}
} else {//识别失败后返回code500
if (index == 0) {//装卸货车辆需要识别车牌号){
Toast.makeText(con, "装货照片包含车牌号、三分之二车身或者装卸货场景。", Toast.LENGTH_SHORT).show();
} else if (index == 1) {
Toast.makeText(con, "卸货照片包含车牌号、三分之二车身或者装卸货场景。", Toast.LENGTH_SHORT).show();
}
}
CacheGroup.cacheList.remove("carNum");
}
break;
case 14://定位成功
locationKey = true;
customDialog.dismiss();
tv_loaction.setText("定位成功");
tv_loaction.setTextColor(getResources().getColor(R.color.theme_color, null));
latLng = convertGPSToBaidu(new LatLng(lgdu.getLatitude(), lgdu.getLongitude()));
initLocation();
break;
case 16://定位失败
locationKey = false;
customDialog.dismiss();
tv_loaction.setText("定位失败,点击重试");
tv_loaction.setTextColor(getResources().getColor(R.color.loaction_no_color, null));
Toast.makeText(con, "定位失败,请确认开启定位后重试!", Toast.LENGTH_LONG).show();
//定位结果接收
//finish();
break;
case 15:
break;
case ImageFileCompressUtil.COMPRESS_SUCCESS:
path = (String) m.obj;
Log.e("res:", "选定图片结果");
Log.e("res:", path);
//选定图片结果
// if(index==1 || index==2){
// new OCRRequest().OCRPlateLicense(con,hd,new File(path));
// }
if (index == 0 || index == 1) {//装卸货车辆需要识别车牌号
new OCRRequest().OCRCarPlateLicense(con, hd, new File(path));
} else {
hyr.uploadFile(new File(path));
}
break;
default:
break;
}
}
private LatLng latLng;
public LatLng convertGPSToBaidu(LatLng srLatLng) {
CoordinateConverter converter = new CoordinateConverter();
converter.from(CoordinateConverter.CoordType.COMMON);
converter.coord(srLatLng);
return converter.convert();
}
private String wid;
private int h_type;
String sobStr = "";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
StateStyleUtil.stateTextColor(this);
setContentView(R.layout.activity_shangchuan_bc);
con = this;
submit = findViewById(R.id.submit);
name_top = findViewById(R.id.name_top);
name_body = findViewById(R.id.name_body);
address = findViewById(R.id.address);
getImg = findViewById(R.id.getImg);
res_img = findViewById(R.id.res_img);
img_icon = findViewById(R.id.img_icon);
img_delete = findViewById(R.id.img_delete);
tv_loaction = findViewById(R.id.tv_loaction);
btnOk = findViewById(R.id.btnOk);
etAddress = findViewById(R.id.etAddress);
tvDate = findViewById(R.id.tvDate);
tvLocation = findViewById(R.id.tvLocation);
tips = findViewById(R.id.tips);
tips_x = findViewById(R.id.tips_x);
Bundle ins = getIntent().getExtras();
index = ins.getInt("type");
wid = ins.getString("wid");
h_type = ins.getInt("h_type");
keys = ins.getBoolean("keys");
sobStr = getIntent().getExtras().getString("sob");
//Log.e("---sdwStr--",sdwStr);
sob = new Gson().fromJson(sobStr, StartOrderBean.class);
initView(null);
customDialog = new CustomDialog(con, "正在定位当前位置...");
customDialog.show();
lgdu = new LocationGDUtil(con, hd);
//启动定位
lgdu.onCreate();
tv_loaction.setOnClickListener(v -> {
if (!locationKey) {
customDialog.show();
lgdu.onCreate();
}
});
btnOk.setOnClickListener(v -> {
String s = etAddress.getText().toString();
if (TextUtils.isEmpty(selDate)){
ToastUtils.showToast(this,"请先选择时间");
return;
}
if (!TextUtils.isEmpty(s)&&s.length()>=4){
InputtipsQuery inputquery = new InputtipsQuery(s, "");
// inputquery.setCityLimit(true);
Inputtips inputTips = new Inputtips(this, inputquery);
inputTips.setInputtipsListener(this);
inputTips.requestInputtipsAsyn();
// GeocodeQuery query = new GeocodeQuery(s, "100000");// 第一个参数表示地址第二个参数表示查询城市中文或者中文全拼citycodeadcode
// geocoderSearch.getFromLocationNameAsyn(query);// 设置同步地理编码请求
}else{
ToastUtils.showToast(this,"请输入地址且长度大于4");
}
});
tvDate.setOnClickListener(v -> {
DatimePicker datimePicker = new DatimePicker(this);
datimePicker.setBodyWidth(300);
datimePicker.getWheelLayout().setRange(DatimeEntity.yearOnFuture(-1),DatimeEntity.yearOnFuture(10),DatimeEntity.now());
datimePicker.setOnDatimePickedListener((year, month, day, hour, minute, second) -> {
selDate = year+"-"+month+"-"+day+" "+ hour+":"+minute;
tvDate.setText(selDate);
});
datimePicker.getWheelLayout().setDateLabel("", "", "");
datimePicker.getWheelLayout().setTimeLabel("","","");
datimePicker.getWheelLayout().setTimeMode(TimeMode.HOUR_24_NO_SECOND);
datimePicker.show();
});
hyr = new HuoYuanRequset(con, hd);
}
public void initData() {
//nfc初始化设置
NfcUtils nfcUtils = new NfcUtils(this);
}
@Override
public void initView(Object obj) {
super.initView(obj);
name_top.setText("上传" + names[index] + "照片");
name_body.setText(names[index] + "照片");
if (index == 1) {
tips.setVisibility(View.VISIBLE);
tips_x.setVisibility(View.VISIBLE);
}
submit.setOnClickListener(v -> {
if (imgIds.size() != 0) {
typeRequest();
} else {
Toast.makeText(con, "请先上传一张图片", Toast.LENGTH_SHORT).show();
}
});
getImg.setOnClickListener(v -> {
if (key) {
Log.e("--imgIds.size()--", imgIds.size() + "");
gia.showPopueWindow(this, true);
} else {
new XPopup.Builder(con)
.asImageViewer(res_img, ub.getData().getUrl(), new SmartGlideImageLoader(R.mipmap.ic_launcher))
.show();
// new XPopup.Builder(con)
// .asImageViewer(res_img, ub.getData().getUrl(), true, -1, -1, 50, false,new CertificatesActivity.ImageLoader())
// .show();
Toast.makeText(con, "查看了照片", Toast.LENGTH_SHORT).show();
}
});
img_delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
imgIds = new ArrayList<>();
ub = new UploadBean();
res_img.setVisibility(View.GONE);
img_delete.setVisibility(View.GONE);
img_icon.setVisibility(View.VISIBLE);
key = true;
}
});
}
String path;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 12 && resultCode == RESULT_OK) {
if (null == gia.getFile()) {
new ToastUtil(con, Gravity.CENTER, "图片选择失败").show(Toast.LENGTH_SHORT);
return;
}
path = gia.getFile().getPath();
Log.e("图片地址:", path);
gia.dis();
ImageFileCompressUtil.imageFileCompress(con, new File(path), hd);
} else if (requestCode == PictureConfig.CHOOSE_REQUEST && resultCode == RESULT_OK) {
List<LocalMedia> imgs = PictureSelector.obtainMultipleResult(data);
if (imgs != null && imgs.size() > 0) {
LocalMedia image = imgs.get(0);
String paths = image.getAndroidQToPath();
if (TextUtils.isEmpty(paths)) {
paths = image.getPath();
}
path = paths;
Log.e("图片地址:", path);
gia.dis();
ImageFileCompressUtil.imageFileCompress(con, new File(path), hd);
}
}
}
public void initLocation() {
address.setText(lgdu.getAddress());
}
public void typeRequest() {
// for(int i=0;i<imgIds.size();i++){
// Log.e("--imgIds--",imgIds.get(i)+"");
// }
switch (index) {
case 0:
//装货
if (imgIds != null && imgIds.size() > 0) {
lub.setLatitude(tempLoca.getLatitude() + "");
lub.setLongitude(tempLoca.getLongitude() + "");
lub.setLocationAddress(tempLoca.getAddress());
lub.setImageId(imgIds);
lub.setWaybillId(wid);
Log.e("--装货信息", gson.toJson(lub));
if (locationKey) {//高德定位
if (keys) {
nfc();
loadInfo();
// up_traffic_start();
// up_image_z();
}
} else {
Toast.makeText(con, "定位异常,请重新定位", Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(con, "图片上传异常,请重新上传", Toast.LENGTH_SHORT).show();
}
break;
case 1:
if (imgIds != null && imgIds.size() > 0) {
//卸货
lub.setLatitude(tempLoca.getLatitude() + "");
lub.setLongitude(tempLoca.getLongitude() + "");
lub.setLocationAddress(tempLoca.getAddress());
lub.setImageId(imgIds);
lub.setWaybillId(wid);
lub.setRealLoadTime(tempLoca.getTime());
Log.e("--卸货信息", gson.toJson(lub));
if (locationKey&&!TextUtils.isEmpty(tempLoca.address)) {
if (keys) {
nfc();
uploadInfo();
}
} else {
Toast.makeText(con, "定位异常,请重新定位", Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(con, "图片上传异常,请重新上传", Toast.LENGTH_SHORT).show();
}
break;
case 2:
if (imgIds != null && imgIds.size() > 0) {//卸货回单
//上传回单
urib.setLatitude(lgdu.getLatitude() + "");
urib.setLongitude(lgdu.getLongitude() + "");
urib.setLocationAddress(lgdu.getAddress());
//装卸货类型
urib.setType(h_type + 1);
//回单id 数组
urib.setReceiptId(imgIds);
//子运运单ID
urib.setWaybillId(wid);
Log.e("--回单信息", gson.toJson(urib));
if (locationKey) {
if (index == 2 && keys && !TextUtils.isEmpty(tempLoca.address)) {
up_trafficSign();
up_trafficReceipt();
receipt_image();
}
hyr.receipt(urib);
} else {
Toast.makeText(con, "定位异常,请重新定位", Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(con, "图片上传异常,请重新上传", Toast.LENGTH_SHORT).show();
}
break;
default:
break;
}
}
private StartOrderBean sob;
public void nfc() {
// if(sob.getData().getNfcId().equals(nfcStr)){
// Toast.makeText(con,"nfcId匹配失败",Toast.LENGTH_LONG).show();
// }
if ("".equals(sob.getData().getNfcId()) || sob.getData().getNfcId() == null) {
return;
}
MDPLocationCollectionManager.checkNfc(con, sob.getData().getShippingNoteNumber(),
sob.getData().getNfcId(), new OnResultListener() {
@Override
public void onSuccess() {
Toast.makeText(con, "nfcId匹配成功", Toast.LENGTH_LONG).show();
}
@Override
public void onFailure(String s, String s1) {
Log.e("不匹配", "" + s + s1);
}
});
}
//上传安联-签收
public void up_trafficSign() {
//安联
Location l = new Location();
l.setBaiduLongitude(tempLocaBd.longitude);
l.setBaiduLatitude(tempLocaBd.latitude);
l.setLocation(tempLocaBd.getAddress());
l.setTime(tempLocaBd.getTime());
List<Goods> gs = new ArrayList<>();
for (StartOrderBean.DataDTO.WayChildrenDTO wayChild : sob.getData().getWayChildren()) {
if (wid.equals(wayChild.getId() + "")) {
for (StartOrderBean.DataDTO.WayChildrenDTO.GoodsDTO good : wayChild.getGoods()) {
Goods g = new Goods();
g.setGoodsName(good.getGoodName());
g.setUnit(good.getGoodUnit());
g.setItemNo(good.getId());
//实收
g.setQuantity(1);
//应收
g.setReceivedQuantity(1);
//破损
g.setDamageQuantity(1);
//丢失
g.setQuantity(1);
}
}
}
MDPLocationCollectionManager.sign(con, sob.getData().getShippingNoteNumber(), l, gs, new OnResultListener() {
@Override
public void onSuccess() {
Log.e("上报安联", "签收成功");
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(签收):", s + s1);
}
});
}
//上传安联-回单
public void up_trafficReceipt() {
//安联
Location l = new Location();
l.setBaiduLongitude(tempLocaBd.longitude);
l.setBaiduLatitude(tempLocaBd.latitude);
l.setLocation(tempLocaBd.getAddress());
l.setTime(tempLocaBd.getTime());
MDPLocationCollectionManager.pod(con, sob.getData().getShippingNoteNumber(), l, new OnResultListener() {
@Override
public void onSuccess() {
Log.e("上报安联", "回单上传成功");
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(回单):", s + s1);
}
});
}
public void up_image_z() {
///storage/emulated/0/Android/data/com.oneclouds.wangluohuoyun/files/Pictures/163124593063154.jpg
File file = new File(path);
Image image = new Image();
String base = BitmapUtil.imageToBase64(path);
image.setFileData("data:image/" + FileUtil.lastName(file) + ";base64," + base);
image.setFileExt(FileUtil.lastName(file));
image.setFileName(FileUtil.fileName(file));
image.setImageTakenDate(Timer.getTimerT());
image.setBaiduLongitude(tempLocaBd.longitude);
image.setBaiduLatitude(tempLocaBd.latitude);
image.setLocation(tempLocaBd.getAddress());
MDPLocationCollectionManager.uploadPickupImage(con, sob.getData().getShippingNoteNumber(), image, new OnResultListener() {
@Override
public void onSuccess() {
Log.e("上报安联", "装货照片上传成功");
Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
finish();
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(装货照片):", s + s1);
// SPUtil.insSP(con,"make","装货",sob.getData().getShippingNoteNumber());
// SPUtil.insSP(con,"make","装货-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
// Intent serviceIn=new Intent(con, MakeUpAlService.class);
// startService(serviceIn);
}
});
}
public void up_image() {
File file = new File(path);
Image image = new Image();
String base = BitmapUtil.imageToBase64(path);
image.setFileData("data:image/" + FileUtil.lastName(file) + ";base64," + base);
image.setFileExt(FileUtil.lastName(file));
image.setFileName(FileUtil.fileName(file));
image.setImageTakenDate(tempLocaBd.getTime());
image.setBaiduLongitude(tempLocaBd.longitude);
image.setBaiduLatitude(tempLocaBd.latitude);
image.setLocation(tempLocaBd.getAddress());
MDPLocationCollectionManager.uploadUnloadImage(con, sob.getData().getShippingNoteNumber(), image, new OnResultListener() {
@Override
public void onSuccess() {
Log.e("上报安联", "卸货照片上传成功");
Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
finish();
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(卸货照片):", s + s1);
// SPUtil.insSP(con,"make","卸货",sob.getData().getShippingNoteNumber());
// SPUtil.insSP(con,"make","卸货-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
// Intent serviceIn=new Intent(con, MakeUpAlService.class);
// startService(serviceIn);
}
});
}
public void receipt_image() {
///storage/emulated/0/Android/data/com.oneclouds.wangluohuoyun/files/Pictures/163124593063154.jpg
File file = new File(path);
Image image = new Image();
String base = BitmapUtil.imageToBase64(path);
image.setFileData("data:image/" + FileUtil.lastName(file) + ";base64," + base);
image.setFileExt(FileUtil.lastName(file));
image.setFileName(FileUtil.fileName(file));
image.setImageTakenDate(tempLocaBd.getTime());
image.setBaiduLongitude(tempLocaBd.longitude);
image.setBaiduLatitude(tempLocaBd.latitude);
image.setLocation(tempLocaBd.getAddress());
MDPLocationCollectionManager.uploadPODImage(con, sob.getData().getShippingNoteNumber(), image, new OnResultListener() {
@Override
public void onSuccess() {
Log.e("上报安联", "回单照片上传成功");
Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
finish();
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(回单照片):", s + s1);
// SPUtil.insSP(con,"make","回单",sob.getData().getShippingNoteNumber());
//// SPUtil.insSP(con,"make","回单-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
//// Intent serviceIn=new Intent(con, MakeUpAlService.class);
//// startService(serviceIn);
}
});
}
@Override
protected void onResume() {
super.onResume();
//开启前台调度系统
//NfcUtils.mNfcAdapter.enableForegroundDispatch(this, NfcUtils.mPendingIntent, NfcUtils.mIntentFilter, NfcUtils.mTechList);
}
@Override
protected void onPause() {
super.onPause();
//关闭前台调度系统
//NfcUtils.mNfcAdapter.disableForegroundDispatch(this);
}
String nfcStr = "";
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
//当该Activity接收到NFC标签时运行该方法
//调用工具方法读取NFC数据
try {
nfcStr = NfcUtils.readNFCId(intent);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
Log.e("nfc", nfcStr);
}
/**
* 上传安联和交通厅,平台-装货
*/
private void loadInfo() {
//安联
if (sob.getData().getReportAlct() == 1) {
Location l = new Location();
l.setBaiduLongitude(tempLocaBd.longitude);
l.setBaiduLatitude(tempLocaBd.latitude);
l.setLocation(tempLocaBd.getAddress());
l.setTime(tempLocaBd.getTime());
MDPLocationCollectionManager.pickup(con, sob.getData().getShippingNoteNumber(), l, new OnResultListener() {
@Override
public void onSuccess() {
Log.e("上报安联", "装货上传成功");
//交通厅
if (sob.getData().getReport() == 1) {
JTTProcess.start(con, sob, "");
}
//装货状态
hyr.loading(lub);
//装货照片
up_image_z();
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(装货):", s + s1);
new MessageUtils().showCenMessage(con, s1);
}
});
}
}
/**
* 上传安联和交通厅平台-卸货
*/
private void uploadInfo() {
//安联
if (sob.getData().getReportAlct() == 1) {
Location l = new Location();
l.setBaiduLongitude(tempLocaBd.longitude);
l.setBaiduLatitude(tempLocaBd.latitude);
l.setLocation(tempLocaBd.getAddress());
l.setTime(tempLocaBd.getTime());
Log.e("-安联卸货信息-", gson.toJson(l));
MDPLocationCollectionManager.unload(con, sob.getData().getShippingNoteNumber(), l, new OnResultListener() {
@Override
public void onSuccess() {
Log.e("上报安联", "卸货上传成功");
//交通厅
if (sob.getData().getReport() == 1) {
JTTProcess.stop(con, sob, "");
}
//卸货状态-平台
hyr.dischargeCargo4(lub);
//卸货照片-安联
up_image();
}
@Override
public void onFailure(String s, String s1) {
Log.e("上报安联失败(卸货):", s + s1);
// new MessageUtils().showCenMessage(con, s1);
//运单状态不一致平台更新状态
hyr.dischargeCargo4(lub);
}
});
}
}
}

View File

@ -58,7 +58,7 @@ public class WebPDFActivity extends BaseActivity {
protected void onPostExecute(Void aVoid) { protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid); super.onPostExecute(aVoid);
pdf_view.fromStream(input[0]) pdf_view.fromStream(input[0])
.pages(0,1) // all pages are displayed by default // .pages(0,1,2,3,4,5,6,7) // all pages are displayed by default
.enableAnnotationRendering(true) .enableAnnotationRendering(true)
.load(); .load();
} }

View File

@ -1,8 +1,14 @@
package com.arpa.hndahesudintocctmsdriver.ui.login; package com.arpa.hndahesudintocctmsdriver.ui.login;
import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Message; import android.os.Message;
import android.provider.Settings;
import android.telecom.TelecomManager;
import android.telephony.TelephonyManager;
import android.text.SpannableStringBuilder; import android.text.SpannableStringBuilder;
import android.text.TextPaint; import android.text.TextPaint;
import android.text.method.LinkMovementMethod; import android.text.method.LinkMovementMethod;
@ -10,6 +16,8 @@ import android.text.style.ClickableSpan;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ImageButton; import android.widget.ImageButton;
import android.widget.TextView; import android.widget.TextView;
@ -18,10 +26,14 @@ import android.widget.Toast;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.cardview.widget.CardView; import androidx.cardview.widget.CardView;
import com.arpa.hndahesudintocctmsdriver.bean.AppInfoBean;
import com.arpa.hndahesudintocctmsdriver.parts.ConfigParts; import com.arpa.hndahesudintocctmsdriver.parts.ConfigParts;
import com.arpa.hndahesudintocctmsdriver.request.net.BaseObserver; import com.arpa.hndahesudintocctmsdriver.request.net.BaseObserver;
import com.arpa.hndahesudintocctmsdriver.request.net.DataManager; import com.arpa.hndahesudintocctmsdriver.request.net.DataManager;
import com.arpa.hndahesudintocctmsdriver.request.net.RxHttpCallBack; 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.dahe.mylibrary.net.CommonResponseBean;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.arpa.hndahesudintocctmsdriver.R; import com.arpa.hndahesudintocctmsdriver.R;
@ -38,6 +50,7 @@ import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants;
import com.arpa.hndahesudintocctmsdriver.util.statusbar.StatusBarUtil; import com.arpa.hndahesudintocctmsdriver.util.statusbar.StatusBarUtil;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity; import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity;
import java.util.Locale;
import java.util.TimerTask; import java.util.TimerTask;
import cn.jiguang.verifysdk.api.AuthPageEventListener; import cn.jiguang.verifysdk.api.AuthPageEventListener;
@ -64,9 +77,9 @@ public class LoginActivity extends BaseActivity {
private LoginBean loginBean; private LoginBean loginBean;
private TimerTask tt; private TimerTask tt;
private int timer_sum = 60; private int timer_sum = 60;
private ImageButton agree_btn; private CheckBox cb;
private CardView no_btn;
private UserRequset ur; private UserRequset ur;
private CustomDialog customDialog;
@Override @Override
public void msgMethod(Message m) { public void msgMethod(Message m) {
@ -85,23 +98,42 @@ public class LoginActivity extends BaseActivity {
Log.e("--短信发送res--", "短信发送成功"); Log.e("--短信发送res--", "短信发送成功");
} }
if (CacheGroup.cacheList.get(LOGIN_RESULT) != null) { 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); loginBean = new Gson().fromJson(CacheGroup.cacheList.get(LOGIN_RESULT), LoginBean.class);
Log.e("--登录信息--", new Gson().toJson(loginBean)); Log.e("--登录信息--", new Gson().toJson(loginBean));
AppInfoBean appInfoBean = new AppInfoBean();
if (loginBean.getCode() == 200) { if (loginBean.getCode() == 200) {
SPUtil.insSP(con, USER, USER_TOKEN, loginBean.getData().getToken()); SPUtil.insSP(con, USER, USER_TOKEN, loginBean.getData().getToken());
SPUtil.insSP(con, USER, USER_UNAME, loginBean.getData().getUname()); SPUtil.insSP(con, USER, USER_UNAME, loginBean.getData().getUname());
SPUtil.insSP(con, USER, USER_RNAME, loginBean.getData().getRname()); SPUtil.insSP(con, USER, USER_RNAME, loginBean.getData().getRname());
SPUtil.insSP(con, USER, USER_ID, loginBean.getData().getId() + ""); SPUtil.insSP(con, USER, USER_ID, loginBean.getData().getId() + "");
JPushInterface.setAlias(con, 0, loginBean.getData().getUname()); // JPushInterface.setAlias(con, 0, loginBean.getData().getUname());
appInfoBean.setStatus("0");
appInfoBean.setUserPhone(String.valueOf(input_phone.getText()));
ur.postAppInfo(appInfoBean, "post");
UiAuxiliary.homeRequest("登录成功"); UiAuxiliary.homeRequest("登录成功");
finish(); finish();
} else { } else {
appInfoBean.setStatus("1");
appInfoBean.setUserPhone(String.valueOf(input_phone.getText()));
ur.postAppInfo(appInfoBean, "post");
Toast.makeText(con, loginBean.getMsg(), Toast.LENGTH_SHORT).show(); Toast.makeText(con, loginBean.getMsg(), Toast.LENGTH_SHORT).show();
} }
CacheGroup.cacheList.remove(LOGIN_RESULT); CacheGroup.cacheList.remove(LOGIN_RESULT);
} }
break; break;
case RequsetCodeConstants.ERROR:
if (customDialog != null && customDialog.isShowing())
customDialog.dismiss();
btn_login.setEnabled(true);
btn_login.setBackgroundResource(R.drawable.bg_btn);
break;
default: default:
break; break;
} }
@ -118,8 +150,7 @@ public class LoginActivity extends BaseActivity {
input_phone = findViewById(R.id.input_phone); input_phone = findViewById(R.id.input_phone);
input_code = findViewById(R.id.input_code); input_code = findViewById(R.id.input_code);
getCode = findViewById(R.id.getCode); getCode = findViewById(R.id.getCode);
agree_btn = findViewById(R.id.agree_btn); cb = findViewById(R.id.cb);
no_btn = findViewById(R.id.no_btn);
ur = new UserRequset(con, hd); ur = new UserRequset(con, hd);
initView(null); initView(null);
} }
@ -132,21 +163,18 @@ public class LoginActivity extends BaseActivity {
@Override @Override
public void initView(Object obj) { public void initView(Object obj) {
super.initView(obj); super.initView(obj);
agree_btn.setOnClickListener(v -> { cb.setOnCheckedChangeListener((buttonView, isChecked) -> {
agree_btn.setVisibility(View.GONE); if (isChecked) {
no_btn.setVisibility(View.VISIBLE);
key = false;
});
no_btn.setOnClickListener(v -> {
agree_btn.setVisibility(View.VISIBLE);
no_btn.setVisibility(View.GONE);
key = true; key = true;
} else {
key = false;
}
}); });
ConfigBean cb = ConfigParts.getConfigParts(con); ConfigBean cb = ConfigParts.getConfigParts(con);
if (cb != null) { if (cb != null) {
url1 = cb.getData().getUserUrl(); url1 = "https://agreement.dahehuoyun.com/#/user";
url2 = "https://agreement.dahehuoyun.com/huawei/#/private"; url2 = "https://agreement.dahehuoyun.com/currency/#/";
} }
TextView tv_content = findViewById(R.id.tv_content); TextView tv_content = findViewById(R.id.tv_content);
String str = "我已阅读并同意相关服务条款和隐私政策《用户服务协议》和《隐私政策》"; String str = "我已阅读并同意相关服务条款和隐私政策《用户服务协议》和《隐私政策》";
@ -159,7 +187,7 @@ public class LoginActivity extends BaseActivity {
public void onClick(View widget) { public void onClick(View widget) {
Log.e("-用户服务协议-", url1); Log.e("-用户服务协议-", url1);
//用户服务协议点击事件 //用户服务协议点击事件
Intent in = new Intent(con, WebActivity.class); Intent in = new Intent(con, WebOnlyOneActivity.class);
in.putExtra("title", "用户服务协议"); in.putExtra("title", "用户服务协议");
in.putExtra("url", url1); in.putExtra("url", url1);
startActivity(in); startActivity(in);
@ -179,7 +207,7 @@ public class LoginActivity extends BaseActivity {
@Override @Override
public void onClick(View widget) { public void onClick(View widget) {
//隐私协议点击事件 //隐私协议点击事件
Intent in = new Intent(con, WebActivity.class); Intent in = new Intent(con, WebOnlyOneActivity.class);
in.putExtra("title", "隐私政策"); in.putExtra("title", "隐私政策");
in.putExtra("url", url2); in.putExtra("url", url2);
startActivity(in); startActivity(in);
@ -214,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 phone = String.valueOf(input_phone.getText());
String code = String.valueOf(input_code.getText()); String code = String.valueOf(input_code.getText());
Log.e("--code--", code); Log.e("--code--", code);
if (judgeFormat(phone, code)) { if (judgeFormat(phone, code)) {
if (key) { if (key) {
btn_login.setEnabled(false);
btn_login.setBackgroundResource(R.drawable.bg_btn_gray);
customDialog = new CustomDialog(con, "登陆中...");
customDialog.show();
LoginRegInputBean lb = new LoginRegInputBean(); LoginRegInputBean lb = new LoginRegInputBean();
lb.setRoleId(4); lb.setRoleId(4);
lb.setUname(phone); lb.setUname(phone);
@ -231,7 +263,7 @@ public class LoginActivity extends BaseActivity {
Toast.makeText(con, "请先同意用户协议和隐私政策", Toast.LENGTH_SHORT).show(); Toast.makeText(con, "请先同意用户协议和隐私政策", Toast.LENGTH_SHORT).show();
} }
} }
}); }));
auto_login.setOnClickListener(v -> { auto_login.setOnClickListener(v -> {
JVerificationInterface.getToken(con, 20000, (i, s, s1) -> { JVerificationInterface.getToken(con, 20000, (i, s, s1) -> {
JVerifyUIConfig uiConfig = new JVerifyUIConfig.Builder() JVerifyUIConfig uiConfig = new JVerifyUIConfig.Builder()

View File

@ -30,10 +30,12 @@ import androidx.core.app.ActivityCompat;
import com.alct.mdp.MDPLocationCollectionManager; import com.alct.mdp.MDPLocationCollectionManager;
import com.arpa.hndahesudintocctmsdriver.BuildConfig; import com.arpa.hndahesudintocctmsdriver.BuildConfig;
import com.arpa.hndahesudintocctmsdriver.bean.AppInfoBean;
import com.arpa.hndahesudintocctmsdriver.bean.ImageConfig; import com.arpa.hndahesudintocctmsdriver.bean.ImageConfig;
import com.arpa.hndahesudintocctmsdriver.parts.ConfigParts; import com.arpa.hndahesudintocctmsdriver.parts.ConfigParts;
import com.arpa.hndahesudintocctmsdriver.report.JTTProcess; import com.arpa.hndahesudintocctmsdriver.report.JTTProcess;
import com.arpa.hndahesudintocctmsdriver.request.UserRequset; import com.arpa.hndahesudintocctmsdriver.request.UserRequset;
import com.arpa.hndahesudintocctmsdriver.ui.UiAuxiliary;
import com.arpa.hndahesudintocctmsdriver.ui.business.BusinessActivity; import com.arpa.hndahesudintocctmsdriver.ui.business.BusinessActivity;
import com.arpa.hndahesudintocctmsdriver.util.SPUtils; import com.arpa.hndahesudintocctmsdriver.util.SPUtils;
import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup;
@ -138,16 +140,17 @@ public class WelcomeActivity extends BaseAppCompatActivity {
new XPopup.Builder(con) new XPopup.Builder(con)
.dismissOnBackPressed(false) .dismissOnBackPressed(false)
.dismissOnTouchOutside(false) .dismissOnTouchOutside(false)
.asCustom(new AgreementAlert(con, "https://agreement.dahehuoyun.com/huawei/#/private", .asCustom(new AgreementAlert(con, "https://agreement.dahehuoyun.com/currency/#/",
"http://agreement.dahehuoyun.com/#/user", hd)) "https://agreement.dahehuoyun.com/#/user", hd))
.show(); .show();
} }
if (WelcomeActivity.this!=null&&!WelcomeActivity.this.isFinishing()){
Glide.with(con) Glide.with(con)
.load(SPUtils.getPreWelPic(this)) .load(SPUtils.getPreWelPic(this))
.placeholder(startImageUrl.getDrawable()) .placeholder(startImageUrl.getDrawable())
.error(R.drawable.welcome_bg_default) .error(R.drawable.welcome_bg_default)
.into(startImageUrl); .into(startImageUrl);
}
//SystemUtil.get //SystemUtil.get
} }
@ -159,6 +162,16 @@ public class WelcomeActivity extends BaseAppCompatActivity {
initRequest(); initRequest();
} }
}, 1000); }, 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[]{ // String[] permissions=new String[]{
// Manifest.permission.ACCESS_FINE_LOCATION, // Manifest.permission.ACCESS_FINE_LOCATION,
@ -280,11 +293,13 @@ public class WelcomeActivity extends BaseAppCompatActivity {
public void cdWelcome(String url) { public void cdWelcome(String url) {
if (!"".equals(url)) { if (!"".equals(url)) {
if (WelcomeActivity.this!=null&&!WelcomeActivity.this.isFinishing()){
Glide.with(con).load(url) Glide.with(con).load(url)
.placeholder(startImageUrl.getDrawable()) .placeholder(startImageUrl.getDrawable())
.error(R.drawable.welcome_bg_default) .error(R.drawable.welcome_bg_default)
.into(startImageUrl); .into(startImageUrl);
} }
}
SPUtils.setPreWelPic(this, url); SPUtils.setPreWelPic(this, url);
cd_view.setVisibility(View.VISIBLE); cd_view.setVisibility(View.VISIBLE);
new CountDownTimer(cd * 1000, 1000) { new CountDownTimer(cd * 1000, 1000) {
@ -331,8 +346,8 @@ public class WelcomeActivity extends BaseAppCompatActivity {
} }
//在使用SDK各组件之前初始化context信息传入ApplicationContext //在使用SDK各组件之前初始化context信息传入ApplicationContext
// 路由初始化 // 路由初始化
JVerificationInterface.setDebugMode(true); // JVerificationInterface.setDebugMode(true);
JVerificationInterface.init(con, 5000, (code, msg) -> Log.d("tag", "code = " + code + " msg = " + msg)); // JVerificationInterface.init(con, 5000, (code, msg) -> Log.d("tag", "code = " + code + " msg = " + msg));
//友盟 //友盟
//设置非debug版本开启 //设置非debug版本开启
if (!isDebugVersion(con)) { if (!isDebugVersion(con)) {

View File

@ -17,14 +17,19 @@ import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.arpa.hndahesudintocctmsdriver.bean.UpAppBean;
import com.arpa.hndahesudintocctmsdriver.event.PersonEvent; import com.arpa.hndahesudintocctmsdriver.event.PersonEvent;
import com.arpa.hndahesudintocctmsdriver.event.RefreshCarListEvent;
import com.arpa.hndahesudintocctmsdriver.event.VehicleEvent; import com.arpa.hndahesudintocctmsdriver.event.VehicleEvent;
import com.arpa.hndahesudintocctmsdriver.parts.ConfigParts; import com.arpa.hndahesudintocctmsdriver.parts.ConfigParts;
import com.arpa.hndahesudintocctmsdriver.parts.StartOrderParts; import com.arpa.hndahesudintocctmsdriver.parts.StartOrderParts;
import com.arpa.hndahesudintocctmsdriver.parts.UserParts; import com.arpa.hndahesudintocctmsdriver.parts.UserParts;
import com.arpa.hndahesudintocctmsdriver.ui.alert.UpAppAlert;
import com.arpa.hndahesudintocctmsdriver.ui.business.BusinessActivity; import com.arpa.hndahesudintocctmsdriver.ui.business.BusinessActivity;
import com.arpa.hndahesudintocctmsdriver.util.PicturlUtil; import com.arpa.hndahesudintocctmsdriver.util.PicturlUtil;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.dahe.mylibrary.utils.ImageLoader;
import com.dahe.mylibrary.utils.ToastUtils;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.lxj.xpopup.XPopup; import com.lxj.xpopup.XPopup;
@ -47,6 +52,7 @@ import com.permissionx.guolindev.PermissionX;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -92,6 +98,25 @@ public class MyFragment extends BaseFragment {
} }
CacheGroup.cacheList.remove("userdata"); 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; break;
} }
} }
@ -170,12 +195,14 @@ public class MyFragment extends BaseFragment {
startActivity(in); startActivity(in);
}); });
break; break;
default:break; default:
break;
} }
}); });
} }
class Model{ } class Model {
}
public void getRequest() { public void getRequest() {
sob = StartOrderParts.getStartOrder(con); sob = StartOrderParts.getStartOrder(con);
@ -259,7 +286,10 @@ public class MyFragment extends BaseFragment {
startActivity(in); 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))); onSetUp.setOnClickListener(v -> startActivity(new Intent(con, SetupActivity.class)));
} }
@ -277,18 +307,31 @@ public class MyFragment extends BaseFragment {
} }
if (!"".equals(userBean.getData().getHeadportraitUrl())) { 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); 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); no_auth.setVisibility(View.GONE);
} else { } else {
auth_box.setVisibility(View.GONE); no_auth.setBackgroundResource(R.mipmap.icon_auth_wsh);
no_auth.setVisibility(View.VISIBLE);
} }
} }
} }
// 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);
// }
}
}
@Subscribe @Subscribe
public void processResult(VehicleEvent event) { public void processResult(VehicleEvent event) {
Log.e("-msg-", event.getMessage()); Log.e("-msg-", event.getMessage());
@ -296,11 +339,26 @@ public class MyFragment extends BaseFragment {
ur.vehicleList("1"); ur.vehicleList("1");
} }
} }
@Subscribe @Subscribe
public void refreshCarListEvent(RefreshCarListEvent event) {
Log.e("-msg-", event.getMessage());
ur.vehicleList("1");
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void personResult(PersonEvent home) { public void personResult(PersonEvent home) {
Log.e("-res-", home.getMessage()); Log.e("-res-", home.getMessage());
if (ur != null) { if (ur != null) {
ur.User(); ur.User();
} }
} }
@Override
public void onStart() {
super.onStart();
if (ur != null) {
ur.User();
}
}
} }

View File

@ -13,6 +13,7 @@ import android.widget.Toast;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.arpa.hndahesudintocctmsdriver.parts.ConfigParts; import com.arpa.hndahesudintocctmsdriver.parts.ConfigParts;
import com.arpa.hndahesudintocctmsdriver.ui.web.WebOnlyOneActivity;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.lxj.xpopup.XPopup; import com.lxj.xpopup.XPopup;
import com.arpa.hndahesudintocctmsdriver.R; import com.arpa.hndahesudintocctmsdriver.R;
@ -35,7 +36,7 @@ public class SetupActivity extends BaseActivity {
String url2=""; String url2="";
String url3=""; String url3="";
String kefu=""; String kefu="";
private RelativeLayout r1,r2,r3,r4,r5,r6,r7; private RelativeLayout r1,r2,r3,r4,r5,r6,r7,r8;
@Override @Override
public void msgMethod(Message m) { public void msgMethod(Message m) {
@ -73,8 +74,9 @@ public class SetupActivity extends BaseActivity {
ConfigBean cb= ConfigParts.getConfigParts(con); ConfigBean cb= ConfigParts.getConfigParts(con);
if(cb!=null){ if(cb!=null){
// url1=cb.getData().getUserUrl(); // url1=cb.getData().getUserUrl();
url1="https://agreement.dahehuoyun.com/huawei/#/private"; url1="https://agreement.dahehuoyun.com/rule/serviceAgreement/dist/index.html#/";
url2=cb.getData().getPrivateUrl(); // url2=cb.getData().getPrivateUrl();
url2="https://agreement.dahehuoyun.com/currency/#/";
kefu=cb.getData().getServiceMobile(); kefu=cb.getData().getServiceMobile();
url3=cb.getData().getSecurityUrl(); url3=cb.getData().getSecurityUrl();
} }
@ -85,6 +87,7 @@ public class SetupActivity extends BaseActivity {
r5=findViewById(R.id.r5); r5=findViewById(R.id.r5);
r6=findViewById(R.id.r6); r6=findViewById(R.id.r6);
r7=findViewById(R.id.r7); r7=findViewById(R.id.r7);
r8=findViewById(R.id.r8);
ur=new UserRequset(con,hd); ur=new UserRequset(con,hd);
initView(null); initView(null);
} }
@ -92,19 +95,19 @@ public class SetupActivity extends BaseActivity {
public void initView(Object obj) { public void initView(Object obj) {
super.initView(obj); super.initView(obj);
r1.setOnClickListener(v12 -> { r1.setOnClickListener(v12 -> {
Intent in=new Intent(con,WebActivity.class); Intent in=new Intent(con, WebOnlyOneActivity.class);
in.putExtra("title","隐私政策"); in.putExtra("title","隐私政策");
in.putExtra("url",url2); in.putExtra("url",url2);
startActivity(in); startActivity(in);
}); });
r2.setOnClickListener(v12 -> { r2.setOnClickListener(v12 -> {
Intent in=new Intent(con,WebActivity.class); Intent in=new Intent(con,WebOnlyOneActivity.class);
in.putExtra("title","用户协议"); in.putExtra("title","用户协议");
in.putExtra("url",url1); in.putExtra("url",url1);
startActivity(in); startActivity(in);
}); });
r3.setOnClickListener(v12 -> { r3.setOnClickListener(v12 -> {
Intent in=new Intent(con,WebActivity.class); Intent in=new Intent(con,WebOnlyOneActivity.class);
in.putExtra("title","运输安全责任书"); in.putExtra("title","运输安全责任书");
in.putExtra("url",url3); in.putExtra("url",url3);
startActivity(in); startActivity(in);
@ -118,9 +121,15 @@ public class SetupActivity extends BaseActivity {
in.putExtra("url","https://smlt.esign.cn/hmfbZoeeGQqv"); in.putExtra("url","https://smlt.esign.cn/hmfbZoeeGQqv");
startActivity(in); startActivity(in);
}); });
r8.setOnClickListener(v12 -> {
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 -> { r6.setOnClickListener(v12 -> {
String[] title={"平台客服:"+kefu,"银行客服:95528","技术咨询:13460042961"}; String[] title={"平台客服:"+kefu};
String[] value={kefu,"95528","13460042961"}; String[] value={kefu};
new XPopup.Builder(con) new XPopup.Builder(con)
.isDarkTheme(false) .isDarkTheme(false)
.isDestroyOnDismiss(true) //对于只使用一次的弹窗推荐设置这个 .isDestroyOnDismiss(true) //对于只使用一次的弹窗推荐设置这个

View File

@ -5,6 +5,7 @@ import android.os.Bundle;
import android.os.Message; import android.os.Message;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.View;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
@ -12,7 +13,18 @@ import android.widget.Toast;
import androidx.annotation.Nullable; 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.bumptech.glide.Glide;
import com.dahe.mylibrary.utils.ImageLoader;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.arpa.hndahesudintocctmsdriver.R; import com.arpa.hndahesudintocctmsdriver.R;
import com.arpa.hndahesudintocctmsdriver.bean.BaseBean; import com.arpa.hndahesudintocctmsdriver.bean.BaseBean;
@ -30,6 +42,8 @@ import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity;
import com.luck.picture.lib.PictureSelector; import com.luck.picture.lib.PictureSelector;
import com.luck.picture.lib.config.PictureConfig; import com.luck.picture.lib.config.PictureConfig;
import com.luck.picture.lib.entity.LocalMedia; import com.luck.picture.lib.entity.LocalMedia;
import com.lxj.xpopup.XPopup;
import com.lxj.xpopup.util.SmartGlideImageLoader;
import java.io.File; import java.io.File;
import java.util.List; import java.util.List;
@ -40,17 +54,21 @@ import java.util.List;
* @date 2021/8/26 19:06 * @date 2021/8/26 19:06
* @description: * @description:
*/ */
public class UpBankActivity extends BaseAppCompatActivity { public class UpBankActivity extends BaseAppCompatActivity implements OnLimitClickListener {
private ImageView up_bank_img; private ImageView up_bank_img;
private EditText bank_name, bank_number; private EditText bank_name, bank_number;
private TextView submit; private TextView submit, skip;
private ImageView return_btn; private ImageView return_btn;
public GetImageAlert gia = new GetImageAlert(); public GetImageAlert gia = new GetImageAlert();
String path; String path;
private OCRBankBean ib; private OCRBankBean ib;
DriverAuthDataBean dad;
boolean isAuth = false;
private WalletRequest qr; private WalletRequest qr;
private TextView tp; private TextView tp;
private String imageId;
@Override @Override
public void msgMethod(Message m) { public void msgMethod(Message m) {
@ -59,18 +77,45 @@ public class UpBankActivity extends BaseAppCompatActivity {
case RequsetCodeConstants.SUCCESS: case RequsetCodeConstants.SUCCESS:
if (CacheGroup.cacheList.get("OCR_BANK") != null) { if (CacheGroup.cacheList.get("OCR_BANK") != null) {
ib = new Gson().fromJson(CacheGroup.cacheList.get("OCR_BANK"), OCRBankBean.class); ib = new Gson().fromJson(CacheGroup.cacheList.get("OCR_BANK"), OCRBankBean.class);
if(ib.getCode()==200){
initView(null);
customDialog.dismiss(); customDialog.dismiss();
if (ib.getCode() == 200&&ib.getData()!=null) {
initView(null);
WalletFragment.isInsBank = true; WalletFragment.isInsBank = true;
} else { } else {
Toast.makeText(con,ib.getMsg(),Toast.LENGTH_SHORT).show(); Toast.makeText(con, "识别失败", Toast.LENGTH_SHORT).show();
} }
CacheGroup.cacheList.remove("OCR_BANK"); 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 (CacheGroup.cacheList.get("insBank") != null) {
if (customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
BaseBean bb = new Gson().fromJson(CacheGroup.cacheList.get("insBank"), BaseBean.class); BaseBean bb = new Gson().fromJson(CacheGroup.cacheList.get("insBank"), BaseBean.class);
if (bb.getCode() == 200) { if (bb.getCode() == 200) {
if (type == 1) {
Intent in = new Intent(con, CertificatesActivity.class);
in.putExtra("index", 1);
startActivity(in);
}
Toast.makeText(con, "绑定成功", Toast.LENGTH_SHORT).show(); Toast.makeText(con, "绑定成功", Toast.LENGTH_SHORT).show();
finish(); finish();
} else { } else {
@ -78,18 +123,39 @@ public class UpBankActivity extends BaseAppCompatActivity {
} }
CacheGroup.cacheList.remove("insBank"); 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; break;
case ImageFileCompressUtil.COMPRESS_SUCCESS: case ImageFileCompressUtil.COMPRESS_SUCCESS:
customDialog = new CustomDialog(con, "上传识别中..."); customDialog = new CustomDialog(con, "上传识别中...");
customDialog.show(); customDialog.show();
path = (String) m.obj; 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; break;
} }
} }
private CustomDialog customDialog; private CustomDialog customDialog;
/**
* 1司机注册自动跳转
* 0钱包添加银行卡
*/
private int type = 0;
@Override @Override
protected void onCreate(@Nullable Bundle savedInstanceState) { protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
@ -97,33 +163,47 @@ public class UpBankActivity extends BaseAppCompatActivity {
setContentView(R.layout.activity_bank_auth); setContentView(R.layout.activity_bank_auth);
act = this; act = this;
con = this; con = this;
Bundle extras = getIntent().getExtras();
if (extras != null) {
type = getIntent().getExtras().getInt("type");
}
up_bank_img = findViewById(R.id.up_bank_img); up_bank_img = findViewById(R.id.up_bank_img);
bank_name = findViewById(R.id.bank_name); bank_name = findViewById(R.id.bank_name);
bank_number = findViewById(R.id.bank_number); bank_number = findViewById(R.id.bank_number);
submit = findViewById(R.id.submit); submit = findViewById(R.id.submit);
skip = findViewById(R.id.skip);
return_btn = findViewById(R.id.return_btn); return_btn = findViewById(R.id.return_btn);
qr = new WalletRequest(con, hd); qr = new WalletRequest(con, hd);
up_bank_img.setOnClickListener(v -> { up_bank_img.setOnClickListener(v -> {
gia.showPopueWindow(this); if (isAuth) {
}); new XPopup.Builder(con)
submit.setOnClickListener(v -> { .asImageViewer(up_bank_img, dad.getData().getBankImgUrl(), new SmartGlideImageLoader(R.mipmap.ic_launcher_round))
if(ib!=null){ .show();
submit();
} else { } else {
Toast.makeText(con,"请先上传图片",Toast.LENGTH_SHORT).show(); gia.showPopueWindow(this);
} }
}); });
submit.setOnClickListener(new OnLimitClickHelper(this));
skip.setOnClickListener(new OnLimitClickHelper(this));
return_btn.setOnClickListener(v -> { return_btn.setOnClickListener(v -> {
finish(); finish();
}); });
if (type == 1) {
skip.setVisibility(View.VISIBLE);
} else {
skip.setVisibility(View.GONE);
}
UserRequset ur = new UserRequset(con, hd);
ur.driverAuthData();
} }
@Override @Override
public void initView(Object obj) { public void initView(Object obj) {
super.initView(obj); super.initView(obj);
bank_name.setText(ib.getData().getBankName()); bank_name.setText(ib.getData().getBankName());
bank_number.setText(ib.getData().getBankCardNumber()); bank_number.setText(ib.getData().getCardNumber());
Glide.with(con).load(ib.getData().getUrl()).into(up_bank_img); ImageLoader.getInstance().loadImage(con,path,up_bank_img);
} }
@Override @Override
@ -152,6 +232,8 @@ public class UpBankActivity extends BaseAppCompatActivity {
} }
public void submit() { public void submit() {
customDialog = new CustomDialog(con, "上传中,请稍后...");
customDialog.show();
String bankName = bank_name.getText().toString().trim(); String bankName = bank_name.getText().toString().trim();
String bankNumber = bank_number.getText().toString().trim(); String bankNumber = bank_number.getText().toString().trim();
if ("".equals(bankName) || "".equals(bankNumber)) { if ("".equals(bankName) || "".equals(bankNumber)) {
@ -160,12 +242,39 @@ public class UpBankActivity extends BaseAppCompatActivity {
} }
InsBankInputBean ibib = new InsBankInputBean(); InsBankInputBean ibib = new InsBankInputBean();
ibib.setCardNo(bankNumber); ibib.setCardNo(bankNumber);
ibib.setCardType(Integer.parseInt(ib.getData().getBankCardType())); // ibib.setCardType(Integer.parseInt(ib.getData().getType()));
ibib.setCardType(1);
ibib.setBankName(bankName); ibib.setBankName(bankName);
ibib.setCardUserType(1); ibib.setCardUserType(1);
ibib.setImageId(ib.getData().getId()); ibib.setImageId(Integer.parseInt(imageId));
Log.e("-res-", new Gson().toJson(ibib)); Log.e("-res-", new Gson().toJson(ibib));
qr.insBankCard(ibib); qr.insBankCard(ibib);
} }
@Override
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;
}
}
} }

View File

@ -15,6 +15,8 @@ import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.arpa.hndahesudintocctmsdriver.event.VehicleEvent;
import com.arpa.hndahesudintocctmsdriver.event.WalletEvent;
import com.arpa.hndahesudintocctmsdriver.parts.UserParts; import com.arpa.hndahesudintocctmsdriver.parts.UserParts;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.lxj.xpopup.XPopup; 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.BaseFragment;
import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView; import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -123,6 +127,7 @@ public class WalletFragment extends BaseFragment{
@Override @Override
public View onCreateView(@NonNull @NotNull LayoutInflater inflater, @Nullable @org.jetbrains.annotations.Nullable ViewGroup container, @Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) { 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); root=inflater.inflate(R.layout.fragmengt_qianbao,container,false);
EventBus.getDefault().register(this);
dataName2="bcb"; dataName2="bcb";
con=root.getContext(); con=root.getContext();
rv=root.findViewById(R.id.rv); rv=root.findViewById(R.id.rv);
@ -231,6 +236,7 @@ public class WalletFragment extends BaseFragment{
bank_remove.setVisibility(View.VISIBLE); bank_remove.setVisibility(View.VISIBLE);
} else{ } else{
bank_number.setVisibility(View.GONE); bank_number.setVisibility(View.GONE);
bank_title_1.setText("未添加银行卡");
bank_add.setVisibility(View.VISIBLE); bank_add.setVisibility(View.VISIBLE);
bank_remove.setVisibility(View.GONE); bank_remove.setVisibility(View.GONE);
} }
@ -316,5 +322,14 @@ public class WalletFragment extends BaseFragment{
// .show(); // .show();
// } // }
@Subscribe
public void processResult(WalletEvent event) {
Log.e("-msg-", event.getMessage());
refreshLayout.autoRefresh();
}
@Override
public void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
}
} }

View File

@ -5,9 +5,12 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.net.Uri; import android.net.Uri;
import android.net.http.SslError;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log; import android.util.Log;
import android.webkit.JavascriptInterface; import android.webkit.JavascriptInterface;
import android.webkit.SslErrorHandler;
import android.webkit.WebResourceRequest; import android.webkit.WebResourceRequest;
import android.webkit.WebSettings; import android.webkit.WebSettings;
import android.webkit.WebView; import android.webkit.WebView;
@ -81,6 +84,11 @@ public class WebActivity extends BaseActivity {
webSettings.setJavaScriptEnabled(true); webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true); webSettings.setDomStorageEnabled(true);
webSettings.setDefaultTextEncodingName("utf-8"); 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"); wv.addJavascriptInterface(new JavaScriptObject(con), "webObj");
//PaxWebChromeClient chromeClient=new PaxWebChromeClient(); //PaxWebChromeClient chromeClient=new PaxWebChromeClient();
//WebView加载web资源 //WebView加载web资源
@ -111,6 +119,12 @@ public class WebActivity extends BaseActivity {
wv.loadUrl(url); wv.loadUrl(url);
return true; return true;
} }
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
super.onReceivedSslError(view, handler, error);
handler.proceed();
}
}); });
wv.setWebChromeClient(chromeClient); wv.setWebChromeClient(chromeClient);
wv.loadUrl(url); wv.loadUrl(url);
@ -149,6 +163,12 @@ public class WebActivity extends BaseActivity {
view.loadUrl(url); view.loadUrl(url);
return true; 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 @JavascriptInterface
public String getUserToken(){ 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(); return UserParts.getUser(con).getData().getToken();
} }
@ -191,7 +212,11 @@ public class WebActivity extends BaseActivity {
public void isSuccess(){ public void isSuccess(){
finish(); finish();
} }
@JavascriptInterface
public void isPdfSuccess(){
Toast.makeText(con, "签署成功", Toast.LENGTH_SHORT).show();
finish();
}
} }

View File

@ -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();
}
}
}

View File

@ -27,7 +27,8 @@ class MessageUtils {
XPopup.Builder(ctx) // XPopup.Builder(ctx) //
.hasNavigationBar(false) .hasNavigationBar(false)
.isDestroyOnDismiss(true) //对于只使用一次的弹窗对象,推荐设置这个 .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) { override fun onItemClick(startTime: String, endTime: String) {
} }
})) }))
@ -38,14 +39,20 @@ class MessageUtils {
XPopup.Builder(ctx) // XPopup.Builder(ctx) //
.hasNavigationBar(false) .hasNavigationBar(false)
.isDestroyOnDismiss(true) //对于只使用一次的弹窗对象,推荐设置这个 .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) { override fun onItemClick(startTime: String, endTime: String) {
} }
})) }))
.show() .show()
} }
fun showSimCenPop(ctx: Context, message: String,onMyItemClickListener: SimCenterPop.OnMyItemClickListener){ fun showSimCenPop(
ctx: Context,
message: String,
titleRight:String = "去注册",
onMyItemClickListener: SimCenterPop.OnMyItemClickListener
) {
// XPopup.Builder(ctx) // // XPopup.Builder(ctx) //
// .hasNavigationBar(false) // .hasNavigationBar(false)
@ -62,7 +69,36 @@ class MessageUtils {
XPopup.Builder(ctx) // XPopup.Builder(ctx) //
.hasNavigationBar(false) .hasNavigationBar(false)
.isDestroyOnDismiss(true) //对于只使用一次的弹窗对象,推荐设置这个 .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() .show()
} }

View File

@ -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;
}
}
}

View File

@ -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()
}
}

View File

@ -51,6 +51,9 @@ public class AdapterAlls extends RecyclerView.Adapter<AdapterAlls.ViewHolder> {
} }
public void add(List<ManyBean> addMessageList) { public void add(List<ManyBean> addMessageList) {
if (object==null){
return;
}
//增加数据 //增加数据
int position = object.size(); int position = object.size();
object.addAll(position, addMessageList); object.addAll(position, addMessageList);

View File

@ -3,6 +3,7 @@ package com.arpa.hndahesudintocctmsdriver.util.http;
import android.content.Context; import android.content.Context;
import com.arpa.hndahesudintocctmsdriver.util.app.VersionUtil; import com.arpa.hndahesudintocctmsdriver.util.app.VersionUtil;
import com.dahe.mylibrary.utils.AppUtils;
import java.io.File; import java.io.File;
@ -41,6 +42,7 @@ public class OkHttpUtil {
.post(body) .post(body)
.headers(hb.build()) .headers(hb.build())
.addHeader("Version", VersionUtil.getVersion(con)) .addHeader("Version", VersionUtil.getVersion(con))
.addHeader("VersionCode",String.valueOf(AppUtils.getAppVersionCode()))
//.addHeader("sign",sign) //.addHeader("sign",sign)
.removeHeader("User-Agent") .removeHeader("User-Agent")
.addHeader("User-Agent",GetUtil.getUserAgent(con)) .addHeader("User-Agent",GetUtil.getUserAgent(con))
@ -71,6 +73,40 @@ public class OkHttpUtil {
.addHeader("Authorization", token) .addHeader("Authorization", token)
.addHeader("Content-Type", "application/json") .addHeader("Content-Type", "application/json")
.addHeader("Version", VersionUtil.getVersion(con)) .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 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) //.addHeader("sign",sign)
.removeHeader("User-Agent") .removeHeader("User-Agent")
.addHeader("User-Agent",GetUtil.getUserAgent(con)) .addHeader("User-Agent",GetUtil.getUserAgent(con))
@ -86,6 +122,7 @@ public class OkHttpUtil {
.url(od.getUrl()) .url(od.getUrl())
.get() .get()
.headers(hb.build()) .headers(hb.build())
.addHeader("VersionCode",String.valueOf(AppUtils.getAppVersionCode()))
.build(); .build();
return request; return request;
} }
@ -99,6 +136,7 @@ public class OkHttpUtil {
Request request = new Request.Builder() Request request = new Request.Builder()
.url(od.getUrl()) .url(od.getUrl())
.addHeader("Authorization", token) .addHeader("Authorization", token)
.addHeader("VersionCode",String.valueOf(AppUtils.getAppVersionCode()))
.get() .get()
.headers(hb.build()) .headers(hb.build())
.build(); .build();
@ -129,6 +167,7 @@ public class OkHttpUtil {
.url(od.getUrl()) .url(od.getUrl())
.method("POST", body) .method("POST", body)
.addHeader("Authorization", token) .addHeader("Authorization", token)
.addHeader("VersionCode",String.valueOf(AppUtils.getAppVersionCode()))
.addHeader("Cookie", "JSESSIONID=NqpqKQstwceQurcNK5hjl4GnTgiF4eSzZSo5a1rz") .addHeader("Cookie", "JSESSIONID=NqpqKQstwceQurcNK5hjl4GnTgiF4eSzZSo5a1rz")
.build(); .build();
return request; return request;
@ -145,23 +184,26 @@ public class OkHttpUtil {
.url(od.getUrl()) .url(od.getUrl())
.method("POST", body) .method("POST", body)
.addHeader("Authorization", token) .addHeader("Authorization", token)
.addHeader("VersionCode",String.valueOf(AppUtils.getAppVersionCode()))
.addHeader("Cookie", "JSESSIONID=NqpqKQstwceQurcNK5hjl4GnTgiF4eSzZSo5a1rz") .addHeader("Cookie", "JSESSIONID=NqpqKQstwceQurcNK5hjl4GnTgiF4eSzZSo5a1rz")
.build(); .build();
return request; return request;
} }
public static Request postFiles(OkDate od,File file,String token,String carId,String carNum) { public static Request postFiles(OkDate od,File file,String token,String carId,String carNum,boolean isSave) {
MediaType mediaType = MediaType.parse("text/plain"); MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = new MultipartBody.Builder() RequestBody body = new MultipartBody.Builder()
.setType(MultipartBody.FORM) .setType(MultipartBody.FORM)
.addFormDataPart("file",file.getPath(),RequestBody.create(MediaType.parse("application/octet-stream"), file)) .addFormDataPart("file",file.getPath(),RequestBody.create(MediaType.parse("application/octet-stream"), file))
.addFormDataPart("carId",carId) .addFormDataPart("carId",carId)
.addFormDataPart("carNum",carNum) .addFormDataPart("carNum",carNum)
.addFormDataPart("isSave",isSave?"0":"1")
.build(); .build();
Request request = new Request.Builder() Request request = new Request.Builder()
.url(od.getUrl()) .url(od.getUrl())
.method("POST", body) .method("POST", body)
.addHeader("Authorization", token) .addHeader("Authorization", token)
.addHeader("VersionCode",String.valueOf(AppUtils.getAppVersionCode()))
.addHeader("Cookie", "JSESSIONID=NqpqKQstwceQurcNK5hjl4GnTgiF4eSzZSo5a1rz") .addHeader("Cookie", "JSESSIONID=NqpqKQstwceQurcNK5hjl4GnTgiF4eSzZSo5a1rz")
.build(); .build();
return request; return request;

View File

@ -1,6 +1,11 @@
package com.arpa.hndahesudintocctmsdriver.util.img; package com.arpa.hndahesudintocctmsdriver.util.img;
import static com.sdk.base.framework.utils.app.AppUtils.getPackageName;
import android.Manifest; import android.Manifest;
import android.content.Intent;
import android.net.Uri;
import android.provider.Settings;
import android.view.Gravity; import android.view.Gravity;
import android.view.View; import android.view.View;
import android.view.WindowManager; import android.view.WindowManager;
@ -13,6 +18,7 @@ import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import com.arpa.hndahesudintocctmsdriver.R; import com.arpa.hndahesudintocctmsdriver.R;
import com.arpa.hndahesudintocctmsdriver.util.MessageUtils;
import com.arpa.hndahesudintocctmsdriver.util.PicturlUtil; import com.arpa.hndahesudintocctmsdriver.util.PicturlUtil;
import com.permissionx.guolindev.PermissionX; import com.permissionx.guolindev.PermissionX;
@ -56,12 +62,17 @@ public class GetCarImageAlert {
} }
btn_xiangce.setOnClickListener(v -> { btn_xiangce.setOnClickListener(v -> {
PermissionX.init(act) PermissionX.init(act)
.permissions(Manifest.permission.READ_EXTERNAL_STORAGE) .permissions(Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE)
.request((allGranted, grantedList, deniedList) -> { .request((allGranted, grantedList, deniedList) -> {
if (allGranted) { if (allGranted) {
PicturlUtil.selectPicter(act, new ArrayList<>(), 1); PicturlUtil.selectPicter(act, new ArrayList<>(), 1);
} else { } 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);
});
} }
}); });
}); });
@ -70,13 +81,37 @@ public class GetCarImageAlert {
.permissions(Manifest.permission.CAMERA) .permissions(Manifest.permission.CAMERA)
.request((allGranted, grantedList, deniedList) -> { .request((allGranted, grantedList, deniedList) -> {
if (allGranted) { if (allGranted) {
file=ImageGetUtil.createImageFile(act); openCam(act);
ImageGetUtil.cameraAlbumGetImage(act,file); // file=ImageGetUtil.createImageFile(act);
// ImageGetUtil.cameraAlbumGetImage(act,file);
} else { } 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);
});
} }
}); });
}); });
img.setOnClickListener(v -> {
if (!key){
PermissionX.init(act)
.permissions(Manifest.permission.CAMERA)
.request((allGranted, grantedList, deniedList) -> {
if (allGranted) {
openCam(act);
} else {
new MessageUtils().showSimCenPop(act, "缺少相机权限,将无法进行拍照或选择照片,去开启!", "取消", "确认", () -> {
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", getPackageName(), null);
intent.setData(uri);
act.startActivity(intent);
});
}
});
}
});
btn_quxiao.setOnClickListener(v -> popupWindow.dismiss()); btn_quxiao.setOnClickListener(v -> popupWindow.dismiss());
//popupWindow消失屏幕变为不透明 //popupWindow消失屏幕变为不透明
popupWindow.setOnDismissListener(() -> { popupWindow.setOnDismissListener(() -> {
@ -99,4 +134,13 @@ public class GetCarImageAlert {
popupWindow.dismiss(); popupWindow.dismiss();
} }
private void openCam(AppCompatActivity act){
file=ImageGetUtil.createImageFile(act);
if (file!=null){
ImageGetUtil.cameraAlbumGetImage(act,file);
}else{
Toast.makeText(act.getBaseContext(), "路径创建失败,请清除缓存后重试", Toast.LENGTH_LONG).show();
}
}
} }

View File

@ -1,6 +1,11 @@
package com.arpa.hndahesudintocctmsdriver.util.img; package com.arpa.hndahesudintocctmsdriver.util.img;
import static com.sdk.base.framework.utils.app.AppUtils.getPackageName;
import android.Manifest; import android.Manifest;
import android.content.Intent;
import android.net.Uri;
import android.provider.Settings;
import android.view.Gravity; import android.view.Gravity;
import android.view.View; import android.view.View;
import android.view.WindowManager; import android.view.WindowManager;
@ -10,6 +15,7 @@ import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import com.arpa.hndahesudintocctmsdriver.util.MessageUtils;
import com.arpa.hndahesudintocctmsdriver.util.PicturlUtil; import com.arpa.hndahesudintocctmsdriver.util.PicturlUtil;
import com.arpa.hndahesudintocctmsdriver.R; import com.arpa.hndahesudintocctmsdriver.R;
import com.permissionx.guolindev.PermissionX; import com.permissionx.guolindev.PermissionX;
@ -45,25 +51,37 @@ public class GetImageAlert {
btn_xiangce.setOnClickListener(v -> { btn_xiangce.setOnClickListener(v -> {
PermissionX.init(act) 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) -> { .request((allGranted, grantedList, deniedList) -> {
if (allGranted) { if (allGranted) {
PicturlUtil.selectPicter(act, new ArrayList<>(), 1); PicturlUtil.selectPicter(act, new ArrayList<>(), 1);
} else { } 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 -> { btn_paizhao.setOnClickListener(v -> {
PermissionX.init(act) 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) -> { .request((allGranted, grantedList, deniedList) -> {
if (allGranted) { if (allGranted) {
file = ImageGetUtil.createImageFile(act); file = ImageGetUtil.createImageFile(act);
ImageGetUtil.cameraAlbumGetImage(act, file); ImageGetUtil.cameraAlbumGetImage(act, file);
} else { } 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();
} }
}); });
}); });

View File

@ -9,6 +9,8 @@ import android.provider.MediaStore;
import androidx.core.content.FileProvider; import androidx.core.content.FileProvider;
import com.dahe.mylibrary.utils.AppUtils;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@ -39,7 +41,7 @@ public class ImageGetUtil {
if(imageFile!=null){ if(imageFile!=null){
if(Build.VERSION.SDK_INT>= Build.VERSION_CODES.N){ if(Build.VERSION.SDK_INT>= Build.VERSION_CODES.N){
/*7.0以上要通过FileProvider将File转化为Uri*/ /*7.0以上要通过FileProvider将File转化为Uri*/
uri = FileProvider.getUriForFile(act.getApplicationContext(),"com.arpa.hndahesudintocctmsdriver.fileprovider",imageFile); uri = FileProvider.getUriForFile(act.getApplicationContext(), AppUtils.getAppPackageName()+".fileprovider",imageFile);
}else { }else {
/*7.0以下则直接使用Uri的fromFile方法将File转化为Uri*/ /*7.0以下则直接使用Uri的fromFile方法将File转化为Uri*/
uri = Uri.fromFile(imageFile); uri = Uri.fromFile(imageFile);

View File

@ -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, "定位失败,请查看定位权限");
}
}
}

View File

@ -28,6 +28,8 @@ public abstract class BaseActivity extends Activity {
private String title_text="空白标题"; private String title_text="空白标题";
public Handler hd=new Handler(msg -> { public Handler hd=new Handler(msg -> {
if (this==null||this.isFinishing())
return true;
msgMethod(msg); msgMethod(msg);
return false; return false;
}); });

View File

@ -25,6 +25,8 @@ public class BaseAppCompatActivity extends AppCompatActivity {
public static String dataName,dataName2,dataName3=""; public static String dataName,dataName2,dataName3="";
public View root; public View root;
public Handler hd=new Handler(msg -> { public Handler hd=new Handler(msg -> {
if (this==null||this.isFinishing())
return true;
msgMethod(msg); msgMethod(msg);
return false; return false;
}); });

View File

@ -105,6 +105,8 @@ public class BaseRecyclerView extends RecyclerView {
ra.addItem(mb); ra.addItem(mb);
} }
public void adds(List<ManyBean> list){ public void adds(List<ManyBean> list){
if (ra==null)
return;
ra.add(list); ra.add(list);
} }
public AdapterAlls createsH(Context con, List<ManyBean> list){ public AdapterAlls createsH(Context con, List<ManyBean> list){

View File

@ -0,0 +1,38 @@
package com.arpa.hndahesudintocctmsdriver.weight;
import android.view.View;
import android.widget.Toast;
import com.arpa.hndahesudintocctmsdriver.util.alert.ToastUtil;
import com.dahe.mylibrary.utils.ToastUtils;
import java.util.Calendar;
/**
* @ClassName OnLimitClickHelper
* @Author john
* @Date 2024/4/22 14:28
* @Description TODO
*/
public class OnLimitClickHelper implements View.OnClickListener {
public static final int LIMIT_TIME = 2000;
private long lastClickTime = 0;
private OnLimitClickListener onLimitClickListener = null;
public OnLimitClickHelper(OnLimitClickListener onLimitClickListener){
this.onLimitClickListener = onLimitClickListener;
}
@Override
public void onClick(View v) {
long curTime = Calendar.getInstance().getTimeInMillis();
if (curTime - lastClickTime > LIMIT_TIME) {
lastClickTime = curTime;
if(onLimitClickListener != null){
onLimitClickListener.onClick(v);
}
}else{
ToastUtils.showToast(v.getContext(),"点击速度过快,请稍后重试");
}
}
}

View File

@ -0,0 +1,17 @@
package com.arpa.hndahesudintocctmsdriver.weight;
import android.view.View;
/**
* @ClassName OnLimitClickListener
* @Author john
* @Date 2024/4/22 14:28
* @Description TODO
*/
public interface OnLimitClickListener {
/**
* 按钮点击事件
* @param view
*/
void onClick(View view);
}

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

View File

@ -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>

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>

View File

@ -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>

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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 432 KiB

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>

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/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>

View File

@ -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>

View File

@ -55,11 +55,11 @@
android:layout_width="@dimen/dp_90" android:layout_width="@dimen/dp_90"
android:layout_height="@dimen/dp_90" android:layout_height="@dimen/dp_90"
android:background="#EEEEEE"> android:background="#EEEEEE">
<ImageView <ImageView
android:layout_width="@dimen/dp_23" android:layout_width="@dimen/dp_23"
android:layout_height="@dimen/dp_23" android:layout_height="@dimen/dp_23"
android:layout_centerVertical="true" android:layout_centerInParent="true"
android:layout_centerHorizontal="true"
android:scaleType="fitXY" android:scaleType="fitXY"
android:src="@mipmap/up_img" /> android:src="@mipmap/up_img" />
</RelativeLayout> </RelativeLayout>
@ -118,6 +118,7 @@
android:background="@drawable/bg_bai" android:background="@drawable/bg_bai"
android:elevation="@dimen/dp_1"> android:elevation="@dimen/dp_1">
<RelativeLayout <RelativeLayout
android:visibility="gone"
android:id="@+id/cow1" android:id="@+id/cow1"
android:layout_marginBottom="@dimen/dp_10" android:layout_marginBottom="@dimen/dp_10"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -130,28 +131,28 @@
android:textColor="#ffc4c4ce" android:textColor="#ffc4c4ce"
android:textSize="@dimen/sp_13" android:textSize="@dimen/sp_13"
/> />
<EditText <EditText
android:id="@+id/value1" android:id="@+id/value1"
android:layout_alignParentRight="true"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="#ff999999" android:layout_alignParentRight="true"
android:textSize="@dimen/sp_13"
android:maxLines="1"
android:hint="点击进行手动输入"
android:ellipsize="end"
android:layout_marginLeft="@dimen/dp_30" android:layout_marginLeft="@dimen/dp_30"
android:gravity="right"
android:background="@null" android:background="@null"
/> android:ellipsize="end"
android:gravity="right"
android:hint="点击进行手动输入"
android:maxLines="1"
android:textColor="#ff999999"
android:textSize="@dimen/sp_13" />
</RelativeLayout> </RelativeLayout>
<View <View
android:visibility="gone"
android:id="@+id/vs" android:id="@+id/vs"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/dp_1" android:layout_height="@dimen/dp_1"
android:background="@drawable/bottom_xu"/> android:background="@drawable/bottom_xu"/>
<RelativeLayout <RelativeLayout
android:layout_marginTop="@dimen/dp_10"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<TextView <TextView
@ -162,20 +163,20 @@
android:textColor="#ffc4c4ce" android:textColor="#ffc4c4ce"
android:textSize="@dimen/sp_13" android:textSize="@dimen/sp_13"
/> />
<TextView <TextView
android:id="@+id/value2" android:id="@+id/value2"
android:layout_alignParentRight="true"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="#ff999999" android:layout_alignParentRight="true"
android:textSize="@dimen/sp_13"
android:maxLines="1"
android:hint="点击进行手动输入"
android:ellipsize="end"
android:gravity="right"
android:layout_marginLeft="@dimen/dp_30" android:layout_marginLeft="@dimen/dp_30"
android:background="@null" android:background="@null"
/> android:ellipsize="end"
android:gravity="right"
android:hint="点击进行手动输入"
android:maxLines="1"
android:textColor="#ff999999"
android:textSize="@dimen/sp_13" />
</RelativeLayout> </RelativeLayout>
</LinearLayout> </LinearLayout>
<TextView <TextView

View File

@ -5,34 +5,50 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@drawable/bg_theme" android:background="@drawable/bg_theme"
android:id="@+id/activity_bank_auth"> android:id="@+id/activity_bank_auth">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:orientation="vertical">
<RelativeLayout <RelativeLayout
android:layout_marginTop="@dimen/dp_58"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_58">
<ImageView <ImageView
android:id="@+id/return_btn" android:id="@+id/return_btn"
android:layout_marginLeft="@dimen/dp_20"
android:layout_width="@dimen/dp_40" android:layout_width="@dimen/dp_40"
android:layout_height="@dimen/dp_31" android:layout_height="@dimen/dp_31"
android:src="@mipmap/return_lefts" android:layout_marginLeft="@dimen/dp_20"
android:padding="@dimen/dp_10" android:padding="@dimen/dp_10"
android:scaleType="fitXY"/> android:scaleType="fitXY"
<TextView android:src="@mipmap/return_lefts" />
android:layout_marginTop="@dimen/dp_10"
android:id="@+id/submit" <!-- <TextView-->
android:layout_marginRight="@dimen/dp_30" <!-- android:id="@+id/skip"-->
android:layout_alignParentRight="true" <!-- android:layout_width="wrap_content"-->
android:layout_width="wrap_content" <!-- android:layout_height="wrap_content"-->
android:layout_height="wrap_content" <!-- android:layout_marginTop="@dimen/dp_10"-->
android:text="提交" <!-- android:layout_marginRight="@dimen/dp_30"-->
android:textColor="@color/theme_color" <!-- android:layout_toLeftOf="@+id/submit"-->
android:textSize="@dimen/sp_15" <!-- 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> </RelativeLayout>
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -41,47 +57,52 @@
android:text="银行卡信息" android:text="银行卡信息"
android:textColor="#ff000000" android:textColor="#ff000000"
android:textSize="@dimen/sp_23" /> android:textSize="@dimen/sp_23" />
<TextView <TextView
android:layout_marginLeft="@dimen/dp_38"
android:layout_marginTop="@dimen/dp_20"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="@color/red" android:layout_marginLeft="@dimen/dp_38"
android:layout_marginTop="@dimen/dp_20"
android:text="*注意: 请添加本人银行卡, 否则无法提现成功" android:text="*注意: 请添加本人银行卡, 否则无法提现成功"
></TextView> android:textColor="@color/red"></TextView>
<androidx.cardview.widget.CardView <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_width="match_parent"
android:layout_height="@dimen/dp_163" 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"> app:cardCornerRadius="@dimen/dp_10">
<RelativeLayout <RelativeLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<ImageView <ImageView
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:id="@+id/up_bank_img" android:id="@+id/up_bank_img"
android:src="@mipmap/bank_img"
android:layout_width="@dimen/dp_249" android:layout_width="@dimen/dp_249"
android:layout_height="@dimen/dp_138" 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 <TextView
android:layout_marginBottom="@dimen/dp_21"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="点击上传银行卡正面照" android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"/> android:layout_marginBottom="@dimen/dp_21"
android:text="点击上传银行卡正面照" />
</RelativeLayout> </RelativeLayout>
</androidx.cardview.widget.CardView> </androidx.cardview.widget.CardView>
<LinearLayout <LinearLayout
android:layout_marginTop="@dimen/dp_15"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_15"
android:orientation="horizontal"> android:orientation="horizontal">
<TextView <TextView
android:id="@+id/zj_name2" android:id="@+id/zj_name2"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -92,85 +113,122 @@
android:textColor="#ffc4c4ce" android:textColor="#ffc4c4ce"
android:textSize="@dimen/sp_13" /> android:textSize="@dimen/sp_13" />
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:layout_marginTop="@dimen/dp_13" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_38" android:layout_marginLeft="@dimen/dp_38"
android:layout_marginTop="@dimen/dp_13"
android:layout_marginRight="@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:background="@drawable/bg_bai" android:background="@drawable/bg_bai"
android:elevation="@dimen/dp_1"> android:elevation="@dimen/dp_1"
<com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView android:orientation="vertical"
android:id="@+id/brv" android:padding="@dimen/dp_14">
android:layout_width="match_parent"
android:layout_height="wrap_content"/> <!-- <com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView-->
<!-- android:id="@+id/brv"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content" />-->
<LinearLayout <LinearLayout
android:layout_marginBottom="@dimen/dp_10"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_10"
android:orientation="horizontal"> android:orientation="horizontal">
<TextView <TextView
android:paddingTop="@dimen/dp_10"
android:paddingBottom="@dimen/dp_10"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="银行名称"
android:textColor="#ffc4c4ce"
android:textSize="@dimen/sp_13"
/>
<EditText
android:paddingTop="@dimen/dp_10" android:paddingTop="@dimen/dp_10"
android:paddingBottom="@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:id="@+id/bank_name"
android:layout_alignParentRight="true"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="#ff000000" android:layout_alignParentRight="true"
android:textSize="@dimen/sp_13"
android:maxLines="1"
android:ellipsize="end"
android:inputType="text"
android:layout_marginLeft="@dimen/dp_30" android:layout_marginLeft="@dimen/dp_30"
android:background="@null" 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> </LinearLayout>
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/dp_1" android:layout_height="@dimen/dp_1"
android:background="@drawable/bottom_xu" /> android:background="@drawable/bottom_xu" />
<LinearLayout <LinearLayout
android:layout_marginTop="@dimen/dp_10"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
android:orientation="horizontal"> android:orientation="horizontal">
<TextView <TextView
android:paddingTop="@dimen/dp_10"
android:paddingBottom="@dimen/dp_10"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="银行卡号"
android:textColor="#ffc4c4ce"
android:textSize="@dimen/sp_13"
/>
<EditText
android:paddingTop="@dimen/dp_10" android:paddingTop="@dimen/dp_10"
android:paddingBottom="@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:id="@+id/bank_number"
android:layout_alignParentRight="true"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="#ff000000" android:layout_alignParentRight="true"
android:textSize="@dimen/sp_13"
android:inputType="number"
android:maxLines="1"
android:ellipsize="end"
android:layout_marginLeft="@dimen/dp_30" android:layout_marginLeft="@dimen/dp_30"
android:background="@null" 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"
/> />
</LinearLayout>
</LinearLayout> <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> </LinearLayout>
</RelativeLayout> </RelativeLayout>

View File

@ -382,5 +382,38 @@
/> />
</LinearLayout> </LinearLayout>
<RelativeLayout
android:id="@+id/r8"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_marginTop="@dimen/dp_20"
android:layout_marginBottom="@dimen/dp_20"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="交强险保单"
android:textColor="#ff000000"
android:textSize="@dimen/sp_15"
/>
</LinearLayout>
<ImageView
android:layout_width="@dimen/dp_6"
android:layout_height="@dimen/dp_10"
android:src="@mipmap/chevron"
android:scaleType="fitXY"
android:background="@null"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"/>
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_2"
android:background="#F6F6F9"/>
</LinearLayout> </LinearLayout>
</RelativeLayout> </RelativeLayout>

View File

@ -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>

View File

@ -47,6 +47,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="请输入手机号码" android:hint="请输入手机号码"
android:inputType="phone"
android:textColor="#ff000000" android:textColor="#ff000000"
android:textSize="@dimen/sp_14" android:textSize="@dimen/sp_14"
android:maxLength="11" android:maxLength="11"
@ -65,6 +66,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<EditText <EditText
android:inputType="number"
android:id="@+id/input_code" android:id="@+id/input_code"
android:paddingTop="@dimen/dp_12" android:paddingTop="@dimen/dp_12"
android:paddingBottom="@dimen/dp_12" android:paddingBottom="@dimen/dp_12"
@ -104,35 +106,15 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"> android:orientation="horizontal">
<androidx.cardview.widget.CardView
android:padding="@dimen/dp_7" <CheckBox
android:layout_marginTop="@dimen/dp_2" android:layout_marginTop="@dimen/dp_3"
android:layout_width="@dimen/dp_14" android:id="@+id/cb"
android:layout_height="@dimen/dp_14" android:layout_width="@dimen/dp_28"
app:cardCornerRadius="@dimen/dp_7" android:layout_height="@dimen/dp_34"
app:cardBackgroundColor="@color/theme_color" android:button="@null"
app:cardElevation="@dimen/dp_0"> android:checked="false"
<androidx.cardview.widget.CardView android:drawableStart="@drawable/select_read"/>
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>
<TextView <TextView
android:id="@+id/tv_content" android:id="@+id/tv_content"
android:layout_width="wrap_content" android:layout_width="wrap_content"

View File

@ -81,7 +81,7 @@
android:id="@+id/zjimg_name" android:id="@+id/zjimg_name"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_19" android:layout_marginTop="@dimen/dp_16"
android:text="从业资格证照片" android:text="从业资格证照片"
android:textColor="#ff333333" android:textColor="#ff333333"
android:textSize="@dimen/sp_15" /> android:textSize="@dimen/sp_15" />
@ -91,7 +91,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:layout_marginBottom="@dimen/dp_19" android:layout_marginBottom="@dimen/dp_16"
android:text="点击上传图片" android:text="点击上传图片"
android:textColor="@color/theme_color" android:textColor="@color/theme_color"
android:textSize="@dimen/sp_15" /> android:textSize="@dimen/sp_15" />
@ -100,7 +100,7 @@
</androidx.cardview.widget.CardView> </androidx.cardview.widget.CardView>
<LinearLayout <LinearLayout
android:visibility="gone"
android:id="@+id/llInfo" android:id="@+id/llInfo"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -137,6 +137,8 @@
android:orientation="vertical" android:orientation="vertical"
android:padding="@dimen/dp_14"> android:padding="@dimen/dp_14">
<RelativeLayout <RelativeLayout
android:id="@+id/cow1" android:id="@+id/cow1"
@ -162,10 +164,55 @@
android:gravity="right" android:gravity="right"
android:hint="点击进行手动输入" android:hint="点击进行手动输入"
android:maxLines="1" android:maxLines="1"
android:singleLine="true"
android:textColor="#ff999999" android:textColor="#ff999999"
android:textSize="@dimen/sp_13" /> android:textSize="@dimen/sp_13" />
</RelativeLayout> </RelativeLayout>
<LinearLayout
android:id="@+id/llDate"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<View
android:layout_marginTop="@dimen/dp_10"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_1"
android:background="@drawable/bottom_xu"/>
<RelativeLayout
android:id="@+id/rlDate"
android:layout_marginTop="@dimen/dp_10"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/name2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="截止日期"
android:textColor="#ffc4c4ce"
android:textSize="@dimen/sp_13"
/>
<TextView
android:layout_toRightOf="@+id/name2"
android:id="@+id/value2"
android:layout_alignParentRight="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#ff999999"
android:textSize="@dimen/sp_13"
android:maxLines="1"
android:hint="请选择截止日期"
android:gravity="right"
android:ellipsize="end"
android:layout_marginLeft="@dimen/dp_10"
/>
</RelativeLayout>
</LinearLayout>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>

Some files were not shown because too many files have changed in this diff Show More