diff --git a/.gitignore b/.gitignore index a1c2a23..e1a8e53 100644 --- a/.gitignore +++ b/.gitignore @@ -1,23 +1,20 @@ -# Compiled class file -*.class +*.iml +.gradle +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties -# Log file -*.log +*.idea +app/build +jiguang/.idea -# BlueJ files -*.ctxt +/app/qa/ +*.apk +/app/product +/app/release +/app/staging +/**/*.apk -# Mobile Tools for Java (J2ME) -.mtj.tmp/ - -# Package Files # -*.jar -*.war -*.nar -*.ear -*.zip -*.tar.gz -*.rar - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* diff --git a/README.md b/README.md new file mode 100644 index 0000000..7d3c90d --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +#wangluohuoyun diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..0d06da3 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,289 @@ +plugins { + id 'com.android.application' + id 'kotlin-android' + id 'kotlin-kapt' + id 'com.huawei.agconnect' +} + +android { + compileSdkVersion 30 + buildToolsVersion "30.0.3" + + signingConfigs { + config { + keyAlias 'key0' + keyPassword '123456' + storeFile file('key.jks') + storePassword '123456' + } + debug { + keyAlias 'key0' + keyPassword '123456' + storeFile file('key.jks') + storePassword '123456' + } + release { + keyAlias 'key0' + keyPassword '123456' + storeFile file('key.jks') + storePassword '123456' + } + } + + defaultConfig { + applicationId "com.arpa.hndahesudintocctmsdriver" + minSdkVersion 22 + targetSdkVersion 30 + versionCode 49 + versionName "3.1.9" + flavorDimensions "environment" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + javaCompileOptions { + + annotationProcessorOptions { + includeCompileClasspath = true + arguments = [moduleName :project.getName() ] + } + } + + ndk { + + //选择要添加的对应 cpu 类型的 .so 库。 + abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a' + // 还可以添加 'x86', 'x86_64', 'mips', 'mips64' + + } + + 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.srcDir 'libs' +// } +// } + sourceSets { + main { + jniLibs.srcDirs = ['libs'] + } + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + debug { + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = '1.8' + } + allprojects { + repositories { + maven { url "https://jitpack.io" } + } + } + + repositories{ + flatDir { + dirs 'libs' + } + } + + productFlavors { + qa { + buildConfigField("String", "OPEN_API_URL", "\"http://192.168.111.244:4009\"") + } + staging { + buildConfigField("String", "OPEN_API_URL", "\"https://oapi-staging.alct56.com\"") + } + product { + buildConfigField("String", "OPEN_API_URL", "\"https://oapi.alct56.com\"") + } + + } + + android.applicationVariants.all { variant -> + variant.outputs.all { + def date = new Date().format("MMdd_HH-mm" , TimeZone.getTimeZone("GMT+08")) + if(variant.buildType.name.equals('release')){ + outputFileName = "dhhy-driver-"+date+"-${versionName}.apk" + } + } + } + lintOptions { + abortOnError false + } + dexOptions { + preDexLibraries false + } +} + +dependencies { + + //implementation fileTree(include: ['*.jar','*.aar'], dir: 'libs') + implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + implementation 'androidx.core:core-ktx:1.3.1' + implementation 'androidx.appcompat:appcompat:1.2.0' + implementation 'com.google.android.material:material:1.2.1' + implementation 'androidx.constraintlayout:constraintlayout:2.0.1' + implementation 'com.caverock:androidsvg-aar:1.3' + implementation 'com.github.bumptech.glide:glide:4.11.0' +// implementation files('libs\\AMap3DMap_5.8.0_AMapNavi_5.6.0_20191014.jar') +// implementation project(path: ':ocr_ui') + + //implementation files('libs\\AMap3DMap_5.8.0_AMapNavi_5.6.0_20191014.jar') + kapt 'com.android.databinding:compiler:2.3.2' + //noinspection GradleCompatible,GradleCompatible + //implemention 'com.android.support:design:25.3.1' + //implementation files('libs\\BaiduLBS_Android.jar') + //当引入的与之前引入的库有重复冲突部分的时候,使用compileOnly + implementation files('libs\\mdp_sdk.jar') + compileOnly files('libs\\gson-2.8.0.jar') + annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0' + implementation 'com.squareup.okhttp3:okhttp:3.2.0' + implementation 'com.jakewharton:butterknife:10.2.1' + annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1' + implementation 'id.zelory:compressor:1.0.3' + implementation 'top.zibin:Luban:1.1.3' + implementation 'com.haozhang.libary:android-slanted-textview:1.2' + // + implementation 'com.scwang.smart:refresh-layout-kernel:2.0.1' + implementation 'com.scwang.smart:refresh-header-material: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.github.jenly1314.AppUpdater:app-updater:1.1.0' + implementation 'com.github.jenly1314.AppUpdater:app-dialog:1.1.0' + //轮播插件 + implementation 'com.github.zhpanvip:BannerViewPager:3.5.4' + // + implementation 'com.lxj:xpopup:2.2.8' + //工具类 + //implementation 'cn.hutool:hutool-all:5.7.11' + //交通厅 + implementation 'com.lzy.net:okgo:3.0.4' + implementation 'com.alibaba:fastjson:1.2.61' + implementation 'org.bouncycastle:bcprov-jdk15on:1.55' + //org.bouncycastle:bcprov-jdk15to18 + //compileOnly 'org.bouncycastle:bcprov-jdk15to18:1.64' + implementation 'org.apache.commons:commons-lang3:3.5' + implementation (name:'locationgd-androidx_2.1.0', ext:'aar')//交通厅 +// implementation 'com.amap.api:location:latest.integration' + //implementation files('libs\\AMap_Location_V5.4.0_20210723.jar') + //安联 + implementation 'com.google.code.gson:gson:2.8.6' + implementation 'com.loopj.android:android-async-http:1.4.9' + implementation 'com.j256.ormlite:ormlite-android:4.48' + implementation 'com.j256.ormlite:ormlite-core:4.48' + compileOnly 'com.github.hotchemi:permissionsdispatcher:2.3.1' + annotationProcessor 'com.github.hotchemi:permissionsdispatcher-processor:2.3.1' + //极光认证 + implementation 'cn.jiguang.sdk:jverification:2.7.1' // 此处以2.7.1 版本为例。a + implementation 'cn.jiguang.sdk:jpush:4.2.4' // 此处以JPush 4.2.4 版本为例。 + implementation 'cn.jiguang.sdk:jcore:2.9.0' // 此处以JCore 2.9.0 版本为例。 + // 接入华为厂商 + implementation 'com.huawei.hms:push:4.0.2.300' + implementation 'cn.jiguang.sdk.plugin:huawei:4.0.0'// 极光厂商插件版本与接入 JPush 版本保持一致,下同 + // 接入 FCM 厂商 + implementation 'com.google.firebase:firebase-messaging:21.0.1' + implementation 'cn.jiguang.sdk.plugin:fcm:4.0.0' + // 接入魅族厂商 + implementation 'cn.jiguang.sdk.plugin:meizu:4.0.0' + // 接入 VIVO 厂商 + implementation 'cn.jiguang.sdk.plugin:vivo:4.0.0' + // 接入 OPPO 厂商 + implementation 'cn.jiguang.sdk.plugin:oppo:4.0.0' + // 接入小米厂商 + implementation 'cn.jiguang.sdk.plugin:xiaomi:4.0.0' + //友盟 + // 下面各SDK根据宿主App是否使用相关业务按需引入。 + // 友盟统计SDK + implementation 'com.umeng.umsdk:common:9.4.2'// 必选 + implementation 'com.umeng.umsdk:asms:1.4.1'// 必选 + implementation 'com.umeng.umsdk:apm:1.4.2' // 错误分析升级为独立SDK,看crash数据请一定集成,可选 + implementation 'com.umeng.umsdk:abtest:1.0.0'//使用U-App中ABTest能力,可选 + //动态权限获取 + implementation "org.permissionsdispatcher:permissionsdispatcher:4.6.0" + kapt "org.permissionsdispatcher:permissionsdispatcher-processor:4.6.0" + //选择器 + implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:3.1.1' + //EventBus + implementation 'org.greenrobot:eventbus:3.1.1' + //易签宝 + implementation(name:'EsignSDK', ext:'aar') + implementation'pub.devrel:easypermissions:1.3.0' + + implementation "com.squareup.retrofit2:retrofit:2.4.0" + implementation "com.squareup.retrofit2:converter-gson:2.4.0" + implementation "com.squareup.retrofit2:adapter-rxjava2:2.4.0" + implementation 'com.squareup.okhttp3:logging-interceptor:3.9.0' + + implementation "io.reactivex.rxjava2:rxjava:2.1.5" + implementation "io.reactivex.rxjava2:rxandroid:2.0.1" + + implementation 'org.greenrobot:eventbus:3.1.1' + implementation 'com.github.barteksc:android-pdf-viewer:3.2.0-beta.1' + // + testImplementation 'junit:junit:4.+' + androidTestImplementation 'androidx.test.ext:junit:1.1.2' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' + //工具类 + //implementation 'cn.hutool:hutool-all:5.7.11' + //ArcGis For Android工具库(API:100.1以上版本) + implementation 'com.github.qingmei2:SlideBottomLayout-Android:1.2.3' + implementation 'com.flipboard:bottomsheet-core:1.5.3' + implementation 'com.flipboard:bottomsheet-commons:1.5.3' //可选 + implementation 'com.github.getActivity:XToast:8.2' + //阿里云视频播放 +// implementation 'com.aliyun.sdk.android:AliyunPlayer:5.4.0-part' +// implementation 'com.aliyun.video.android:svideostandard:3.25.+'//短视频标准版SDK必须依赖 +// implementation 'com.aliyun.video.android:core:1.2.2' //核心库必须依赖 +// implementation 'com.alivc.conan:AlivcConan:1.0.3'//核心库必须依赖 +// //AlivcFFmpeg必须依赖,且版本需要在4.3.0及以上,在以下两个版本中选择一个版本进行依赖。 +// implementation 'com.aliyun.video.android:AlivcFFmpeg:4.3.0' //短视频与播放器共用。两个SDK同时接入时,请用该版本。 +// implementation 'com.aliyun.video.android:upload:1.6.0'// 上传库,如不需要上传可不依赖 + // + //implementation 'com.amap.api:navi-3dmap:8.1.0_3dmap8.1.0' + //ocr + //implementation (name:'ocrsdk.aar', ext:'aar') + //implementation 'com.github.xuexiangjys:XVideo:1.0.2' + + implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.2.9' + implementation 'com.youth.banner:banner:1.4.10' + +// implementation 'com.amap.api:3dmap:latest.integration' +// implementation 'com.amap.api:search:latest.integration' + + implementation 'com.amap.api:3dmap:8.0.0' + implementation 'com.amap.api:location:5.5.1' + implementation 'com.amap.api:search:7.9.0' + + //定位功能 +// implementation 'com.amap.api:location:latest.integration' +// //搜索功能 +// implementation 'com.amap.api:search:latest.integration' + //导航 +// implementation 'com.amap.api:navi-3dmap:latest.integration' + +// implementation 'com.amap.api:3dmap:latest.integration' + +} \ No newline at end of file diff --git a/app/key.jks b/app/key.jks new file mode 100644 index 0000000..c7236f1 Binary files /dev/null and b/app/key.jks differ diff --git a/app/libs/EsignSDK.aar b/app/libs/EsignSDK.aar new file mode 100644 index 0000000..6fdd9a2 Binary files /dev/null and b/app/libs/EsignSDK.aar differ diff --git a/app/libs/arm64-v8a/libBaiduMapSDK_base_v5_1_0.so b/app/libs/arm64-v8a/libBaiduMapSDK_base_v5_1_0.so new file mode 100644 index 0000000..4d7ea83 Binary files /dev/null and b/app/libs/arm64-v8a/libBaiduMapSDK_base_v5_1_0.so differ diff --git a/app/libs/arm64-v8a/libBaiduMapSDK_map_v5_1_0.so b/app/libs/arm64-v8a/libBaiduMapSDK_map_v5_1_0.so new file mode 100644 index 0000000..0bdae20 Binary files /dev/null and b/app/libs/arm64-v8a/libBaiduMapSDK_map_v5_1_0.so differ diff --git a/app/libs/arm64-v8a/libindoor.so b/app/libs/arm64-v8a/libindoor.so new file mode 100644 index 0000000..f8e8ca8 Binary files /dev/null and b/app/libs/arm64-v8a/libindoor.so differ diff --git a/app/libs/arm64-v8a/liblocSDK7b.so b/app/libs/arm64-v8a/liblocSDK7b.so new file mode 100644 index 0000000..6bab09a Binary files /dev/null and b/app/libs/arm64-v8a/liblocSDK7b.so differ diff --git a/app/libs/armeabi-v7a/libBaiduMapSDK_base_v5_1_0.so b/app/libs/armeabi-v7a/libBaiduMapSDK_base_v5_1_0.so new file mode 100644 index 0000000..6366af7 Binary files /dev/null and b/app/libs/armeabi-v7a/libBaiduMapSDK_base_v5_1_0.so differ diff --git a/app/libs/armeabi-v7a/libBaiduMapSDK_map_v5_1_0.so b/app/libs/armeabi-v7a/libBaiduMapSDK_map_v5_1_0.so new file mode 100644 index 0000000..312c582 Binary files /dev/null and b/app/libs/armeabi-v7a/libBaiduMapSDK_map_v5_1_0.so differ diff --git a/app/libs/armeabi-v7a/libindoor.so b/app/libs/armeabi-v7a/libindoor.so new file mode 100644 index 0000000..177ad25 Binary files /dev/null and b/app/libs/armeabi-v7a/libindoor.so differ diff --git a/app/libs/armeabi-v7a/liblocSDK7b.so b/app/libs/armeabi-v7a/liblocSDK7b.so new file mode 100644 index 0000000..dd040ea Binary files /dev/null and b/app/libs/armeabi-v7a/liblocSDK7b.so differ diff --git a/app/libs/armeabi/libBaiduMapSDK_base_v5_1_0.so b/app/libs/armeabi/libBaiduMapSDK_base_v5_1_0.so new file mode 100644 index 0000000..1496543 Binary files /dev/null and b/app/libs/armeabi/libBaiduMapSDK_base_v5_1_0.so differ diff --git a/app/libs/armeabi/libBaiduMapSDK_map_v5_1_0.so b/app/libs/armeabi/libBaiduMapSDK_map_v5_1_0.so new file mode 100644 index 0000000..83b3b84 Binary files /dev/null and b/app/libs/armeabi/libBaiduMapSDK_map_v5_1_0.so differ diff --git a/app/libs/armeabi/libindoor.so b/app/libs/armeabi/libindoor.so new file mode 100644 index 0000000..cd2a548 Binary files /dev/null and b/app/libs/armeabi/libindoor.so differ diff --git a/app/libs/armeabi/liblocSDK7b.so b/app/libs/armeabi/liblocSDK7b.so new file mode 100644 index 0000000..1a9a34a Binary files /dev/null and b/app/libs/armeabi/liblocSDK7b.so differ diff --git a/app/libs/gson-2.8.0.jar b/app/libs/gson-2.8.0.jar new file mode 100644 index 0000000..1235f63 Binary files /dev/null and b/app/libs/gson-2.8.0.jar differ diff --git a/app/libs/locationgd-androidx_2.1.0.aar b/app/libs/locationgd-androidx_2.1.0.aar new file mode 100644 index 0000000..205f699 Binary files /dev/null and b/app/libs/locationgd-androidx_2.1.0.aar differ diff --git a/app/libs/mdp_sdk.jar b/app/libs/mdp_sdk.jar new file mode 100644 index 0000000..20ebea2 Binary files /dev/null and b/app/libs/mdp_sdk.jar differ diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..dfb3499 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,25 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile +-keep class com.baidu.** {*;} +-keep class vi.com.** {*;} +-keep class com.baidu.vi.** {*;} +-dontwarn com.baidu.** \ No newline at end of file diff --git a/app/src/androidTest/java/com/arpa/hndahesudintocctmsdriver/ExampleInstrumentedTest.kt b/app/src/androidTest/java/com/arpa/hndahesudintocctmsdriver/ExampleInstrumentedTest.kt new file mode 100644 index 0000000..c19aed8 --- /dev/null +++ b/app/src/androidTest/java/com/arpa/hndahesudintocctmsdriver/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package com.arpa.hndahesudintocctmsdriver + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("com.one.clouds.wangluohuoyun", appContext.packageName) + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..6fad3fb --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,359 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/Icon_end.png b/app/src/main/assets/Icon_end.png new file mode 100644 index 0000000..0be4ffe Binary files /dev/null and b/app/src/main/assets/Icon_end.png differ diff --git a/app/src/main/assets/Icon_line_node.png b/app/src/main/assets/Icon_line_node.png new file mode 100644 index 0000000..74376d3 Binary files /dev/null and b/app/src/main/assets/Icon_line_node.png differ diff --git a/app/src/main/assets/Icon_mark1.png b/app/src/main/assets/Icon_mark1.png new file mode 100644 index 0000000..db48787 Binary files /dev/null and b/app/src/main/assets/Icon_mark1.png differ diff --git a/app/src/main/assets/Icon_mark10.png b/app/src/main/assets/Icon_mark10.png new file mode 100644 index 0000000..b6d2d96 Binary files /dev/null and b/app/src/main/assets/Icon_mark10.png differ diff --git a/app/src/main/assets/Icon_mark2.png b/app/src/main/assets/Icon_mark2.png new file mode 100644 index 0000000..d7154cd Binary files /dev/null and b/app/src/main/assets/Icon_mark2.png differ diff --git a/app/src/main/assets/Icon_mark3.png b/app/src/main/assets/Icon_mark3.png new file mode 100644 index 0000000..b278da1 Binary files /dev/null and b/app/src/main/assets/Icon_mark3.png differ diff --git a/app/src/main/assets/Icon_mark4.png b/app/src/main/assets/Icon_mark4.png new file mode 100644 index 0000000..7127b13 Binary files /dev/null and b/app/src/main/assets/Icon_mark4.png differ diff --git a/app/src/main/assets/Icon_mark5.png b/app/src/main/assets/Icon_mark5.png new file mode 100644 index 0000000..698ce05 Binary files /dev/null and b/app/src/main/assets/Icon_mark5.png differ diff --git a/app/src/main/assets/Icon_mark6.png b/app/src/main/assets/Icon_mark6.png new file mode 100644 index 0000000..eac9c75 Binary files /dev/null and b/app/src/main/assets/Icon_mark6.png differ diff --git a/app/src/main/assets/Icon_mark7.png b/app/src/main/assets/Icon_mark7.png new file mode 100644 index 0000000..fe23401 Binary files /dev/null and b/app/src/main/assets/Icon_mark7.png differ diff --git a/app/src/main/assets/Icon_mark8.png b/app/src/main/assets/Icon_mark8.png new file mode 100644 index 0000000..347679c Binary files /dev/null and b/app/src/main/assets/Icon_mark8.png differ diff --git a/app/src/main/assets/Icon_mark9.png b/app/src/main/assets/Icon_mark9.png new file mode 100644 index 0000000..4895f97 Binary files /dev/null and b/app/src/main/assets/Icon_mark9.png differ diff --git a/app/src/main/assets/Icon_road_blue_arrow.png b/app/src/main/assets/Icon_road_blue_arrow.png new file mode 100644 index 0000000..16b7704 Binary files /dev/null and b/app/src/main/assets/Icon_road_blue_arrow.png differ diff --git a/app/src/main/assets/Icon_road_green_arrow.png b/app/src/main/assets/Icon_road_green_arrow.png new file mode 100644 index 0000000..de6472f Binary files /dev/null and b/app/src/main/assets/Icon_road_green_arrow.png differ diff --git a/app/src/main/assets/Icon_road_nofocus.png b/app/src/main/assets/Icon_road_nofocus.png new file mode 100644 index 0000000..910f495 Binary files /dev/null and b/app/src/main/assets/Icon_road_nofocus.png differ diff --git a/app/src/main/assets/Icon_road_red_arrow.png b/app/src/main/assets/Icon_road_red_arrow.png new file mode 100644 index 0000000..3257616 Binary files /dev/null and b/app/src/main/assets/Icon_road_red_arrow.png differ diff --git a/app/src/main/assets/Icon_road_yellow_arrow.png b/app/src/main/assets/Icon_road_yellow_arrow.png new file mode 100644 index 0000000..e9c09d1 Binary files /dev/null and b/app/src/main/assets/Icon_road_yellow_arrow.png differ diff --git a/app/src/main/assets/Icon_start.png b/app/src/main/assets/Icon_start.png new file mode 100644 index 0000000..0a439d4 Binary files /dev/null and b/app/src/main/assets/Icon_start.png differ diff --git a/app/src/main/assets/Icon_subway_station.png b/app/src/main/assets/Icon_subway_station.png new file mode 100644 index 0000000..3d3e401 Binary files /dev/null and b/app/src/main/assets/Icon_subway_station.png differ diff --git a/app/src/main/assets/Icon_walk_route.png b/app/src/main/assets/Icon_walk_route.png new file mode 100644 index 0000000..8c15cd7 Binary files /dev/null and b/app/src/main/assets/Icon_walk_route.png differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12652_4711.jpg b/app/src/main/assets/LocalTileImage/16/16_12652_4711.jpg new file mode 100644 index 0000000..18169f5 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12652_4711.jpg differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12652_4711.png b/app/src/main/assets/LocalTileImage/16/16_12652_4711.png new file mode 100644 index 0000000..5feff6c Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12652_4711.png differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12652_4712.jpg b/app/src/main/assets/LocalTileImage/16/16_12652_4712.jpg new file mode 100644 index 0000000..d6a5c5b Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12652_4712.jpg differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12652_4712.png b/app/src/main/assets/LocalTileImage/16/16_12652_4712.png new file mode 100644 index 0000000..d63ed52 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12652_4712.png differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12652_4713.jpg b/app/src/main/assets/LocalTileImage/16/16_12652_4713.jpg new file mode 100644 index 0000000..5d3bd09 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12652_4713.jpg differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12652_4713.png b/app/src/main/assets/LocalTileImage/16/16_12652_4713.png new file mode 100644 index 0000000..80713d0 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12652_4713.png differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12652_4714.jpg b/app/src/main/assets/LocalTileImage/16/16_12652_4714.jpg new file mode 100644 index 0000000..b40c12a Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12652_4714.jpg differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12652_4714.png b/app/src/main/assets/LocalTileImage/16/16_12652_4714.png new file mode 100644 index 0000000..eb5fa49 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12652_4714.png differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12652_4715.jpg b/app/src/main/assets/LocalTileImage/16/16_12652_4715.jpg new file mode 100644 index 0000000..937780b Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12652_4715.jpg differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12652_4715.png b/app/src/main/assets/LocalTileImage/16/16_12652_4715.png new file mode 100644 index 0000000..bdac60d Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12652_4715.png differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12652_4716.jpg b/app/src/main/assets/LocalTileImage/16/16_12652_4716.jpg new file mode 100644 index 0000000..8d97b32 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12652_4716.jpg differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12652_4716.png b/app/src/main/assets/LocalTileImage/16/16_12652_4716.png new file mode 100644 index 0000000..012f10c Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12652_4716.png differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12653_4711.jpg b/app/src/main/assets/LocalTileImage/16/16_12653_4711.jpg new file mode 100644 index 0000000..13a1560 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12653_4711.jpg differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12653_4711.png b/app/src/main/assets/LocalTileImage/16/16_12653_4711.png new file mode 100644 index 0000000..b299dd4 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12653_4711.png differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12653_4712.jpg b/app/src/main/assets/LocalTileImage/16/16_12653_4712.jpg new file mode 100644 index 0000000..e9831ec Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12653_4712.jpg differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12653_4712.png b/app/src/main/assets/LocalTileImage/16/16_12653_4712.png new file mode 100644 index 0000000..ed28c5c Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12653_4712.png differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12653_4713.jpg b/app/src/main/assets/LocalTileImage/16/16_12653_4713.jpg new file mode 100644 index 0000000..9de9dd8 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12653_4713.jpg differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12653_4713.png b/app/src/main/assets/LocalTileImage/16/16_12653_4713.png new file mode 100644 index 0000000..47cb88f Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12653_4713.png differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12653_4714.jpg b/app/src/main/assets/LocalTileImage/16/16_12653_4714.jpg new file mode 100644 index 0000000..72cd4bb Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12653_4714.jpg differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12653_4714.png b/app/src/main/assets/LocalTileImage/16/16_12653_4714.png new file mode 100644 index 0000000..7413c0d Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12653_4714.png differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12653_4715.jpg b/app/src/main/assets/LocalTileImage/16/16_12653_4715.jpg new file mode 100644 index 0000000..6179c1e Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12653_4715.jpg differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12653_4715.png b/app/src/main/assets/LocalTileImage/16/16_12653_4715.png new file mode 100644 index 0000000..7dcccbb Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12653_4715.png differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12653_4716.jpg b/app/src/main/assets/LocalTileImage/16/16_12653_4716.jpg new file mode 100644 index 0000000..066c57a Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12653_4716.jpg differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12654_4711.jpg b/app/src/main/assets/LocalTileImage/16/16_12654_4711.jpg new file mode 100644 index 0000000..9009007 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12654_4711.jpg differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12654_4712.jpg b/app/src/main/assets/LocalTileImage/16/16_12654_4712.jpg new file mode 100644 index 0000000..72b0c46 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12654_4712.jpg differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12654_4713.jpg b/app/src/main/assets/LocalTileImage/16/16_12654_4713.jpg new file mode 100644 index 0000000..5ae2463 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12654_4713.jpg differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12654_4714.jpg b/app/src/main/assets/LocalTileImage/16/16_12654_4714.jpg new file mode 100644 index 0000000..f035265 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12654_4714.jpg differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12654_4715.jpg b/app/src/main/assets/LocalTileImage/16/16_12654_4715.jpg new file mode 100644 index 0000000..07bc063 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12654_4715.jpg differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12654_4716.jpg b/app/src/main/assets/LocalTileImage/16/16_12654_4716.jpg new file mode 100644 index 0000000..82aea5c Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12654_4716.jpg differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12655_4711.jpg b/app/src/main/assets/LocalTileImage/16/16_12655_4711.jpg new file mode 100644 index 0000000..a32d582 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12655_4711.jpg differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12655_4712.jpg b/app/src/main/assets/LocalTileImage/16/16_12655_4712.jpg new file mode 100644 index 0000000..b443690 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12655_4712.jpg differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12655_4713.jpg b/app/src/main/assets/LocalTileImage/16/16_12655_4713.jpg new file mode 100644 index 0000000..d36e3c2 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12655_4713.jpg differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12655_4714.jpg b/app/src/main/assets/LocalTileImage/16/16_12655_4714.jpg new file mode 100644 index 0000000..f1730f5 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12655_4714.jpg differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12655_4715.jpg b/app/src/main/assets/LocalTileImage/16/16_12655_4715.jpg new file mode 100644 index 0000000..98ab335 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12655_4715.jpg differ diff --git a/app/src/main/assets/LocalTileImage/16/16_12655_4716.jpg b/app/src/main/assets/LocalTileImage/16/16_12655_4716.jpg new file mode 100644 index 0000000..fe5da44 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/16/16_12655_4716.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25303_9421.jpg b/app/src/main/assets/LocalTileImage/17/17_25303_9421.jpg new file mode 100644 index 0000000..bdb12e2 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25303_9421.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25303_9422.jpg b/app/src/main/assets/LocalTileImage/17/17_25303_9422.jpg new file mode 100644 index 0000000..7905697 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25303_9422.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25303_9423.jpg b/app/src/main/assets/LocalTileImage/17/17_25303_9423.jpg new file mode 100644 index 0000000..97de8c8 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25303_9423.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25303_9424.jpg b/app/src/main/assets/LocalTileImage/17/17_25303_9424.jpg new file mode 100644 index 0000000..3a3c5f5 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25303_9424.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25303_9425.jpg b/app/src/main/assets/LocalTileImage/17/17_25303_9425.jpg new file mode 100644 index 0000000..42fe650 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25303_9425.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25303_9426.jpg b/app/src/main/assets/LocalTileImage/17/17_25303_9426.jpg new file mode 100644 index 0000000..b8b6ac0 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25303_9426.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25303_9427.jpg b/app/src/main/assets/LocalTileImage/17/17_25303_9427.jpg new file mode 100644 index 0000000..8a194d8 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25303_9427.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25303_9428.jpg b/app/src/main/assets/LocalTileImage/17/17_25303_9428.jpg new file mode 100644 index 0000000..31ff04a Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25303_9428.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25303_9429.jpg b/app/src/main/assets/LocalTileImage/17/17_25303_9429.jpg new file mode 100644 index 0000000..aea00b8 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25303_9429.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25303_9430.jpg b/app/src/main/assets/LocalTileImage/17/17_25303_9430.jpg new file mode 100644 index 0000000..89b7c68 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25303_9430.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25303_9431.jpg b/app/src/main/assets/LocalTileImage/17/17_25303_9431.jpg new file mode 100644 index 0000000..9afb264 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25303_9431.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25303_9432.jpg b/app/src/main/assets/LocalTileImage/17/17_25303_9432.jpg new file mode 100644 index 0000000..b379824 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25303_9432.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25304_9421.jpg b/app/src/main/assets/LocalTileImage/17/17_25304_9421.jpg new file mode 100644 index 0000000..831b652 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25304_9421.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25304_9422.jpg b/app/src/main/assets/LocalTileImage/17/17_25304_9422.jpg new file mode 100644 index 0000000..b519100 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25304_9422.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25304_9423.jpg b/app/src/main/assets/LocalTileImage/17/17_25304_9423.jpg new file mode 100644 index 0000000..ed8e934 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25304_9423.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25304_9424.jpg b/app/src/main/assets/LocalTileImage/17/17_25304_9424.jpg new file mode 100644 index 0000000..4609bcd Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25304_9424.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25304_9425.jpg b/app/src/main/assets/LocalTileImage/17/17_25304_9425.jpg new file mode 100644 index 0000000..1d60f09 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25304_9425.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25304_9426.jpg b/app/src/main/assets/LocalTileImage/17/17_25304_9426.jpg new file mode 100644 index 0000000..532f05b Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25304_9426.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25304_9427.jpg b/app/src/main/assets/LocalTileImage/17/17_25304_9427.jpg new file mode 100644 index 0000000..6d2bee0 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25304_9427.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25304_9428.jpg b/app/src/main/assets/LocalTileImage/17/17_25304_9428.jpg new file mode 100644 index 0000000..a09b029 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25304_9428.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25304_9429.jpg b/app/src/main/assets/LocalTileImage/17/17_25304_9429.jpg new file mode 100644 index 0000000..59f51ec Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25304_9429.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25304_9430.jpg b/app/src/main/assets/LocalTileImage/17/17_25304_9430.jpg new file mode 100644 index 0000000..dd3c01e Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25304_9430.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25304_9431.jpg b/app/src/main/assets/LocalTileImage/17/17_25304_9431.jpg new file mode 100644 index 0000000..1c1e373 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25304_9431.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25304_9432.jpg b/app/src/main/assets/LocalTileImage/17/17_25304_9432.jpg new file mode 100644 index 0000000..3f6384e Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25304_9432.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25305_9421.jpg b/app/src/main/assets/LocalTileImage/17/17_25305_9421.jpg new file mode 100644 index 0000000..62f648b Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25305_9421.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25305_9422.jpg b/app/src/main/assets/LocalTileImage/17/17_25305_9422.jpg new file mode 100644 index 0000000..aec04fe Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25305_9422.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25305_9423.jpg b/app/src/main/assets/LocalTileImage/17/17_25305_9423.jpg new file mode 100644 index 0000000..ecbf79d Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25305_9423.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25305_9424.jpg b/app/src/main/assets/LocalTileImage/17/17_25305_9424.jpg new file mode 100644 index 0000000..2367c31 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25305_9424.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25305_9425.jpg b/app/src/main/assets/LocalTileImage/17/17_25305_9425.jpg new file mode 100644 index 0000000..ca28ba3 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25305_9425.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25305_9426.jpg b/app/src/main/assets/LocalTileImage/17/17_25305_9426.jpg new file mode 100644 index 0000000..c3adc31 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25305_9426.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25305_9427.jpg b/app/src/main/assets/LocalTileImage/17/17_25305_9427.jpg new file mode 100644 index 0000000..03ed09a Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25305_9427.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25305_9428.jpg b/app/src/main/assets/LocalTileImage/17/17_25305_9428.jpg new file mode 100644 index 0000000..3e0453c Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25305_9428.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25305_9429.jpg b/app/src/main/assets/LocalTileImage/17/17_25305_9429.jpg new file mode 100644 index 0000000..02f66ee Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25305_9429.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25305_9430.jpg b/app/src/main/assets/LocalTileImage/17/17_25305_9430.jpg new file mode 100644 index 0000000..4a7e107 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25305_9430.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25305_9431.jpg b/app/src/main/assets/LocalTileImage/17/17_25305_9431.jpg new file mode 100644 index 0000000..b933252 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25305_9431.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25305_9432.jpg b/app/src/main/assets/LocalTileImage/17/17_25305_9432.jpg new file mode 100644 index 0000000..8988c8f Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25305_9432.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25306_9421.jpg b/app/src/main/assets/LocalTileImage/17/17_25306_9421.jpg new file mode 100644 index 0000000..73fd417 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25306_9421.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25306_9422.jpg b/app/src/main/assets/LocalTileImage/17/17_25306_9422.jpg new file mode 100644 index 0000000..cbd2feb Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25306_9422.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25306_9423.jpg b/app/src/main/assets/LocalTileImage/17/17_25306_9423.jpg new file mode 100644 index 0000000..d0dcc09 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25306_9423.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25306_9424.jpg b/app/src/main/assets/LocalTileImage/17/17_25306_9424.jpg new file mode 100644 index 0000000..dcc77d2 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25306_9424.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25306_9425.jpg b/app/src/main/assets/LocalTileImage/17/17_25306_9425.jpg new file mode 100644 index 0000000..1442fee Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25306_9425.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25306_9426.jpg b/app/src/main/assets/LocalTileImage/17/17_25306_9426.jpg new file mode 100644 index 0000000..ad598f9 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25306_9426.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25306_9427.jpg b/app/src/main/assets/LocalTileImage/17/17_25306_9427.jpg new file mode 100644 index 0000000..c2e425c Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25306_9427.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25306_9428.jpg b/app/src/main/assets/LocalTileImage/17/17_25306_9428.jpg new file mode 100644 index 0000000..8fa759a Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25306_9428.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25306_9429.jpg b/app/src/main/assets/LocalTileImage/17/17_25306_9429.jpg new file mode 100644 index 0000000..f0c74b6 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25306_9429.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25306_9430.jpg b/app/src/main/assets/LocalTileImage/17/17_25306_9430.jpg new file mode 100644 index 0000000..60cabe6 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25306_9430.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25306_9431.jpg b/app/src/main/assets/LocalTileImage/17/17_25306_9431.jpg new file mode 100644 index 0000000..c7765dc Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25306_9431.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25306_9432.jpg b/app/src/main/assets/LocalTileImage/17/17_25306_9432.jpg new file mode 100644 index 0000000..673dc86 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25306_9432.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25307_9421.jpg b/app/src/main/assets/LocalTileImage/17/17_25307_9421.jpg new file mode 100644 index 0000000..66be10c Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25307_9421.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25307_9422.jpg b/app/src/main/assets/LocalTileImage/17/17_25307_9422.jpg new file mode 100644 index 0000000..9e72ee3 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25307_9422.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25307_9423.jpg b/app/src/main/assets/LocalTileImage/17/17_25307_9423.jpg new file mode 100644 index 0000000..7697777 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25307_9423.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25307_9424.jpg b/app/src/main/assets/LocalTileImage/17/17_25307_9424.jpg new file mode 100644 index 0000000..28a72e2 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25307_9424.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25307_9425.jpg b/app/src/main/assets/LocalTileImage/17/17_25307_9425.jpg new file mode 100644 index 0000000..131a3df Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25307_9425.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25307_9426.jpg b/app/src/main/assets/LocalTileImage/17/17_25307_9426.jpg new file mode 100644 index 0000000..ec65d6a Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25307_9426.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25307_9427.jpg b/app/src/main/assets/LocalTileImage/17/17_25307_9427.jpg new file mode 100644 index 0000000..fb459f5 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25307_9427.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25307_9428.jpg b/app/src/main/assets/LocalTileImage/17/17_25307_9428.jpg new file mode 100644 index 0000000..797e126 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25307_9428.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25307_9429.jpg b/app/src/main/assets/LocalTileImage/17/17_25307_9429.jpg new file mode 100644 index 0000000..b43fab1 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25307_9429.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25307_9430.jpg b/app/src/main/assets/LocalTileImage/17/17_25307_9430.jpg new file mode 100644 index 0000000..305d63b Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25307_9430.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25307_9431.jpg b/app/src/main/assets/LocalTileImage/17/17_25307_9431.jpg new file mode 100644 index 0000000..f116a86 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25307_9431.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25307_9432.jpg b/app/src/main/assets/LocalTileImage/17/17_25307_9432.jpg new file mode 100644 index 0000000..422a1bf Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25307_9432.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25308_9421.jpg b/app/src/main/assets/LocalTileImage/17/17_25308_9421.jpg new file mode 100644 index 0000000..83c600e Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25308_9421.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25308_9422.jpg b/app/src/main/assets/LocalTileImage/17/17_25308_9422.jpg new file mode 100644 index 0000000..6201d45 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25308_9422.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25308_9423.jpg b/app/src/main/assets/LocalTileImage/17/17_25308_9423.jpg new file mode 100644 index 0000000..710d52f Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25308_9423.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25308_9424.jpg b/app/src/main/assets/LocalTileImage/17/17_25308_9424.jpg new file mode 100644 index 0000000..56c751c Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25308_9424.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25308_9425.jpg b/app/src/main/assets/LocalTileImage/17/17_25308_9425.jpg new file mode 100644 index 0000000..278e225 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25308_9425.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25308_9426.jpg b/app/src/main/assets/LocalTileImage/17/17_25308_9426.jpg new file mode 100644 index 0000000..38d028b Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25308_9426.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25308_9427.jpg b/app/src/main/assets/LocalTileImage/17/17_25308_9427.jpg new file mode 100644 index 0000000..d16ab0b Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25308_9427.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25308_9428.jpg b/app/src/main/assets/LocalTileImage/17/17_25308_9428.jpg new file mode 100644 index 0000000..95e919b Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25308_9428.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25308_9429.jpg b/app/src/main/assets/LocalTileImage/17/17_25308_9429.jpg new file mode 100644 index 0000000..a23aa47 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25308_9429.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25308_9430.jpg b/app/src/main/assets/LocalTileImage/17/17_25308_9430.jpg new file mode 100644 index 0000000..e1df47f Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25308_9430.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25308_9431.jpg b/app/src/main/assets/LocalTileImage/17/17_25308_9431.jpg new file mode 100644 index 0000000..00c2d94 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25308_9431.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25308_9432.jpg b/app/src/main/assets/LocalTileImage/17/17_25308_9432.jpg new file mode 100644 index 0000000..b3fd152 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25308_9432.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25309_9421.jpg b/app/src/main/assets/LocalTileImage/17/17_25309_9421.jpg new file mode 100644 index 0000000..7463655 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25309_9421.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25309_9422.jpg b/app/src/main/assets/LocalTileImage/17/17_25309_9422.jpg new file mode 100644 index 0000000..9d7154c Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25309_9422.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25309_9423.jpg b/app/src/main/assets/LocalTileImage/17/17_25309_9423.jpg new file mode 100644 index 0000000..65702d4 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25309_9423.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25309_9424.jpg b/app/src/main/assets/LocalTileImage/17/17_25309_9424.jpg new file mode 100644 index 0000000..183ecf0 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25309_9424.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25309_9425.jpg b/app/src/main/assets/LocalTileImage/17/17_25309_9425.jpg new file mode 100644 index 0000000..b519bf2 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25309_9425.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25309_9426.jpg b/app/src/main/assets/LocalTileImage/17/17_25309_9426.jpg new file mode 100644 index 0000000..20b0990 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25309_9426.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25309_9427.jpg b/app/src/main/assets/LocalTileImage/17/17_25309_9427.jpg new file mode 100644 index 0000000..f11ac3a Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25309_9427.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25309_9428.jpg b/app/src/main/assets/LocalTileImage/17/17_25309_9428.jpg new file mode 100644 index 0000000..2787803 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25309_9428.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25309_9429.jpg b/app/src/main/assets/LocalTileImage/17/17_25309_9429.jpg new file mode 100644 index 0000000..cfc2f28 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25309_9429.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25309_9430.jpg b/app/src/main/assets/LocalTileImage/17/17_25309_9430.jpg new file mode 100644 index 0000000..b1a2b55 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25309_9430.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25309_9431.jpg b/app/src/main/assets/LocalTileImage/17/17_25309_9431.jpg new file mode 100644 index 0000000..890c84c Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25309_9431.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25309_9432.jpg b/app/src/main/assets/LocalTileImage/17/17_25309_9432.jpg new file mode 100644 index 0000000..856f38a Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25309_9432.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25310_9421.jpg b/app/src/main/assets/LocalTileImage/17/17_25310_9421.jpg new file mode 100644 index 0000000..cc8f544 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25310_9421.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25310_9422.jpg b/app/src/main/assets/LocalTileImage/17/17_25310_9422.jpg new file mode 100644 index 0000000..77991c8 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25310_9422.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25310_9423.jpg b/app/src/main/assets/LocalTileImage/17/17_25310_9423.jpg new file mode 100644 index 0000000..352b304 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25310_9423.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25310_9424.jpg b/app/src/main/assets/LocalTileImage/17/17_25310_9424.jpg new file mode 100644 index 0000000..657c499 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25310_9424.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25310_9425.jpg b/app/src/main/assets/LocalTileImage/17/17_25310_9425.jpg new file mode 100644 index 0000000..e3c85b6 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25310_9425.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25310_9426.jpg b/app/src/main/assets/LocalTileImage/17/17_25310_9426.jpg new file mode 100644 index 0000000..0a271bc Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25310_9426.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25310_9427.jpg b/app/src/main/assets/LocalTileImage/17/17_25310_9427.jpg new file mode 100644 index 0000000..94e94ad Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25310_9427.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25310_9428.jpg b/app/src/main/assets/LocalTileImage/17/17_25310_9428.jpg new file mode 100644 index 0000000..07751b4 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25310_9428.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25310_9429.jpg b/app/src/main/assets/LocalTileImage/17/17_25310_9429.jpg new file mode 100644 index 0000000..88be328 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25310_9429.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25310_9430.jpg b/app/src/main/assets/LocalTileImage/17/17_25310_9430.jpg new file mode 100644 index 0000000..6743019 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25310_9430.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25310_9431.jpg b/app/src/main/assets/LocalTileImage/17/17_25310_9431.jpg new file mode 100644 index 0000000..427a3a2 Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25310_9431.jpg differ diff --git a/app/src/main/assets/LocalTileImage/17/17_25310_9432.jpg b/app/src/main/assets/LocalTileImage/17/17_25310_9432.jpg new file mode 100644 index 0000000..2bc69af Binary files /dev/null and b/app/src/main/assets/LocalTileImage/17/17_25310_9432.jpg differ diff --git a/app/src/main/assets/customConfigdir/custom_map_config_CX.sty b/app/src/main/assets/customConfigdir/custom_map_config_CX.sty new file mode 100644 index 0000000..eb48817 Binary files /dev/null and b/app/src/main/assets/customConfigdir/custom_map_config_CX.sty differ diff --git a/app/src/main/assets/customConfigdir/custom_map_config_YSYY.sty b/app/src/main/assets/customConfigdir/custom_map_config_YSYY.sty new file mode 100644 index 0000000..b22a68e Binary files /dev/null and b/app/src/main/assets/customConfigdir/custom_map_config_YSYY.sty differ diff --git a/app/src/main/assets/kujp9scu.mp3 b/app/src/main/assets/kujp9scu.mp3 new file mode 100644 index 0000000..8f2934b Binary files /dev/null and b/app/src/main/assets/kujp9scu.mp3 differ diff --git a/app/src/main/assets/web/test.html b/app/src/main/assets/web/test.html new file mode 100644 index 0000000..b6b5aa2 --- /dev/null +++ b/app/src/main/assets/web/test.html @@ -0,0 +1,20 @@ + + + + + + + + + + + + diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/App.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/App.java new file mode 100644 index 0000000..be9be79 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/App.java @@ -0,0 +1,102 @@ +package com.arpa.hndahesudintocctmsdriver; + +import android.app.ActivityManager; +import android.app.Application; +import android.content.Context; +import android.content.pm.ApplicationInfo; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.util.Log; + +import com.alct.mdp.MDPLocationCollectionManager; +import com.arpa.hndahesudintocctmsdriver.report.JTTProcess; +import com.esign.esignsdk.EsignSdk; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; +import com.umeng.commonsdk.UMConfigure; + +import cn.jiguang.verifysdk.api.JVerificationInterface; + +public class App extends Application { + + String key="f9d35b1133cff1f6e3960c89b249e03f"; + String license="eQQm7gCZPF58Cy4i9OGkqSdFdDnFF0VSUVpw92WcrNLx7zVbpGJwjQhnKL8b0piApIbOTog5log/S1ZIxoUQogueaG84BQlJfRwKjtvpVWImlmhthQyQd2ogRqGkm3rkVGeG9wK49fzP3g5AtghNF05je2rQWd/Tyy/wutXq0e0rvR/bEckFaZ4BesQaYd0MejFC3lA8BjxNWiuvCKs15e1aRUOU5vwN5wsaTsTHokBIYhioSxOoGgHn6NrX6K9Dsl9uTWZ2dOVK/jEzYsNt6E/1Ww2ck1XmIWdRCQNmCpgikuPT0ACAL/w7UaRoWzM/Pm+akWqyp+bEavHT1Vhug3HAHOSGfOghGw2NerNlyEg8h6cVneMx+TsidnQ0ZG29aqdcLBRsvi26BYJJCA8+0WXjT+73RhS8g97Rfb6h0/W//5Az8UNZ6dp6XvUi2EJXQRhY5hkHiuwWT2W1ik+6wiiURkkrBACKbO1kmZWbVpRIe3Y3pcr3Q/V+oAcyPHRXCxu+JIe/j40/epuRrCyf8yvKsZ2Dnkl4QQmlwNqlW1F/arS+19G6zOG+6VKwtbI01A1R9SU1TYOA5UL/Qpo6Gyi3Ec3/irgQlzkq1rZrOIS4oo6tghul/zcG8rjno3luqHYwIZf8vAVfpwBesIVcANCOIuTRPU3A8vdmUoK/twGIchPapmjlAzLhjZ4KoAbNeMsWu3sN6kF44xofLMghos2X8OtvUA9CMD37v2FpYoM75qavyoivsBAbb6mG0p5TmkZ37BxfaGGP6SYrCa9ygQ=="; + + public final static int APP_STATUS_KILLED = 0; // 表示应用是被杀死后在启动的 + public final static int APP_STATUS_NORMAL = 1; // 表示应用时正常的启动流程 + public static int APP_STATUS = APP_STATUS_KILLED; // 记录App的启动状态 + private Context con; + + @Override + public void onCreate() { + super.onCreate(); + con=getBaseContext(); + String state= SPUtil.getSP(con,"state_data","authorization_state"); + if("1".equals(state)){ + try{ + Context context = getApplicationContext(); + Resources res = getResources(); + Configuration config = new Configuration(); + config.setToDefaults(); + res.updateConfiguration(config, res.getDisplayMetrics()); + //安联初始化 + if (context.getPackageName().equals(getCurrentProcessName(context))) { + //Log.e("--使用的测试环境--",BuildConfig.OPEN_API_URL); + MDPLocationCollectionManager.initialize(this,"https://oapi.alct56.com"); + } + //在使用SDK各组件之前初始化context信息,传入ApplicationContext + // 路由初始化 + JVerificationInterface.setDebugMode(true); + JVerificationInterface.init(this, 5000, (code, msg) -> Log.d("tag", "code = " + code + " msg = " + msg)); + //友盟 + //设置非debug版本开启 + if(!isDebugVersion(con)){ + youmenginit(); + } + EsignSdk.getInstance().init(key,license); + JTTProcess.init(this); + //QupaiHttpFinal.getInstance().initOkHttpFinal(); + }catch (Exception e){ + Log.e("-error-","初始化失败sss"); + } + } + } + + public void youmenginit(){ + //设置LOG开关,默认为false + UMConfigure.setLogEnabled(true); + //友盟预初始化 + UMConfigure.preInit(getApplicationContext(),"60fbfe87ff4d74541c81e01a","Umeng"); + /** + * 打开app首次隐私协议授权,以及sdk初始化,判断逻辑请查看SplashTestActivity + */ + //判断是否同意隐私协议,uminit为1时为已经同意,直接初始化umsdk + // if(SPUtil.getSP(getAppContext(),"umeng","uminit").equals("1")){ + //友盟正式初始化 + UMConfigure.init(getApplicationContext(),UMConfigure.DEVICE_TYPE_PHONE,""); + } + + private static String getCurrentProcessName(Context context) { + String currentProcessName = ""; + int pid = android.os.Process.myPid(); + ActivityManager mActivityManager = (ActivityManager) context .getSystemService(Context.ACTIVITY_SERVICE); + if (mActivityManager.getRunningAppProcesses() != null && mActivityManager.getRunningAppProcesses().size() > 0) { + for (ActivityManager.RunningAppProcessInfo appProcess : mActivityManager.getRunningAppProcesses()) { + if (appProcess.pid == pid) { + currentProcessName = appProcess.processName; + } + } + } + return currentProcessName; + } + + private static boolean isDebugVersion(Context context) { + try { + ApplicationInfo info = context.getApplicationInfo(); + return (info.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0; + } catch (Exception e) { + e.printStackTrace(); + } + return false; + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/BankCardListBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/BankCardListBean.java new file mode 100644 index 0000000..2044357 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/BankCardListBean.java @@ -0,0 +1,281 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +import java.util.ArrayList; +import java.util.List; + +public class BankCardListBean { + + private int res; + private int code; + private boolean success; + private String msg; + private DataDTO 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + public static class DataDTO { + private List records; + private int total; + private int size; + private int current; + private List orders; + private boolean searchCount; + private int pages; + + public List getRecords() { + if (records == null) { + return new ArrayList<>(); + } + return records; + } + + public void setRecords(List records) { + this.records = records; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public int getSize() { + return size; + } + + public void setSize(int size) { + this.size = size; + } + + public int getCurrent() { + return current; + } + + public void setCurrent(int current) { + this.current = current; + } + + public List getOrders() { + if (orders == null) { + return new ArrayList<>(); + } + return orders; + } + + public void setOrders(List orders) { + this.orders = orders; + } + + public boolean isSearchCount() { + return searchCount; + } + + public void setSearchCount(boolean searchCount) { + this.searchCount = searchCount; + } + + public int getPages() { + return pages; + } + + public void setPages(int pages) { + this.pages = pages; + } + + public static class RecordsDTO { + private int id; + private String bankId; + private String bankName; + private String cardNo; + private String bankImgUrl; + private int cardType; + private int auditStatus; + private int createUser; + private String createUserName; + private String createTime; + private String openBank; + private String companyName; + private String companyCode; + private String address; + private String phone; + private int cardUserType; + private String userCompany; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getBankId() { + return bankId == null ? "" : bankId; + } + + public void setBankId(String bankId) { + this.bankId = bankId; + } + + public String getBankName() { + return bankName == null ? "" : bankName; + } + + public void setBankName(String bankName) { + this.bankName = bankName; + } + + public String getCardNo() { + return cardNo == null ? "" : cardNo; + } + + public void setCardNo(String cardNo) { + this.cardNo = cardNo; + } + + public String getBankImgUrl() { + return bankImgUrl == null ? "" : bankImgUrl; + } + + public void setBankImgUrl(String bankImgUrl) { + this.bankImgUrl = bankImgUrl; + } + + public int getCardType() { + return cardType; + } + + public void setCardType(int cardType) { + this.cardType = cardType; + } + + public int getAuditStatus() { + return auditStatus; + } + + public void setAuditStatus(int auditStatus) { + this.auditStatus = auditStatus; + } + + public int getCreateUser() { + return createUser; + } + + public void setCreateUser(int createUser) { + this.createUser = createUser; + } + + public String getCreateUserName() { + return createUserName == null ? "" : createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getCreateTime() { + return createTime == null ? "" : createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getOpenBank() { + return openBank == null ? "" : openBank; + } + + public void setOpenBank(String openBank) { + this.openBank = openBank; + } + + public String getCompanyName() { + return companyName == null ? "" : companyName; + } + + public void setCompanyName(String companyName) { + this.companyName = companyName; + } + + public String getCompanyCode() { + return companyCode == null ? "" : companyCode; + } + + public void setCompanyCode(String companyCode) { + this.companyCode = companyCode; + } + + public String getAddress() { + return address == null ? "" : address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getPhone() { + return phone == null ? "" : phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public int getCardUserType() { + return cardUserType; + } + + public void setCardUserType(int cardUserType) { + this.cardUserType = cardUserType; + } + + public String getUserCompany() { + return userCompany == null ? "" : userCompany; + } + + public void setUserCompany(String userCompany) { + this.userCompany = userCompany; + } + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/BaseBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/BaseBean.java new file mode 100644 index 0000000..823a4f4 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/BaseBean.java @@ -0,0 +1,57 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/7 14:28 + * @description:基础bean + */ +public class BaseBean { + + private int res; + private int code; + private boolean success; + private String msg; + private Object 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public Object getData() { + return data; + } + + public void setData(Object data) { + this.data = data; + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/BusinessBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/BusinessBean.java new file mode 100644 index 0000000..3586efe --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/BusinessBean.java @@ -0,0 +1,173 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/9/6 10:23 + * @description: + */ +public class BusinessBean { + + private int code; + private String msg; + private DataDTO data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + public static class DataDTO { + private String openshopid; + private String name; + private String branch_name; + private String city; + private String address; + private List categories; + private double avg_rating; + private int ugc_count; + private int avg_price; + private double taste; + private double decoration; + private double service; + private String photo_url; + private String business_url; + + public String getOpenshopid() { + return openshopid == null ? "" : openshopid; + } + + public void setOpenshopid(String openshopid) { + this.openshopid = openshopid; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public String getBranch_name() { + return branch_name == null ? "" : branch_name; + } + + public void setBranch_name(String branch_name) { + this.branch_name = branch_name; + } + + public String getCity() { + return city == null ? "" : city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getAddress() { + return address == null ? "" : address; + } + + public void setAddress(String address) { + this.address = address; + } + + public List getCategories() { + if (categories == null) { + return new ArrayList<>(); + } + return categories; + } + + public void setCategories(List categories) { + this.categories = categories; + } + + public double getAvg_rating() { + return avg_rating; + } + + public void setAvg_rating(double avg_rating) { + this.avg_rating = avg_rating; + } + + public int getUgc_count() { + return ugc_count; + } + + public void setUgc_count(int ugc_count) { + this.ugc_count = ugc_count; + } + + public int getAvg_price() { + return avg_price; + } + + public void setAvg_price(int avg_price) { + this.avg_price = avg_price; + } + + public double getTaste() { + return taste; + } + + public void setTaste(double taste) { + this.taste = taste; + } + + public double getDecoration() { + return decoration; + } + + public void setDecoration(double decoration) { + this.decoration = decoration; + } + + public double getService() { + return service; + } + + public void setService(double service) { + this.service = service; + } + + public String getPhoto_url() { + return photo_url == null ? "" : photo_url; + } + + public void setPhoto_url(String photo_url) { + this.photo_url = photo_url; + } + + public String getBusiness_url() { + return business_url == null ? "" : business_url; + } + + public void setBusiness_url(String business_url) { + this.business_url = business_url; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/BusinessListBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/BusinessListBean.java new file mode 100644 index 0000000..7425cf5 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/BusinessListBean.java @@ -0,0 +1,104 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/9/6 10:22 + * @description: + */ +public class BusinessListBean { + + private int code; + private String msg; + private DataDTO data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + public static class DataDTO { + private int total_count; + private int page; + private List results; + + public int getTotal_count() { + return total_count; + } + + public void setTotal_count(int total_count) { + this.total_count = total_count; + } + + public int getPage() { + return page; + } + + public void setPage(int page) { + this.page = page; + } + + public List getResults() { + if (results == null) { + return new ArrayList<>(); + } + return results; + } + + public void setResults(List results) { + this.results = results; + } + + public static class ResultsDTO { + private String openshopid; + private String name; + private String branch_name; + + public String getOpenshopid() { + return openshopid == null ? "" : openshopid; + } + + public void setOpenshopid(String openshopid) { + this.openshopid = openshopid; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public String getBranch_name() { + return branch_name == null ? "" : branch_name; + } + + public void setBranch_name(String branch_name) { + this.branch_name = branch_name; + } + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/CarDelBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/CarDelBean.java new file mode 100644 index 0000000..7632716 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/CarDelBean.java @@ -0,0 +1,323 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/4 14:24 + * @description:车辆信息详情实体类 + */ +public class CarDelBean { + + private int code; + private DataDTO data; + private String msg; + 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + 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 int auditStatus; + private String backImage; + private String carImage; + private String carNumber; + private String frontImage; + private int isTrailer; + private boolean needRoad; + private String nfcId; + private String owner; + private String roadLicense; + private String roadLicensePhoto; + private String roadLicenseSend; + private String roadLicenseValidity; + private String threeImage; + private TrailerResVoDTO trailerResVo; + private String type; + private String vehicleNumber; + private String nfcImage; + private String registerImage; + private String registerNo; + private String carEnergyTypValue; + private String carPlateColorValue; + + public String getCarPlateColorValue() { + return carPlateColorValue; + } + + public void setCarPlateColorValue(String carPlateColorValue) { + this.carPlateColorValue = carPlateColorValue; + } + + public String getCarEnergyTypValue() { + return carEnergyTypValue; + } + + public void setCarEnergyTypValue(String carEnergyTypValue) { + this.carEnergyTypValue = carEnergyTypValue; + } + + public String getRegisterNo() { + return registerNo; + } + + public void setRegisterNo(String registerNo) { + this.registerNo = registerNo; + } + + public String getNfcImage() { + return nfcImage == null ? "" : nfcImage; + } + + public void setNfcImage(String nfcImage) { + this.nfcImage = nfcImage; + } + + public String getRegisterImage() { + return registerImage == null ? "" : registerImage; + } + + public void setRegisterImage(String registerImage) { + this.registerImage = registerImage; + } + + public int getAuditStatus() { + return auditStatus; + } + + public void setAuditStatus(int auditStatus) { + this.auditStatus = auditStatus; + } + + public String getBackImage() { + return backImage == null ? "" : backImage; + } + + public void setBackImage(String backImage) { + this.backImage = backImage; + } + + public String getCarImage() { + return carImage == null ? "" : carImage; + } + + public void setCarImage(String carImage) { + this.carImage = carImage; + } + + public String getCarNumber() { + return carNumber == null ? "" : carNumber; + } + + public void setCarNumber(String carNumber) { + this.carNumber = carNumber; + } + + public String getFrontImage() { + return frontImage == null ? "" : frontImage; + } + + public void setFrontImage(String frontImage) { + this.frontImage = frontImage; + } + + public int getIsTrailer() { + return isTrailer; + } + + public void setIsTrailer(int isTrailer) { + this.isTrailer = isTrailer; + } + + public boolean isNeedRoad() { + return needRoad; + } + + public void setNeedRoad(boolean needRoad) { + this.needRoad = needRoad; + } + + public String getNfcId() { + return nfcId == null ? "" : nfcId; + } + + public void setNfcId(String nfcId) { + this.nfcId = nfcId; + } + + public String getOwner() { + return owner == null ? "" : owner; + } + + public void setOwner(String owner) { + this.owner = owner; + } + + public String getRoadLicense() { + return roadLicense == null ? "" : roadLicense; + } + + public void setRoadLicense(String roadLicense) { + this.roadLicense = roadLicense; + } + + public String getRoadLicensePhoto() { + return roadLicensePhoto == null ? "" : roadLicensePhoto; + } + + public void setRoadLicensePhoto(String roadLicensePhoto) { + this.roadLicensePhoto = roadLicensePhoto; + } + + public String getRoadLicenseSend() { + return roadLicenseSend == null ? "" : roadLicenseSend; + } + + public void setRoadLicenseSend(String roadLicenseSend) { + this.roadLicenseSend = roadLicenseSend; + } + + public String getRoadLicenseValidity() { + return roadLicenseValidity == null ? "" : roadLicenseValidity; + } + + public void setRoadLicenseValidity(String roadLicenseValidity) { + this.roadLicenseValidity = roadLicenseValidity; + } + + public String getThreeImage() { + return threeImage == null ? "" : threeImage; + } + + public void setThreeImage(String threeImage) { + this.threeImage = threeImage; + } + + public TrailerResVoDTO getTrailerResVo() { + return trailerResVo; + } + + public void setTrailerResVo(TrailerResVoDTO trailerResVo) { + this.trailerResVo = trailerResVo; + } + + public String getType() { + return type == null ? "" : type; + } + + public void setType(String type) { + this.type = type; + } + + public String getVehicleNumber() { + return vehicleNumber == null ? "" : vehicleNumber; + } + + public void setVehicleNumber(String vehicleNumber) { + this.vehicleNumber = vehicleNumber; + } + + public static class TrailerResVoDTO { + private String backImage; + private String carNumber; + private String frontImage; + private String owner; + private String threeImage; + private String type; + private String vehicleNumber; + + public String getBackImage() { + return backImage == null ? "" : backImage; + } + + public void setBackImage(String backImage) { + this.backImage = backImage; + } + + public String getCarNumber() { + return carNumber == null ? "" : carNumber; + } + + public void setCarNumber(String carNumber) { + this.carNumber = carNumber; + } + + public String getFrontImage() { + return frontImage == null ? "" : frontImage; + } + + public void setFrontImage(String frontImage) { + this.frontImage = frontImage; + } + + public String getOwner() { + return owner == null ? "" : owner; + } + + public void setOwner(String owner) { + this.owner = owner; + } + + public String getThreeImage() { + return threeImage == null ? "" : threeImage; + } + + public void setThreeImage(String threeImage) { + this.threeImage = threeImage; + } + + public String getType() { + return type == null ? "" : type; + } + + public void setType(String type) { + this.type = type; + } + + public String getVehicleNumber() { + return vehicleNumber == null ? "" : vehicleNumber; + } + + public void setVehicleNumber(String vehicleNumber) { + this.vehicleNumber = vehicleNumber; + } + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/CarListBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/CarListBean.java new file mode 100644 index 0000000..e5b681a --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/CarListBean.java @@ -0,0 +1,138 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/4 14:24 + * @description:车辆列表实体类 + */ + +public class CarListBean { + + private int res; + private int code; + private boolean success; + private String msg; + private List 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public List getData() { + if (data == null) { + return new ArrayList<>(); + } + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataDTO { + private String carNumber; + private String carId; + private String type; + private Object carImage; + private String owner; + private String vehicleNumber; + private int auditStatus; + private String drivingLicenseValidity; + + 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 String getType() { + return type == null ? "" : type; + } + + public void setType(String type) { + this.type = type; + } + + public Object getCarImage() { + return carImage; + } + + public void setCarImage(Object carImage) { + this.carImage = carImage; + } + + public String getOwner() { + return owner == null ? "" : owner; + } + + public void setOwner(String owner) { + this.owner = owner; + } + + public String getVehicleNumber() { + return vehicleNumber == null ? "" : vehicleNumber; + } + + public void setVehicleNumber(String vehicleNumber) { + this.vehicleNumber = vehicleNumber; + } + + public int getAuditStatus() { + return auditStatus; + } + + public void setAuditStatus(int auditStatus) { + this.auditStatus = auditStatus; + } + + public String getDrivingLicenseValidity() { + return drivingLicenseValidity == null ? "" : drivingLicenseValidity; + } + + public void setDrivingLicenseValidity(String drivingLicenseValidity) { + this.drivingLicenseValidity = drivingLicenseValidity; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/CarZhengBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/CarZhengBean.java new file mode 100644 index 0000000..cc45d52 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/CarZhengBean.java @@ -0,0 +1,68 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/25 20:04 + * @description: + */ +public class CarZhengBean { + + private int code; + private DataDTO data; + private String msg; + 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + 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 int carId; + + public int getCarId() { + return carId; + } + + public void setCarId(int carId) { + this.carId = carId; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/ChangeRecordBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/ChangeRecordBean.java new file mode 100644 index 0000000..94da6d8 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/ChangeRecordBean.java @@ -0,0 +1,120 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/9/26 17:44 + * @description: + */ +public class ChangeRecordBean { + + private int code; + private List data; + private String msg; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public List getData() { + if (data == null) { + return new ArrayList<>(); + } + return data; + } + + public void setData(List data) { + this.data = data; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataDTO { + + private String balanceMonty; + private String createTime; + private String money; + private String name; + private String status; + private String gldYldAmt; + private String charges; + + public String getGldYldAmt() { + return gldYldAmt; + } + + public void setGldYldAmt(String gldYldAmt) { + this.gldYldAmt = gldYldAmt; + } + + public String getCharges() { + return charges; + } + + public void setCharges(String charges) { + this.charges = charges; + } + + public String getBalanceMonty() { + return balanceMonty == null ? "" : balanceMonty; + } + + public void setBalanceMonty(String balanceMonty) { + this.balanceMonty = balanceMonty; + } + + public String getCreateTime() { + return createTime == null ? "" : createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getMoney() { + return money == null ? "" : money; + } + + public void setMoney(String money) { + this.money = money; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public String getStatus() { + return status == null ? "" : status; + } + + public void setStatus(String status) { + this.status = status; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/ComplaintBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/ComplaintBean.java new file mode 100644 index 0000000..2b0817f --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/ComplaintBean.java @@ -0,0 +1,155 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/30 19:48 + * @description: + */ +public class ComplaintBean { + + private int res; + private int code; + private boolean success; + private String msg; + private List 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public List getData() { + if (data == null) { + return new ArrayList<>(); + } + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataDTO { + private int waybillId; + private String content; + private Object listImgUrl; + private int type; + private int status; + private String handleContent; + private int handleUser; + private String handleTime; + private int appraiserId; + private Object folderId; + + public int getWaybillId() { + return waybillId; + } + + public void setWaybillId(int waybillId) { + this.waybillId = waybillId; + } + + public String getContent() { + return content == null ? "" : content; + } + + public void setContent(String content) { + this.content = content; + } + + public Object getListImgUrl() { + return listImgUrl; + } + + public void setListImgUrl(Object listImgUrl) { + this.listImgUrl = listImgUrl; + } + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } + + public String getHandleContent() { + return handleContent == null ? "" : handleContent; + } + + public void setHandleContent(String handleContent) { + this.handleContent = handleContent; + } + + public int getHandleUser() { + return handleUser; + } + + public void setHandleUser(int handleUser) { + this.handleUser = handleUser; + } + + public String getHandleTime() { + return handleTime == null ? "" : handleTime; + } + + public void setHandleTime(String handleTime) { + this.handleTime = handleTime; + } + + public int getAppraiserId() { + return appraiserId; + } + + public void setAppraiserId(int appraiserId) { + this.appraiserId = appraiserId; + } + + public Object getFolderId() { + return folderId; + } + + public void setFolderId(Object folderId) { + this.folderId = folderId; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/ConfigBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/ConfigBean.java new file mode 100644 index 0000000..5ba17b3 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/ConfigBean.java @@ -0,0 +1,114 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/9/11 11:53 + * @description: + */ +public class ConfigBean { + + private int res; + private int code; + private boolean success; + private String msg; + private DataDTO 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + public static class DataDTO { + + private String serviceMobile; + private String privateUrl; + private String userUrl; + private String contractUrl; + private String startImageUrl; + private String securityUrl; + + public String getServiceMobile() { + return serviceMobile == null ? "" : serviceMobile; + } + + public void setServiceMobile(String serviceMobile) { + this.serviceMobile = serviceMobile; + } + + public String getPrivateUrl() { + return privateUrl == null ? "" : privateUrl; + } + + public void setPrivateUrl(String privateUrl) { + this.privateUrl = privateUrl; + } + + public String getUserUrl() { + return userUrl == null ? "" : userUrl; + } + + public void setUserUrl(String userUrl) { + this.userUrl = userUrl; + } + + public String getContractUrl() { + return contractUrl == null ? "" : contractUrl; + } + + public void setContractUrl(String contractUrl) { + this.contractUrl = contractUrl; + } + + public String getStartImageUrl() { + return startImageUrl == null ? "" : startImageUrl; + } + + public void setStartImageUrl(String startImageUrl) { + this.startImageUrl = startImageUrl; + } + + public String getSecurityUrl() { + return securityUrl == null ? "" : securityUrl; + } + + public void setSecurityUrl(String securityUrl) { + this.securityUrl = securityUrl; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/ConfigRecordBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/ConfigRecordBean.java new file mode 100644 index 0000000..2d81eb5 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/ConfigRecordBean.java @@ -0,0 +1,114 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +/** + * @ClassName ConfigRecordBean + * @Author 用户 + * @Date 2022/8/2 16:53 + * @Description TODO + */ +public class ConfigRecordBean { + private int res; + private int code; + private boolean success; + private String msg; + private DataDTO 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + public static class DataDTO { + + private String chargeRate; + private String createTime; + private String id; + private String minCharge; + private String chargeNum; + private String amount; + + public String getAmount() { + return amount; + } + + public void setAmount(String amount) { + this.amount = amount; + } + + public String getChargeNum() { + return chargeNum; + } + + public void setChargeNum(String chargeNum) { + this.chargeNum = chargeNum; + } + + public String getChargeRate() { + return chargeRate; + } + + public void setChargeRate(String chargeRate) { + this.chargeRate = chargeRate; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getMinCharge() { + return minCharge; + } + + public void setMinCharge(String minCharge) { + this.minCharge = minCharge; + } + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/ContractsBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/ContractsBean.java new file mode 100644 index 0000000..8083b3e --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/ContractsBean.java @@ -0,0 +1,68 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/9/3 16:28 + * @description: + */ +public class ContractsBean { + + private int code; + private String msg; + private boolean success; + private DataDTO data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + public static class DataDTO { + private String bidsSnglFlgCd; + private String childAcctNo; + + public String getBidsSnglFlgCd() { + return bidsSnglFlgCd == null ? "" : bidsSnglFlgCd; + } + + public void setBidsSnglFlgCd(String bidsSnglFlgCd) { + this.bidsSnglFlgCd = bidsSnglFlgCd; + } + + public String getChildAcctNo() { + return childAcctNo == null ? "" : childAcctNo; + } + + public void setChildAcctNo(String childAcctNo) { + this.childAcctNo = childAcctNo; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/DicBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/DicBean.java new file mode 100644 index 0000000..e52ab02 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/DicBean.java @@ -0,0 +1,71 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +import com.github.gzuliyujiang.wheelview.contract.TextProvider; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @ClassName DicBean + * @Author 用户 + * @Date 2022/4/24 9:31 + * @Description TODO + */ +public class DicBean implements Serializable { + private int code; + private ArrayList data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public ArrayList getData() { + return data; + } + + public void setData(ArrayList data) { + this.data = data; + } + + public static class DataDTO implements TextProvider { + private String name; + private String type; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + @Override + public String provideText() { + return name; + } + } + + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/DriverAuthDataBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/DriverAuthDataBean.java new file mode 100644 index 0000000..209fde4 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/DriverAuthDataBean.java @@ -0,0 +1,872 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +public class DriverAuthDataBean { + + private int res; + private int code; + private boolean success; + private String msg; + private DataDTO 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + public static class DataDTO { + private int id; + private int userId; + private Object contactName; + private String contactPhone; + private String idcard; + private String idcardValidity; + private String dirverAllowType; + private int idcardPhoto; + private int idcardBackPhoto; + private Object idcardPhotoHold; + private String idcardAddress; + private String idcardName; + private int idcardSex; + private int idCardStatus; + private int driverLicenseStatus; + private int qualificationCertificateStatus; + private String idCardReason; + private String driverLicenseReason; + private String qualificationCertificateReason; + private Object qualificationCertificate; + private Object qualificationCertificateValidity; + private Object qualificationCertificatePhoto; + private String driverLicense; + private String driverLicenseValidity; + private String archivesName; + private String driverLicenseName; + private String allowType; + private String driverLicenseFirstTime; + private int driverLicensePhoto; + private int driverLicenseBackPhoto; + private Object driverLicenseType; + private Object driverPhoto; + private Object license; + private Object licenseValidity; + private Object licensePhoto; + private int auditStatus; + private Object reason; + private String applyTime; + private String auditTime; + private Object isCarOwner; + private Object carOwnerName; + private Object carOwnerIdcard; + private Object carOwnerIdcardValidity; + private Object carOwnerIdcardPhoto; + private Object carOwnerIdcardPhotoBack; + private Object carOwnerIdcardPhotoHold; + private Object carOwnerBankcardNumber; + private Object carOwnerBankcardAddress; + private Object carOwnerBankcardPhoto; + private Object driverLicenseFrom; + private Object driverLicenseIssuingOrg; + private int reportStatus; + private int disabled; + private Object bindStatus; + private Object bindCarIds; + private Object bindCarList; + private Object bindCars; + private String rname; + private String registerPhone; + private String loginPhone; + private Object headportrait; + private String headportraitUrl; + private Object headportraitInfo; + private int positiveRate; + private int allWaybillCount; + private Object updatePhoneTime; + private String registerTime; + private Object idcardPhotoInfo; + private String idcardPhotoUrl; + private Object idcardPhotoBackInfo; + private String idcardPhotoBackUrl; + private Object idcardPhotoHoldInfo; + private String idcardPhotoHoldUrl; + private Object qualificationCertificatePhotoInfo; + private String qualificationCertificatePhotoUrl; + private Object driverLicensePhotoInfo; + private String driverLicensePhotoUrl; + private Object driverPhotoInfo; + private String driverPhotoUrl; + private Object licensePhotoInfo; + private String licensePhotoUrl; + private Object carOwnerIdcardPhotoInfo; + private String carOwnerIdcardPhotoUrl; + private Object carOwnerIdcardPhotoBackInfo; + private String carOwnerIdcardPhotoBackUrl; + private Object carOwnerIdcardPhotoHoldInfo; + private String carOwnerIdcardPhotoHoldUrl; + private Object carOwnerBankcardPhotoInfo; + private String carOwnerBankcardPhotoUrl; + private Object mbindStatus; + private Object mreason; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getUserId() { + return userId; + } + + public void setUserId(int userId) { + this.userId = userId; + } + + public Object getContactName() { + return contactName; + } + + public void setContactName(Object contactName) { + this.contactName = contactName; + } + + public String getContactPhone() { + return contactPhone == null ? "" : contactPhone; + } + + public void setContactPhone(String contactPhone) { + this.contactPhone = contactPhone; + } + + public String getIdcard() { + return idcard == null ? "" : idcard; + } + + public void setIdcard(String idcard) { + this.idcard = idcard; + } + + public String getIdcardValidity() { + return idcardValidity == null ? "" : idcardValidity; + } + + public void setIdcardValidity(String idcardValidity) { + this.idcardValidity = idcardValidity; + } + + public String getDirverAllowType() { + return dirverAllowType == null ? "" : dirverAllowType; + } + + public void setDirverAllowType(String dirverAllowType) { + this.dirverAllowType = dirverAllowType; + } + + public int getIdcardPhoto() { + return idcardPhoto; + } + + public void setIdcardPhoto(int idcardPhoto) { + this.idcardPhoto = idcardPhoto; + } + + public int getIdcardBackPhoto() { + return idcardBackPhoto; + } + + public void setIdcardBackPhoto(int idcardBackPhoto) { + this.idcardBackPhoto = idcardBackPhoto; + } + + public Object getIdcardPhotoHold() { + return idcardPhotoHold; + } + + public void setIdcardPhotoHold(Object idcardPhotoHold) { + this.idcardPhotoHold = idcardPhotoHold; + } + + public String getIdcardAddress() { + return idcardAddress == null ? "" : idcardAddress; + } + + public void setIdcardAddress(String idcardAddress) { + this.idcardAddress = idcardAddress; + } + + public String getIdcardName() { + return idcardName == null ? "" : idcardName; + } + + public void setIdcardName(String idcardName) { + this.idcardName = idcardName; + } + + public int getIdcardSex() { + return idcardSex; + } + + public void setIdcardSex(int idcardSex) { + this.idcardSex = idcardSex; + } + + public int getIdCardStatus() { + return idCardStatus; + } + + public void setIdCardStatus(int idCardStatus) { + this.idCardStatus = idCardStatus; + } + + public int getDriverLicenseStatus() { + return driverLicenseStatus; + } + + public void setDriverLicenseStatus(int driverLicenseStatus) { + this.driverLicenseStatus = driverLicenseStatus; + } + + public int getQualificationCertificateStatus() { + return qualificationCertificateStatus; + } + + public void setQualificationCertificateStatus(int qualificationCertificateStatus) { + this.qualificationCertificateStatus = qualificationCertificateStatus; + } + + public String getIdCardReason() { + return idCardReason == null ? "" : idCardReason; + } + + public void setIdCardReason(String idCardReason) { + this.idCardReason = idCardReason; + } + + public String getDriverLicenseReason() { + return driverLicenseReason == null ? "" : driverLicenseReason; + } + + public void setDriverLicenseReason(String driverLicenseReason) { + this.driverLicenseReason = driverLicenseReason; + } + + public String getQualificationCertificateReason() { + return qualificationCertificateReason == null ? "" : qualificationCertificateReason; + } + + public void setQualificationCertificateReason(String qualificationCertificateReason) { + this.qualificationCertificateReason = qualificationCertificateReason; + } + + public Object getQualificationCertificate() { + return qualificationCertificate; + } + + public void setQualificationCertificate(Object qualificationCertificate) { + this.qualificationCertificate = qualificationCertificate; + } + + public Object getQualificationCertificateValidity() { + return qualificationCertificateValidity; + } + + public void setQualificationCertificateValidity(Object qualificationCertificateValidity) { + this.qualificationCertificateValidity = qualificationCertificateValidity; + } + + public Object getQualificationCertificatePhoto() { + return qualificationCertificatePhoto; + } + + public void setQualificationCertificatePhoto(Object qualificationCertificatePhoto) { + this.qualificationCertificatePhoto = qualificationCertificatePhoto; + } + + public String getDriverLicense() { + return driverLicense == null ? "" : driverLicense; + } + + public void setDriverLicense(String driverLicense) { + this.driverLicense = driverLicense; + } + + public String getDriverLicenseValidity() { + return driverLicenseValidity == null ? "" : driverLicenseValidity; + } + + public void setDriverLicenseValidity(String driverLicenseValidity) { + this.driverLicenseValidity = driverLicenseValidity; + } + + public String getArchivesName() { + return archivesName == null ? "" : archivesName; + } + + public void setArchivesName(String archivesName) { + this.archivesName = archivesName; + } + + public String getDriverLicenseName() { + return driverLicenseName == null ? "" : driverLicenseName; + } + + public void setDriverLicenseName(String driverLicenseName) { + this.driverLicenseName = driverLicenseName; + } + + public String getAllowType() { + return allowType == null ? "" : allowType; + } + + public void setAllowType(String allowType) { + this.allowType = allowType; + } + + public String getDriverLicenseFirstTime() { + return driverLicenseFirstTime == null ? "" : driverLicenseFirstTime; + } + + public void setDriverLicenseFirstTime(String driverLicenseFirstTime) { + this.driverLicenseFirstTime = driverLicenseFirstTime; + } + + public int getDriverLicensePhoto() { + return driverLicensePhoto; + } + + public void setDriverLicensePhoto(int driverLicensePhoto) { + this.driverLicensePhoto = driverLicensePhoto; + } + + public int getDriverLicenseBackPhoto() { + return driverLicenseBackPhoto; + } + + public void setDriverLicenseBackPhoto(int driverLicenseBackPhoto) { + this.driverLicenseBackPhoto = driverLicenseBackPhoto; + } + + public Object getDriverLicenseType() { + return driverLicenseType; + } + + public void setDriverLicenseType(Object driverLicenseType) { + this.driverLicenseType = driverLicenseType; + } + + public Object getDriverPhoto() { + return driverPhoto; + } + + public void setDriverPhoto(Object driverPhoto) { + this.driverPhoto = driverPhoto; + } + + public Object getLicense() { + return license; + } + + public void setLicense(Object license) { + this.license = license; + } + + public Object getLicenseValidity() { + return licenseValidity; + } + + public void setLicenseValidity(Object licenseValidity) { + this.licenseValidity = licenseValidity; + } + + public Object getLicensePhoto() { + return licensePhoto; + } + + public void setLicensePhoto(Object licensePhoto) { + this.licensePhoto = licensePhoto; + } + + public int getAuditStatus() { + return auditStatus; + } + + public void setAuditStatus(int auditStatus) { + this.auditStatus = auditStatus; + } + + public Object getReason() { + return reason; + } + + public void setReason(Object reason) { + this.reason = reason; + } + + public String getApplyTime() { + return applyTime == null ? "" : applyTime; + } + + public void setApplyTime(String applyTime) { + this.applyTime = applyTime; + } + + public String getAuditTime() { + return auditTime == null ? "" : auditTime; + } + + public void setAuditTime(String auditTime) { + this.auditTime = auditTime; + } + + public Object getIsCarOwner() { + return isCarOwner; + } + + public void setIsCarOwner(Object isCarOwner) { + this.isCarOwner = isCarOwner; + } + + public Object getCarOwnerName() { + return carOwnerName; + } + + public void setCarOwnerName(Object carOwnerName) { + this.carOwnerName = carOwnerName; + } + + public Object getCarOwnerIdcard() { + return carOwnerIdcard; + } + + public void setCarOwnerIdcard(Object carOwnerIdcard) { + this.carOwnerIdcard = carOwnerIdcard; + } + + public Object getCarOwnerIdcardValidity() { + return carOwnerIdcardValidity; + } + + public void setCarOwnerIdcardValidity(Object carOwnerIdcardValidity) { + this.carOwnerIdcardValidity = carOwnerIdcardValidity; + } + + public Object getCarOwnerIdcardPhoto() { + return carOwnerIdcardPhoto; + } + + public void setCarOwnerIdcardPhoto(Object carOwnerIdcardPhoto) { + this.carOwnerIdcardPhoto = carOwnerIdcardPhoto; + } + + public Object getCarOwnerIdcardPhotoBack() { + return carOwnerIdcardPhotoBack; + } + + public void setCarOwnerIdcardPhotoBack(Object carOwnerIdcardPhotoBack) { + this.carOwnerIdcardPhotoBack = carOwnerIdcardPhotoBack; + } + + public Object getCarOwnerIdcardPhotoHold() { + return carOwnerIdcardPhotoHold; + } + + public void setCarOwnerIdcardPhotoHold(Object carOwnerIdcardPhotoHold) { + this.carOwnerIdcardPhotoHold = carOwnerIdcardPhotoHold; + } + + public Object getCarOwnerBankcardNumber() { + return carOwnerBankcardNumber; + } + + public void setCarOwnerBankcardNumber(Object carOwnerBankcardNumber) { + this.carOwnerBankcardNumber = carOwnerBankcardNumber; + } + + public Object getCarOwnerBankcardAddress() { + return carOwnerBankcardAddress; + } + + public void setCarOwnerBankcardAddress(Object carOwnerBankcardAddress) { + this.carOwnerBankcardAddress = carOwnerBankcardAddress; + } + + public Object getCarOwnerBankcardPhoto() { + return carOwnerBankcardPhoto; + } + + public void setCarOwnerBankcardPhoto(Object carOwnerBankcardPhoto) { + this.carOwnerBankcardPhoto = carOwnerBankcardPhoto; + } + + public Object getDriverLicenseFrom() { + return driverLicenseFrom; + } + + public void setDriverLicenseFrom(Object driverLicenseFrom) { + this.driverLicenseFrom = driverLicenseFrom; + } + + public Object getDriverLicenseIssuingOrg() { + return driverLicenseIssuingOrg; + } + + public void setDriverLicenseIssuingOrg(Object driverLicenseIssuingOrg) { + this.driverLicenseIssuingOrg = driverLicenseIssuingOrg; + } + + public int getReportStatus() { + return reportStatus; + } + + public void setReportStatus(int reportStatus) { + this.reportStatus = reportStatus; + } + + public int getDisabled() { + return disabled; + } + + public void setDisabled(int disabled) { + this.disabled = disabled; + } + + public Object getBindStatus() { + return bindStatus; + } + + public void setBindStatus(Object bindStatus) { + this.bindStatus = bindStatus; + } + + public Object getBindCarIds() { + return bindCarIds; + } + + public void setBindCarIds(Object bindCarIds) { + this.bindCarIds = bindCarIds; + } + + public Object getBindCarList() { + return bindCarList; + } + + public void setBindCarList(Object bindCarList) { + this.bindCarList = bindCarList; + } + + public Object getBindCars() { + return bindCars; + } + + public void setBindCars(Object bindCars) { + this.bindCars = bindCars; + } + + public String getRname() { + return rname == null ? "" : rname; + } + + public void setRname(String rname) { + this.rname = rname; + } + + public String getRegisterPhone() { + return registerPhone == null ? "" : registerPhone; + } + + public void setRegisterPhone(String registerPhone) { + this.registerPhone = registerPhone; + } + + public String getLoginPhone() { + return loginPhone == null ? "" : loginPhone; + } + + public void setLoginPhone(String loginPhone) { + this.loginPhone = loginPhone; + } + + public Object getHeadportrait() { + return headportrait; + } + + public void setHeadportrait(Object headportrait) { + this.headportrait = headportrait; + } + + public String getHeadportraitUrl() { + return headportraitUrl == null ? "" : headportraitUrl; + } + + public void setHeadportraitUrl(String headportraitUrl) { + this.headportraitUrl = headportraitUrl; + } + + public Object getHeadportraitInfo() { + return headportraitInfo; + } + + public void setHeadportraitInfo(Object headportraitInfo) { + this.headportraitInfo = headportraitInfo; + } + + public int getPositiveRate() { + return positiveRate; + } + + public void setPositiveRate(int positiveRate) { + this.positiveRate = positiveRate; + } + + public int getAllWaybillCount() { + return allWaybillCount; + } + + public void setAllWaybillCount(int allWaybillCount) { + this.allWaybillCount = allWaybillCount; + } + + public Object getUpdatePhoneTime() { + return updatePhoneTime; + } + + public void setUpdatePhoneTime(Object updatePhoneTime) { + this.updatePhoneTime = updatePhoneTime; + } + + public String getRegisterTime() { + return registerTime == null ? "" : registerTime; + } + + public void setRegisterTime(String registerTime) { + this.registerTime = registerTime; + } + + public Object getIdcardPhotoInfo() { + return idcardPhotoInfo; + } + + public void setIdcardPhotoInfo(Object idcardPhotoInfo) { + this.idcardPhotoInfo = idcardPhotoInfo; + } + + public String getIdcardPhotoUrl() { + return idcardPhotoUrl == null ? "" : idcardPhotoUrl; + } + + public void setIdcardPhotoUrl(String idcardPhotoUrl) { + this.idcardPhotoUrl = idcardPhotoUrl; + } + + public Object getIdcardPhotoBackInfo() { + return idcardPhotoBackInfo; + } + + public void setIdcardPhotoBackInfo(Object idcardPhotoBackInfo) { + this.idcardPhotoBackInfo = idcardPhotoBackInfo; + } + + public String getIdcardPhotoBackUrl() { + return idcardPhotoBackUrl == null ? "" : idcardPhotoBackUrl; + } + + public void setIdcardPhotoBackUrl(String idcardPhotoBackUrl) { + this.idcardPhotoBackUrl = idcardPhotoBackUrl; + } + + public Object getIdcardPhotoHoldInfo() { + return idcardPhotoHoldInfo; + } + + public void setIdcardPhotoHoldInfo(Object idcardPhotoHoldInfo) { + this.idcardPhotoHoldInfo = idcardPhotoHoldInfo; + } + + public String getIdcardPhotoHoldUrl() { + return idcardPhotoHoldUrl == null ? "" : idcardPhotoHoldUrl; + } + + public void setIdcardPhotoHoldUrl(String idcardPhotoHoldUrl) { + this.idcardPhotoHoldUrl = idcardPhotoHoldUrl; + } + + public Object getQualificationCertificatePhotoInfo() { + return qualificationCertificatePhotoInfo; + } + + public void setQualificationCertificatePhotoInfo(Object qualificationCertificatePhotoInfo) { + this.qualificationCertificatePhotoInfo = qualificationCertificatePhotoInfo; + } + + public String getQualificationCertificatePhotoUrl() { + return qualificationCertificatePhotoUrl == null ? "" : qualificationCertificatePhotoUrl; + } + + public void setQualificationCertificatePhotoUrl(String qualificationCertificatePhotoUrl) { + this.qualificationCertificatePhotoUrl = qualificationCertificatePhotoUrl; + } + + public Object getDriverLicensePhotoInfo() { + return driverLicensePhotoInfo; + } + + public void setDriverLicensePhotoInfo(Object driverLicensePhotoInfo) { + this.driverLicensePhotoInfo = driverLicensePhotoInfo; + } + + public String getDriverLicensePhotoUrl() { + return driverLicensePhotoUrl == null ? "" : driverLicensePhotoUrl; + } + + public void setDriverLicensePhotoUrl(String driverLicensePhotoUrl) { + this.driverLicensePhotoUrl = driverLicensePhotoUrl; + } + + public Object getDriverPhotoInfo() { + return driverPhotoInfo; + } + + public void setDriverPhotoInfo(Object driverPhotoInfo) { + this.driverPhotoInfo = driverPhotoInfo; + } + + public String getDriverPhotoUrl() { + return driverPhotoUrl == null ? "" : driverPhotoUrl; + } + + public void setDriverPhotoUrl(String driverPhotoUrl) { + this.driverPhotoUrl = driverPhotoUrl; + } + + public Object getLicensePhotoInfo() { + return licensePhotoInfo; + } + + public void setLicensePhotoInfo(Object licensePhotoInfo) { + this.licensePhotoInfo = licensePhotoInfo; + } + + public String getLicensePhotoUrl() { + return licensePhotoUrl == null ? "" : licensePhotoUrl; + } + + public void setLicensePhotoUrl(String licensePhotoUrl) { + this.licensePhotoUrl = licensePhotoUrl; + } + + public Object getCarOwnerIdcardPhotoInfo() { + return carOwnerIdcardPhotoInfo; + } + + public void setCarOwnerIdcardPhotoInfo(Object carOwnerIdcardPhotoInfo) { + this.carOwnerIdcardPhotoInfo = carOwnerIdcardPhotoInfo; + } + + public String getCarOwnerIdcardPhotoUrl() { + return carOwnerIdcardPhotoUrl == null ? "" : carOwnerIdcardPhotoUrl; + } + + public void setCarOwnerIdcardPhotoUrl(String carOwnerIdcardPhotoUrl) { + this.carOwnerIdcardPhotoUrl = carOwnerIdcardPhotoUrl; + } + + public Object getCarOwnerIdcardPhotoBackInfo() { + return carOwnerIdcardPhotoBackInfo; + } + + public void setCarOwnerIdcardPhotoBackInfo(Object carOwnerIdcardPhotoBackInfo) { + this.carOwnerIdcardPhotoBackInfo = carOwnerIdcardPhotoBackInfo; + } + + public String getCarOwnerIdcardPhotoBackUrl() { + return carOwnerIdcardPhotoBackUrl == null ? "" : carOwnerIdcardPhotoBackUrl; + } + + public void setCarOwnerIdcardPhotoBackUrl(String carOwnerIdcardPhotoBackUrl) { + this.carOwnerIdcardPhotoBackUrl = carOwnerIdcardPhotoBackUrl; + } + + public Object getCarOwnerIdcardPhotoHoldInfo() { + return carOwnerIdcardPhotoHoldInfo; + } + + public void setCarOwnerIdcardPhotoHoldInfo(Object carOwnerIdcardPhotoHoldInfo) { + this.carOwnerIdcardPhotoHoldInfo = carOwnerIdcardPhotoHoldInfo; + } + + public String getCarOwnerIdcardPhotoHoldUrl() { + return carOwnerIdcardPhotoHoldUrl == null ? "" : carOwnerIdcardPhotoHoldUrl; + } + + public void setCarOwnerIdcardPhotoHoldUrl(String carOwnerIdcardPhotoHoldUrl) { + this.carOwnerIdcardPhotoHoldUrl = carOwnerIdcardPhotoHoldUrl; + } + + public Object getCarOwnerBankcardPhotoInfo() { + return carOwnerBankcardPhotoInfo; + } + + public void setCarOwnerBankcardPhotoInfo(Object carOwnerBankcardPhotoInfo) { + this.carOwnerBankcardPhotoInfo = carOwnerBankcardPhotoInfo; + } + + public String getCarOwnerBankcardPhotoUrl() { + return carOwnerBankcardPhotoUrl == null ? "" : carOwnerBankcardPhotoUrl; + } + + public void setCarOwnerBankcardPhotoUrl(String carOwnerBankcardPhotoUrl) { + this.carOwnerBankcardPhotoUrl = carOwnerBankcardPhotoUrl; + } + + public Object getMbindStatus() { + return mbindStatus; + } + + public void setMbindStatus(Object mbindStatus) { + this.mbindStatus = mbindStatus; + } + + public Object getMreason() { + return mreason; + } + + public void setMreason(Object mreason) { + this.mreason = mreason; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/DriverExpireBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/DriverExpireBean.java new file mode 100644 index 0000000..84f6f15 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/DriverExpireBean.java @@ -0,0 +1,68 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2022/2/10 17:12 + * @description: + */ +public class DriverExpireBean { + + private int code; + private DataDTO data; + private String msg; + 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 boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataDTO { + private String driverLicenseUpdateUrl; + private String idCardUpdateUrl; + + public String getDriverLicenseUpdateUrl() { + return driverLicenseUpdateUrl; + } + + public void setDriverLicenseUpdateUrl(String driverLicenseUpdateUrl) { + this.driverLicenseUpdateUrl = driverLicenseUpdateUrl; + } + + public String getIdCardUpdateUrl() { + return idCardUpdateUrl; + } + + public void setIdCardUpdateUrl(String idCardUpdateUrl) { + this.idCardUpdateUrl = idCardUpdateUrl; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/FqBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/FqBean.java new file mode 100644 index 0000000..66c8eac --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/FqBean.java @@ -0,0 +1,119 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/11/23 19:16 + * @description: + */ +public class FqBean { + + private int pageSize; + private int currentPage; + private int totalCount; + private int totalPage; + private List driverInvoices; + //{"currentPage":100,"driverInvoices":[],"pageSize":1,"totalCount":0,"totalPage":0} + public int getPageSize() { + return pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getCurrentPage() { + return currentPage; + } + + public void setCurrentPage(int currentPage) { + this.currentPage = currentPage; + } + + public int getTotalCount() { + return totalCount; + } + + public void setTotalCount(int totalCount) { + this.totalCount = totalCount; + } + + public int getTotalPage() { + return totalPage; + } + + public void setTotalPage(int totalPage) { + this.totalPage = totalPage; + } + + public List getDriverInvoices() { + if (driverInvoices == null) { + return new ArrayList<>(); + } + return driverInvoices; + } + + public void setDriverInvoices(List driverInvoices) { + this.driverInvoices = driverInvoices; + } + + public class Invoice{ + String invoiceReceiverName; //受票方,string类型 + double taxRate; //发票税率,double类型 + double taxAmount; //税额, double类型 + double totalAmount; //金额, double类型 + double totalAmountIncludeTax; //金额+税额,double类型 + String driverInvoiceCode; //发票编号,string类型 + + public String getInvoiceReceiverName() { + return invoiceReceiverName == null ? "" : invoiceReceiverName; + } + + public void setInvoiceReceiverName(String invoiceReceiverName) { + this.invoiceReceiverName = invoiceReceiverName; + } + + public double getTaxRate() { + return taxRate; + } + + public void setTaxRate(double taxRate) { + this.taxRate = taxRate; + } + + public double getTaxAmount() { + return taxAmount; + } + + public void setTaxAmount(double taxAmount) { + this.taxAmount = taxAmount; + } + + public double getTotalAmount() { + return totalAmount; + } + + public void setTotalAmount(double totalAmount) { + this.totalAmount = totalAmount; + } + + public double getTotalAmountIncludeTax() { + return totalAmountIncludeTax; + } + + public void setTotalAmountIncludeTax(double totalAmountIncludeTax) { + this.totalAmountIncludeTax = totalAmountIncludeTax; + } + + public String getDriverInvoiceCode() { + return driverInvoiceCode == null ? "" : driverInvoiceCode; + } + + public void setDriverInvoiceCode(String driverInvoiceCode) { + this.driverInvoiceCode = driverInvoiceCode; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/HuoYuanDelBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/HuoYuanDelBean.java new file mode 100644 index 0000000..7bfc1a9 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/HuoYuanDelBean.java @@ -0,0 +1,924 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/7/31 17:47 + * @description: + */ +public class HuoYuanDelBean { + + + private int res; + private int code; + private boolean success; + private String msg; + private DataDTO 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + public static class DataDTO { + private int id; + private Object waybillId; + private String orderNum; + private int shipperId; + private String loadingName; + private String loadingPhone; + private String loadingProvinceCityArea; + private String loadingAddress; + private String loadingDeadline; + private String receiverName; + private String receiverPhone; + private String receiverProvinceCityArea; + private String receiverAddress; + private String receiverDeadline; + private int allowSplitting; + private String goodsValue; + private int isInsure; + private String insureAmount; + private String effectiveTime; + private String distance; + private int vehicleType; + private String vehicleTypeName; + private int vehicleLength; + private String vehicleLengthName; + private String namedDrivers; + private String requirement; + private String totalFreight; + private String failedReason; + private List sendInfo; + private List putInfo; + private String sendPutString; + private String report; + private String contractTemplateUrl; + private int status; + private Object statusOver; + private Object contactName; + private Object contactPhone; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public Object getWaybillId() { + return waybillId; + } + + public void setWaybillId(Object waybillId) { + this.waybillId = waybillId; + } + + public String getOrderNum() { + return orderNum == null ? "" : orderNum; + } + + public void setOrderNum(String orderNum) { + this.orderNum = orderNum; + } + + public int getShipperId() { + return shipperId; + } + + public void setShipperId(int shipperId) { + this.shipperId = shipperId; + } + + public String getLoadingName() { + return loadingName == null ? "" : loadingName; + } + + public void setLoadingName(String loadingName) { + this.loadingName = loadingName; + } + + public String getLoadingPhone() { + return loadingPhone == null ? "" : loadingPhone; + } + + public void setLoadingPhone(String loadingPhone) { + this.loadingPhone = loadingPhone; + } + + public String getLoadingProvinceCityArea() { + return loadingProvinceCityArea == null ? "" : loadingProvinceCityArea; + } + + public void setLoadingProvinceCityArea(String loadingProvinceCityArea) { + this.loadingProvinceCityArea = loadingProvinceCityArea; + } + + public String getLoadingAddress() { + return loadingAddress == null ? "" : loadingAddress; + } + + public void setLoadingAddress(String loadingAddress) { + this.loadingAddress = loadingAddress; + } + + public String getLoadingDeadline() { + return loadingDeadline == null ? "" : loadingDeadline; + } + + public void setLoadingDeadline(String loadingDeadline) { + this.loadingDeadline = loadingDeadline; + } + + public String getReceiverName() { + return receiverName == null ? "" : receiverName; + } + + public void setReceiverName(String receiverName) { + this.receiverName = receiverName; + } + + public String getReceiverPhone() { + return receiverPhone == null ? "" : receiverPhone; + } + + public void setReceiverPhone(String receiverPhone) { + this.receiverPhone = receiverPhone; + } + + public String getReceiverProvinceCityArea() { + return receiverProvinceCityArea == null ? "" : receiverProvinceCityArea; + } + + public void setReceiverProvinceCityArea(String receiverProvinceCityArea) { + this.receiverProvinceCityArea = receiverProvinceCityArea; + } + + public String getReceiverAddress() { + return receiverAddress == null ? "" : receiverAddress; + } + + public void setReceiverAddress(String receiverAddress) { + this.receiverAddress = receiverAddress; + } + + public String getReceiverDeadline() { + return receiverDeadline == null ? "" : receiverDeadline; + } + + public void setReceiverDeadline(String receiverDeadline) { + this.receiverDeadline = receiverDeadline; + } + + public int getAllowSplitting() { + return allowSplitting; + } + + public void setAllowSplitting(int allowSplitting) { + this.allowSplitting = allowSplitting; + } + + public String getGoodsValue() { + return goodsValue == null ? "" : goodsValue; + } + + public void setGoodsValue(String goodsValue) { + this.goodsValue = goodsValue; + } + + public int getIsInsure() { + return isInsure; + } + + public void setIsInsure(int isInsure) { + this.isInsure = isInsure; + } + + public String getInsureAmount() { + return insureAmount == null ? "" : insureAmount; + } + + public void setInsureAmount(String insureAmount) { + this.insureAmount = insureAmount; + } + + public String getEffectiveTime() { + return effectiveTime == null ? "" : effectiveTime; + } + + public void setEffectiveTime(String effectiveTime) { + this.effectiveTime = effectiveTime; + } + + public String getDistance() { + return distance == null ? "" : distance; + } + + public void setDistance(String distance) { + this.distance = distance; + } + + public int getVehicleType() { + return vehicleType; + } + + public void setVehicleType(int vehicleType) { + this.vehicleType = vehicleType; + } + + public String getVehicleTypeName() { + return vehicleTypeName == null ? "" : vehicleTypeName; + } + + public void setVehicleTypeName(String vehicleTypeName) { + this.vehicleTypeName = vehicleTypeName; + } + + public int getVehicleLength() { + return vehicleLength; + } + + public void setVehicleLength(int vehicleLength) { + this.vehicleLength = vehicleLength; + } + + public String getVehicleLengthName() { + return vehicleLengthName == null ? "" : vehicleLengthName; + } + + public void setVehicleLengthName(String vehicleLengthName) { + this.vehicleLengthName = vehicleLengthName; + } + + public String getNamedDrivers() { + return namedDrivers == null ? "" : namedDrivers; + } + + public void setNamedDrivers(String namedDrivers) { + this.namedDrivers = namedDrivers; + } + + public String getRequirement() { + return requirement == null ? "" : requirement; + } + + public void setRequirement(String requirement) { + this.requirement = requirement; + } + + public String getTotalFreight() { + return totalFreight == null ? "" : totalFreight; + } + + public void setTotalFreight(String totalFreight) { + this.totalFreight = totalFreight; + } + + public String getFailedReason() { + return failedReason == null ? "" : failedReason; + } + + public void setFailedReason(String failedReason) { + this.failedReason = failedReason; + } + + public List getSendInfo() { + if (sendInfo == null) { + return new ArrayList<>(); + } + return sendInfo; + } + + public void setSendInfo(List sendInfo) { + this.sendInfo = sendInfo; + } + + public List getPutInfo() { + if (putInfo == null) { + return new ArrayList<>(); + } + return putInfo; + } + + public void setPutInfo(List putInfo) { + this.putInfo = putInfo; + } + + public String getSendPutString() { + return sendPutString == null ? "" : sendPutString; + } + + public void setSendPutString(String sendPutString) { + this.sendPutString = sendPutString; + } + + public String getReport() { + return report == null ? "" : report; + } + + public void setReport(String report) { + this.report = report; + } + + public String getContractTemplateUrl() { + return contractTemplateUrl == null ? "" : contractTemplateUrl; + } + + public void setContractTemplateUrl(String contractTemplateUrl) { + this.contractTemplateUrl = contractTemplateUrl; + } + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } + + public Object getStatusOver() { + return statusOver; + } + + public void setStatusOver(Object statusOver) { + this.statusOver = statusOver; + } + + public Object getContactName() { + return contactName; + } + + public void setContactName(Object contactName) { + this.contactName = contactName; + } + + public Object getContactPhone() { + return contactPhone; + } + + public void setContactPhone(Object contactPhone) { + this.contactPhone = contactPhone; + } + + public static class SendInfoDTO { + private long childNumber; + private int pid; + private String name; + private String phone; + private int province; + private int city; + private int area; + private String provinceCityArea; + private String address; + private String deadline; + private int type; + private int status; + private int displayOrder; + private Object totalAmount; + private String createTime; + private String longitude; + private String latitude; + private String businessName; + private String businessCode; + private List goods; + + public long getChildNumber() { + return childNumber; + } + + public void setChildNumber(long childNumber) { + this.childNumber = childNumber; + } + + public int getPid() { + return pid; + } + + public void setPid(int pid) { + this.pid = pid; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone == null ? "" : phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public int getProvince() { + return province; + } + + public void setProvince(int province) { + this.province = province; + } + + public int getCity() { + return city; + } + + public void setCity(int city) { + this.city = city; + } + + public int getArea() { + return area; + } + + public void setArea(int area) { + this.area = area; + } + + public String getProvinceCityArea() { + return provinceCityArea == null ? "" : provinceCityArea; + } + + public void setProvinceCityArea(String provinceCityArea) { + this.provinceCityArea = provinceCityArea; + } + + public String getAddress() { + return address == null ? "" : address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getDeadline() { + return deadline == null ? "" : deadline; + } + + public void setDeadline(String deadline) { + this.deadline = deadline; + } + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } + + public int getDisplayOrder() { + return displayOrder; + } + + public void setDisplayOrder(int displayOrder) { + this.displayOrder = displayOrder; + } + + public Object getTotalAmount() { + return totalAmount; + } + + public void setTotalAmount(Object totalAmount) { + this.totalAmount = totalAmount; + } + + public String getCreateTime() { + return createTime == null ? "" : createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getLongitude() { + return longitude == null ? "" : longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude == null ? "" : latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getBusinessName() { + return businessName == null ? "" : businessName; + } + + public void setBusinessName(String businessName) { + this.businessName = businessName; + } + + public String getBusinessCode() { + return businessCode == null ? "" : businessCode; + } + + public void setBusinessCode(String businessCode) { + this.businessCode = businessCode; + } + + public List getGoods() { + if (goods == null) { + return new ArrayList<>(); + } + return goods; + } + + public void setGoods(List goods) { + this.goods = goods; + } + + public static class GoodsDTO { + private long id; + private long childrenId; + private String goodName; + private String goodNum; + private String goodUnit; + private String goodPrice; + private String packName; + private Object createTime; + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public long getChildrenId() { + return childrenId; + } + + public void setChildrenId(long childrenId) { + this.childrenId = childrenId; + } + + public String getGoodName() { + return goodName == null ? "" : goodName; + } + + public void setGoodName(String goodName) { + this.goodName = goodName; + } + + public String getGoodNum() { + return goodNum == null ? "" : goodNum; + } + + public void setGoodNum(String goodNum) { + this.goodNum = goodNum; + } + + public String getGoodUnit() { + return goodUnit == null ? "" : goodUnit; + } + + public void setGoodUnit(String goodUnit) { + this.goodUnit = goodUnit; + } + + public String getGoodPrice() { + return goodPrice == null ? "" : goodPrice; + } + + public void setGoodPrice(String goodPrice) { + this.goodPrice = goodPrice; + } + + public String getPackName() { + return packName == null ? "" : packName; + } + + public void setPackName(String packName) { + this.packName = packName; + } + + public Object getCreateTime() { + return createTime; + } + + public void setCreateTime(Object createTime) { + this.createTime = createTime; + } + } + } + + public static class PutInfoDTO { + private long childNumber; + private int pid; + private String name; + private String phone; + private int province; + private int city; + private int area; + private String provinceCityArea; + private String address; + private String deadline; + private int type; + private int status; + private int displayOrder; + private Object totalAmount; + private String createTime; + private String longitude; + private String latitude; + private String businessName; + private String businessCode; + private List goods; + + public long getChildNumber() { + return childNumber; + } + + public void setChildNumber(long childNumber) { + this.childNumber = childNumber; + } + + public int getPid() { + return pid; + } + + public void setPid(int pid) { + this.pid = pid; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone == null ? "" : phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public int getProvince() { + return province; + } + + public void setProvince(int province) { + this.province = province; + } + + public int getCity() { + return city; + } + + public void setCity(int city) { + this.city = city; + } + + public int getArea() { + return area; + } + + public void setArea(int area) { + this.area = area; + } + + public String getProvinceCityArea() { + return provinceCityArea == null ? "" : provinceCityArea; + } + + public void setProvinceCityArea(String provinceCityArea) { + this.provinceCityArea = provinceCityArea; + } + + public String getAddress() { + return address == null ? "" : address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getDeadline() { + return deadline == null ? "" : deadline; + } + + public void setDeadline(String deadline) { + this.deadline = deadline; + } + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } + + public int getDisplayOrder() { + return displayOrder; + } + + public void setDisplayOrder(int displayOrder) { + this.displayOrder = displayOrder; + } + + public Object getTotalAmount() { + return totalAmount; + } + + public void setTotalAmount(Object totalAmount) { + this.totalAmount = totalAmount; + } + + public String getCreateTime() { + return createTime == null ? "" : createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getLongitude() { + return longitude == null ? "" : longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude == null ? "" : latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getBusinessName() { + return businessName == null ? "" : businessName; + } + + public void setBusinessName(String businessName) { + this.businessName = businessName; + } + + public String getBusinessCode() { + return businessCode == null ? "" : businessCode; + } + + public void setBusinessCode(String businessCode) { + this.businessCode = businessCode; + } + + public List getGoods() { + if (goods == null) { + return new ArrayList<>(); + } + return goods; + } + + public void setGoods(List goods) { + this.goods = goods; + } + + public static class GoodsDTO { + private long id; + private long childrenId; + private String goodName; + private String goodNum; + private String goodUnit; + private String goodPrice; + private String packName; + private Object createTime; + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public long getChildrenId() { + return childrenId; + } + + public void setChildrenId(long childrenId) { + this.childrenId = childrenId; + } + + public String getGoodName() { + return goodName == null ? "" : goodName; + } + + public void setGoodName(String goodName) { + this.goodName = goodName; + } + + public String getGoodNum() { + return goodNum == null ? "" : goodNum; + } + + public void setGoodNum(String goodNum) { + this.goodNum = goodNum; + } + + public String getGoodUnit() { + return goodUnit == null ? "" : goodUnit; + } + + public void setGoodUnit(String goodUnit) { + this.goodUnit = goodUnit; + } + + public String getGoodPrice() { + return goodPrice == null ? "" : goodPrice; + } + + public void setGoodPrice(String goodPrice) { + this.goodPrice = goodPrice; + } + + public String getPackName() { + return packName == null ? "" : packName; + } + + public void setPackName(String packName) { + this.packName = packName; + } + + public Object getCreateTime() { + return createTime; + } + + public void setCreateTime(Object createTime) { + this.createTime = createTime; + } + } + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/HuoYuanListBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/HuoYuanListBean.java new file mode 100644 index 0000000..3f86ca1 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/HuoYuanListBean.java @@ -0,0 +1,272 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +import java.util.ArrayList; +import java.util.List; + +public class HuoYuanListBean { + + private int res; + private int code; + private boolean success; + private String msg; + private DataDTO 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + public static class DataDTO { + private List records; + private int total; + private int size; + private int current; + private List orders; + private boolean searchCount; + private int pages; + + public List getRecords() { + if (records == null) { + return new ArrayList<>(); + } + return records; + } + + public void setRecords(List records) { + this.records = records; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public int getSize() { + return size; + } + + public void setSize(int size) { + this.size = size; + } + + public int getCurrent() { + return current; + } + + public void setCurrent(int current) { + this.current = current; + } + + public List getOrders() { + if (orders == null) { + return new ArrayList<>(); + } + return orders; + } + + public void setOrders(List orders) { + this.orders = orders; + } + + public boolean isSearchCount() { + return searchCount; + } + + public void setSearchCount(boolean searchCount) { + this.searchCount = searchCount; + } + + public int getPages() { + return pages; + } + + public void setPages(int pages) { + this.pages = pages; + } + + public static class RecordsDTO { + private int orderId; + private String orderNum; + private String goodsBigCate; + private String totalFreight; + private int dispatchType; + private String effectiveTime; + private String sendPutString; + private String distance; + private String loadingAddress; + private String receiverAddress; + private String vehicleType; + private String vehicleLength; + private String loadingCity; + private String receiverCity; + private String latitude; + private String longitude; + + public String getLoadingCity() { + return loadingCity == null ? "" : loadingCity; + } + + public void setLoadingCity(String loadingCity) { + this.loadingCity = loadingCity; + } + + public String getReceiverCity() { + return receiverCity == null ? "" : receiverCity; + } + + public void setReceiverCity(String receiverCity) { + this.receiverCity = receiverCity; + } + + public String getLatitude() { + return latitude == null ? "" : latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getLongitude() { + return longitude == null ? "" : longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public int getOrderId() { + return orderId; + } + + public void setOrderId(int orderId) { + this.orderId = orderId; + } + + public String getOrderNum() { + return orderNum == null ? "" : orderNum; + } + + public void setOrderNum(String orderNum) { + this.orderNum = orderNum; + } + + public String getGoodsBigCate() { + return goodsBigCate == null ? "" : goodsBigCate; + } + + public void setGoodsBigCate(String goodsBigCate) { + this.goodsBigCate = goodsBigCate; + } + + public String getTotalFreight() { + return totalFreight == null ? "" : totalFreight; + } + + public void setTotalFreight(String totalFreight) { + this.totalFreight = totalFreight; + } + + public int getDispatchType() { + return dispatchType; + } + + public void setDispatchType(int dispatchType) { + this.dispatchType = dispatchType; + } + + public String getEffectiveTime() { + return effectiveTime == null ? "" : effectiveTime; + } + + public void setEffectiveTime(String effectiveTime) { + this.effectiveTime = effectiveTime; + } + + public String getSendPutString() { + return sendPutString == null ? "" : sendPutString; + } + + public void setSendPutString(String sendPutString) { + this.sendPutString = sendPutString; + } + + public String getDistance() { + return distance == null ? "" : distance; + } + + public void setDistance(String distance) { + this.distance = distance; + } + + public String getLoadingAddress() { + return loadingAddress == null ? "" : loadingAddress; + } + + public void setLoadingAddress(String loadingAddress) { + this.loadingAddress = loadingAddress; + } + + public String getReceiverAddress() { + return receiverAddress == null ? "" : receiverAddress; + } + + public void setReceiverAddress(String receiverAddress) { + this.receiverAddress = receiverAddress; + } + + public String getVehicleType() { + return vehicleType == null ? "" : vehicleType; + } + + public void setVehicleType(String vehicleType) { + this.vehicleType = vehicleType; + } + + public String getVehicleLength() { + return vehicleLength == null ? "" : vehicleLength; + } + + public void setVehicleLength(String vehicleLength) { + this.vehicleLength = vehicleLength; + } + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/HuoYuanListDealBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/HuoYuanListDealBean.java new file mode 100644 index 0000000..3abe289 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/HuoYuanListDealBean.java @@ -0,0 +1,418 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +import java.util.List; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/10/23 17:40 + * @description: + */ +public class HuoYuanListDealBean { + + private int code; + private DataDTO data; + private String msg; + 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 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 int current; + private List orders; + private int pages; + private List records; + private boolean searchCount; + private int size; + private int total; + + public int getCurrent() { + return current; + } + + public void setCurrent(int current) { + this.current = current; + } + + public List getOrders() { + return orders; + } + + public void setOrders(List orders) { + this.orders = orders; + } + + public int getPages() { + return pages; + } + + public void setPages(int pages) { + this.pages = pages; + } + + public List getRecords() { + return records; + } + + public void setRecords(List records) { + this.records = records; + } + + public boolean isSearchCount() { + return searchCount; + } + + public void setSearchCount(boolean searchCount) { + this.searchCount = searchCount; + } + + public int getSize() { + return size; + } + + public void setSize(int size) { + this.size = size; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class OrdersDTO { + private boolean asc; + private String column; + + public boolean isAsc() { + return asc; + } + + public void setAsc(boolean asc) { + this.asc = asc; + } + + public String getColumn() { + return column; + } + + public void setColumn(String column) { + this.column = column; + } + } + + public static class RecordsDTO { + private String carNum; + private int complaint; + private String contactName; + private String contactPhone; + private int dispatchType; + private String distance; + private String driverName; + private String driverPhone; + private String effectiveTime; + private String goodsBigCate; + private int isShipperEvaluation; + private String latitude; + private String loadingAddress; + private String loadingCity; + private String longitude; + private int makeStatus; + private int multipleScore; + private int orderId; + private String orderNum; + private String receiveCarNum; + private String receiveTime; + private String receiverAddress; + private String receiverCity; + private String sendPutString; + private int status; + private String statusOver; + private String totalFreight; + private String vehicleLength; + private String vehicleType; + private int waybillId; + + public String getCarNum() { + return carNum; + } + + public void setCarNum(String carNum) { + this.carNum = carNum; + } + + public int getComplaint() { + return complaint; + } + + public void setComplaint(int complaint) { + this.complaint = complaint; + } + + public String getContactName() { + return contactName; + } + + public void setContactName(String contactName) { + this.contactName = contactName; + } + + public String getContactPhone() { + return contactPhone; + } + + public void setContactPhone(String contactPhone) { + this.contactPhone = contactPhone; + } + + public int getDispatchType() { + return dispatchType; + } + + public void setDispatchType(int dispatchType) { + this.dispatchType = dispatchType; + } + + public String getDistance() { + return distance; + } + + public void setDistance(String distance) { + this.distance = distance; + } + + public String getDriverName() { + return driverName; + } + + public void setDriverName(String driverName) { + this.driverName = driverName; + } + + public String getDriverPhone() { + return driverPhone; + } + + public void setDriverPhone(String driverPhone) { + this.driverPhone = driverPhone; + } + + public String getEffectiveTime() { + return effectiveTime; + } + + public void setEffectiveTime(String effectiveTime) { + this.effectiveTime = effectiveTime; + } + + public String getGoodsBigCate() { + return goodsBigCate; + } + + public void setGoodsBigCate(String goodsBigCate) { + this.goodsBigCate = goodsBigCate; + } + + public int getIsShipperEvaluation() { + return isShipperEvaluation; + } + + public void setIsShipperEvaluation(int isShipperEvaluation) { + this.isShipperEvaluation = isShipperEvaluation; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getLoadingAddress() { + return loadingAddress; + } + + public void setLoadingAddress(String loadingAddress) { + this.loadingAddress = loadingAddress; + } + + public String getLoadingCity() { + return loadingCity; + } + + public void setLoadingCity(String loadingCity) { + this.loadingCity = loadingCity; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public int getMakeStatus() { + return makeStatus; + } + + public void setMakeStatus(int makeStatus) { + this.makeStatus = makeStatus; + } + + public int getMultipleScore() { + return multipleScore; + } + + public void setMultipleScore(int multipleScore) { + this.multipleScore = multipleScore; + } + + public int getOrderId() { + return orderId; + } + + public void setOrderId(int orderId) { + this.orderId = orderId; + } + + public String getOrderNum() { + return orderNum; + } + + public void setOrderNum(String orderNum) { + this.orderNum = orderNum; + } + + public String getReceiveCarNum() { + return receiveCarNum; + } + + public void setReceiveCarNum(String receiveCarNum) { + this.receiveCarNum = receiveCarNum; + } + + public String getReceiveTime() { + return receiveTime; + } + + public void setReceiveTime(String receiveTime) { + this.receiveTime = receiveTime; + } + + public String getReceiverAddress() { + return receiverAddress; + } + + public void setReceiverAddress(String receiverAddress) { + this.receiverAddress = receiverAddress; + } + + public String getReceiverCity() { + return receiverCity; + } + + public void setReceiverCity(String receiverCity) { + this.receiverCity = receiverCity; + } + + public String getSendPutString() { + return sendPutString; + } + + public void setSendPutString(String sendPutString) { + this.sendPutString = sendPutString; + } + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } + + public String getStatusOver() { + return statusOver; + } + + public void setStatusOver(String statusOver) { + this.statusOver = statusOver; + } + + public String getTotalFreight() { + return totalFreight; + } + + public void setTotalFreight(String totalFreight) { + this.totalFreight = totalFreight; + } + + public String getVehicleLength() { + return vehicleLength; + } + + public void setVehicleLength(String vehicleLength) { + this.vehicleLength = vehicleLength; + } + + public String getVehicleType() { + return vehicleType; + } + + public void setVehicleType(String vehicleType) { + this.vehicleType = vehicleType; + } + + public int getWaybillId() { + return waybillId; + } + + public void setWaybillId(int waybillId) { + this.waybillId = waybillId; + } + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/ImageConfig.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/ImageConfig.java new file mode 100644 index 0000000..46f7c0c --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/ImageConfig.java @@ -0,0 +1,106 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +import java.util.List; + +/** + * @author hlh + * @version 1.0.0 + * @date 2022/1/12 17:52 + * @description: + */ +public class ImageConfig { + + private int code; + private List data; + private String msg; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataDTO { + private int countDownSecond; + private int imageId; + private int jumpType; + private String jumpUrl; + private String title; + private String url; + + public int getCountDownSecond() { + return countDownSecond; + } + + public void setCountDownSecond(int countDownSecond) { + this.countDownSecond = countDownSecond; + } + + public int getImageId() { + return imageId; + } + + public void setImageId(int imageId) { + this.imageId = imageId; + } + + public int getJumpType() { + return jumpType; + } + + public void setJumpType(int jumpType) { + this.jumpType = jumpType; + } + + public String getJumpUrl() { + return jumpUrl; + } + + public void setJumpUrl(String jumpUrl) { + this.jumpUrl = jumpUrl; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/IsAuthCardBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/IsAuthCardBean.java new file mode 100644 index 0000000..bf452aa --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/IsAuthCardBean.java @@ -0,0 +1,167 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/5 15:26 + * @description:身份证认证信息 + */ +public class IsAuthCardBean { + + private int res; + private int code; + private boolean success; + private String msg; + private DataDTO 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + public static class DataDTO { + private String idcard; + private String idcardValidity; + private int idcardPhoto; + private String idcardPhotoUrl; + private int idcardBackPhoto; + private String idcardPhotoBackUrl; + private String idcardAddress; + private String idcardName; + private int idcardSex; + private int idCardStatus; + private String idCardReason; + private boolean edit; + + public String getIdcard() { + return idcard == null ? "" : idcard; + } + + public void setIdcard(String idcard) { + this.idcard = idcard; + } + + public String getIdcardValidity() { + return idcardValidity == null ? "" : idcardValidity; + } + + public void setIdcardValidity(String idcardValidity) { + this.idcardValidity = idcardValidity; + } + + public int getIdcardPhoto() { + return idcardPhoto; + } + + public void setIdcardPhoto(int idcardPhoto) { + this.idcardPhoto = idcardPhoto; + } + + public String getIdcardPhotoUrl() { + return idcardPhotoUrl == null ? "" : idcardPhotoUrl; + } + + public void setIdcardPhotoUrl(String idcardPhotoUrl) { + this.idcardPhotoUrl = idcardPhotoUrl; + } + + public int getIdcardBackPhoto() { + return idcardBackPhoto; + } + + public void setIdcardBackPhoto(int idcardBackPhoto) { + this.idcardBackPhoto = idcardBackPhoto; + } + + public String getIdcardPhotoBackUrl() { + return idcardPhotoBackUrl == null ? "" : idcardPhotoBackUrl; + } + + public void setIdcardPhotoBackUrl(String idcardPhotoBackUrl) { + this.idcardPhotoBackUrl = idcardPhotoBackUrl; + } + + public String getIdcardAddress() { + return idcardAddress == null ? "" : idcardAddress; + } + + public void setIdcardAddress(String idcardAddress) { + this.idcardAddress = idcardAddress; + } + + public String getIdcardName() { + return idcardName == null ? "" : idcardName; + } + + public void setIdcardName(String idcardName) { + this.idcardName = idcardName; + } + + public int getIdcardSex() { + return idcardSex; + } + + public void setIdcardSex(int idcardSex) { + this.idcardSex = idcardSex; + } + + public int getIdCardStatus() { + return idCardStatus; + } + + public void setIdCardStatus(int idCardStatus) { + this.idCardStatus = idCardStatus; + } + + public String getIdCardReason() { + return idCardReason == null ? "" : idCardReason; + } + + public void setIdCardReason(String idCardReason) { + this.idCardReason = idCardReason; + } + + public boolean isEdit() { + return edit; + } + + public void setEdit(boolean edit) { + this.edit = edit; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/IsAuthDriverAuthLicenseBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/IsAuthDriverAuthLicenseBean.java new file mode 100644 index 0000000..1b0901e --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/IsAuthDriverAuthLicenseBean.java @@ -0,0 +1,176 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/5 15:26 + * @description:驾驶证认证信息 + */ +public class IsAuthDriverAuthLicenseBean { + + private int res; + private int code; + private boolean success; + private String msg; + private DataDTO 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + public static class DataDTO { + private String archivesName; + private String driverLicense; + private String driverLicenseName; + private String allowType; + private int driverLicensePhoto; + private int driverLicenseBackPhoto; + private String driverLicensePhotoUrl; + private String driverLicenseBackPhotoUrl; + private String driverLicenseFirstTime; + private String driverLicenseValidity; + private int driverLicenseStatus; + private String driverLicenseReason; + private boolean edit; + + public String getArchivesName() { + return archivesName == null ? "" : archivesName; + } + + public void setArchivesName(String archivesName) { + this.archivesName = archivesName; + } + + public String getDriverLicense() { + return driverLicense == null ? "" : driverLicense; + } + + public void setDriverLicense(String driverLicense) { + this.driverLicense = driverLicense; + } + + public String getDriverLicenseName() { + return driverLicenseName == null ? "" : driverLicenseName; + } + + public void setDriverLicenseName(String driverLicenseName) { + this.driverLicenseName = driverLicenseName; + } + + public String getAllowType() { + return allowType == null ? "" : allowType; + } + + public void setAllowType(String allowType) { + this.allowType = allowType; + } + + public int getDriverLicensePhoto() { + return driverLicensePhoto; + } + + public void setDriverLicensePhoto(int driverLicensePhoto) { + this.driverLicensePhoto = driverLicensePhoto; + } + + public int getDriverLicenseBackPhoto() { + return driverLicenseBackPhoto; + } + + public void setDriverLicenseBackPhoto(int driverLicenseBackPhoto) { + this.driverLicenseBackPhoto = driverLicenseBackPhoto; + } + + public String getDriverLicensePhotoUrl() { + return driverLicensePhotoUrl == null ? "" : driverLicensePhotoUrl; + } + + public void setDriverLicensePhotoUrl(String driverLicensePhotoUrl) { + this.driverLicensePhotoUrl = driverLicensePhotoUrl; + } + + public String getDriverLicenseBackPhotoUrl() { + return driverLicenseBackPhotoUrl == null ? "" : driverLicenseBackPhotoUrl; + } + + public void setDriverLicenseBackPhotoUrl(String driverLicenseBackPhotoUrl) { + this.driverLicenseBackPhotoUrl = driverLicenseBackPhotoUrl; + } + + public String getDriverLicenseFirstTime() { + return driverLicenseFirstTime == null ? "" : driverLicenseFirstTime; + } + + public void setDriverLicenseFirstTime(String driverLicenseFirstTime) { + this.driverLicenseFirstTime = driverLicenseFirstTime; + } + + public String getDriverLicenseValidity() { + return driverLicenseValidity == null ? "" : driverLicenseValidity; + } + + public void setDriverLicenseValidity(String driverLicenseValidity) { + this.driverLicenseValidity = driverLicenseValidity; + } + + public int getDriverLicenseStatus() { + return driverLicenseStatus; + } + + public void setDriverLicenseStatus(int driverLicenseStatus) { + this.driverLicenseStatus = driverLicenseStatus; + } + + public String getDriverLicenseReason() { + return driverLicenseReason == null ? "" : driverLicenseReason; + } + + public void setDriverLicenseReason(String driverLicenseReason) { + this.driverLicenseReason = driverLicenseReason; + } + + public boolean isEdit() { + return edit; + } + + public void setEdit(boolean edit) { + this.edit = edit; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/IsAuthDriverAuthQualificationBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/IsAuthDriverAuthQualificationBean.java new file mode 100644 index 0000000..ea279c0 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/IsAuthDriverAuthQualificationBean.java @@ -0,0 +1,122 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/9/1 18:58 + * @description: + */ +public class IsAuthDriverAuthQualificationBean { + + private int code; + private DataDTO data; + private String msg; + 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + 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 boolean edit; + private String qualificationCertificate; + private int qualificationCertificatePhoto; + private String qualificationCertificatePhotoUrl; + private String qualificationCertificateReason; + private int qualificationCertificateStatus; + private String qualificationCertificateValidity; + + public boolean isEdit() { + return edit; + } + + public void setEdit(boolean edit) { + this.edit = edit; + } + + public String getQualificationCertificate() { + return qualificationCertificate == null ? "" : qualificationCertificate; + } + + public void setQualificationCertificate(String qualificationCertificate) { + this.qualificationCertificate = qualificationCertificate; + } + + public int getQualificationCertificatePhoto() { + return qualificationCertificatePhoto; + } + + public void setQualificationCertificatePhoto(int qualificationCertificatePhoto) { + this.qualificationCertificatePhoto = qualificationCertificatePhoto; + } + + public String getQualificationCertificatePhotoUrl() { + return qualificationCertificatePhotoUrl == null ? "" : qualificationCertificatePhotoUrl; + } + + public void setQualificationCertificatePhotoUrl(String qualificationCertificatePhotoUrl) { + this.qualificationCertificatePhotoUrl = qualificationCertificatePhotoUrl; + } + + public String getQualificationCertificateReason() { + return qualificationCertificateReason == null ? "" : qualificationCertificateReason; + } + + public void setQualificationCertificateReason(String qualificationCertificateReason) { + this.qualificationCertificateReason = qualificationCertificateReason; + } + + public int getQualificationCertificateStatus() { + return qualificationCertificateStatus; + } + + public void setQualificationCertificateStatus(int qualificationCertificateStatus) { + this.qualificationCertificateStatus = qualificationCertificateStatus; + } + + public String getQualificationCertificateValidity() { + return qualificationCertificateValidity == null ? "" : qualificationCertificateValidity; + } + + public void setQualificationCertificateValidity(String qualificationCertificateValidity) { + this.qualificationCertificateValidity = qualificationCertificateValidity; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/JTT.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/JTT.java new file mode 100644 index 0000000..783ea40 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/JTT.java @@ -0,0 +1,140 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2022/2/16 17:37 + * @description: + */ +public class JTT { + + private int code; + private DataDTO data; + private String msg; + 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 boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataDTO { + private String createTime; + private boolean delFlag; + private int id; + private String trafficCode; + private String trafficId; + private String trafficName; + private String trafficNum; + private String trafficSecret; + private String trafficType; + private String updateTime; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public boolean isDelFlag() { + return delFlag; + } + + public void setDelFlag(boolean delFlag) { + this.delFlag = delFlag; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getTrafficCode() { + return trafficCode; + } + + public void setTrafficCode(String trafficCode) { + this.trafficCode = trafficCode; + } + + public String getTrafficId() { + return trafficId; + } + + public void setTrafficId(String trafficId) { + this.trafficId = trafficId; + } + + public String getTrafficName() { + return trafficName; + } + + public void setTrafficName(String trafficName) { + this.trafficName = trafficName; + } + + public String getTrafficNum() { + return trafficNum; + } + + public void setTrafficNum(String trafficNum) { + this.trafficNum = trafficNum; + } + + public String getTrafficSecret() { + return trafficSecret; + } + + public void setTrafficSecret(String trafficSecret) { + this.trafficSecret = trafficSecret; + } + + public String getTrafficType() { + return trafficType; + } + + public void setTrafficType(String trafficType) { + this.trafficType = trafficType; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/LoginBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/LoginBean.java new file mode 100644 index 0000000..652dcc8 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/LoginBean.java @@ -0,0 +1,276 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/2 10:24 + * @description: + */ +public class LoginBean { + + + private int res; + private int code; + private boolean success; + private String msg; + private DataDTO 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + public static class DataDTO { + private String token; + private int id; + private int roleId; + private String uname; + private String registerPhone; + private String rname; + private Object companyName; + private Object account; + private Object credit; + private Object surplusCredit; + private Object etcBalance; + private Object oliBalance; + private Object invoiceMoney; + private String headportraitUrl; + private String salt; + private String jumpUrl; + private Object auditStatus; + private Object distance; + private Object waybillNum; + private Object idCardValidity; + private Object driverValidity; + private Object qualificationValidity; + private Object isCar; + private Object qrcodeUrl; + + public String getToken() { + return token == null ? "" : token; + } + + public void setToken(String token) { + this.token = token; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getRoleId() { + return roleId; + } + + public void setRoleId(int roleId) { + this.roleId = roleId; + } + + public String getUname() { + return uname == null ? "" : uname; + } + + public void setUname(String uname) { + this.uname = uname; + } + + public String getRegisterPhone() { + return registerPhone == null ? "" : registerPhone; + } + + public void setRegisterPhone(String registerPhone) { + this.registerPhone = registerPhone; + } + + public String getRname() { + return rname == null ? "" : rname; + } + + public void setRname(String rname) { + this.rname = rname; + } + + public Object getCompanyName() { + return companyName; + } + + public void setCompanyName(Object companyName) { + this.companyName = companyName; + } + + public Object getAccount() { + return account; + } + + public void setAccount(Object account) { + this.account = account; + } + + public Object getCredit() { + return credit; + } + + public void setCredit(Object credit) { + this.credit = credit; + } + + public Object getSurplusCredit() { + return surplusCredit; + } + + public void setSurplusCredit(Object surplusCredit) { + this.surplusCredit = surplusCredit; + } + + public Object getEtcBalance() { + return etcBalance; + } + + public void setEtcBalance(Object etcBalance) { + this.etcBalance = etcBalance; + } + + public Object getOliBalance() { + return oliBalance; + } + + public void setOliBalance(Object oliBalance) { + this.oliBalance = oliBalance; + } + + public Object getInvoiceMoney() { + return invoiceMoney; + } + + public void setInvoiceMoney(Object invoiceMoney) { + this.invoiceMoney = invoiceMoney; + } + + public String getHeadportraitUrl() { + return headportraitUrl == null ? "" : headportraitUrl; + } + + public void setHeadportraitUrl(String headportraitUrl) { + this.headportraitUrl = headportraitUrl; + } + + public String getSalt() { + return salt == null ? "" : salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getJumpUrl() { + return jumpUrl == null ? "" : jumpUrl; + } + + public void setJumpUrl(String jumpUrl) { + this.jumpUrl = jumpUrl; + } + + public Object getAuditStatus() { + return auditStatus; + } + + public void setAuditStatus(Object auditStatus) { + this.auditStatus = auditStatus; + } + + public Object getDistance() { + return distance; + } + + public void setDistance(Object distance) { + this.distance = distance; + } + + public Object getWaybillNum() { + return waybillNum; + } + + public void setWaybillNum(Object waybillNum) { + this.waybillNum = waybillNum; + } + + public Object getIdCardValidity() { + return idCardValidity; + } + + public void setIdCardValidity(Object idCardValidity) { + this.idCardValidity = idCardValidity; + } + + public Object getDriverValidity() { + return driverValidity; + } + + public void setDriverValidity(Object driverValidity) { + this.driverValidity = driverValidity; + } + + public Object getQualificationValidity() { + return qualificationValidity; + } + + public void setQualificationValidity(Object qualificationValidity) { + this.qualificationValidity = qualificationValidity; + } + + public Object getIsCar() { + return isCar; + } + + public void setIsCar(Object isCar) { + this.isCar = isCar; + } + + public Object getQrcodeUrl() { + return qrcodeUrl; + } + + public void setQrcodeUrl(Object qrcodeUrl) { + this.qrcodeUrl = qrcodeUrl; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/MsgBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/MsgBean.java new file mode 100644 index 0000000..3eac336 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/MsgBean.java @@ -0,0 +1,39 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/6 14:28 + * @description: + */ +public class MsgBean { + + + private int code; + private String msg; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMsg() { + return msg == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/OCRBankBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/OCRBankBean.java new file mode 100644 index 0000000..a59144c --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/OCRBankBean.java @@ -0,0 +1,107 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +public class OCRBankBean { + + private int res; + private int code; + private boolean success; + private String msg; + private DataDTO 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + public static class DataDTO { + private int id; + private String url; + private String bankCardNumber; + private String validDate; + private String bankCardType; + private String bankName; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getUrl() { + return url == null ? "" : url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getBankCardNumber() { + return bankCardNumber == null ? "" : bankCardNumber; + } + + public void setBankCardNumber(String bankCardNumber) { + this.bankCardNumber = bankCardNumber; + } + + public String getValidDate() { + return validDate == null ? "" : validDate; + } + + public void setValidDate(String validDate) { + this.validDate = validDate; + } + + public String getBankCardType() { + return bankCardType == null ? "" : bankCardType; + } + + public void setBankCardType(String bankCardType) { + this.bankCardType = bankCardType; + } + + public String getBankName() { + return bankName == null ? "" : bankName; + } + + public void setBankName(String bankName) { + this.bankName = bankName; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/OCRCardBackBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/OCRCardBackBean.java new file mode 100644 index 0000000..2ae6416 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/OCRCardBackBean.java @@ -0,0 +1,104 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/5 10:10 + * @description:身份证背面实体类 + */ +public class OCRCardBackBean { + + private int res; + private int code; + private boolean success; + private String msg; + private DataDTO 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + public static class DataDTO { + private int id; + private String url; + private String startTime; + private String endTime; + private String organizationName; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getUrl() { + return url == null ? "" : url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getStartTime() { + return startTime == null ? "" : startTime; + } + + public void setStartTime(String startTime) { + this.startTime = startTime; + } + + public String getEndTime() { + return endTime == null ? "" : endTime; + } + + public void setEndTime(String endTime) { + this.endTime = endTime; + } + + public String getOrganizationName() { + return organizationName == null ? "" : organizationName; + } + + public void setOrganizationName(String organizationName) { + this.organizationName = organizationName; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/OCRCardBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/OCRCardBean.java new file mode 100644 index 0000000..cad6a32 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/OCRCardBean.java @@ -0,0 +1,131 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/5 10:05 + * @description:身份证实体类 + */ +public class OCRCardBean { + + private int res; + private int code; + private boolean success; + private String msg; + private DataDTO 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + public static class DataDTO { + private int id; + private String url; + private String name; + private String nation; + private String address; + private String cardId; + private String birthday; + private String sex; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getUrl() { + return url == null ? "" : url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public String getNation() { + return nation == null ? "" : nation; + } + + public void setNation(String nation) { + this.nation = nation; + } + + public String getAddress() { + return address == null ? "" : address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getCardId() { + return cardId == null ? "" : cardId; + } + + public void setCardId(String cardId) { + this.cardId = cardId; + } + + public String getBirthday() { + return birthday == null ? "" : birthday; + } + + public void setBirthday(String birthday) { + this.birthday = birthday; + } + + public String getSex() { + return sex == null ? "" : sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/OCRDrivingLicenseBackBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/OCRDrivingLicenseBackBean.java new file mode 100644 index 0000000..9df0a12 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/OCRDrivingLicenseBackBean.java @@ -0,0 +1,86 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/5 10:21 + * @description: + */ +public class OCRDrivingLicenseBackBean { + + private int res; + private int code; + private boolean success; + private String msg; + private DataDTO 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + public static class DataDTO { + private int id; + private String url; + private String archivesName; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getUrl() { + return url == null ? "" : url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getArchivesName() { + return archivesName == null ? "" : archivesName; + } + + public void setArchivesName(String archivesName) { + this.archivesName = archivesName; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/OCRDrivingLicenseBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/OCRDrivingLicenseBean.java new file mode 100644 index 0000000..43ed70f --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/OCRDrivingLicenseBean.java @@ -0,0 +1,176 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/5 10:21 + * @description: + */ +public class OCRDrivingLicenseBean { + + private int res; + private int code; + private boolean success; + private String msg; + private DataDTO 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + public static class DataDTO { + private int id; + private String url; + private String name; + private String endTime; + private String number; + private String birthday; + private String address; + private String organizationName; + private String country; + private String firstTime; + private String allowType; + private String sex; + private String startTime; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getUrl() { + return url == null ? "" : url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public String getEndTime() { + return endTime == null ? "" : endTime; + } + + public void setEndTime(String endTime) { + this.endTime = endTime; + } + + public String getNumber() { + return number == null ? "" : number; + } + + public void setNumber(String number) { + this.number = number; + } + + public String getBirthday() { + return birthday == null ? "" : birthday; + } + + public void setBirthday(String birthday) { + this.birthday = birthday; + } + + public String getAddress() { + return address == null ? "" : address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getOrganizationName() { + return organizationName == null ? "" : organizationName; + } + + public void setOrganizationName(String organizationName) { + this.organizationName = organizationName; + } + + public String getCountry() { + return country == null ? "" : country; + } + + public void setCountry(String country) { + this.country = country; + } + + public String getFirstTime() { + return firstTime == null ? "" : firstTime; + } + + public void setFirstTime(String firstTime) { + this.firstTime = firstTime; + } + + public String getAllowType() { + return allowType == null ? "" : allowType; + } + + public void setAllowType(String allowType) { + this.allowType = allowType; + } + + public String getSex() { + return sex == null ? "" : sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getStartTime() { + return startTime == null ? "" : startTime; + } + + public void setStartTime(String startTime) { + this.startTime = startTime; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/OCRVehicleBackLicenseBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/OCRVehicleBackLicenseBean.java new file mode 100644 index 0000000..f1226cb --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/OCRVehicleBackLicenseBean.java @@ -0,0 +1,186 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/5 10:35 + * @description:ocr行驶证副页实体类 + */ +public class OCRVehicleBackLicenseBean { + + + private int res; + private int code; + private boolean success; + private String msg; + private DataDTO 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + public static class DataDTO { + private int id; + private String url; + private String checkRecord; + private String approvedCapacity; + private String allCapacity; + private String size; + private String personCapacity; + private String allAuality; + private String fuelType; + private String towAuality; + private String remark; + private String fileNumber; + private String carNumber; + private int licenseId; + + public int getLicenseId() { + return licenseId; + } + + public void setLicenseId(int licenseId) { + this.licenseId = licenseId; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getUrl() { + return url == null ? "" : url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getCheckRecord() { + return checkRecord == null ? "" : checkRecord; + } + + public void setCheckRecord(String checkRecord) { + this.checkRecord = checkRecord; + } + + public String getApprovedCapacity() { + return approvedCapacity == null ? "" : approvedCapacity; + } + + public void setApprovedCapacity(String approvedCapacity) { + this.approvedCapacity = approvedCapacity; + } + + public String getAllCapacity() { + return allCapacity == null ? "" : allCapacity; + } + + public void setAllCapacity(String allCapacity) { + this.allCapacity = allCapacity; + } + + public String getSize() { + return size == null ? "" : size; + } + + public void setSize(String size) { + this.size = size; + } + + public String getPersonCapacity() { + return personCapacity == null ? "" : personCapacity; + } + + public void setPersonCapacity(String personCapacity) { + this.personCapacity = personCapacity; + } + + public String getAllAuality() { + return allAuality == null ? "" : allAuality; + } + + public void setAllAuality(String allAuality) { + this.allAuality = allAuality; + } + + public String getFuelType() { + return fuelType == null ? "" : fuelType; + } + + public void setFuelType(String fuelType) { + this.fuelType = fuelType; + } + + public String getTowAuality() { + return towAuality == null ? "" : towAuality; + } + + public void setTowAuality(String towAuality) { + this.towAuality = towAuality; + } + + public String getRemark() { + return remark == null ? "" : remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getFileNumber() { + return fileNumber == null ? "" : fileNumber; + } + + public void setFileNumber(String fileNumber) { + this.fileNumber = fileNumber; + } + + public String getCarNumber() { + return carNumber == null ? "" : carNumber; + } + + public void setCarNumber(String carNumber) { + this.carNumber = carNumber; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/OCRVehicleLicenseBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/OCRVehicleLicenseBean.java new file mode 100644 index 0000000..2353b81 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/OCRVehicleLicenseBean.java @@ -0,0 +1,176 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/18 9:36 + * @description: + */ +public class OCRVehicleLicenseBean { + + private int code; + private DataDTO data; + private String msg; + 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataDTO { + private String address; + private int carId; + private String carNumber; + private String dateIssue; + private String engineNumber; + private int id; + private String model; + private String nature; + private String organizationName; + private String owner; + private String reisterDate; + private String type; + private String url; + private String vehicleNumber; + + public String getAddress() { + return address == null ? "" : address; + } + + public void setAddress(String address) { + this.address = address; + } + + public int getCarId() { + return carId; + } + + public void setCarId(int carId) { + this.carId = carId; + } + + public String getCarNumber() { + return carNumber == null ? "" : carNumber; + } + + public void setCarNumber(String carNumber) { + this.carNumber = carNumber; + } + + public String getDateIssue() { + return dateIssue == null ? "" : dateIssue; + } + + public void setDateIssue(String dateIssue) { + this.dateIssue = dateIssue; + } + + public String getEngineNumber() { + return engineNumber == null ? "" : engineNumber; + } + + public void setEngineNumber(String engineNumber) { + this.engineNumber = engineNumber; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getModel() { + return model == null ? "" : model; + } + + public void setModel(String model) { + this.model = model; + } + + public String getNature() { + return nature == null ? "" : nature; + } + + public void setNature(String nature) { + this.nature = nature; + } + + public String getOrganizationName() { + return organizationName == null ? "" : organizationName; + } + + public void setOrganizationName(String organizationName) { + this.organizationName = organizationName; + } + + public String getOwner() { + return owner == null ? "" : owner; + } + + public void setOwner(String owner) { + this.owner = owner; + } + + public String getReisterDate() { + return reisterDate == null ? "" : reisterDate; + } + + public void setReisterDate(String reisterDate) { + this.reisterDate = reisterDate; + } + + public String getType() { + return type == null ? "" : type; + } + + public void setType(String type) { + this.type = type; + } + + public String getUrl() { + return url == null ? "" : url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getVehicleNumber() { + return vehicleNumber == null ? "" : vehicleNumber; + } + + public void setVehicleNumber(String vehicleNumber) { + this.vehicleNumber = vehicleNumber; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/ORCIDBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/ORCIDBean.java new file mode 100644 index 0000000..660ab6e --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/ORCIDBean.java @@ -0,0 +1,125 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +public class ORCIDBean { + + private int code; + private DataDTO data; + private String msg; + 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + 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 String birthday; + private String cardId; + private int id; + private String name; + private String nation; + private String sex; + private String url; + + public String getAddress() { + return address == null ? "" : address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getBirthday() { + return birthday == null ? "" : birthday; + } + + public void setBirthday(String birthday) { + this.birthday = birthday; + } + + public String getCardId() { + return cardId == null ? "" : cardId; + } + + public void setCardId(String cardId) { + this.cardId = cardId; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public String getNation() { + return nation == null ? "" : nation; + } + + public void setNation(String nation) { + this.nation = nation; + } + + public String getSex() { + return sex == null ? "" : sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getUrl() { + return url == null ? "" : url; + } + + public void setUrl(String url) { + this.url = url; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/OrderListBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/OrderListBean.java new file mode 100644 index 0000000..d9b52f4 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/OrderListBean.java @@ -0,0 +1,231 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/6 10:40 + * @description:运单列表实体类 + */ +public class OrderListBean { + + + private int res; + private int code; + private boolean success; + private String msg; + private DataDTO 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + public static class DataDTO { + private int num; + private String totalFreight; + private List list; + + public int getNum() { + return num; + } + + public void setNum(int num) { + this.num = num; + } + + public String getTotalFreight() { + return totalFreight == null ? "" : totalFreight; + } + + public void setTotalFreight(String totalFreight) { + this.totalFreight = totalFreight; + } + + public List getList() { + if (list == null) { + return new ArrayList<>(); + } + return list; + } + + public void setList(List list) { + this.list = list; + } + + public static class ListDTO { + private int orderId; + private String orderNum; + private String waybillNum; + private String orderTime; + private String totalFreight; + private int dispatchType; + private String effectiveTime; + private String sendPutString; + private String distance; + private String loadingAddress; + private String receiverAddress; + private int waybillStatus; + private int evaluation; + private int complaint; + private Object multipleScore; + + public int getOrderId() { + return orderId; + } + + public void setOrderId(int orderId) { + this.orderId = orderId; + } + + public String getOrderNum() { + return orderNum == null ? "" : orderNum; + } + + public void setOrderNum(String orderNum) { + this.orderNum = orderNum; + } + + public String getWaybillNum() { + return waybillNum == null ? "" : waybillNum; + } + + public void setWaybillNum(String waybillNum) { + this.waybillNum = waybillNum; + } + + public String getOrderTime() { + return orderTime == null ? "" : orderTime; + } + + public void setOrderTime(String orderTime) { + this.orderTime = orderTime; + } + + public String getTotalFreight() { + return totalFreight == null ? "" : totalFreight; + } + + public void setTotalFreight(String totalFreight) { + this.totalFreight = totalFreight; + } + + public int getDispatchType() { + return dispatchType; + } + + public void setDispatchType(int dispatchType) { + this.dispatchType = dispatchType; + } + + public String getEffectiveTime() { + return effectiveTime == null ? "" : effectiveTime; + } + + public void setEffectiveTime(String effectiveTime) { + this.effectiveTime = effectiveTime; + } + + public String getSendPutString() { + return sendPutString == null ? "" : sendPutString; + } + + public void setSendPutString(String sendPutString) { + this.sendPutString = sendPutString; + } + + public String getDistance() { + return distance == null ? "" : distance; + } + + public void setDistance(String distance) { + this.distance = distance; + } + + public String getLoadingAddress() { + return loadingAddress == null ? "" : loadingAddress; + } + + public void setLoadingAddress(String loadingAddress) { + this.loadingAddress = loadingAddress; + } + + public String getReceiverAddress() { + return receiverAddress == null ? "" : receiverAddress; + } + + public void setReceiverAddress(String receiverAddress) { + this.receiverAddress = receiverAddress; + } + + public int getWaybillStatus() { + return waybillStatus; + } + + public void setWaybillStatus(int waybillStatus) { + this.waybillStatus = waybillStatus; + } + + public int getEvaluation() { + return evaluation; + } + + public void setEvaluation(int evaluation) { + this.evaluation = evaluation; + } + + public int getComplaint() { + return complaint; + } + + public void setComplaint(int complaint) { + this.complaint = complaint; + } + + public Object getMultipleScore() { + return multipleScore; + } + + public void setMultipleScore(Object multipleScore) { + this.multipleScore = multipleScore; + } + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/SinglePickBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/SinglePickBean.java new file mode 100644 index 0000000..1b1ec35 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/SinglePickBean.java @@ -0,0 +1,40 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +import com.github.gzuliyujiang.wheelview.contract.TextProvider; + +import java.io.Serializable; + +/** + * @ClassName SinglePickBean + * @Author 用户 + * @Date 2022/4/22 17:00 + * @Description TODO + */ +public class SinglePickBean implements Serializable, TextProvider { + + private String id; + private String name; + + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @Override + public String provideText() { + return name; + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/StartOrderBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/StartOrderBean.java new file mode 100644 index 0000000..cab925c --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/StartOrderBean.java @@ -0,0 +1,657 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/7 15:04 + * @description:执行中运单 + */ +public class StartOrderBean { + + private int res; + private int code; + private boolean success; + private String msg; + private DataDTO 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + public static class DataDTO { + private String shippingNoteNumber; + private String serialNumber; + private String startCountrySubdivisionCode; + private String endCountrySubdivisionCode; + private String nfcId; + private List wayChildren; + private int report; + private int reportAlct; + private String carType; + private String carNumber; + private Object driverName; + private String acceptTime; + private String waybillStatus; + private String totalAmount; + private String distance; + private int avgScore; + private int isEvaluation; + private String contractUrl; + private int waybillId; + private int operation; + + public int getWaybillId() { + return waybillId; + } + + public void setWaybillId(int waybillId) { + this.waybillId = waybillId; + } + + public String getShippingNoteNumber() { + return shippingNoteNumber == null ? "" : shippingNoteNumber; + } + + public void setShippingNoteNumber(String shippingNoteNumber) { + this.shippingNoteNumber = shippingNoteNumber; + } + + public String getSerialNumber() { + return serialNumber == null ? "" : serialNumber; + } + + public void setSerialNumber(String serialNumber) { + this.serialNumber = serialNumber; + } + + public String getStartCountrySubdivisionCode() { + return startCountrySubdivisionCode == null ? "" : startCountrySubdivisionCode; + } + + public void setStartCountrySubdivisionCode(String startCountrySubdivisionCode) { + this.startCountrySubdivisionCode = startCountrySubdivisionCode; + } + + public String getEndCountrySubdivisionCode() { + return endCountrySubdivisionCode == null ? "" : endCountrySubdivisionCode; + } + + public void setEndCountrySubdivisionCode(String endCountrySubdivisionCode) { + this.endCountrySubdivisionCode = endCountrySubdivisionCode; + } + + public String getNfcId() { + return nfcId == null ? "" : nfcId; + } + + public void setNfcId(String nfcId) { + this.nfcId = nfcId; + } + + public List getWayChildren() { + if (wayChildren == null) { + return new ArrayList<>(); + } + return wayChildren; + } + + public void setWayChildren(List wayChildren) { + this.wayChildren = wayChildren; + } + + public int getReport() { + return report; + } + + public void setReport(int report) { + this.report = report; + } + + public int getReportAlct() { + return reportAlct; + } + + public void setReportAlct(int reportAlct) { + this.reportAlct = reportAlct; + } + + public String getCarType() { + return carType == null ? "" : carType; + } + + public void setCarType(String carType) { + this.carType = carType; + } + + public String getCarNumber() { + return carNumber == null ? "" : carNumber; + } + + public void setCarNumber(String carNumber) { + this.carNumber = carNumber; + } + + public Object getDriverName() { + return driverName; + } + + public void setDriverName(Object driverName) { + this.driverName = driverName; + } + + public String getAcceptTime() { + return acceptTime == null ? "" : acceptTime; + } + + public void setAcceptTime(String acceptTime) { + this.acceptTime = acceptTime; + } + + public String getWaybillStatus() { + return waybillStatus == null ? "" : waybillStatus; + } + + public void setWaybillStatus(String waybillStatus) { + this.waybillStatus = waybillStatus; + } + + public String getTotalAmount() { + return totalAmount == null ? "" : totalAmount; + } + + public void setTotalAmount(String totalAmount) { + this.totalAmount = totalAmount; + } + + public String getDistance() { + return distance == null ? "" : distance; + } + + public void setDistance(String distance) { + this.distance = distance; + } + + public int getAvgScore() { + return avgScore; + } + + public void setAvgScore(int avgScore) { + this.avgScore = avgScore; + } + + public int getIsEvaluation() { + return isEvaluation; + } + + public void setIsEvaluation(int isEvaluation) { + this.isEvaluation = isEvaluation; + } + + public String getContractUrl() { + return contractUrl == null ? "" : contractUrl; + } + + public void setContractUrl(String contractUrl) { + this.contractUrl = contractUrl; + } + + public int getOperation() { + return operation; + } + + public void setOperation(int operation) { + this.operation = operation; + } + + public static class WayChildrenDTO { + private long id; + private int orderId; + private String shippingNoteNumber; + private Object name; + private Object phone; + private String address; + private String displayOrder; + private String deadline; + private String deadlineDate; + private int type; + private String updateTime; + private String realityTimeDate; + private int status; + private String longitude; + private String latitude; + private List goods; + private int report; + private int reportAlct; + private int delay; + private List receiptUrl; + private String receiptTime; + private String receiptLongitude; + private String receiptLatitude; + private String receiptLocationAddress; + private List sendPutImagesUrl; + private String sendPutLongitude; + private String sendPutLatitude; + private String sendPutLocationAddress; + private String carType; + private String carNumber; + private Object driverName; + private String acceptTime; + private String waybillStatus; + private String totalAmount; + private String distance; + private int isEvaluation; + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public int getOrderId() { + return orderId; + } + + public void setOrderId(int orderId) { + this.orderId = orderId; + } + + public String getShippingNoteNumber() { + return shippingNoteNumber == null ? "" : shippingNoteNumber; + } + + public void setShippingNoteNumber(String shippingNoteNumber) { + this.shippingNoteNumber = shippingNoteNumber; + } + + public Object getName() { + return name; + } + + public void setName(Object name) { + this.name = name; + } + + public Object getPhone() { + return phone; + } + + public void setPhone(Object phone) { + this.phone = phone; + } + + public String getAddress() { + return address == null ? "" : address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getDisplayOrder() { + return displayOrder == null ? "" : displayOrder; + } + + public void setDisplayOrder(String displayOrder) { + this.displayOrder = displayOrder; + } + + public String getDeadline() { + return deadline == null ? "" : deadline; + } + + public void setDeadline(String deadline) { + this.deadline = deadline; + } + + public String getDeadlineDate() { + return deadlineDate == null ? "" : deadlineDate; + } + + public void setDeadlineDate(String deadlineDate) { + this.deadlineDate = deadlineDate; + } + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + + public String getUpdateTime() { + return updateTime == null ? "" : updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + + public String getRealityTimeDate() { + return realityTimeDate == null ? "" : realityTimeDate; + } + + public void setRealityTimeDate(String realityTimeDate) { + this.realityTimeDate = realityTimeDate; + } + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } + + public String getLongitude() { + return longitude == null ? "" : longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude == null ? "" : latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public List getGoods() { + if (goods == null) { + return new ArrayList<>(); + } + return goods; + } + + public void setGoods(List goods) { + this.goods = goods; + } + + public int getReport() { + return report; + } + + public void setReport(int report) { + this.report = report; + } + + public int getReportAlct() { + return reportAlct; + } + + public void setReportAlct(int reportAlct) { + this.reportAlct = reportAlct; + } + + public int getDelay() { + return delay; + } + + public void setDelay(int delay) { + this.delay = delay; + } + + public List getReceiptUrl() { + if (receiptUrl == null) { + return new ArrayList<>(); + } + return receiptUrl; + } + + public void setReceiptUrl(List receiptUrl) { + this.receiptUrl = receiptUrl; + } + + public String getReceiptTime() { + return receiptTime == null ? "" : receiptTime; + } + + public void setReceiptTime(String receiptTime) { + this.receiptTime = receiptTime; + } + + public String getReceiptLongitude() { + return receiptLongitude == null ? "" : receiptLongitude; + } + + public void setReceiptLongitude(String receiptLongitude) { + this.receiptLongitude = receiptLongitude; + } + + public String getReceiptLatitude() { + return receiptLatitude == null ? "" : receiptLatitude; + } + + public void setReceiptLatitude(String receiptLatitude) { + this.receiptLatitude = receiptLatitude; + } + + public String getReceiptLocationAddress() { + return receiptLocationAddress == null ? "" : receiptLocationAddress; + } + + public void setReceiptLocationAddress(String receiptLocationAddress) { + this.receiptLocationAddress = receiptLocationAddress; + } + + public List getSendPutImagesUrl() { + if (sendPutImagesUrl == null) { + return new ArrayList<>(); + } + return sendPutImagesUrl; + } + + public void setSendPutImagesUrl(List sendPutImagesUrl) { + this.sendPutImagesUrl = sendPutImagesUrl; + } + + public String getSendPutLongitude() { + return sendPutLongitude == null ? "" : sendPutLongitude; + } + + public void setSendPutLongitude(String sendPutLongitude) { + this.sendPutLongitude = sendPutLongitude; + } + + public String getSendPutLatitude() { + return sendPutLatitude == null ? "" : sendPutLatitude; + } + + public void setSendPutLatitude(String sendPutLatitude) { + this.sendPutLatitude = sendPutLatitude; + } + + public String getSendPutLocationAddress() { + return sendPutLocationAddress == null ? "" : sendPutLocationAddress; + } + + public void setSendPutLocationAddress(String sendPutLocationAddress) { + this.sendPutLocationAddress = sendPutLocationAddress; + } + + public String getCarType() { + return carType == null ? "" : carType; + } + + public void setCarType(String carType) { + this.carType = carType; + } + + public String getCarNumber() { + return carNumber == null ? "" : carNumber; + } + + public void setCarNumber(String carNumber) { + this.carNumber = carNumber; + } + + public Object getDriverName() { + return driverName; + } + + public void setDriverName(Object driverName) { + this.driverName = driverName; + } + + public String getAcceptTime() { + return acceptTime == null ? "" : acceptTime; + } + + public void setAcceptTime(String acceptTime) { + this.acceptTime = acceptTime; + } + + public String getWaybillStatus() { + return waybillStatus == null ? "" : waybillStatus; + } + + public void setWaybillStatus(String waybillStatus) { + this.waybillStatus = waybillStatus; + } + + public String getTotalAmount() { + return totalAmount == null ? "" : totalAmount; + } + + public void setTotalAmount(String totalAmount) { + this.totalAmount = totalAmount; + } + + public String getDistance() { + return distance == null ? "" : distance; + } + + public void setDistance(String distance) { + this.distance = distance; + } + + public int getIsEvaluation() { + return isEvaluation; + } + + public void setIsEvaluation(int isEvaluation) { + this.isEvaluation = isEvaluation; + } + + public static class GoodsDTO { + private int id; + private Object childrenId; + private String goodName; + private String goodNum; + private String goodUnit; + private Object goodPrice; + private String packName; + private Object createTime; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public Object getChildrenId() { + return childrenId; + } + + public void setChildrenId(Object childrenId) { + this.childrenId = childrenId; + } + + public String getGoodName() { + return goodName == null ? "" : goodName; + } + + public void setGoodName(String goodName) { + this.goodName = goodName; + } + + public String getGoodNum() { + return goodNum == null ? "" : goodNum; + } + + public void setGoodNum(String goodNum) { + this.goodNum = goodNum; + } + + public String getGoodUnit() { + return goodUnit == null ? "" : goodUnit; + } + + public void setGoodUnit(String goodUnit) { + this.goodUnit = goodUnit; + } + + public Object getGoodPrice() { + return goodPrice; + + } + + public void setGoodPrice(Object goodPrice) { + this.goodPrice = goodPrice; + } + + public String getPackName() { + return packName == null ? "" : packName; + } + + public void setPackName(String packName) { + this.packName = packName; + } + + public Object getCreateTime() { + return createTime; + } + + public void setCreateTime(Object createTime) { + this.createTime = createTime; + } + } + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/Subject.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/Subject.java new file mode 100644 index 0000000..19a4c78 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/Subject.java @@ -0,0 +1,87 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author hlh + * @version 1.0.0 + * @date 2022/1/4 10:03 + * @description: + */ +public class Subject { + + /** + * 问题 + */ + private String problem; + + + /** + * 答案 + */ + private List list; + + /** + * 分值 + */ + private int score; + + public String getProblem() { + return problem == null ? "" : problem; + } + + public void setProblem(String problem) { + this.problem = problem; + } + + public List getList() { + if (list == null) { + return new ArrayList<>(); + } + return list; + } + + public void setList(List list) { + this.list = list; + } + + public int getScore() { + return score; + } + + public void setScore(int score) { + this.score = score; + } + + private class Answer{ + + /** + * 内容 + */ + private String value; + + /** + * 是否正确 + */ + private int isCorrect; + + public String getValue() { + return value == null ? "" : value; + } + + public void setValue(String value) { + this.value = value; + } + + public int getIsCorrect() { + return isCorrect; + } + + public void setIsCorrect(int isCorrect) { + this.isCorrect = isCorrect; + } + } + + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/Test.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/Test.java new file mode 100644 index 0000000..d5105fd --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/Test.java @@ -0,0 +1,38 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + + +public class Test { + private String id; + private String name; + private String blog; + + public Test(String id, String name, String blog) { + this.id = id; + this.name = name; + this.blog = blog; + } + + public String getId() { + return id == null ? "" : id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public String getBlog() { + return blog == null ? "" : blog; + } + + public void setBlog(String blog) { + this.blog = blog; + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/UpAppBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/UpAppBean.java new file mode 100644 index 0000000..237bbfc --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/UpAppBean.java @@ -0,0 +1,122 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/9/6 18:35 + * @description: + */ +public class UpAppBean { + + private int code; + private DataDTO data; + private String msg; + 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + 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 content; + private String delete; + private String downloadUrl; + private String force; + private String source; + private String type; + private String version; + + public String getContent() { + return content == null ? "" : content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getDelete() { + return delete == null ? "" : delete; + } + + public void setDelete(String delete) { + this.delete = delete; + } + + public String getDownloadUrl() { + return downloadUrl == null ? "" : downloadUrl; + } + + public void setDownloadUrl(String downloadUrl) { + this.downloadUrl = downloadUrl; + } + + public String getForce() { + return force == null ? "" : force; + } + + public void setForce(String force) { + this.force = force; + } + + public String getSource() { + return source == null ? "" : source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getType() { + return type == null ? "" : type; + } + + public void setType(String type) { + this.type = type; + } + + public String getVersion() { + return version == null ? "" : version; + } + + public void setVersion(String version) { + this.version = version; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/UploadBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/UploadBean.java new file mode 100644 index 0000000..ed242cf --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/UploadBean.java @@ -0,0 +1,167 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/16 18:06 + * @description: + */ +public class UploadBean{ + + private int res; + private int code; + private boolean success; + private String msg; + private DataDTO 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + public static class DataDTO { + private int id; + private Object uuidName; + private Object realName; + private String sourcePath; + private Object sourceSuffix; + private Object sourceSize; + private Object remark; + private int createUser; + private Object createTime; + private Object folderid; + private String name; + private String url; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public Object getUuidName() { + return uuidName; + } + + public void setUuidName(Object uuidName) { + this.uuidName = uuidName; + } + + public Object getRealName() { + return realName; + } + + public void setRealName(Object realName) { + this.realName = realName; + } + + public String getSourcePath() { + return sourcePath == null ? "" : sourcePath; + } + + public void setSourcePath(String sourcePath) { + this.sourcePath = sourcePath; + } + + public Object getSourceSuffix() { + return sourceSuffix; + } + + public void setSourceSuffix(Object sourceSuffix) { + this.sourceSuffix = sourceSuffix; + } + + public Object getSourceSize() { + return sourceSize; + } + + public void setSourceSize(Object sourceSize) { + this.sourceSize = sourceSize; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public int getCreateUser() { + return createUser; + } + + public void setCreateUser(int createUser) { + this.createUser = createUser; + } + + public Object getCreateTime() { + return createTime; + } + + public void setCreateTime(Object createTime) { + this.createTime = createTime; + } + + public Object getFolderid() { + return folderid; + } + + public void setFolderid(Object folderid) { + this.folderid = folderid; + } + + public String getName() { + return name == null ? "" : name; + } + + public void setName(String name) { + this.name = name; + } + + public String getUrl() { + return url == null ? "" : url; + } + + public void setUrl(String url) { + this.url = url; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/UserBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/UserBean.java new file mode 100644 index 0000000..24003a1 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/UserBean.java @@ -0,0 +1,342 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +public class UserBean { + + + private int res; + private int code; + private boolean success; + private String msg; + private DataDTO 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + public static class DataDTO { + private String token; + private int id; + private int roleId; + private String uname; + private String registerPhone; + private String rname; + private String companyName; + private String account; + private String credit; + private Object surplusCredit; + private String etcBalance; + private String oliBalance; + private Object invoiceMoney; + private String headportraitUrl; + private Object salt; + private Object jumpUrl; + private int auditStatus; + private String distance; + private int waybillNum; + private Object orderNum; + private String idCardValidity; + private String driverValidity; + private String qualificationValidity; + private int isCar; + private String qrcodeUrl; + private int partyMemberStatus; + private String partyMemberTime; + private String partyMemberUrl; + private Object partyMemberReason; + private String goodLuck; + private String freight; + private String realAuthentication; + + public String getToken() { + return token == null ? "" : token; + } + + public void setToken(String token) { + this.token = token; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getRoleId() { + return roleId; + } + + public void setRoleId(int roleId) { + this.roleId = roleId; + } + + public String getUname() { + return uname == null ? "" : uname; + } + + public void setUname(String uname) { + this.uname = uname; + } + + public String getRegisterPhone() { + return registerPhone == null ? "" : registerPhone; + } + + public void setRegisterPhone(String registerPhone) { + this.registerPhone = registerPhone; + } + + public String getRname() { + return rname == null ? "" : rname; + } + + public void setRname(String rname) { + this.rname = rname; + } + + public String getCompanyName() { + return companyName == null ? "" : companyName; + } + + public void setCompanyName(String companyName) { + this.companyName = companyName; + } + + public String getAccount() { + return account == null ? "" : account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getCredit() { + return credit == null ? "" : credit; + } + + public void setCredit(String credit) { + this.credit = credit; + } + + public Object getSurplusCredit() { + return surplusCredit; + } + + public void setSurplusCredit(Object surplusCredit) { + this.surplusCredit = surplusCredit; + } + + public String getEtcBalance() { + return etcBalance == null ? "" : etcBalance; + } + + public void setEtcBalance(String etcBalance) { + this.etcBalance = etcBalance; + } + + public String getOliBalance() { + return oliBalance == null ? "" : oliBalance; + } + + public void setOliBalance(String oliBalance) { + this.oliBalance = oliBalance; + } + + public Object getInvoiceMoney() { + return invoiceMoney; + } + + public void setInvoiceMoney(Object invoiceMoney) { + this.invoiceMoney = invoiceMoney; + } + + public String getHeadportraitUrl() { + return headportraitUrl == null ? "" : headportraitUrl; + } + + public void setHeadportraitUrl(String headportraitUrl) { + this.headportraitUrl = headportraitUrl; + } + + public Object getSalt() { + return salt; + } + + public void setSalt(Object salt) { + this.salt = salt; + } + + public Object getJumpUrl() { + return jumpUrl; + } + + public void setJumpUrl(Object jumpUrl) { + this.jumpUrl = jumpUrl; + } + + public int getAuditStatus() { + return auditStatus; + } + + public void setAuditStatus(int auditStatus) { + this.auditStatus = auditStatus; + } + + public String getDistance() { + return distance == null ? "" : distance; + } + + public void setDistance(String distance) { + this.distance = distance; + } + + public int getWaybillNum() { + return waybillNum; + } + + public void setWaybillNum(int waybillNum) { + this.waybillNum = waybillNum; + } + + public Object getOrderNum() { + return orderNum; + } + + public void setOrderNum(Object orderNum) { + this.orderNum = orderNum; + } + + public String getIdCardValidity() { + return idCardValidity == null ? "" : idCardValidity; + } + + public void setIdCardValidity(String idCardValidity) { + this.idCardValidity = idCardValidity; + } + + public String getDriverValidity() { + return driverValidity == null ? "" : driverValidity; + } + + public void setDriverValidity(String driverValidity) { + this.driverValidity = driverValidity; + } + + public String getQualificationValidity() { + return qualificationValidity == null ? "" : qualificationValidity; + } + + public void setQualificationValidity(String qualificationValidity) { + this.qualificationValidity = qualificationValidity; + } + + public int getIsCar() { + return isCar; + } + + public void setIsCar(int isCar) { + this.isCar = isCar; + } + + public String getQrcodeUrl() { + return qrcodeUrl == null ? "" : qrcodeUrl; + } + + public void setQrcodeUrl(String qrcodeUrl) { + this.qrcodeUrl = qrcodeUrl; + } + + public int getPartyMemberStatus() { + return partyMemberStatus; + } + + public void setPartyMemberStatus(int partyMemberStatus) { + this.partyMemberStatus = partyMemberStatus; + } + + public String getPartyMemberTime() { + return partyMemberTime == null ? "" : partyMemberTime; + } + + public void setPartyMemberTime(String partyMemberTime) { + this.partyMemberTime = partyMemberTime; + } + + public String getPartyMemberUrl() { + return partyMemberUrl == null ? "" : partyMemberUrl; + } + + public void setPartyMemberUrl(String partyMemberUrl) { + this.partyMemberUrl = partyMemberUrl; + } + + public Object getPartyMemberReason() { + return partyMemberReason; + } + + public void setPartyMemberReason(Object partyMemberReason) { + this.partyMemberReason = partyMemberReason; + } + + public String getGoodLuck() { + return goodLuck == null ? "" : goodLuck; + } + + public void setGoodLuck(String goodLuck) { + this.goodLuck = goodLuck; + } + + public String getFreight() { + return freight == null ? "" : freight; + } + + public void setFreight(String freight) { + this.freight = freight; + } + + public String getRealAuthentication() { + return realAuthentication == null ? "" : realAuthentication; + } + + public void setRealAuthentication(String realAuthentication) { + this.realAuthentication = realAuthentication; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/WNewsBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/WNewsBean.java new file mode 100644 index 0000000..13359dd --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/WNewsBean.java @@ -0,0 +1,146 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/28 18:51 + * @description: + */ +public class WNewsBean { + + private int res; + private int code; + private boolean success; + private String msg; + private List 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public List getData() { + if (data == null) { + return new ArrayList<>(); + } + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataDTO { + private int waybillId; + private int attitudeScore; + private int multipleScore; + private String content; + private String[] listImgUrl; + private int appraiserId; + private int type; + private int folderId; + private int status; + + public int getWaybillId() { + return waybillId; + } + + public void setWaybillId(int waybillId) { + this.waybillId = waybillId; + } + + public int getAttitudeScore() { + return attitudeScore; + } + + public void setAttitudeScore(int attitudeScore) { + this.attitudeScore = attitudeScore; + } + + public int getMultipleScore() { + return multipleScore; + } + + public void setMultipleScore(int multipleScore) { + this.multipleScore = multipleScore; + } + + public String getContent() { + return content == null ? "" : content; + } + + public void setContent(String content) { + this.content = content; + } + + public String[] getListImgUrl() { + return listImgUrl; + } + + public void setListImgUrl(String[] listImgUrl) { + this.listImgUrl = listImgUrl; + } + + public int getAppraiserId() { + return appraiserId; + } + + public void setAppraiserId(int appraiserId) { + this.appraiserId = appraiserId; + } + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + + public int getFolderId() { + return folderId; + } + + public void setFolderId(int folderId) { + this.folderId = folderId; + } + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/XiaoXiBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/XiaoXiBean.java new file mode 100644 index 0000000..a206883 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/XiaoXiBean.java @@ -0,0 +1,227 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +import java.util.ArrayList; +import java.util.List; + +public class XiaoXiBean { + + private int res; + private int code; + private boolean success; + private String msg; + private DataDTO 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + public static class DataDTO { + private List records; + private int total; + private int size; + private int current; + private List orders; + private boolean searchCount; + private int pages; + + public List getRecords() { + if (records == null) { + return new ArrayList<>(); + } + return records; + } + + public void setRecords(List records) { + this.records = records; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public int getSize() { + return size; + } + + public void setSize(int size) { + this.size = size; + } + + public int getCurrent() { + return current; + } + + public void setCurrent(int current) { + this.current = current; + } + + public List getOrders() { + if (orders == null) { + return new ArrayList<>(); + } + return orders; + } + + public void setOrders(List orders) { + this.orders = orders; + } + + public boolean isSearchCount() { + return searchCount; + } + + public void setSearchCount(boolean searchCount) { + this.searchCount = searchCount; + } + + public int getPages() { + return pages; + } + + public void setPages(int pages) { + this.pages = pages; + } + + public static class RecordsDTO { + private int id; + private int cate; + private String content; + private int isRead; + private int forwordType; + private int forwordId; + private int receiverId; + private String receiverName; + private int createUser; + private String createUserName; + private String createTime; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getCate() { + return cate; + } + + public void setCate(int cate) { + this.cate = cate; + } + + public String getContent() { + return content == null ? "" : content; + } + + public void setContent(String content) { + this.content = content; + } + + public int getIsRead() { + return isRead; + } + + public void setIsRead(int isRead) { + this.isRead = isRead; + } + + public int getForwordType() { + return forwordType; + } + + public void setForwordType(int forwordType) { + this.forwordType = forwordType; + } + + public int getForwordId() { + return forwordId; + } + + public void setForwordId(int forwordId) { + this.forwordId = forwordId; + } + + public int getReceiverId() { + return receiverId; + } + + public void setReceiverId(int receiverId) { + this.receiverId = receiverId; + } + + public String getReceiverName() { + return receiverName == null ? "" : receiverName; + } + + public void setReceiverName(String receiverName) { + this.receiverName = receiverName; + } + + public int getCreateUser() { + return createUser; + } + + public void setCreateUser(int createUser) { + this.createUser = createUser; + } + + public String getCreateUserName() { + return createUserName == null ? "" : createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public String getCreateTime() { + return createTime == null ? "" : createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/XiaoXiListBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/XiaoXiListBean.java new file mode 100644 index 0000000..295ff12 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/bean/XiaoXiListBean.java @@ -0,0 +1,92 @@ +package com.arpa.hndahesudintocctmsdriver.bean; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/28 14:58 + * @description: + */ +public class XiaoXiListBean { + + private int res; + private int code; + private boolean success; + private String msg; + private List 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 == null ? "" : msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public List getData() { + if (data == null) { + return new ArrayList<>(); + } + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataDTO { + private int count; + private String messageTypeName; + private int vcode; + + public int getCount() { + return count; + } + + public void setCount(int count) { + this.count = count; + } + + public String getMessageTypeName() { + return messageTypeName == null ? "" : messageTypeName; + } + + public void setMessageTypeName(String messageTypeName) { + this.messageTypeName = messageTypeName; + } + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/constant/JTTConstant.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/constant/JTTConstant.java new file mode 100644 index 0000000..9bad801 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/constant/JTTConstant.java @@ -0,0 +1,17 @@ +package com.arpa.hndahesudintocctmsdriver.constant; + +/** + * @author hlh + * @version 1.0.0 + * @date 2022/1/10 11:34 + * @description:交通厅参数 + */ +public class JTTConstant { + + public final static String JTT_DATA_NAME="jtt_data"; + + public final static String JTT_DATA_JTTORDER_KEY="JTT_order_key"; + + public final static String JTT_DATA_ORDER_KEY="order_key"; + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/constant/LoginConstant.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/constant/LoginConstant.java new file mode 100644 index 0000000..b7e526d --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/constant/LoginConstant.java @@ -0,0 +1,23 @@ +package com.arpa.hndahesudintocctmsdriver.constant; + +public enum LoginConstant { + /** + * + */ + LOG_BG_IMG("bg"), + NAV_TEXT("登录"), + NAV_RETURN_IMG_PATH("bg"), + LOG_BTN_TEXT("本机号码一键登录"), + BTN_IMG_PATH("umcsdk_login_btn_bg"), + TIAOKUAN_ONE("服务条款1"),TIAOKUAN_ONE_URL("www.baidu.com"), + TIAOKUAN_TWO("服务条款2"),TIAOKUAN_TWO_URL("www.baidu.com"); + private String value; + + public String getValue() { + return value; + } + + LoginConstant(String value) { + this.value = value; + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/constant/PushConstant.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/constant/PushConstant.java new file mode 100644 index 0000000..c617a33 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/constant/PushConstant.java @@ -0,0 +1,24 @@ +package com.arpa.hndahesudintocctmsdriver.constant; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/9/29 10:16 + * @description:推送路径配置参数 + */ +public class PushConstant { + + public static final String BASE_URL = "/driver"; + + //主界面 + public static final String MAIN=BASE_URL+"/MainActivity"; + //主界面—货源大厅 + public static final String MAIN_ORDER=BASE_URL+"/Main_Order"; + //主界面-全部运单页 + public static final String ORDER_ALL=BASE_URL+"/OrderAllActivity"; + //主界面-货源详情页 + public static final String ORDER_DET=BASE_URL+"/OrderDetActivity"; + // + + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/constant/VersionUpLog.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/constant/VersionUpLog.java new file mode 100644 index 0000000..39a31cf --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/constant/VersionUpLog.java @@ -0,0 +1,17 @@ +package com.arpa.hndahesudintocctmsdriver.constant; + +/** + * @author hlh + * @version 1.0.0 + * @date 2022/1/26 10:00 + * @description: + */ +public class VersionUpLog { + + /** + * 3.0.8 升级内容平板电脑的ui适配 + */ + + + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/event/HomeEvent.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/event/HomeEvent.java new file mode 100644 index 0000000..94e25cd --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/event/HomeEvent.java @@ -0,0 +1,22 @@ +package com.arpa.hndahesudintocctmsdriver.event; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/10/20 14:43 + * @description: + */ +public class HomeEvent { + + private String message; + + public HomeEvent(String message) { + this.message = message; + } + public String getMessage() { + return message; + } + public void setMessage(String message) { + this.message = message; + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/event/PersonEvent.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/event/PersonEvent.java new file mode 100644 index 0000000..2b6fa8c --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/event/PersonEvent.java @@ -0,0 +1,22 @@ +package com.arpa.hndahesudintocctmsdriver.event; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/10/20 14:43 + * @description: + */ +public class PersonEvent { + + private String message; + + public PersonEvent(String message) { + this.message = message; + } + public String getMessage() { + return message; + } + public void setMessage(String message) { + this.message = message; + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/event/VehicleEvent.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/event/VehicleEvent.java new file mode 100644 index 0000000..1d366cd --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/event/VehicleEvent.java @@ -0,0 +1,21 @@ +package com.arpa.hndahesudintocctmsdriver.event; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/11/2 18:51 + * @description: + */ +public class VehicleEvent { + private String message; + + public VehicleEvent(String message) { + this.message = message; + } + public String getMessage() { + return message; + } + public void setMessage(String message) { + this.message = message; + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/parts/AuthParts.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/parts/AuthParts.java new file mode 100644 index 0000000..921a15a --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/parts/AuthParts.java @@ -0,0 +1,38 @@ +package com.arpa.hndahesudintocctmsdriver.parts; + +import android.content.Context; +import android.util.Log; + +import com.google.gson.Gson; +import com.arpa.hndahesudintocctmsdriver.bean.DriverAuthDataBean; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/9/9 15:39 + * @description: + */ +public class AuthParts { + + private static Gson gson=new Gson(); + + public static DriverAuthDataBean getAuth(Context con){ + String authData=SPUtil.getSP(con,"data","authdata"); + Log.e("--data--",authData); + if("".equals(authData)){ + return null; + }else { + return gson.fromJson(authData, DriverAuthDataBean.class); + } + } + + public static void setAuth(Context con,DriverAuthDataBean auth){ + if(auth!=null){ + //组件修改 + + //数据修改 + SPUtil.insSP(con,"data","authdata",gson.toJson(auth)); + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/parts/ConfigParts.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/parts/ConfigParts.java new file mode 100644 index 0000000..b1e19bb --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/parts/ConfigParts.java @@ -0,0 +1,33 @@ +package com.arpa.hndahesudintocctmsdriver.parts; + +import android.content.Context; + +import com.google.gson.Gson; +import com.arpa.hndahesudintocctmsdriver.bean.ConfigBean; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/9/11 11:53 + * @description:配置 + */ +public class ConfigParts { + private static Gson gson=new Gson(); + + public static ConfigBean getConfigParts(Context con){ + String configBean= SPUtil.getSP(con,"data","configdata"); + if("".equals(configBean)){ + return null; + }else { + return gson.fromJson(configBean, ConfigBean.class); + } + } + + public static void setParts(Context con,ConfigBean cb){ + if(cb!=null){ + //数据修改 + SPUtil.insSP(con,"data","configdata",gson.toJson(cb)); + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/parts/OrderParts.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/parts/OrderParts.java new file mode 100644 index 0000000..6d16810 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/parts/OrderParts.java @@ -0,0 +1,26 @@ +package com.arpa.hndahesudintocctmsdriver.parts; + +import android.content.Context; + +import com.google.gson.Gson; +import com.arpa.hndahesudintocctmsdriver.bean.StartOrderBean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/9/6 9:05 + * @description: + */ +public class OrderParts { + + private static Gson gson=new Gson(); + + public static StartOrderBean getOrder(String sob){ + return gson.fromJson(sob,StartOrderBean.class); + } + + public static void setOrder(Context con){ + + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/parts/StartOrderParts.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/parts/StartOrderParts.java new file mode 100644 index 0000000..d3bba5a --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/parts/StartOrderParts.java @@ -0,0 +1,32 @@ +package com.arpa.hndahesudintocctmsdriver.parts; + +import android.content.Context; + +import com.google.gson.Gson; +import com.arpa.hndahesudintocctmsdriver.bean.StartOrderBean; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/10/15 10:05 + * @description:执行中运单 + */ +public class StartOrderParts { + + private static Gson gson=new Gson(); + + public static StartOrderBean getStartOrder(Context con){ + String sob= SPUtil.getSP(con,"data","startOrder"); + if("".equals(sob)){ + return null; + }else { + return gson.fromJson(sob,StartOrderBean.class); + } + } + public static void setStartOrder(Context con, StartOrderBean sob){ + if(sob!=null){ + SPUtil.insSP(con,"data","startOrder",gson.toJson(sob)); + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/parts/UserParts.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/parts/UserParts.java new file mode 100644 index 0000000..9164a39 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/parts/UserParts.java @@ -0,0 +1,37 @@ +package com.arpa.hndahesudintocctmsdriver.parts; + +import android.content.Context; + +import com.google.gson.Gson; +import com.arpa.hndahesudintocctmsdriver.bean.UserBean; +import com.arpa.hndahesudintocctmsdriver.ui.wallet.WalletFragment; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/9/6 8:32 + * @description:账户 + */ +public class UserParts { + + private static Gson gson=new Gson(); + //获取部件实例 + public static UserBean getUser(Context con){ + String userdata=SPUtil.getSP(con,"data","userdata"); + if("".equals(userdata)){ + return null; + }else { + return gson.fromJson(userdata,UserBean.class); + } + } + public static void setUser(Context con,UserBean user){ + if(user!=null){ + //组件修改 + WalletFragment.account.setText(user.getData().getAccount()); + WalletFragment.userBean=user; + //数据修改 + SPUtil.insSP(con,"data","userdata",gson.toJson(user)); + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/push/PushMessageReceiver.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/push/PushMessageReceiver.java new file mode 100644 index 0000000..e0b646c --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/push/PushMessageReceiver.java @@ -0,0 +1,159 @@ +package com.arpa.hndahesudintocctmsdriver.push; + +import android.content.Context; +import android.content.Intent; +import android.util.Log; + +import com.arpa.hndahesudintocctmsdriver.service.MakeUpService; +import com.arpa.hndahesudintocctmsdriver.ui.home.HuoYunDelActivity; +import com.arpa.hndahesudintocctmsdriver.ui.home.StartYunDanActivity; +import com.arpa.hndahesudintocctmsdriver.ui.login.WelcomeActivity; + +import org.json.JSONException; +import org.json.JSONObject; + +import cn.jpush.android.api.CmdMessage; +import cn.jpush.android.api.CustomMessage; +import cn.jpush.android.api.JPushInterface; +import cn.jpush.android.api.JPushMessage; +import cn.jpush.android.api.NotificationMessage; +import cn.jpush.android.service.JPushMessageReceiver; + +public class PushMessageReceiver extends JPushMessageReceiver { + + private static final String TAG = "PushMessageReceiver"; + + @Override + public void onMessage(Context context, CustomMessage customMessage) { + Log.e(TAG, "[onMessage] " + customMessage); + Intent intent = new Intent("com.jiguang.demo.message"); + intent.putExtra("msg", customMessage.message); + context.sendBroadcast(intent); + } + + @Override + public void onNotifyMessageOpened(Context context, NotificationMessage message) { + Log.e(TAG, "[onNotifyMessageOpened] " + message); + try{ + //打开自定义的Activity + JSONObject json=new JSONObject(message.notificationExtras); + ///driver/detail?id=810 + String url=json.getString("url"); + if(url.indexOf("driver/detail")!=-1){ + int id=Integer.parseInt(url.split("=")[1]); + Log.e("-url-",url+"_"+id); + Intent in=new Intent(context, HuoYunDelActivity.class); + in.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); + in.putExtra("id",Integer.parseInt(url.split("=")[1])); + context.startActivity(in); + }else if(url.indexOf("driver/run/order")!=-1){ + Intent in=new Intent(context, StartYunDanActivity.class); + in.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); + in.putExtra("id",0); + context.startActivity(in); + } + + }catch (Throwable throwable){ + Log.e("123", "[onNotifyMessageOpened] " + message); + Intent in=new Intent(context, WelcomeActivity.class); + in.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); + context.startActivity(in); + } + } + + @Override + public void onMultiActionClicked(Context context, Intent intent) { + Log.e(TAG, "[onMultiActionClicked] 用户点击了通知栏按钮"); + String nActionExtra = intent.getExtras().getString(JPushInterface.EXTRA_NOTIFICATION_ACTION_EXTRA); + + //开发者根据不同 Action 携带的 extra 字段来分配不同的动作。 + if (nActionExtra == null) { + Log.d(TAG, "ACTION_NOTIFICATION_CLICK_ACTION nActionExtra is null"); + return; + } + if (nActionExtra.equals("my_extra1")) { + Log.e(TAG, "[onMultiActionClicked] 用户点击通知栏按钮一"); + } else if (nActionExtra.equals("my_extra2")) { + Log.e(TAG, "[onMultiActionClicked] 用户点击通知栏按钮二"); + } else if (nActionExtra.equals("my_extra3")) { + Log.e(TAG, "[onMultiActionClicked] 用户点击通知栏按钮三"); + } else { + Log.e(TAG, "[onMultiActionClicked] 用户点击通知栏按钮未定义"); + } + } + + @Override + public void onNotifyMessageArrived(Context context,NotificationMessage message) { + Log.e(TAG, "[onNotifyMessageArrived] " + message); + JSONObject json= null; + String str=""; + try { + json = new JSONObject(message.notificationExtras); + str=json.getString("soundType"); + } catch (JSONException e) { + e.printStackTrace(); + } + //soundType 声音类型 -1不播放 0新的派单 1新的抢单 2运单结算 + if(!"-1".equals(str)){ + Intent ins=new Intent(context,MakeUpService.class); + //ins.putExtra("type",str); + context.startService(ins); + } + } + + @Override + public void onNotifyMessageDismiss(Context context, NotificationMessage message) { + Log.e(TAG, "[onNotifyMessageDismiss] " + message); + } + + @Override + public void onRegister(Context context, String registrationId) { + Log.e(TAG, "[onRegister] " + registrationId); + Intent intent = new Intent("com.jiguang.demo.register"); + context.sendBroadcast(intent); + } + + @Override + public void onConnected(Context context, boolean isConnected) { + Log.e(TAG, "[onConnected] " + isConnected); + } + + @Override + public void onCommandResult(Context context, CmdMessage cmdMessage) { + Log.e(TAG, "[onCommandResult] " + cmdMessage); + } + + @Override + public void onTagOperatorResult(Context context, JPushMessage jPushMessage) { + TagAliasOperatorHelper.getInstance().onTagOperatorResult(context,jPushMessage); + super.onTagOperatorResult(context, jPushMessage); + } + + @Override + public void onCheckTagOperatorResult(Context context, JPushMessage jPushMessage) { + TagAliasOperatorHelper.getInstance().onCheckTagOperatorResult(context,jPushMessage); + super.onCheckTagOperatorResult(context, jPushMessage); + } + + @Override + public void onAliasOperatorResult(Context context, JPushMessage jPushMessage) { + TagAliasOperatorHelper.getInstance().onAliasOperatorResult(context,jPushMessage); + super.onAliasOperatorResult(context, jPushMessage); + } + + @Override + public void onMobileNumberOperatorResult(Context context, JPushMessage jPushMessage) { + TagAliasOperatorHelper.getInstance().onMobileNumberOperatorResult(context,jPushMessage); + super.onMobileNumberOperatorResult(context, jPushMessage); + } + + @Override + public void onNotificationSettingsCheck(Context context, boolean isOn, int source) { + super.onNotificationSettingsCheck(context, isOn, source); + Log.e(TAG, "[onNotificationSettingsCheck] isOn:" + isOn + ",source:" + source); + } + + + +} + diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/push/TagAliasOperatorHelper.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/push/TagAliasOperatorHelper.java new file mode 100644 index 0000000..9035ffe --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/push/TagAliasOperatorHelper.java @@ -0,0 +1,103 @@ +package com.arpa.hndahesudintocctmsdriver.push; + +import android.content.Context; +import android.util.Log; + +import cn.jpush.android.api.JPushMessage; + +/** + * 处理tagalias相关的逻辑 + * */ +public class TagAliasOperatorHelper { + private static final String TAG = "JIGUANG-TagAliasHelper"; + + private Context context; + + private static TagAliasOperatorHelper mInstance; + private TagAliasOperatorHelper(){ + } + public static TagAliasOperatorHelper getInstance(){ + if(mInstance == null){ + synchronized (TagAliasOperatorHelper.class){ + if(mInstance == null){ + mInstance = new TagAliasOperatorHelper(); + } + } + } + return mInstance; + } + public void init(Context context){ + if(context != null) { + this.context = context.getApplicationContext(); + } + } + + + public void onTagOperatorResult(Context context, JPushMessage jPushMessage) { + int sequence = jPushMessage.getSequence(); + Log.i(TAG,"action - onTagOperatorResult, sequence:"+sequence+",tags:"+jPushMessage.getTags()); + Log.i(TAG,"tags size:"+jPushMessage.getTags().size()); + init(context); + + if(jPushMessage.getErrorCode() == 0){ + Log.i(TAG,"action - modify tag Success,sequence:"+sequence); + //ToastHelper.showOk(context,"modify success"); + }else{ + String logs = "Failed to modify tags"; + if(jPushMessage.getErrorCode() == 6018){ + //tag数量超过限制,需要先清除一部分再add + logs += ", tags is exceed limit need to clean"; + } + logs += ", errorCode:" + jPushMessage.getErrorCode(); + Log.e(TAG, logs); + //ToastHelper.showOther(context,logs); + } + } + public void onCheckTagOperatorResult(Context context, JPushMessage jPushMessage){ + int sequence = jPushMessage.getSequence(); + Log.i(TAG,"action - onCheckTagOperatorResult, sequence:"+sequence+",checktag:"+jPushMessage.getCheckTag()); + init(context); + if(jPushMessage.getErrorCode() == 0){ + String logs = "modify tag "+jPushMessage.getCheckTag() + " bind state success,state:"+jPushMessage.getTagCheckStateResult(); + Log.i(TAG,logs); + //ToastHelper.showOk(context,"modify success"); + }else{ + String logs = "Failed to modify tags, errorCode:" + jPushMessage.getErrorCode(); + Log.e(TAG, logs); + //ToastHelper.showOther(context,logs); + } + } + public void onAliasOperatorResult(Context context, JPushMessage jPushMessage) { + int sequence = jPushMessage.getSequence(); + Log.i(TAG,"action - onAliasOperatorResult, sequence:"+sequence+",alias:"+jPushMessage.getAlias()); + init(context); + + if(jPushMessage.getErrorCode() == 0){ + Log.i(TAG,"action - modify alias Success,sequence:"+sequence); + //ToastHelper.showOk(context,"modify success"); + }else{ + String logs = "Failed to modify alias, errorCode:" + jPushMessage.getErrorCode(); + Log.e(TAG, logs); + //ToastHelper.showOther(context,logs); + //MMKV.defaultMMKV().putString(AdvActivity.ALIAS_DATA, ""); + } + } + //设置手机号码回调 + public void onMobileNumberOperatorResult(Context context, JPushMessage jPushMessage) { + int sequence = jPushMessage.getSequence(); + Log.i(TAG,"action - onMobileNumberOperatorResult, sequence:"+sequence+",mobileNumber:"+jPushMessage.getMobileNumber()); + init(context); + if(jPushMessage.getErrorCode() == 0){ + Log.i(TAG,"action - set mobile number Success,sequence:"+sequence); + //ToastHelper.showOk(context,"modify success"); + }else{ + String logs = "Failed to set mobile number, errorCode:" + jPushMessage.getErrorCode(); + Log.e(TAG, logs); + //ToastHelper.showOther(context,logs); + //MMKV.defaultMMKV().putString(AdvActivity.MN_DATA, ""); + } + } + + + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/push/XService.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/push/XService.java new file mode 100644 index 0000000..b5c7d80 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/push/XService.java @@ -0,0 +1,7 @@ +package com.arpa.hndahesudintocctmsdriver.push; + +import cn.jpush.android.service.JCommonService; + +public class XService extends JCommonService { + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/push/xRe.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/push/xRe.java new file mode 100644 index 0000000..cca8a69 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/push/xRe.java @@ -0,0 +1,7 @@ +package com.arpa.hndahesudintocctmsdriver.push; + +import cn.jpush.android.service.JPushMessageReceiver; + +public class xRe extends JPushMessageReceiver { + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/report/ALProcess.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/report/ALProcess.java new file mode 100644 index 0000000..a91e501 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/report/ALProcess.java @@ -0,0 +1,116 @@ +package com.arpa.hndahesudintocctmsdriver.report; + +import android.content.Context; +import android.os.Handler; +import android.util.Log; + +import com.alct.mdp.MDPLocationCollectionManager; +import com.alct.mdp.callback.OnDownloadResultListener; +import com.alct.mdp.callback.OnResultListener; +import com.alct.mdp.model.Identity; +import com.arpa.hndahesudintocctmsdriver.parts.AuthParts; +import com.google.gson.Gson; +import com.arpa.hndahesudintocctmsdriver.bean.DriverAuthDataBean; +import com.arpa.hndahesudintocctmsdriver.bean.FqBean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/16 10:35 + * @description:安联流程 + */ +public class ALProcess { + + //企业代码 + private static final String ENTERPRISE_CODE="E0019169"; + //企业app的身份码 + private static final String APP_IDENTITY="b4a472a025e443b383970cdd5465552e"; + //企业app验证码 + private static final String APP_KEY="b948efbb4c2a4ba0805c534f2fba0c89"; + + public static void verification(Context con){ + DriverAuthDataBean auth= AuthParts.getAuth(con); + Identity idy=new Identity(); + //企业代码 + idy.setEnterpriseCode(ENTERPRISE_CODE); + //企业app的身份码 + idy.setAppIdentity(APP_IDENTITY); + //企业app验证码 + idy.setAppKey(APP_KEY); + //司机身份证 + idy.setDriverIdentity(auth.getData().getIdcard()); + //idy.setDriverIdentity("410725198311042012"); + MDPLocationCollectionManager.register(con, idy, new OnResultListener() { + @Override + public void onSuccess() { + Log.e("--success--","验证成功"); + getFq(con); + } + + @Override + public void onFailure(java.lang.String s, java.lang.String s1) { + Log.e("--error--",s+s1+""); + } + }); + } + + public static void getFq(Context con){ + MDPLocationCollectionManager.getInvoices(con, 100, 1, new OnDownloadResultListener() { + @Override + public void onSuccess(Object o) { + Log.e("--获取发票列表成功--",new Gson().toJson(o)); + try{ + FqBean fb=new Gson().fromJson(new Gson().toJson(o),FqBean.class); + applyFq(con,fb); + }catch (Exception e){ + Log.e("--失败--","数据解析失败"); + } + } + + @Override + public void onFailure(String s, String s1) { + Log.e("--获取发票列表失败--",s+s1+""); + } + + }); + + } + + public static void applyFq(Context con,FqBean fb){ + for (FqBean.Invoice driverInvoice : fb.getDriverInvoices()) { + MDPLocationCollectionManager.confirmInvoice(con, ENTERPRISE_CODE, driverInvoice.getDriverInvoiceCode(), new OnResultListener() { + @Override + public void onSuccess() { + + Log.e("--成功--","申请发票成功"); + } + + @Override + public void onFailure(String s, String s1) { + Log.e("--失败--","申请发票失败"+s+s1); + } + }); + } + } + + public void 检查NFC匹配结果(Context con, Handler hd,String shipmentCode, String nfcId){ + // @param context 上下文 + // @param shipmentCode 运单号 + // @param enterpriseCode 企业号 + // @param nfcId NFC id + // @param listener 回调函数 + MDPLocationCollectionManager.checkNfc(con, shipmentCode,ENTERPRISE_CODE, nfcId, new OnResultListener() { + @Override + public void onSuccess() { + + } + + @Override + public void onFailure(String s, String s1) { + + } + }); + } + + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/report/JTTProcess.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/report/JTTProcess.java new file mode 100644 index 0000000..1046b50 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/report/JTTProcess.java @@ -0,0 +1,239 @@ +package com.arpa.hndahesudintocctmsdriver.report; + +import android.app.Application; +import android.content.Context; +import android.content.Intent; +import android.util.Log; + +import com.amap.api.location.AMapLocationClient; +import com.arpa.hndahesudintocctmsdriver.bean.JTT; +import com.arpa.hndahesudintocctmsdriver.constant.JTTConstant; +import com.arpa.hndahesudintocctmsdriver.parts.UserParts; +import com.arpa.hndahesudintocctmsdriver.service.JTTSendService; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; +import com.arpa.hndahesudintocctmsdriver.util.string.StringUtil; +import com.google.gson.Gson; +import com.hdgq.locationlib.LocationOpenApi; +import com.hdgq.locationlib.entity.ShippingNoteInfo; +import com.hdgq.locationlib.listener.OnResultListener; + +import com.hdgq.locationlib.listener.OnSendResultListener; +import com.arpa.hndahesudintocctmsdriver.bean.StartOrderBean; + +import java.util.List; + + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/12/10 9:38 + * @description:交通厅位置上传sdk + */ +public class JTTProcess { + + private final static String APPID="com.arpa.hndahesudintocctmsdriver"; + private final static String APP_SECURITY="01e20fc6585a42738ac88a12321dc41bff473b4b20184aacbbcee7d7864359a6"; + private final static String CODE="41110447"; + private final static String ENVIRONMENT="release"; + + private static Gson gson=new Gson(); + + //初始化+获取授权 + public static void init(Application app){ + LocationOpenApi.init(app); + //auth(app.getBaseContext()); + } + + //获取授权 + public static void auth(Context con){ + String jttStr=SPUtil.getSP(con,"data","jtt"); + JTT jtt=gson.fromJson(jttStr,JTT.class); + if(jtt.getData()==null){ + return; + } + LocationOpenApi.auth(con,APPID, StringUtil.isNull(jtt.getData().getTrafficCode(),APP_SECURITY), + StringUtil.isNull(jtt.getData().getTrafficId(),CODE), + ENVIRONMENT, new OnResultListener() { + @Override + public void onFailure(String s, String s1) { + Log.e("交通厅-获取授权",s+s1); + } + + @Override + public void onSuccess(List list) { + Log.e("交通厅-获取授权",gson.toJson(list)); + if(list.size()>0){ + SPUtil.insSP(con,JTTConstant.JTT_DATA_NAME,JTTConstant.JTT_DATA_JTTORDER_KEY,gson.toJson(list.get(0))); + Intent in=new Intent(con, JTTSendService.class); + con.startService(in); + } + } + }); + } + + //开启定位-装货 + //shippingNoteInfos 为运单信息列表,考虑到一车多单的情况,本版SDK 一辆车运单数最大支持数为 10。 + public static void start(Context con,StartOrderBean sob,String remark){ + ShippingNoteInfo[] snis=new ShippingNoteInfo[1]; + ShippingNoteInfo sni=new ShippingNoteInfo(); + StartOrderBean.DataDTO.WayChildrenDTO startWay=sob.getData().getWayChildren().get(0); + StartOrderBean.DataDTO.WayChildrenDTO endWay=sob.getData().getWayChildren().get(sob.getData().getWayChildren().size()-1); + sni.setShippingNoteNumber(sob.getData().getShippingNoteNumber()); + sni.setSerialNumber("0000"); + sni.setStartLatitude(Double.parseDouble(startWay.getLatitude())); + sni.setStartLongitude(Double.parseDouble(startWay.getLongitude())); + sni.setStartLocationText(startWay.getAddress()); + sni.setStartCountrySubdivisionCode(sob.getData().getStartCountrySubdivisionCode()); + sni.setEndLatitude(Double.parseDouble(endWay.getLatitude())); + sni.setEndLongitude(Double.parseDouble(endWay.getLongitude())); + sni.setEndLocationText(endWay.getAddress()); + sni.setEndCountrySubdivisionCode(sob.getData().getEndCountrySubdivisionCode()); + snis[0]=sni; + Log.e("起点代码",sob.getData().getStartCountrySubdivisionCode()); + Log.e("终点代码",sob.getData().getEndCountrySubdivisionCode()); +// AMapLocationClient.updatePrivacyShow(con,true,true); +// AMapLocationClient.updatePrivacyAgree(con,true); + LocationOpenApi.start(con, sob.getData().getCarNumber(), UserParts.getUser(con).getData().getRname(), remark,snis, new OnResultListener() { + @Override + public void onFailure(String s, String s1) { + Log.e("交通厅-开启定位失败",s+s1+""); + } + + @Override + public void onSuccess(List list) { + Log.e("交通厅-开启定位成功",gson.toJson(list)); + if(list.size()>0){ + SPUtil.insSP(con, JTTConstant.JTT_DATA_NAME,JTTConstant.JTT_DATA_JTTORDER_KEY,gson.toJson(list.get(0))); + Intent in=new Intent(con, JTTSendService.class); + con.startService(in); + } + } + }); + } + + //发送定位 + //参数 ShippingNoteInfo 和 start 接口中的参数 ShippingNoteInfo 相 + //同,这里 shippingNoteInfo 信息只需传入运单号和分单号即可 + public static void send(Context con,StartOrderBean sob,String remark){ + ShippingNoteInfo[] snis=new ShippingNoteInfo[1]; + ShippingNoteInfo sni=new ShippingNoteInfo(); + sni.setShippingNoteNumber(sob.getData().getShippingNoteNumber()); + sni.setSerialNumber("0000"); + sni.setStartCountrySubdivisionCode(sob.getData().getStartCountrySubdivisionCode()); + sni.setEndCountrySubdivisionCode(sob.getData().getEndCountrySubdivisionCode()); + snis[0]=sni; + LocationOpenApi.send(con,sob.getData().getCarNumber(), UserParts.getUser(con).getData().getRname(), remark,snis, new OnSendResultListener() { + @Override + public void onFailure(String s, String s1, List list) { + Log.e("交通厅-发送定位失败",s+s1+""); + } + + @Override + public void onSuccess(List list) { + Log.e("交通厅-发送定位成功",gson.toJson(list)); + } + }); + } + + //暂停定位 + //运单运输过程中,如果出现换驾驶员、换车或换手机的情况,则需驾驶员在原手机上操作,对运送运单列表执行暂停操作, + //调用本接口将运单列表中所有运单标记为暂停状态,并结束本手机的运单定位。 + public static void pause(Context con,StartOrderBean sob,String remark){ + ShippingNoteInfo[] snis=new ShippingNoteInfo[1]; + ShippingNoteInfo sni=new ShippingNoteInfo(); + StartOrderBean.DataDTO.WayChildrenDTO startWay=sob.getData().getWayChildren().get(0); + StartOrderBean.DataDTO.WayChildrenDTO endWay=sob.getData().getWayChildren().get(sob.getData().getWayChildren().size()-1); + sni.setShippingNoteNumber(sob.getData().getShippingNoteNumber()); + sni.setSerialNumber("0000"); + sni.setStartLatitude(Double.parseDouble(startWay.getLatitude())); + sni.setStartLongitude(Double.parseDouble(startWay.getLongitude())); + sni.setStartLocationText(startWay.getAddress()); + sni.setStartCountrySubdivisionCode(sob.getData().getStartCountrySubdivisionCode()); + sni.setEndLatitude(Double.parseDouble(endWay.getLatitude())); + sni.setEndLongitude(Double.parseDouble(endWay.getLongitude())); + sni.setEndLocationText(endWay.getAddress()); + sni.setEndCountrySubdivisionCode(sob.getData().getEndCountrySubdivisionCode()); + snis[0]=sni; + LocationOpenApi.pause(con,sob.getData().getCarNumber(), UserParts.getUser(con).getData().getRname(), remark,snis, new OnResultListener() { + + @Override + public void onFailure(String s, String s1) { + Log.e("交通厅-暂停定位失败",s+s1+""); + } + + @Override + public void onSuccess(List list) { + Log.e("交通厅-暂停定位成功",gson.toJson(list)); + } + + }); + } + + //重启定位 + //对应 pause 接口,本接口的作用是对已暂停的运单列表执行重启定位操作 + public static void restart(Context con,StartOrderBean sob,String remark){ + ShippingNoteInfo[] snis=new ShippingNoteInfo[1]; + ShippingNoteInfo sni=new ShippingNoteInfo(); + StartOrderBean.DataDTO.WayChildrenDTO startWay=sob.getData().getWayChildren().get(0); + StartOrderBean.DataDTO.WayChildrenDTO endWay=sob.getData().getWayChildren().get(sob.getData().getWayChildren().size()-1); + sni.setShippingNoteNumber(sob.getData().getShippingNoteNumber()); + sni.setSerialNumber("0000"); + sni.setStartLatitude(Double.parseDouble(startWay.getLatitude())); + sni.setStartLongitude(Double.parseDouble(startWay.getLongitude())); + sni.setStartLocationText(startWay.getAddress()); + sni.setStartCountrySubdivisionCode(sob.getData().getStartCountrySubdivisionCode()); + sni.setEndLatitude(Double.parseDouble(endWay.getLatitude())); + sni.setEndLongitude(Double.parseDouble(endWay.getLongitude())); + sni.setEndLocationText(endWay.getAddress()); + sni.setEndCountrySubdivisionCode(sob.getData().getEndCountrySubdivisionCode()); + snis[0]=sni; + LocationOpenApi.restart(con, sob.getData().getCarNumber(), UserParts.getUser(con).getData().getRname(), remark,snis, new OnResultListener() { + + @Override + public void onFailure(String s, String s1) { + Log.e("交通厅-重启定位失败",s+s1+""); + } + + @Override + public void onSuccess(List list) { + Log.e("交通厅-重启定位成功",gson.toJson(list)); + } + + }); + } + + //结束定位-卸货 + public static void stop(Context con,StartOrderBean sob,String remark){ + ShippingNoteInfo[] snis=new ShippingNoteInfo[1]; + ShippingNoteInfo sni=new ShippingNoteInfo(); + StartOrderBean.DataDTO.WayChildrenDTO startWay=sob.getData().getWayChildren().get(0); + StartOrderBean.DataDTO.WayChildrenDTO endWay=sob.getData().getWayChildren().get(sob.getData().getWayChildren().size()-1); + sni.setShippingNoteNumber(sob.getData().getShippingNoteNumber()); + sni.setSerialNumber("0000"); + sni.setStartLatitude(Double.parseDouble(startWay.getLatitude())); + sni.setStartLongitude(Double.parseDouble(startWay.getLongitude())); + sni.setStartLocationText(startWay.getAddress()); + sni.setStartCountrySubdivisionCode(sob.getData().getStartCountrySubdivisionCode()); + sni.setEndLatitude(Double.parseDouble(endWay.getLatitude())); + sni.setEndLongitude(Double.parseDouble(endWay.getLongitude())); + sni.setEndLocationText(endWay.getAddress()); + sni.setEndCountrySubdivisionCode(sob.getData().getEndCountrySubdivisionCode()); + snis[0]=sni; + //remark="[00]车辆损坏货物无法送达"; + //sob.getData().setCarNumber("豫PK2861"); + LocationOpenApi.stop(con, sob.getData().getCarNumber(),UserParts.getUser(con).getData().getRname(), remark,snis, new OnResultListener() { + @Override + public void onFailure(String s, String s1) { + Log.e("交通厅-结束定位失败",s+s1+""); + } + + @Override + public void onSuccess(List list) { + Log.e("交通厅-结束定位成功",gson.toJson(list)); + Intent stopIntent = new Intent(con,JTTSendService.class); + con.stopService(stopIntent); + } + }); + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/AuthRequest.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/AuthRequest.java new file mode 100644 index 0000000..b2d561e --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/AuthRequest.java @@ -0,0 +1,157 @@ +package com.arpa.hndahesudintocctmsdriver.request; + +import android.content.Context; +import android.os.Handler; +import android.util.Log; + +import com.arpa.hndahesudintocctmsdriver.util.map.MapUtil; +import com.google.gson.Gson; +import com.arpa.hndahesudintocctmsdriver.request.bean.IDInputBean; +import com.arpa.hndahesudintocctmsdriver.request.bean.LicenseInputBean; +import com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity; +import com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; +import com.arpa.hndahesudintocctmsdriver.util.http.OkDate; +import com.arpa.hndahesudintocctmsdriver.util.http.OkHttpUtil; +import com.arpa.hndahesudintocctmsdriver.util.http.RequestUtil; + +import java.io.File; +import java.util.HashMap; +import java.util.Map; + +import okhttp3.Request; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/5 15:09 + * @description:认证信息接口 + */ +public class AuthRequest { + + private String token; + private Gson gson = new Gson(); + + public String getToken(Context con) { + return SPUtil.getSP(con, LoginActivity.USER, LoginActivity.USER_TOKEN); + } + + //获取身份证认证信息 + public void getCard(Context con, Handler hd) { + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getIsauthIdcard(), ""), getToken(con), con); + RequestUtil.start(1, CertificatesActivity.ISAUTH, re, con, hd); + } + + //获取驾驶证认证信息 + public void getDriverAuthLicense(Context con, Handler hd) { + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getIsauthDriverauthLicense(), ""), getToken(con), con); + RequestUtil.start(1, CertificatesActivity.ISAUTH, re, con, hd); + } + + //上传文件 + public void upload(Context con, Handler hd, File file) { + Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getUPLOAD(), ""), getToken(con), file); + RequestUtil.start(12, "upload", re, con, hd); + } + + //上传个人信息 + //身份证认证{{url}}/app/driver/auth/driverAuthIdCard + public void driverAuthIdCard(Context con, Handler hd, IDInputBean ib) { + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getDRIVERAUTHIDCARD(), gson.toJson(ib)), getToken(con), con); + RequestUtil.start(1, "driverAuthIdCard", re, con, hd); + } + + //驾驶证认证 + public void driverAuthLicense(Context con, Handler hd, LicenseInputBean iib) { + Log.e("--认证信息--", gson.toJson(iib)); + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getDRIVERAUTHLICENSE(), gson.toJson(iib)), getToken(con), con); + RequestUtil.start(1, "driverAuthLicense", re, con, hd); + } + + //保存车辆信息-行驶证/app/carDriver/saveVehicleLicense + public void saveVehicleLicense(Context con, Handler hd, String data) { + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getSAVEVEHICLELICENSE(), data), getToken(con), con); + RequestUtil.start(1, "saveVehicleLicense", re, con, hd); + } + + //上传头像 + public void upHeadImg(Context con, Handler hd, String imgUrl) { + String mt = "{\"headportrait\": \"" + imgUrl + "\"}"; + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getUploadHead(), mt), getToken(con), con); + RequestUtil.start(1, "upHeadImg", re, con, hd); + } + + //上传车辆照片 + public void saveCarImg(Context con, Handler hd, String carId, int imgId, int type) { + String mt = "{\n" + + "\t\"carId\": " + carId + ",\n" + + "\t\"imgId\": " + imgId + ",\n" + + "\t\"type\": " + type + "\n" + + "}"; + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getSAVECARIMG(), mt), getToken(con), con); + RequestUtil.start(1, "saveCarImg", re, con, hd); + } + + //从业资格证认证/app/driver/auth/driverAuthQualification + public void driverAuthQualification(Context con, Handler hd, String id, int imgid, String date) { + String mt = "{\n" + + "\t\"qualificationCertificate\": \"" + id + "\",\n" + + "\t\"qualificationCertificatePhoto\": " + imgid + ",\n" + + "\t\"qualificationCertificateValidity\": \"" + date + "\"\n" + + "}"; + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getDriverAuthQualification(), mt), getToken(con), con); + RequestUtil.start(1, "driverAuthQualification", re, con, hd); + } + + + //从业资格证认证/app/driver/auth/driverAuthQualification + public void saveCarRegisterNo(Context con, Handler hd, String id, String registerNo) { + String mt = "{\n" + + "\t\"carId\": \"" + id + "\",\n" + + "\t\"registerNo\": " + registerNo + ",\n" + + "}"; + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getDriverSaveCarRegisterNo(), mt), getToken(con), con); + RequestUtil.start(1, "saveCarRegisterNo", re, con, hd); + } + + //道路运输许可证编号 + public void saveCarRoadLicenseNo(Context con, Handler hd, String id, String registerNo) { + String mt = "{\n" + + "\t\"carId\": \"" + id + "\",\n" + + "\t\"roadLicense\": " + registerNo + ",\n" + + "}"; + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getDriverSaveCarRoadLicenseNo(), mt), getToken(con), con); + RequestUtil.start(1, "saveCarRoadLicenseNo", re, con, hd); + } + + //获取资格证认证信息 + public void isDriverAuthQualification(Context con, Handler hd) { + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getIsAuthDriverAuthQualification(), ""), getToken(con), con); + RequestUtil.start(1, "isAuthDriverAuthQualification", re, con, hd); + } + + //添加挂车/app/carDriver/saveDrawCar + public void saveDrawCar(Context con, Handler hd, String map) { + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getSaveDrawCar(), map), getToken(con), con); + RequestUtil.start(1, "saveDrawCar", re, con, hd); + } + + //获取实名认证的url + public void getAuthUrl(Context con, Handler hd) { + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getAuthUrl(), ""), getToken(con), con); + RequestUtil.start(1, "authUrl", re, con, hd); + } + //获取车牌颜色 + public void getCarColor(Context con, Handler hd) { +// Map map = new HashMap<>(); + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getCarColor(), ""), getToken(con), con); + RequestUtil.start(1, CertificatesActivity.CAR_COLOR, re, con, hd); + } + + //获取燃油类型 + public void getCarEnergyType(Context con, Handler hd) { +// Map map = new HashMap<>(); + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getCarEnergyType(), ""), getToken(con), con); + RequestUtil.start(1, CertificatesActivity.CAR_ENERGY_TYPE, re, con, hd); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/BusinessRequest.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/BusinessRequest.java new file mode 100644 index 0000000..d5c55fd --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/BusinessRequest.java @@ -0,0 +1,34 @@ +package com.arpa.hndahesudintocctmsdriver.request; + +import android.content.Context; +import android.os.Handler; +import android.util.Log; + +import com.arpa.hndahesudintocctmsdriver.ui.business.Md5Util; +import com.arpa.hndahesudintocctmsdriver.util.http.OkDate; +import com.arpa.hndahesudintocctmsdriver.util.http.OkHttpUtil; +import com.arpa.hndahesudintocctmsdriver.util.http.RequestUtil; + +import okhttp3.Request; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/9/6 14:04 + * @description: + */ +public class BusinessRequest { + + public void GetBusinessList(Context con, Handler hd,String longitude,String latitude,String name){ + String url="https://openapi.dianping.com/router/poiinfo/commonsearch"; + Log.e("url",url+ Md5Util.resUrl(longitude,latitude,name)); + Request re = OkHttpUtil.get(new OkDate(url+ Md5Util.resUrl(longitude,latitude,name), "post", "")); + RequestUtil.start(12, "business_list",re,con,hd); + } + public void GetBusiness(Context con, Handler hd, String id){ + String url="https://openapi.dianping.com/router/poiinfo/detailinfo"; + Request re = OkHttpUtil.get(new OkDate(url+Md5Util.resDelUrl(id), "post", "")); + RequestUtil.start(1, "business",re,con,hd); + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/HuoYuanRequset.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/HuoYuanRequset.java new file mode 100644 index 0000000..4bb9936 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/HuoYuanRequset.java @@ -0,0 +1,160 @@ +package com.arpa.hndahesudintocctmsdriver.request; + +import com.google.gson.Gson; +import com.arpa.hndahesudintocctmsdriver.request.bean.LUInputBean; +import com.arpa.hndahesudintocctmsdriver.request.bean.TrackInputBean; +import com.arpa.hndahesudintocctmsdriver.request.bean.UploadReceiptInputBean; +import com.arpa.hndahesudintocctmsdriver.ui.home.HuoYuanFragmengt; +import com.arpa.hndahesudintocctmsdriver.ui.home.HuoYunDelActivity; +import com.arpa.hndahesudintocctmsdriver.ui.home.StartYunDanActivity; +import com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan.OrderComplaintActivity; +import com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan.ShangChuangImgActivity; +import com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity; +import com.arpa.hndahesudintocctmsdriver.util.map.MapUtil; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; +import com.arpa.hndahesudintocctmsdriver.util.http.OkDate; +import com.arpa.hndahesudintocctmsdriver.util.http.OkHttpUtil; +import com.arpa.hndahesudintocctmsdriver.util.http.RequestUtil; + +import android.content.Context; +import android.os.Handler; + +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +import okhttp3.Request; + +public class HuoYuanRequset{ + + private Context con; + private Handler hd; + + public HuoYuanRequset(Context con, Handler hd) { + this.con = con; + this.hd = hd; + } + + //引入gson + private Gson gson=new Gson(); + + public String getToken(Context con) { + return SPUtil.getSP(con, LoginActivity.USER,LoginActivity.USER_TOKEN); + } + //获取货源大厅列表数据 + public void getHuoYuan(int page,int limit){ + Map map=new HashMap<>(); + map.put("page",page); + map.put("limit",limit); + Request re; + if (getToken(con).equals("")) { + re = OkHttpUtil.post(new OkDate(RequestConstant.getGoodsHallUrl(), MapUtil.mapJson(map)),con); + }else{ + re = OkHttpUtil.posts(new OkDate(RequestConstant.getGoodsHallUrl(), MapUtil.mapJson(map)),getToken(con),con); + } + RequestUtil.start(1,"hl",re,con,hd); + } + + //获取货源详情数据 + public void getHuoYuanDel(int id){ + Map map=new HashMap<>(); + map.put("orderId",id); + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getGoodsDelUrl(),MapUtil.mapJson(map)),getToken(con),con); + RequestUtil.start(1, HuoYunDelActivity.HUOYUANDEL,re,con,hd); + } + + //确认接单 + public void confirm(String cid,int wid){ + Map map=new HashMap<>(); + map.put("carId",cid); + map.put("orderId",wid); + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getAgreeOrder(),MapUtil.mapJson(map)),getToken(con),con); + RequestUtil.start(1, HuoYunDelActivity.END,re,con,hd); + } + //获取执行中的运单 + public void startOrder(int id){ + Map map=new HashMap<>(); + map.put("waybillId",id); + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getGetStartOrder(),MapUtil.mapJson(map)),getToken(con),con); + RequestUtil.start(1, HuoYuanFragmengt.START_ORDER,re,con,hd); + } + //装货 + public void loading(LUInputBean lub){ + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getLOADING(), gson.toJson(lub)),getToken(con),con); + RequestUtil.start(1, ShangChuangImgActivity.TYPE_NAME[0],re,con,hd); + } + //卸货 + public void dischargeCargo(LUInputBean lub){ + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getUNLOADING(), gson.toJson(lub)),getToken(con),con); + RequestUtil.start(1, ShangChuangImgActivity.TYPE_NAME[1],re,con,hd); + } + //回单 + public void receipt(UploadReceiptInputBean urib){ + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getUploadReceipt(), gson.toJson(urib)),getToken(con),con); + RequestUtil.start(1, ShangChuangImgActivity.TYPE_NAME[2],re,con,hd); + } + //轨迹跟踪 + public void trackTracking(TrackInputBean tib){ + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getTrackTracking(), gson.toJson(tib)),getToken(con),con); + RequestUtil.start(1, "genzong",re,con,hd); + } + //上传文件 + public void uploadFile(File file){ + Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getUPLOAD(), ""),getToken(con),file); + RequestUtil.start(12, "upload",re,con,hd); + } + //获取评价信息 + public void getEvaluate(int waybillId){ + Map map=new HashMap<>(); + map.put("waybillId",waybillId); + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getGetEvaluate(),MapUtil.mapJson(map)),getToken(con),con); + RequestUtil.start(1, StartYunDanActivity.GET_EVALUTE,re,con,hd); + } + //投诉 + public void Complaint(String content,int waybillId){ + Map map=new HashMap<>(); + map.put("content",content); + map.put("fileIds",new ArrayList<>()); + map.put("waybillId",waybillId); + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getCOMPLAINT(),MapUtil.mapJson(map)),getToken(con),con); + RequestUtil.start(1, OrderComplaintActivity.COMPLAINT,re,con,hd); + } + //获取投诉信息 + public void getComplaint(int waybillId){ + Map map=new HashMap<>(); + map.put("waybillId",waybillId); + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getGetComplaint(),MapUtil.mapJson(map)),getToken(con),con); + RequestUtil.start(1, OrderComplaintActivity.GET_COMPLAINT,re,con,hd); + } + //保存评价信息 + public void keepEvaluate(int score,String content,int oid){ + Map map=new HashMap<>(); + map.put("attitudeScore",score); + map.put("content",content); + map.put("fileIds",new ArrayList<>()); + map.put("waybillId",oid); + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getEvaluationV2(),MapUtil.mapJson(map)),getToken(con),con); + RequestUtil.start(1, StartYunDanActivity.KEEP_EVALUTE,re,con,hd); + } + public final static String ASYMMETRYWAYBILL="waybill_getAsymmetryWaybill"; + + //获取装货失败信息 + public void getAsymmetryWaybill(){ + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getGetErrorOrder(),""),getToken(con),con); + RequestUtil.start(1,ASYMMETRYWAYBILL,re,con,hd); + } + + public void getHuoYuanDealList(){ + Map map=new HashMap<>(); + map.put("page",1); + map.put("limit",100); + Request re; + if (getToken(con).equals("")) { + re = OkHttpUtil.post(new OkDate(RequestConstant.getGetExampleList(), MapUtil.mapJson(map)),con); + }else{ + re = OkHttpUtil.posts(new OkDate(RequestConstant.getGetExampleList(), MapUtil.mapJson(map)),getToken(con),con); + } + RequestUtil.start(1,"dealList",re,con,hd); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/NewsRequest.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/NewsRequest.java new file mode 100644 index 0000000..a279db9 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/NewsRequest.java @@ -0,0 +1,97 @@ +package com.arpa.hndahesudintocctmsdriver.request; + +import android.content.Context; +import android.os.Handler; +import android.util.Log; + +import com.arpa.hndahesudintocctmsdriver.util.map.MapUtil; +import com.google.gson.Gson; +import com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity; +import com.arpa.hndahesudintocctmsdriver.ui.news.NewsActivity; +import com.arpa.hndahesudintocctmsdriver.ui.news.NewsFragment; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; +import com.arpa.hndahesudintocctmsdriver.util.http.OkDate; +import com.arpa.hndahesudintocctmsdriver.util.http.OkHttpUtil; +import com.arpa.hndahesudintocctmsdriver.util.http.RequestUtil; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import okhttp3.Request; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/7/31 17:34 + * @description:消息模块的请求 + */ +public class NewsRequest { + + String token; + private Gson gson=new Gson(); + public String getToken(Context con) { + return SPUtil.getSP(con, LoginActivity.USER,LoginActivity.USER_TOKEN); + } + public void getXiaoXiLists(Context con, Handler hd){ + token= SPUtil.getSP(con, LoginActivity.USER,LoginActivity.USER_TOKEN); + String mt=""; + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getXiaoXiListUrl(), mt),token,con); + RequestUtil.start(1, NewsFragment.XIAOXILIST,re,con,hd); + } + public void getXiaoXiList(Context con, Handler hd,int type,int page){ + Map map=new HashMap<>(); + map.put("cate",type); + map.put("content",""); + map.put("createTimeEnd",""); + map.put("createTimeStart",""); + map.put("createUserName",""); + map.put("limit",10); + map.put("messageTypes",""); + map.put("page",page); + map.put("receiverId",0); + map.put("receiverName",""); + map.put("roleId",0); + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getXiaoxiAll(), MapUtil.mapJson(map)),getToken(con),con); + RequestUtil.start(1, NewsActivity.XIAOXILIST_TYPE,re,con,hd); + } + + public void DelNews(Context con, Handler hd,int id){ + Map map=new HashMap<>(); + map.put("id",id); + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getXiaoxiDel(),MapUtil.mapJson(map)),getToken(con),con); + RequestUtil.start(1, NewsActivity.NEWS_DEL,re,con,hd); + } + + public void delNewsAll(Context con, Handler hd,Model m){ + m.setId(0); + token= SPUtil.getSP(con, LoginActivity.USER,LoginActivity.USER_TOKEN); + Log.e("-xm-",gson.toJson(m)); + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getXiaoxiDelAll(),gson.toJson(m)),getToken(con),con); + RequestUtil.start(1, NewsActivity.NEWS_DEL,re,con,hd); + ///app/message/setReadAll + } + + public static class Model{ + + private int id; + private List ids; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public List getIds() { + return ids; + } + + public void setIds(List ids) { + this.ids = ids; + } + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/OCRRequest.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/OCRRequest.java new file mode 100644 index 0000000..2a80256 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/OCRRequest.java @@ -0,0 +1,62 @@ +package com.arpa.hndahesudintocctmsdriver.request; + +import android.content.Context; +import android.os.Handler; + +import com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity; +import com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; +import com.arpa.hndahesudintocctmsdriver.util.http.OkDate; +import com.arpa.hndahesudintocctmsdriver.util.http.OkHttpUtil; +import com.arpa.hndahesudintocctmsdriver.util.http.RequestUtil; +import java.io.File; +import okhttp3.Request; + +public class OCRRequest { + + public String getToken(Context con) { + return SPUtil.getSP(con, LoginActivity.USER,LoginActivity.USER_TOKEN); + } + + //银行卡识别 + public void ORCBank(Context con, Handler hd, File file){ + Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getOrcBank()),getToken(con),file); + RequestUtil.start(12, "OCR_BANK",re,con,hd); + } + //身份证正面识别 + public void OCRCard(Context con, Handler hd, File file){ + Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getIdCardFront()),getToken(con),file); + RequestUtil.start(12, CertificatesActivity.TYPE_NAME[0],re,con,hd); + } + //身份证背面识别 + public void OCRCardBack(Context con, Handler hd, File file){ + Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getIdCardBack()),getToken(con),file); + RequestUtil.start(12, CertificatesActivity.TYPE_NAME_BANK[0], re,con,hd); + } + //驾驶证正面识别 + public void OCRDrivingLicense(Context con, Handler hd, File file){ + Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getDrivingLicense()),getToken(con),file); + RequestUtil.start(12, CertificatesActivity.TYPE_NAME[1],re,con,hd); + } + //驾驶证背面识别 + public void OCRDrivingLicenseBack(Context con, Handler hd, File file){ + Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getDrivingLicenseBack()),getToken(con),file); + RequestUtil.start(12, CertificatesActivity.TYPE_NAME_BANK[1],re,con,hd); + } + //行驶证正面识别 + public void OCRVehicleLicense(Context con, Handler hd, File file){ + Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getVehicleLicense()),getToken(con),file); + RequestUtil.start(12, CertificatesActivity.TYPE_NAME[2],re,con,hd); + } + //行驶证背面识别 + public void OCRVehicleLicenseBack(Context con, Handler hd, File file,String carId,String carNum){ + Request re = OkHttpUtil.postFiles(new OkDate(RequestConstant.getVehicleLicenseBack()),file,getToken(con),carId,carNum); + RequestUtil.start(12, CertificatesActivity.TYPE_NAME_BANK[2],re,con,hd); + } + + public void OCRPlateLicense(Context con, Handler hd, File file){ + Request re = OkHttpUtil.postFile(new OkDate(RequestConstant.getPlateLicense()),getToken(con),file); + RequestUtil.start(12, "carName",re,con,hd); + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/RequestConstant.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/RequestConstant.java new file mode 100644 index 0000000..a9b4ee5 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/RequestConstant.java @@ -0,0 +1,400 @@ +package com.arpa.hndahesudintocctmsdriver.request; + +public class RequestConstant { + + public static String TOKEN="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MzA0MDE3OTIsInVzZXJJZCI6ODAsImlhdCI6MTYyNzcyMzM5Mn0.f9Q-UZVduW6nt1s0L-3vYsrOJJ8iuSCSlJ9uu8yIxBI"; + //域名地址http://request.one-clouds.com/api https://huoyun.mzxd56.com/api http://app.dahehuoyun.com/api + public static String BASE_URL ="http://app.dahehuoyun.com/api"; + //版本更新/app/check/version + public static String VERSION ="/app/check/version"; + //全部代码 + public static String CODE_DATA ="/common/dic/listdata"; + //短信验证码 + private static final String SEND_CODE = "/common/sendcode"; + //登录 + private static final String REG="/common/register"; + //注册 + private static final String LOGIN="/common/register"; + //上传文件 + private static final String UPLOAD="/common/resource/upload"; + //配置项信息 + private static final String CONFIG="/common/config/list"; + //获取开屏页图片和轮播图 + private static final String GET_IMAGE="/common/resource/image/config"; + //司机认证信息 + private static final String DRIVER_AUTH_INFO="/app/driver/auth/authInfo"; + //货源大厅 + private static final String GOODS_HALL="/app/driver/order/getHallList"; + //历史成交货源 + private static final String GET_EXAMPLE_LIST="/app/driver/order/getExampleList"; + //货源详情 + private static final String GOODS_DEL="/app/driver/order/findOrderInfoV2"; + //账户信息 + private static final String USER="/app/user/getUserInfo"; + //银行卡列表 + private static final String BANK_CARD_LIST="/app/bankCard/findPage"; + //绑定银行卡 + private static final String INS_BANKCARD="/app/bankCard/bandCard"; +// private static final String INS_BANKCARD="/app/bankCard/save"; + //删除银行卡 +// private static final String DELETE_BANKCARD="/app/bankCard/deleteCard"; + private static final String DELETE_BANKCARD="/app/bankCard/unBandCard"; + //生成电子账户 + private static final String ADD_CONTRACTS="/app/bank/addContracts"; + //获取电子账户 + private static final String GET_CONTRACTS="/app/bank/getContracts"; + //获取账户未读消息 + private static final String XIAOXI_LIST="/app/message/findCurrentUserNotReadCount"; + //获取账户消息 + private static final String XIAOXI_ALL="/app/message/findPage"; + //已读消息 + private static final String XIAOXI_DEL="/app/message/setReadById"; + //已读全部消息 + private static final String XIAOXI_DEL_ALL="/app/message/setReadAll"; + //运单列表 + private static final String ORDER_LIST="/app/driver/waybill/listV2"; + //抢单 + private static final String AGREE_ORDER="/app/driver/waybill/grabDriverOrdersContruct"; + //获取正在执行的运单/运单详情 + private static final String GET_START_ORDER="/app/driver/waybill/getExecuteWaybill"; + //查看承运合同 + private static final String GET_CARRY_CONTRACT="/common/appContract/findCarrierContract"; + //评价信息保存 + private static final String EVALUATIONV2="/app/driver/waybill/evaluationV2"; + //装货 + private static final String LOADING="/app/driver/waybill/loadingV2"; + //卸货 + private static final String UNLOADING="/app/driver/waybill/unloadV2"; + //上传回单 + private static final String UPLOAD_RECEIPT="/app/driver/waybill/uploadReceipt"; + //轨迹跟踪 + private static final String TRACK_TRACKING="/app/driver/waybill/addAppLocation"; + //获取评价信息 + private static final String GET_EVALUATE="/app/driver/waybill/listAppraises"; + //获取投诉信息 + private static final String GET_COMPLAINT="/app/driver/waybill/listComplaint"; + //保存投诉信息 + private static final String COMPLAINT="/app/driver/waybill/complaintV2"; + //保存评价信息 + private static final String EVALUATION_V2="/app/driver/waybill/evaluationV2"; + //车辆列表 + private static final String GET_CAR_LIST="/app/carDriver/getCarList"; + //车辆详情 + private static final String GET_CAR_DEL="/app/carDriver/getCarInfo"; + //删除车辆 + private static final String DEL_CAR="/app/carDriver/removeCar"; + //上传车辆照片 + private static final String SAVECARIMG="/app/carDriver/saveCarImg"; + //上传头像保存 + private static final String UPLOAD_HEAD="/app/user/uploadHeadportrait"; + //获取上传失败的订单 + private static final String GET_ERROR_ORDER="/app/driver/waybill/getAsymmetryWaybill"; + //提现 + private static final String TIXIAN="/app/account/cashApply/bank/charge"; + //--ORC识别-- + + //银行卡识别 + private static final String ORC_BANK="/common/ocr/bank"; + //身份证正面 + private static final String ID_CARD_FRONT="/common/ocr/idCardFront"; + //身份证识别反面 + 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_BACK="/common/ocr/drivingLicenseBack"; + //行驶证正面 + private static final String VEHICLE_LICENSE="/common/ocr/vehicleLicense"; + //行驶证副页 + private static final String VEHICLE_LICENSE_BACK="/common/ocr/v2/vehicleBackLicenseV3"; + //身份证认证信息 + private static final String ISAUTH_IDCARD="/app/driver/auth/isAuthIdCard"; + //驾驶证认证信息 + private static final String ISAUTH_DRIVERAUTH_LICENSE="/app/driver/auth/isAuthDriverAuthLicense"; + //资格证认证信息 + private static final String IS_AUTH_DRIVER_AUTH_QUALIFICATION="/app/driver/auth/isAuthDriverAuthQualification"; + //行驶证认证信息 + //身份证认证 + private static final String DRIVERAUTHIDCARD="/app/driver/auth/driverAuthIdCard"; + //驾驶证认证 + private static final String DRIVERAUTHLICENSE="/app/driver/auth/driverAuthLicense"; + //行驶证认证 + private static final String SAVEVEHICLELICENSE="/app/carDriver/saveVehicleLicense"; + //从业资格证认证 + 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_SAVECARROADLICENSENO="/app/carDriver/saveCarRoadLicenseNo"; + //党员认证 + private static final String PARTY_MEMBER="/app/user/partyMember"; + //实名认证 + private static final String AUTH_URL="/app/driver/auth/getAuthUrl"; + //车牌号 + private static final String PLATE_LICENSE="/common/ocr/plateLicense"; + + //添加挂车 + private static final String SAVE_DRAW_CAR="/app/carDriver/saveDrawCar"; + //提现记录 + private static final String CHANGE_RECORD="/app/account/change/record"; + + //提现手续费 + private static final String WITHDRAWALS_CHARGE="/app/account/withdrawals/charge"; + + //提现配置信息 + private static final String WITHDRAWALS_CONFIG="/app/account/withdrawals/config"; + + //获取车辆颜色 + private static final String CAR_COLOR="/app/common/carColorTypeList"; + + //获取车辆颜色 + private static final String CAR_ENERGYTYPE="/app/common/carEnergyTypeList"; + + //车辆自动审核触发器 + private static final String CAR_AUDIT="/app/carDriver/carAutomaticAudit"; + + public static String getCarAudit(){ + return BASE_URL +CAR_AUDIT; + } + + public static String getCarColor(){ + return BASE_URL +CAR_COLOR; + } + + public static String getCarEnergyType(){ + return BASE_URL + CAR_ENERGYTYPE; + } + + //app/driver/auth/driverExpire + public static final String GET_CERTIFICATE_EXPIRED="/app/driver/auth/driverExpire"; + + public static String getSendCodeUrl() { + return BASE_URL +SEND_CODE; + } + + public static String getREGUrl() { + return BASE_URL +REG; + } + + public static String getLoginUrl() { + return BASE_URL +LOGIN; + } + + public static String getDriverAuthInfoUrl() { + return BASE_URL +DRIVER_AUTH_INFO; + } + + public static String getGoodsHallUrl() { + return BASE_URL +GOODS_HALL; + } + + public static String getGoodsDelUrl() { + return BASE_URL +GOODS_DEL; + } + + public static String getUserUrl() { + return BASE_URL + USER; + } + + public static String getDeleteBankcard() { + return BASE_URL + DELETE_BANKCARD; + } + + public static String getBankCardListUrl() { + return BASE_URL + BANK_CARD_LIST; + } + + public static String getXiaoXiListUrl() { return BASE_URL + XIAOXI_LIST; } + + public static String getXiaoxiAll() { return BASE_URL +XIAOXI_ALL; } + + public static String getOrderList() { + return BASE_URL +ORDER_LIST; + } + + public static String getAgreeOrder() { + return BASE_URL +AGREE_ORDER; + } + + public static String getGetStartOrder() { + return BASE_URL +GET_START_ORDER; + } + + public static String getGetCarryContract() { + return BASE_URL +GET_CARRY_CONTRACT; + } + + public static String getEVALUATIONV2() { + return BASE_URL +EVALUATIONV2; + } + + public static String getLOADING() { + return BASE_URL +LOADING; + } + + public static String getUNLOADING() { + return BASE_URL +UNLOADING; + } + + public static String getGetEvaluate() { + return BASE_URL +GET_EVALUATE; + } + + public static String getGetComplaint() { + return BASE_URL +GET_COMPLAINT; + } + + public static String getOrcBank() { + return BASE_URL +ORC_BANK; + } + + public static String getIdCardFront() { + return BASE_URL +ID_CARD_FRONT; + } + + public static String getIdCardBack() { + return BASE_URL +ID_CARD_BACK; + } + + public static String getDrivingLicense() { + return BASE_URL +DRIVING_LICENSE; + } + + public static String getDrivingLicenseBack() { + return BASE_URL +DRIVING_LICENSE_BACK; + } + + public static String getVehicleLicense() { + return BASE_URL +VEHICLE_LICENSE; + } + + public static String getVehicleLicenseBack() { + return BASE_URL +VEHICLE_LICENSE_BACK; + } + + public static String getGetCarList() { + return BASE_URL +GET_CAR_LIST; + } + + public static String getGetCarDel() { + return BASE_URL +GET_CAR_DEL; + } + + public static String getCodeData() { + return BASE_URL +CODE_DATA; + } + + public static String getIsauthIdcard() { + return BASE_URL +ISAUTH_IDCARD; + } + + public static String getIsauthDriverauthLicense() { return BASE_URL +ISAUTH_DRIVERAUTH_LICENSE; } + + public static String getUploadReceipt() { return BASE_URL +UPLOAD_RECEIPT; } + + public static String getUPLOAD() { return BASE_URL +UPLOAD; } + + public static String getTrackTracking() {return BASE_URL +TRACK_TRACKING; } + + public static String getEvaluationV2() { return BASE_URL +EVALUATION_V2; } + + public static String getDRIVERAUTHIDCARD() { + return BASE_URL +DRIVERAUTHIDCARD; + } + + public static String getDRIVERAUTHLICENSE() { + return BASE_URL +DRIVERAUTHLICENSE; + } + + public static String getSAVEVEHICLELICENSE() { + return BASE_URL +SAVEVEHICLELICENSE; + } + + public static String getSAVECARIMG() { + return BASE_URL +SAVECARIMG; + } + + public static String getUploadHead() { return BASE_URL +UPLOAD_HEAD; } + + public static String getInsBankcard() { + return BASE_URL +INS_BANKCARD; + } + + public static String getDelCar() { return BASE_URL +DEL_CAR; } + + public static String getXiaoxiDel() { return BASE_URL +XIAOXI_DEL; } + + public static String getCOMPLAINT() { return BASE_URL+COMPLAINT; } + + public static String getXiaoxiDelAll() { return BASE_URL+XIAOXI_DEL_ALL; } + + public static String getDriverAuthQualification() { return BASE_URL+DRIVER_AUTH_QUALIFICATION; } + + public static String getDriverSaveCarRegisterNo() { return BASE_URL+DRIVER_AUTH_SAVECARREGISTERNO; } + + public static String getDriverSaveCarRoadLicenseNo() { return BASE_URL+DRIVER_AUTH_SAVECARROADLICENSENO; } + + public static String getSaveDrawCar() { return BASE_URL+SAVE_DRAW_CAR; } + + public static String getIsAuthDriverAuthQualification() { + return BASE_URL+IS_AUTH_DRIVER_AUTH_QUALIFICATION; + } + + public static String getVERSION() { + return BASE_URL+VERSION; + } + + public static String getAddContracts() { + return BASE_URL+ADD_CONTRACTS; + } + + public static String getGetContracts() { + return BASE_URL+GET_CONTRACTS; + } + + public static String getTIXIAN() { + return BASE_URL+TIXIAN; + } + + public static String getPartyMember() { + return BASE_URL+PARTY_MEMBER; + } + + public static String getCONFIG() { + return BASE_URL+CONFIG; + } + + public static String getChangeRecord() { + return BASE_URL+CHANGE_RECORD; + } + + public static String getChangeCharge() { + return BASE_URL+WITHDRAWALS_CHARGE; + } + + public static String getChangeConfig() { + return BASE_URL+WITHDRAWALS_CONFIG; + } + + public static String getGetErrorOrder() { return BASE_URL+GET_ERROR_ORDER; } + + public static String getGetExampleList() { + return BASE_URL+GET_EXAMPLE_LIST; + } + + public static String getAuthUrl() { + return BASE_URL+AUTH_URL; + } + + public static String getPlateLicense() { + return BASE_URL+PLATE_LICENSE; + } + + public static String getGetImage() { + return BASE_URL+GET_IMAGE; + } + + public static String getGetCertificateExpired() { + return BASE_URL+GET_CERTIFICATE_EXPIRED; + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/UserRequset.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/UserRequset.java new file mode 100644 index 0000000..e05acca --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/UserRequset.java @@ -0,0 +1,227 @@ +package com.arpa.hndahesudintocctmsdriver.request; + +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.net.Uri; +import android.os.Build; +import android.os.Handler; +import android.provider.Settings; + +import androidx.annotation.RequiresApi; + +import com.arpa.hndahesudintocctmsdriver.event.VehicleEvent; +import com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity; +import com.arpa.hndahesudintocctmsdriver.ui.business.Md5Util; +import com.google.gson.Gson; +import com.arpa.hndahesudintocctmsdriver.request.bean.LoginRegInputBean; +import com.arpa.hndahesudintocctmsdriver.ui.home.OrderAllActivity; +import com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity; +import com.arpa.hndahesudintocctmsdriver.ui.auth.VehicleAuthActivity; +import com.arpa.hndahesudintocctmsdriver.ui.my.WoDeFragment; +import com.arpa.hndahesudintocctmsdriver.util.map.MapUtil; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; +import com.arpa.hndahesudintocctmsdriver.util.http.OkDate; +import com.arpa.hndahesudintocctmsdriver.util.http.OkHttpUtil; +import com.arpa.hndahesudintocctmsdriver.util.http.RequestUtil; + +import java.util.HashMap; +import java.util.Map; + +import okhttp3.Request; + +public class UserRequset { + + private Context con; + private Handler hd; + + public UserRequset(Context con, Handler hd) { + this.con = con; + this.hd = hd; + } + + private Gson gson = new Gson(); + + public String getToken(Context con) { + return SPUtil.getSP(con, LoginActivity.USER, LoginActivity.USER_TOKEN); + } + + //获取全部代码表 + public void getCodeData() { + Request re = OkHttpUtil.post(new OkDate(RequestConstant.getSendCodeUrl(), ""), con); + RequestUtil.start(1, "未知", re, con, hd); + } + + //获取手机验证码 + public void getPhoneCode(String phone) { + Map map = new HashMap<>(); + map.put("phone", phone); + map.put("sendType", 1); + Request re = OkHttpUtil.post(new OkDate(RequestConstant.getSendCodeUrl(), MapUtil.mapJson(map)), con); + RequestUtil.start(1, LoginActivity.CODE_RESULT, re, con, hd); + } + + //账户注册 + public void UserReg() { + Request re = OkHttpUtil.post(new OkDate(RequestConstant.getREGUrl(), ""), con); + RequestUtil.start(1, "", re, con, hd); + } + + //账户登录 + public void UserLogin(LoginRegInputBean lrib) { + Request re = OkHttpUtil.post(new OkDate(RequestConstant.getLoginUrl(), gson.toJson(lrib)), con); + RequestUtil.start(1, LoginActivity.LOGIN_RESULT, re, con, hd); + } + + //账户信息 + public void User() { + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getUserUrl(), ""), getToken(con), con); + RequestUtil.start(1, "userdata", re, con, hd); + } + + //司机认证信息 + public void driverAuthData() { + String mt = "{}"; + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getDriverAuthInfoUrl(), mt), getToken(con), con); + RequestUtil.start(1, WoDeFragment.AUTH_DATA, re, con, hd); + } + + //车辆列表 + public void vehicleList(String type) { + Map map = new HashMap<>(); + map.put("type", type); + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getGetCarList(), MapUtil.mapJson(map)), getToken(con), con); + RequestUtil.start(1, WoDeFragment.VEHICLE_LIST, re, con, hd); + } + + //删除车辆 + public void delVehicle(String id) { + Map map = new HashMap<>(); + map.put("carId", id); + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getDelCar(), MapUtil.mapJson(map)), getToken(con), con); + RequestUtil.start(1, VehicleAuthActivity.DEL_CAR, re, con, hd); + } + + //解绑车辆 + public void relieveVehicle(String id) { + Map map = new HashMap<>(); + map.put("carId", id); + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getGetCarDel(), MapUtil.mapJson(map)), getToken(con), con); + RequestUtil.start(1, WoDeFragment.VEHICLE_DEL, re, con, hd); + } + + //车辆详情 + public void vehicleDel(String id) { + Map map = new HashMap<>(); + map.put("carId", id); + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getGetCarDel(), MapUtil.mapJson(map)), getToken(con), con); + RequestUtil.start(1, WoDeFragment.VEHICLE_DEL, re, con, hd); + } + + //司机身份证认证 + public void driverIDAuth() { + String url = RequestConstant.BASE_URL + "/app/driver/auth/authInfo"; + String mt = ""; + Request re = OkHttpUtil.posts(new OkDate(url, mt), getToken(con), con); + RequestUtil.start(1, "", re, con, hd); + } + + //司机运单列表 + public void getListV2(int page, int limit) { + Map map = new HashMap<>(); + map.put("page", page); + map.put("limit", limit); + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getOrderList(), MapUtil.mapJson(map)), getToken(con), con); + RequestUtil.start(1, OrderAllActivity.USER_ORDER_LIST, re, con, hd); + } + + //app更新 + public void upApp() { + String vs = "1.0.0"; + try { +// isOpenAppNoRe(); + vs = con.getPackageManager().getPackageInfo(con.getPackageName(), 0).versionName; + } catch (PackageManager.NameNotFoundException e) { + e.printStackTrace(); + } + Map map = new HashMap<>(); + map.put("source", 0); + map.put("version", vs); + Request re = OkHttpUtil.post(new OkDate(RequestConstant.getVERSION(), MapUtil.mapJson(map)), con); + RequestUtil.start(1, "up_app", re, con, hd); + } + + /** + * 判断是否开启未知应用安装权限 + */ + private void isOpenAppNoRe(){ + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + boolean b = con.getPackageManager().canRequestPackageInstalls(); + if (!b) { + startInstallPermissionSettingActivity(); + } + } + } + + /** + * 跳转到设置-允许安装未知来源-页面 + */ + @RequiresApi(api = Build.VERSION_CODES.O) + private void startInstallPermissionSettingActivity() { + //注意这个是8.0新API + Uri packageURI = Uri.parse("package:" +con.getPackageName()); + Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES,packageURI); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + con.startActivity(intent); + } + + //党员认证 + public void partyMember(String url) { + Map map = new HashMap<>(); + map.put("partyMemberUrl", url); + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getPartyMember(), MapUtil.mapJson(map)), getToken(con), con); + RequestUtil.start(1, "partyMember", re, con, hd); + } + + public void getImage(int type) { + Map map = new HashMap<>(); + map.put("type", type); + Request re; + if (getToken(con).equals("")) { + re = OkHttpUtil.post(new OkDate(RequestConstant.getGetImage(), MapUtil.mapJson(map)), con); + } else { + re = OkHttpUtil.posts(new OkDate(RequestConstant.getGetImage(), MapUtil.mapJson(map)), getToken(con), con); + } + RequestUtil.start(1, "getImage", re, con, hd); + } + + //app/driver/auth/driverExpire + public void getDriverExpire() { + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getGetCertificateExpired(), ""), getToken(con), con); + RequestUtil.start(1, "driverExpire", re, con, hd); + } + + + public void getJtt(int id) { + HashMap map = new HashMap<>(); + map.put("waybillId", id); + Request re = OkHttpUtil.posts(new OkDate("http://app.dahehuoyun.com/api/traffic/getTrafficConfigByWaybillId", MapUtil.mapJson(map)), getToken(con), con); + RequestUtil.start(1, "jttRes", re, con, hd); + } + + public void getJtts(String id) { + HashMap map = new HashMap<>(); + map.put("waybillNum", id); + Request re = OkHttpUtil.posts(new OkDate("http://app.dahehuoyun.com/api/traffic/getTrafficConfigByWaybillNum", MapUtil.mapJson(map)), getToken(con), con); + RequestUtil.start(1, "jttRes", re, con, hd); + + } + + //获取燃油类型 + public void carAudit(String carId) { + Map map = new HashMap<>(); + map.put("carId", carId); + Request re = OkHttpUtil.get(new OkDate(RequestConstant.getCarAudit(),"get", Md5Util.resNoUrl(map)),getToken(con)); + RequestUtil.start(1, VehicleAuthActivity.CAR_AUDIO, re, con, hd); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/WalletRequest.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/WalletRequest.java new file mode 100644 index 0000000..a9c5ec4 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/WalletRequest.java @@ -0,0 +1,98 @@ +package com.arpa.hndahesudintocctmsdriver.request; + +import android.content.Context; +import android.os.Handler; + +import com.arpa.hndahesudintocctmsdriver.util.map.MapUtil; +import com.google.gson.Gson; +import com.arpa.hndahesudintocctmsdriver.request.bean.InsBankInputBean; +import com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity; +import com.arpa.hndahesudintocctmsdriver.ui.wallet.WalletFragment; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; +import com.arpa.hndahesudintocctmsdriver.util.http.OkDate; +import com.arpa.hndahesudintocctmsdriver.util.http.OkHttpUtil; +import com.arpa.hndahesudintocctmsdriver.util.http.RequestUtil; + +import java.util.HashMap; +import java.util.Map; + +import okhttp3.Request; + +public class WalletRequest { + private Context con; + private Handler hd; + + public WalletRequest(Context con, Handler hd) { + this.con = con; + this.hd = hd; + } + + //引入gson + private Gson gson=new Gson(); + + public String getToken(Context con) { + return SPUtil.getSP(con, LoginActivity.USER,LoginActivity.USER_TOKEN); + } + + //提现 + public void takeMoney(String bid,String money){ + Map map=new HashMap<>(); + map.put("bankCardId",bid); + map.put("tradeMoney",money); + map.put("tradeTitle",""); + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getTIXIAN(), MapUtil.mapJson(map)),getToken(con),con); + RequestUtil.start(1, "tixian",re,con,hd); + } + //获取银行卡列表 + public void getBankCardList(){ + Map map=new HashMap<>(); + map.put("cardType",1); + map.put("createUser",SPUtil.getSP(con, LoginActivity.USER,LoginActivity.USER_ID)); + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getBankCardListUrl(), MapUtil.mapJson(map)),getToken(con),con); + RequestUtil.start(1, WalletFragment.dataName2,re,con,hd); + } + //删除银行卡信息 + public void deleteBankCard(int id){ + Map map=new HashMap<>(); + map.put("id",id); + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getDeleteBankcard(), MapUtil.mapJson(map)),getToken(con),con); + RequestUtil.start(1, "bankdelete",re,con,hd); + } + //绑定银行卡 + public void insBankCard(InsBankInputBean ibib){ + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getInsBankcard(),gson.toJson(ibib)),getToken(con),con); + RequestUtil.start(1, "insBank",re,con,hd); + } + //创建电子账户 + public void addContracts(){ + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getAddContracts(),""),getToken(con),con); + RequestUtil.start(1, "addContracts",re,con,hd); + } + //获取电子账户 + public void getContracts(){ + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getGetContracts(),""),getToken(con),con); + RequestUtil.start(1, "getContracts",re,con,hd); + } + //提现记录/app/account/change/record + public void changeRecord(){ + Map map=new HashMap<>(); + map.put("pageNum",1); + map.put("pageSize",30); + Request re = OkHttpUtil.posts(new OkDate(RequestConstant.getChangeRecord(),MapUtil.mapJson(map)),getToken(con),con); + RequestUtil.start(1, "change",re,con,hd); + } + + public void charge(String amount){ + Map map=new HashMap<>(); + map.put("amount",amount); + Request re = OkHttpUtil.get(new OkDate(RequestConstant.getChangeCharge()+"?amount="+amount,"get",MapUtil.mapJson(map)),getToken(con)); + RequestUtil.start(1, "charge",re,con,hd); + } + + public void config(){ + Map map=new HashMap<>(); +// map.put("amount",amount); + Request re = OkHttpUtil.get(new OkDate(RequestConstant.getChangeConfig(),"get",MapUtil.mapJson(map)),getToken(con)); + RequestUtil.start(1, "config",re,con,hd); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/CodeDataBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/CodeDataBean.java new file mode 100644 index 0000000..5ac7050 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/CodeDataBean.java @@ -0,0 +1,3544 @@ +package com.arpa.hndahesudintocctmsdriver.request.bean; + +import java.util.List; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/4 14:41 + * @description: + */ +public class CodeDataBean { + + private int res; + private int code; + private boolean success; + private String msg; + private DataDTO 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 DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + public static class DataDTO { + private List sBZT; + private List tRANSPORT_CAR_PLATE_COLOR; + private List rZZT; + private List jSZLX; + private List hYZT; + private List cX; + private List cC; + private List hYSHZT; + private List jYLX; + private List sQCLZT; + private List jRCDZT; + private List dWLX; + private List dXFSLX; + private List yDZT; + private List cZLX; + private List gJLZ; + private List aDDRESS_TYPE; + private List nEWS_PUB_STATUS; + private List cAR_PLATE_COLOR; + private List cAR_ENERGY_TYPE; + private List cAR_OUTSIDE_SIZE; + private List bANK_CARD_TYPE; + private List cAR_WIDTH; + private List cAR_HEIGHT; + private List mESSAGE_TYPE; + private List pDZT; + private List hYYWLX; + + public List getSBZT() { + return sBZT; + } + + public void setSBZT(List sBZT) { + this.sBZT = sBZT; + } + + public List getTRANSPORT_CAR_PLATE_COLOR() { + return tRANSPORT_CAR_PLATE_COLOR; + } + + public void setTRANSPORT_CAR_PLATE_COLOR(List tRANSPORT_CAR_PLATE_COLOR) { + this.tRANSPORT_CAR_PLATE_COLOR = tRANSPORT_CAR_PLATE_COLOR; + } + + public List getRZZT() { + return rZZT; + } + + public void setRZZT(List rZZT) { + this.rZZT = rZZT; + } + + public List getJSZLX() { + return jSZLX; + } + + public void setJSZLX(List jSZLX) { + this.jSZLX = jSZLX; + } + + public List getHYZT() { + return hYZT; + } + + public void setHYZT(List hYZT) { + this.hYZT = hYZT; + } + + public List getCX() { + return cX; + } + + public void setCX(List cX) { + this.cX = cX; + } + + public List getCC() { + return cC; + } + + public void setCC(List cC) { + this.cC = cC; + } + + public List getHYSHZT() { + return hYSHZT; + } + + public void setHYSHZT(List hYSHZT) { + this.hYSHZT = hYSHZT; + } + + public List getJYLX() { + return jYLX; + } + + public void setJYLX(List jYLX) { + this.jYLX = jYLX; + } + + public List getSQCLZT() { + return sQCLZT; + } + + public void setSQCLZT(List sQCLZT) { + this.sQCLZT = sQCLZT; + } + + public List getJRCDZT() { + return jRCDZT; + } + + public void setJRCDZT(List jRCDZT) { + this.jRCDZT = jRCDZT; + } + + public List getDWLX() { + return dWLX; + } + + public void setDWLX(List dWLX) { + this.dWLX = dWLX; + } + + public List getDXFSLX() { + return dXFSLX; + } + + public void setDXFSLX(List dXFSLX) { + this.dXFSLX = dXFSLX; + } + + public List getYDZT() { + return yDZT; + } + + public void setYDZT(List yDZT) { + this.yDZT = yDZT; + } + + public List getCZLX() { + return cZLX; + } + + public void setCZLX(List cZLX) { + this.cZLX = cZLX; + } + + public List getGJLZ() { + return gJLZ; + } + + public void setGJLZ(List gJLZ) { + this.gJLZ = gJLZ; + } + + public List getADDRESS_TYPE() { + return aDDRESS_TYPE; + } + + public void setADDRESS_TYPE(List aDDRESS_TYPE) { + this.aDDRESS_TYPE = aDDRESS_TYPE; + } + + public List getNEWS_PUB_STATUS() { + return nEWS_PUB_STATUS; + } + + public void setNEWS_PUB_STATUS(List nEWS_PUB_STATUS) { + this.nEWS_PUB_STATUS = nEWS_PUB_STATUS; + } + + public List getCAR_PLATE_COLOR() { + return cAR_PLATE_COLOR; + } + + public void setCAR_PLATE_COLOR(List cAR_PLATE_COLOR) { + this.cAR_PLATE_COLOR = cAR_PLATE_COLOR; + } + + public List getCAR_ENERGY_TYPE() { + return cAR_ENERGY_TYPE; + } + + public void setCAR_ENERGY_TYPE(List cAR_ENERGY_TYPE) { + this.cAR_ENERGY_TYPE = cAR_ENERGY_TYPE; + } + + public List getCAR_OUTSIDE_SIZE() { + return cAR_OUTSIDE_SIZE; + } + + public void setCAR_OUTSIDE_SIZE(List cAR_OUTSIDE_SIZE) { + this.cAR_OUTSIDE_SIZE = cAR_OUTSIDE_SIZE; + } + + public List getBANK_CARD_TYPE() { + return bANK_CARD_TYPE; + } + + public void setBANK_CARD_TYPE(List bANK_CARD_TYPE) { + this.bANK_CARD_TYPE = bANK_CARD_TYPE; + } + + public List getCAR_WIDTH() { + return cAR_WIDTH; + } + + public void setCAR_WIDTH(List cAR_WIDTH) { + this.cAR_WIDTH = cAR_WIDTH; + } + + public List getCAR_HEIGHT() { + return cAR_HEIGHT; + } + + public void setCAR_HEIGHT(List cAR_HEIGHT) { + this.cAR_HEIGHT = cAR_HEIGHT; + } + + public List getMESSAGE_TYPE() { + return mESSAGE_TYPE; + } + + public void setMESSAGE_TYPE(List mESSAGE_TYPE) { + this.mESSAGE_TYPE = mESSAGE_TYPE; + } + + public List getPDZT() { + return pDZT; + } + + public void setPDZT(List pDZT) { + this.pDZT = pDZT; + } + + public List getHYYWLX() { + return hYYWLX; + } + + public void setHYYWLX(List hYYWLX) { + this.hYYWLX = hYYWLX; + } + + public static class SBZTDTO { + private int vcode; + private Object pvcode; + private String name; + private String tname; + private String tcode; + private Object issys; + private Object remark; + private Object disabled; + private Object deleted; + private Object oindex; + private Object remark2; + private int value; + private String label; + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + + public Object getPvcode() { + return pvcode; + } + + public void setPvcode(Object pvcode) { + this.pvcode = pvcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTname() { + return tname; + } + + public void setTname(String tname) { + this.tname = tname; + } + + public String getTcode() { + return tcode; + } + + public void setTcode(String tcode) { + this.tcode = tcode; + } + + public Object getIssys() { + return issys; + } + + public void setIssys(Object issys) { + this.issys = issys; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public Object getDisabled() { + return disabled; + } + + public void setDisabled(Object disabled) { + this.disabled = disabled; + } + + public Object getDeleted() { + return deleted; + } + + public void setDeleted(Object deleted) { + this.deleted = deleted; + } + + public Object getOindex() { + return oindex; + } + + public void setOindex(Object oindex) { + this.oindex = oindex; + } + + public Object getRemark2() { + return remark2; + } + + public void setRemark2(Object remark2) { + this.remark2 = remark2; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + + public static class TRANSPORTCARPLATECOLORDTO { + private int vcode; + private Object pvcode; + private String name; + private String tname; + private String tcode; + private Object issys; + private Object remark; + private Object disabled; + private Object deleted; + private Object oindex; + private Object remark2; + private int value; + private String label; + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + + public Object getPvcode() { + return pvcode; + } + + public void setPvcode(Object pvcode) { + this.pvcode = pvcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTname() { + return tname; + } + + public void setTname(String tname) { + this.tname = tname; + } + + public String getTcode() { + return tcode; + } + + public void setTcode(String tcode) { + this.tcode = tcode; + } + + public Object getIssys() { + return issys; + } + + public void setIssys(Object issys) { + this.issys = issys; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public Object getDisabled() { + return disabled; + } + + public void setDisabled(Object disabled) { + this.disabled = disabled; + } + + public Object getDeleted() { + return deleted; + } + + public void setDeleted(Object deleted) { + this.deleted = deleted; + } + + public Object getOindex() { + return oindex; + } + + public void setOindex(Object oindex) { + this.oindex = oindex; + } + + public Object getRemark2() { + return remark2; + } + + public void setRemark2(Object remark2) { + this.remark2 = remark2; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + + public static class RZZTDTO { + private int vcode; + private int pvcode; + private String name; + private String tname; + private String tcode; + private Object issys; + private Object remark; + private Object disabled; + private Object deleted; + private Object oindex; + private Object remark2; + private int value; + private String label; + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + + public int getPvcode() { + return pvcode; + } + + public void setPvcode(int pvcode) { + this.pvcode = pvcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTname() { + return tname; + } + + public void setTname(String tname) { + this.tname = tname; + } + + public String getTcode() { + return tcode; + } + + public void setTcode(String tcode) { + this.tcode = tcode; + } + + public Object getIssys() { + return issys; + } + + public void setIssys(Object issys) { + this.issys = issys; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public Object getDisabled() { + return disabled; + } + + public void setDisabled(Object disabled) { + this.disabled = disabled; + } + + public Object getDeleted() { + return deleted; + } + + public void setDeleted(Object deleted) { + this.deleted = deleted; + } + + public Object getOindex() { + return oindex; + } + + public void setOindex(Object oindex) { + this.oindex = oindex; + } + + public Object getRemark2() { + return remark2; + } + + public void setRemark2(Object remark2) { + this.remark2 = remark2; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + + public static class JSZLXDTO { + private int vcode; + private int pvcode; + private String name; + private String tname; + private String tcode; + private Object issys; + private Object remark; + private Object disabled; + private Object deleted; + private Object oindex; + private Object remark2; + private int value; + private String label; + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + + public int getPvcode() { + return pvcode; + } + + public void setPvcode(int pvcode) { + this.pvcode = pvcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTname() { + return tname; + } + + public void setTname(String tname) { + this.tname = tname; + } + + public String getTcode() { + return tcode; + } + + public void setTcode(String tcode) { + this.tcode = tcode; + } + + public Object getIssys() { + return issys; + } + + public void setIssys(Object issys) { + this.issys = issys; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public Object getDisabled() { + return disabled; + } + + public void setDisabled(Object disabled) { + this.disabled = disabled; + } + + public Object getDeleted() { + return deleted; + } + + public void setDeleted(Object deleted) { + this.deleted = deleted; + } + + public Object getOindex() { + return oindex; + } + + public void setOindex(Object oindex) { + this.oindex = oindex; + } + + public Object getRemark2() { + return remark2; + } + + public void setRemark2(Object remark2) { + this.remark2 = remark2; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + + public static class HYZTDTO { + private int vcode; + private int pvcode; + private String name; + private String tname; + private String tcode; + private Object issys; + private Object remark; + private Object disabled; + private Object deleted; + private Object oindex; + private Object remark2; + private int value; + private String label; + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + + public int getPvcode() { + return pvcode; + } + + public void setPvcode(int pvcode) { + this.pvcode = pvcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTname() { + return tname; + } + + public void setTname(String tname) { + this.tname = tname; + } + + public String getTcode() { + return tcode; + } + + public void setTcode(String tcode) { + this.tcode = tcode; + } + + public Object getIssys() { + return issys; + } + + public void setIssys(Object issys) { + this.issys = issys; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public Object getDisabled() { + return disabled; + } + + public void setDisabled(Object disabled) { + this.disabled = disabled; + } + + public Object getDeleted() { + return deleted; + } + + public void setDeleted(Object deleted) { + this.deleted = deleted; + } + + public Object getOindex() { + return oindex; + } + + public void setOindex(Object oindex) { + this.oindex = oindex; + } + + public Object getRemark2() { + return remark2; + } + + public void setRemark2(Object remark2) { + this.remark2 = remark2; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + + public static class CXDTO { + private int vcode; + private int pvcode; + private String name; + private String tname; + private String tcode; + private Object issys; + private Object remark; + private Object disabled; + private Object deleted; + private Object oindex; + private Object remark2; + private int value; + private String label; + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + + public int getPvcode() { + return pvcode; + } + + public void setPvcode(int pvcode) { + this.pvcode = pvcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTname() { + return tname; + } + + public void setTname(String tname) { + this.tname = tname; + } + + public String getTcode() { + return tcode; + } + + public void setTcode(String tcode) { + this.tcode = tcode; + } + + public Object getIssys() { + return issys; + } + + public void setIssys(Object issys) { + this.issys = issys; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public Object getDisabled() { + return disabled; + } + + public void setDisabled(Object disabled) { + this.disabled = disabled; + } + + public Object getDeleted() { + return deleted; + } + + public void setDeleted(Object deleted) { + this.deleted = deleted; + } + + public Object getOindex() { + return oindex; + } + + public void setOindex(Object oindex) { + this.oindex = oindex; + } + + public Object getRemark2() { + return remark2; + } + + public void setRemark2(Object remark2) { + this.remark2 = remark2; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + + public static class CCDTO { + private int vcode; + private int pvcode; + private String name; + private String tname; + private String tcode; + private Object issys; + private Object remark; + private Object disabled; + private Object deleted; + private Object oindex; + private Object remark2; + private int value; + private String label; + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + + public int getPvcode() { + return pvcode; + } + + public void setPvcode(int pvcode) { + this.pvcode = pvcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTname() { + return tname; + } + + public void setTname(String tname) { + this.tname = tname; + } + + public String getTcode() { + return tcode; + } + + public void setTcode(String tcode) { + this.tcode = tcode; + } + + public Object getIssys() { + return issys; + } + + public void setIssys(Object issys) { + this.issys = issys; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public Object getDisabled() { + return disabled; + } + + public void setDisabled(Object disabled) { + this.disabled = disabled; + } + + public Object getDeleted() { + return deleted; + } + + public void setDeleted(Object deleted) { + this.deleted = deleted; + } + + public Object getOindex() { + return oindex; + } + + public void setOindex(Object oindex) { + this.oindex = oindex; + } + + public Object getRemark2() { + return remark2; + } + + public void setRemark2(Object remark2) { + this.remark2 = remark2; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + + public static class HYSHZTDTO { + private int vcode; + private int pvcode; + private String name; + private String tname; + private String tcode; + private Object issys; + private Object remark; + private Object disabled; + private Object deleted; + private Object oindex; + private Object remark2; + private int value; + private String label; + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + + public int getPvcode() { + return pvcode; + } + + public void setPvcode(int pvcode) { + this.pvcode = pvcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTname() { + return tname; + } + + public void setTname(String tname) { + this.tname = tname; + } + + public String getTcode() { + return tcode; + } + + public void setTcode(String tcode) { + this.tcode = tcode; + } + + public Object getIssys() { + return issys; + } + + public void setIssys(Object issys) { + this.issys = issys; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public Object getDisabled() { + return disabled; + } + + public void setDisabled(Object disabled) { + this.disabled = disabled; + } + + public Object getDeleted() { + return deleted; + } + + public void setDeleted(Object deleted) { + this.deleted = deleted; + } + + public Object getOindex() { + return oindex; + } + + public void setOindex(Object oindex) { + this.oindex = oindex; + } + + public Object getRemark2() { + return remark2; + } + + public void setRemark2(Object remark2) { + this.remark2 = remark2; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + + public static class JYLXDTO { + private int vcode; + private int pvcode; + private String name; + private String tname; + private String tcode; + private Object issys; + private Object remark; + private Object disabled; + private Object deleted; + private Object oindex; + private Object remark2; + private int value; + private String label; + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + + public int getPvcode() { + return pvcode; + } + + public void setPvcode(int pvcode) { + this.pvcode = pvcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTname() { + return tname; + } + + public void setTname(String tname) { + this.tname = tname; + } + + public String getTcode() { + return tcode; + } + + public void setTcode(String tcode) { + this.tcode = tcode; + } + + public Object getIssys() { + return issys; + } + + public void setIssys(Object issys) { + this.issys = issys; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public Object getDisabled() { + return disabled; + } + + public void setDisabled(Object disabled) { + this.disabled = disabled; + } + + public Object getDeleted() { + return deleted; + } + + public void setDeleted(Object deleted) { + this.deleted = deleted; + } + + public Object getOindex() { + return oindex; + } + + public void setOindex(Object oindex) { + this.oindex = oindex; + } + + public Object getRemark2() { + return remark2; + } + + public void setRemark2(Object remark2) { + this.remark2 = remark2; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + + public static class SQCLZTDTO { + private int vcode; + private int pvcode; + private String name; + private String tname; + private String tcode; + private Object issys; + private Object remark; + private Object disabled; + private Object deleted; + private Object oindex; + private Object remark2; + private int value; + private String label; + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + + public int getPvcode() { + return pvcode; + } + + public void setPvcode(int pvcode) { + this.pvcode = pvcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTname() { + return tname; + } + + public void setTname(String tname) { + this.tname = tname; + } + + public String getTcode() { + return tcode; + } + + public void setTcode(String tcode) { + this.tcode = tcode; + } + + public Object getIssys() { + return issys; + } + + public void setIssys(Object issys) { + this.issys = issys; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public Object getDisabled() { + return disabled; + } + + public void setDisabled(Object disabled) { + this.disabled = disabled; + } + + public Object getDeleted() { + return deleted; + } + + public void setDeleted(Object deleted) { + this.deleted = deleted; + } + + public Object getOindex() { + return oindex; + } + + public void setOindex(Object oindex) { + this.oindex = oindex; + } + + public Object getRemark2() { + return remark2; + } + + public void setRemark2(Object remark2) { + this.remark2 = remark2; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + + public static class JRCDZTDTO { + private int vcode; + private int pvcode; + private String name; + private String tname; + private String tcode; + private Object issys; + private Object remark; + private Object disabled; + private Object deleted; + private Object oindex; + private Object remark2; + private int value; + private String label; + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + + public int getPvcode() { + return pvcode; + } + + public void setPvcode(int pvcode) { + this.pvcode = pvcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTname() { + return tname; + } + + public void setTname(String tname) { + this.tname = tname; + } + + public String getTcode() { + return tcode; + } + + public void setTcode(String tcode) { + this.tcode = tcode; + } + + public Object getIssys() { + return issys; + } + + public void setIssys(Object issys) { + this.issys = issys; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public Object getDisabled() { + return disabled; + } + + public void setDisabled(Object disabled) { + this.disabled = disabled; + } + + public Object getDeleted() { + return deleted; + } + + public void setDeleted(Object deleted) { + this.deleted = deleted; + } + + public Object getOindex() { + return oindex; + } + + public void setOindex(Object oindex) { + this.oindex = oindex; + } + + public Object getRemark2() { + return remark2; + } + + public void setRemark2(Object remark2) { + this.remark2 = remark2; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + + public static class DWLXDTO { + private int vcode; + private int pvcode; + private String name; + private String tname; + private String tcode; + private Object issys; + private Object remark; + private Object disabled; + private Object deleted; + private Object oindex; + private Object remark2; + private int value; + private String label; + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + + public int getPvcode() { + return pvcode; + } + + public void setPvcode(int pvcode) { + this.pvcode = pvcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTname() { + return tname; + } + + public void setTname(String tname) { + this.tname = tname; + } + + public String getTcode() { + return tcode; + } + + public void setTcode(String tcode) { + this.tcode = tcode; + } + + public Object getIssys() { + return issys; + } + + public void setIssys(Object issys) { + this.issys = issys; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public Object getDisabled() { + return disabled; + } + + public void setDisabled(Object disabled) { + this.disabled = disabled; + } + + public Object getDeleted() { + return deleted; + } + + public void setDeleted(Object deleted) { + this.deleted = deleted; + } + + public Object getOindex() { + return oindex; + } + + public void setOindex(Object oindex) { + this.oindex = oindex; + } + + public Object getRemark2() { + return remark2; + } + + public void setRemark2(Object remark2) { + this.remark2 = remark2; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + + public static class DXFSLXDTO { + private int vcode; + private int pvcode; + private String name; + private String tname; + private String tcode; + private Object issys; + private Object remark; + private Object disabled; + private Object deleted; + private Object oindex; + private Object remark2; + private int value; + private String label; + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + + public int getPvcode() { + return pvcode; + } + + public void setPvcode(int pvcode) { + this.pvcode = pvcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTname() { + return tname; + } + + public void setTname(String tname) { + this.tname = tname; + } + + public String getTcode() { + return tcode; + } + + public void setTcode(String tcode) { + this.tcode = tcode; + } + + public Object getIssys() { + return issys; + } + + public void setIssys(Object issys) { + this.issys = issys; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public Object getDisabled() { + return disabled; + } + + public void setDisabled(Object disabled) { + this.disabled = disabled; + } + + public Object getDeleted() { + return deleted; + } + + public void setDeleted(Object deleted) { + this.deleted = deleted; + } + + public Object getOindex() { + return oindex; + } + + public void setOindex(Object oindex) { + this.oindex = oindex; + } + + public Object getRemark2() { + return remark2; + } + + public void setRemark2(Object remark2) { + this.remark2 = remark2; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + + public static class YDZTDTO { + private int vcode; + private int pvcode; + private String name; + private String tname; + private String tcode; + private Object issys; + private Object remark; + private Object disabled; + private Object deleted; + private Object oindex; + private Object remark2; + private int value; + private String label; + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + + public int getPvcode() { + return pvcode; + } + + public void setPvcode(int pvcode) { + this.pvcode = pvcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTname() { + return tname; + } + + public void setTname(String tname) { + this.tname = tname; + } + + public String getTcode() { + return tcode; + } + + public void setTcode(String tcode) { + this.tcode = tcode; + } + + public Object getIssys() { + return issys; + } + + public void setIssys(Object issys) { + this.issys = issys; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public Object getDisabled() { + return disabled; + } + + public void setDisabled(Object disabled) { + this.disabled = disabled; + } + + public Object getDeleted() { + return deleted; + } + + public void setDeleted(Object deleted) { + this.deleted = deleted; + } + + public Object getOindex() { + return oindex; + } + + public void setOindex(Object oindex) { + this.oindex = oindex; + } + + public Object getRemark2() { + return remark2; + } + + public void setRemark2(Object remark2) { + this.remark2 = remark2; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + + public static class CZLXDTO { + private int vcode; + private int pvcode; + private String name; + private String tname; + private String tcode; + private Object issys; + private Object remark; + private Object disabled; + private Object deleted; + private Object oindex; + private Object remark2; + private int value; + private String label; + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + + public int getPvcode() { + return pvcode; + } + + public void setPvcode(int pvcode) { + this.pvcode = pvcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTname() { + return tname; + } + + public void setTname(String tname) { + this.tname = tname; + } + + public String getTcode() { + return tcode; + } + + public void setTcode(String tcode) { + this.tcode = tcode; + } + + public Object getIssys() { + return issys; + } + + public void setIssys(Object issys) { + this.issys = issys; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public Object getDisabled() { + return disabled; + } + + public void setDisabled(Object disabled) { + this.disabled = disabled; + } + + public Object getDeleted() { + return deleted; + } + + public void setDeleted(Object deleted) { + this.deleted = deleted; + } + + public Object getOindex() { + return oindex; + } + + public void setOindex(Object oindex) { + this.oindex = oindex; + } + + public Object getRemark2() { + return remark2; + } + + public void setRemark2(Object remark2) { + this.remark2 = remark2; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + + public static class GJLZDTO { + private int vcode; + private int pvcode; + private String name; + private String tname; + private String tcode; + private Object issys; + private Object remark; + private Object disabled; + private Object deleted; + private Object oindex; + private Object remark2; + private int value; + private String label; + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + + public int getPvcode() { + return pvcode; + } + + public void setPvcode(int pvcode) { + this.pvcode = pvcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTname() { + return tname; + } + + public void setTname(String tname) { + this.tname = tname; + } + + public String getTcode() { + return tcode; + } + + public void setTcode(String tcode) { + this.tcode = tcode; + } + + public Object getIssys() { + return issys; + } + + public void setIssys(Object issys) { + this.issys = issys; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public Object getDisabled() { + return disabled; + } + + public void setDisabled(Object disabled) { + this.disabled = disabled; + } + + public Object getDeleted() { + return deleted; + } + + public void setDeleted(Object deleted) { + this.deleted = deleted; + } + + public Object getOindex() { + return oindex; + } + + public void setOindex(Object oindex) { + this.oindex = oindex; + } + + public Object getRemark2() { + return remark2; + } + + public void setRemark2(Object remark2) { + this.remark2 = remark2; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + + public static class ADDRESSTYPEDTO { + private int vcode; + private int pvcode; + private String name; + private String tname; + private String tcode; + private Object issys; + private Object remark; + private Object disabled; + private Object deleted; + private Object oindex; + private Object remark2; + private int value; + private String label; + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + + public int getPvcode() { + return pvcode; + } + + public void setPvcode(int pvcode) { + this.pvcode = pvcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTname() { + return tname; + } + + public void setTname(String tname) { + this.tname = tname; + } + + public String getTcode() { + return tcode; + } + + public void setTcode(String tcode) { + this.tcode = tcode; + } + + public Object getIssys() { + return issys; + } + + public void setIssys(Object issys) { + this.issys = issys; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public Object getDisabled() { + return disabled; + } + + public void setDisabled(Object disabled) { + this.disabled = disabled; + } + + public Object getDeleted() { + return deleted; + } + + public void setDeleted(Object deleted) { + this.deleted = deleted; + } + + public Object getOindex() { + return oindex; + } + + public void setOindex(Object oindex) { + this.oindex = oindex; + } + + public Object getRemark2() { + return remark2; + } + + public void setRemark2(Object remark2) { + this.remark2 = remark2; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + + public static class NEWSPUBSTATUSDTO { + private int vcode; + private int pvcode; + private String name; + private String tname; + private String tcode; + private Object issys; + private Object remark; + private Object disabled; + private Object deleted; + private Object oindex; + private Object remark2; + private int value; + private String label; + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + + public int getPvcode() { + return pvcode; + } + + public void setPvcode(int pvcode) { + this.pvcode = pvcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTname() { + return tname; + } + + public void setTname(String tname) { + this.tname = tname; + } + + public String getTcode() { + return tcode; + } + + public void setTcode(String tcode) { + this.tcode = tcode; + } + + public Object getIssys() { + return issys; + } + + public void setIssys(Object issys) { + this.issys = issys; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public Object getDisabled() { + return disabled; + } + + public void setDisabled(Object disabled) { + this.disabled = disabled; + } + + public Object getDeleted() { + return deleted; + } + + public void setDeleted(Object deleted) { + this.deleted = deleted; + } + + public Object getOindex() { + return oindex; + } + + public void setOindex(Object oindex) { + this.oindex = oindex; + } + + public Object getRemark2() { + return remark2; + } + + public void setRemark2(Object remark2) { + this.remark2 = remark2; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + + public static class CARPLATECOLORDTO { + private int vcode; + private int pvcode; + private String name; + private String tname; + private String tcode; + private Object issys; + private Object remark; + private Object disabled; + private Object deleted; + private Object oindex; + private Object remark2; + private int value; + private String label; + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + + public int getPvcode() { + return pvcode; + } + + public void setPvcode(int pvcode) { + this.pvcode = pvcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTname() { + return tname; + } + + public void setTname(String tname) { + this.tname = tname; + } + + public String getTcode() { + return tcode; + } + + public void setTcode(String tcode) { + this.tcode = tcode; + } + + public Object getIssys() { + return issys; + } + + public void setIssys(Object issys) { + this.issys = issys; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public Object getDisabled() { + return disabled; + } + + public void setDisabled(Object disabled) { + this.disabled = disabled; + } + + public Object getDeleted() { + return deleted; + } + + public void setDeleted(Object deleted) { + this.deleted = deleted; + } + + public Object getOindex() { + return oindex; + } + + public void setOindex(Object oindex) { + this.oindex = oindex; + } + + public Object getRemark2() { + return remark2; + } + + public void setRemark2(Object remark2) { + this.remark2 = remark2; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + + public static class CARENERGYTYPEDTO { + private int vcode; + private int pvcode; + private String name; + private String tname; + private String tcode; + private Object issys; + private Object remark; + private Object disabled; + private Object deleted; + private Object oindex; + private Object remark2; + private int value; + private String label; + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + + public int getPvcode() { + return pvcode; + } + + public void setPvcode(int pvcode) { + this.pvcode = pvcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTname() { + return tname; + } + + public void setTname(String tname) { + this.tname = tname; + } + + public String getTcode() { + return tcode; + } + + public void setTcode(String tcode) { + this.tcode = tcode; + } + + public Object getIssys() { + return issys; + } + + public void setIssys(Object issys) { + this.issys = issys; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public Object getDisabled() { + return disabled; + } + + public void setDisabled(Object disabled) { + this.disabled = disabled; + } + + public Object getDeleted() { + return deleted; + } + + public void setDeleted(Object deleted) { + this.deleted = deleted; + } + + public Object getOindex() { + return oindex; + } + + public void setOindex(Object oindex) { + this.oindex = oindex; + } + + public Object getRemark2() { + return remark2; + } + + public void setRemark2(Object remark2) { + this.remark2 = remark2; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + + public static class CAROUTSIDESIZEDTO { + private int vcode; + private int pvcode; + private String name; + private String tname; + private String tcode; + private Object issys; + private Object remark; + private Object disabled; + private Object deleted; + private Object oindex; + private Object remark2; + private int value; + private String label; + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + + public int getPvcode() { + return pvcode; + } + + public void setPvcode(int pvcode) { + this.pvcode = pvcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTname() { + return tname; + } + + public void setTname(String tname) { + this.tname = tname; + } + + public String getTcode() { + return tcode; + } + + public void setTcode(String tcode) { + this.tcode = tcode; + } + + public Object getIssys() { + return issys; + } + + public void setIssys(Object issys) { + this.issys = issys; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public Object getDisabled() { + return disabled; + } + + public void setDisabled(Object disabled) { + this.disabled = disabled; + } + + public Object getDeleted() { + return deleted; + } + + public void setDeleted(Object deleted) { + this.deleted = deleted; + } + + public Object getOindex() { + return oindex; + } + + public void setOindex(Object oindex) { + this.oindex = oindex; + } + + public Object getRemark2() { + return remark2; + } + + public void setRemark2(Object remark2) { + this.remark2 = remark2; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + + public static class BANKCARDTYPEDTO { + private int vcode; + private int pvcode; + private String name; + private String tname; + private String tcode; + private Object issys; + private Object remark; + private Object disabled; + private Object deleted; + private Object oindex; + private Object remark2; + private int value; + private String label; + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + + public int getPvcode() { + return pvcode; + } + + public void setPvcode(int pvcode) { + this.pvcode = pvcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTname() { + return tname; + } + + public void setTname(String tname) { + this.tname = tname; + } + + public String getTcode() { + return tcode; + } + + public void setTcode(String tcode) { + this.tcode = tcode; + } + + public Object getIssys() { + return issys; + } + + public void setIssys(Object issys) { + this.issys = issys; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public Object getDisabled() { + return disabled; + } + + public void setDisabled(Object disabled) { + this.disabled = disabled; + } + + public Object getDeleted() { + return deleted; + } + + public void setDeleted(Object deleted) { + this.deleted = deleted; + } + + public Object getOindex() { + return oindex; + } + + public void setOindex(Object oindex) { + this.oindex = oindex; + } + + public Object getRemark2() { + return remark2; + } + + public void setRemark2(Object remark2) { + this.remark2 = remark2; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + + public static class CARWIDTHDTO { + private int vcode; + private int pvcode; + private String name; + private String tname; + private String tcode; + private Object issys; + private Object remark; + private Object disabled; + private Object deleted; + private Object oindex; + private Object remark2; + private int value; + private String label; + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + + public int getPvcode() { + return pvcode; + } + + public void setPvcode(int pvcode) { + this.pvcode = pvcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTname() { + return tname; + } + + public void setTname(String tname) { + this.tname = tname; + } + + public String getTcode() { + return tcode; + } + + public void setTcode(String tcode) { + this.tcode = tcode; + } + + public Object getIssys() { + return issys; + } + + public void setIssys(Object issys) { + this.issys = issys; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public Object getDisabled() { + return disabled; + } + + public void setDisabled(Object disabled) { + this.disabled = disabled; + } + + public Object getDeleted() { + return deleted; + } + + public void setDeleted(Object deleted) { + this.deleted = deleted; + } + + public Object getOindex() { + return oindex; + } + + public void setOindex(Object oindex) { + this.oindex = oindex; + } + + public Object getRemark2() { + return remark2; + } + + public void setRemark2(Object remark2) { + this.remark2 = remark2; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + + public static class CARHEIGHTDTO { + private int vcode; + private int pvcode; + private String name; + private String tname; + private String tcode; + private Object issys; + private Object remark; + private Object disabled; + private Object deleted; + private Object oindex; + private Object remark2; + private int value; + private String label; + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + + public int getPvcode() { + return pvcode; + } + + public void setPvcode(int pvcode) { + this.pvcode = pvcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTname() { + return tname; + } + + public void setTname(String tname) { + this.tname = tname; + } + + public String getTcode() { + return tcode; + } + + public void setTcode(String tcode) { + this.tcode = tcode; + } + + public Object getIssys() { + return issys; + } + + public void setIssys(Object issys) { + this.issys = issys; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public Object getDisabled() { + return disabled; + } + + public void setDisabled(Object disabled) { + this.disabled = disabled; + } + + public Object getDeleted() { + return deleted; + } + + public void setDeleted(Object deleted) { + this.deleted = deleted; + } + + public Object getOindex() { + return oindex; + } + + public void setOindex(Object oindex) { + this.oindex = oindex; + } + + public Object getRemark2() { + return remark2; + } + + public void setRemark2(Object remark2) { + this.remark2 = remark2; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + + public static class MESSAGETYPEDTO { + private int vcode; + private int pvcode; + private String name; + private String tname; + private String tcode; + private Object issys; + private Object remark; + private Object disabled; + private Object deleted; + private Object oindex; + private Object remark2; + private int value; + private String label; + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + + public int getPvcode() { + return pvcode; + } + + public void setPvcode(int pvcode) { + this.pvcode = pvcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTname() { + return tname; + } + + public void setTname(String tname) { + this.tname = tname; + } + + public String getTcode() { + return tcode; + } + + public void setTcode(String tcode) { + this.tcode = tcode; + } + + public Object getIssys() { + return issys; + } + + public void setIssys(Object issys) { + this.issys = issys; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public Object getDisabled() { + return disabled; + } + + public void setDisabled(Object disabled) { + this.disabled = disabled; + } + + public Object getDeleted() { + return deleted; + } + + public void setDeleted(Object deleted) { + this.deleted = deleted; + } + + public Object getOindex() { + return oindex; + } + + public void setOindex(Object oindex) { + this.oindex = oindex; + } + + public Object getRemark2() { + return remark2; + } + + public void setRemark2(Object remark2) { + this.remark2 = remark2; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + + public static class PDZTDTO { + private int vcode; + private int pvcode; + private String name; + private String tname; + private String tcode; + private Object issys; + private Object remark; + private Object disabled; + private Object deleted; + private Object oindex; + private Object remark2; + private int value; + private String label; + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + + public int getPvcode() { + return pvcode; + } + + public void setPvcode(int pvcode) { + this.pvcode = pvcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTname() { + return tname; + } + + public void setTname(String tname) { + this.tname = tname; + } + + public String getTcode() { + return tcode; + } + + public void setTcode(String tcode) { + this.tcode = tcode; + } + + public Object getIssys() { + return issys; + } + + public void setIssys(Object issys) { + this.issys = issys; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public Object getDisabled() { + return disabled; + } + + public void setDisabled(Object disabled) { + this.disabled = disabled; + } + + public Object getDeleted() { + return deleted; + } + + public void setDeleted(Object deleted) { + this.deleted = deleted; + } + + public Object getOindex() { + return oindex; + } + + public void setOindex(Object oindex) { + this.oindex = oindex; + } + + public Object getRemark2() { + return remark2; + } + + public void setRemark2(Object remark2) { + this.remark2 = remark2; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + + public static class HYYWLXDTO { + private int vcode; + private int pvcode; + private String name; + private String tname; + private String tcode; + private Object issys; + private Object remark; + private Object disabled; + private Object deleted; + private Object oindex; + private Object remark2; + private int value; + private String label; + + public int getVcode() { + return vcode; + } + + public void setVcode(int vcode) { + this.vcode = vcode; + } + + public int getPvcode() { + return pvcode; + } + + public void setPvcode(int pvcode) { + this.pvcode = pvcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTname() { + return tname; + } + + public void setTname(String tname) { + this.tname = tname; + } + + public String getTcode() { + return tcode; + } + + public void setTcode(String tcode) { + this.tcode = tcode; + } + + public Object getIssys() { + return issys; + } + + public void setIssys(Object issys) { + this.issys = issys; + } + + public Object getRemark() { + return remark; + } + + public void setRemark(Object remark) { + this.remark = remark; + } + + public Object getDisabled() { + return disabled; + } + + public void setDisabled(Object disabled) { + this.disabled = disabled; + } + + public Object getDeleted() { + return deleted; + } + + public void setDeleted(Object deleted) { + this.deleted = deleted; + } + + public Object getOindex() { + return oindex; + } + + public void setOindex(Object oindex) { + this.oindex = oindex; + } + + public Object getRemark2() { + return remark2; + } + + public void setRemark2(Object remark2) { + this.remark2 = remark2; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/IDInputBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/IDInputBean.java new file mode 100644 index 0000000..90e697e --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/IDInputBean.java @@ -0,0 +1,83 @@ +package com.arpa.hndahesudintocctmsdriver.request.bean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/17 11:50 + * @description: + */ +public class IDInputBean { + + private String idcarName; + private String idcard; + private String idcardAddress; + private String idcardValidityStart; + private int idcardPhoto; + private int idcardPhotoBack; + private int idcardSex; + private String idcardValidity; + + public String getIdcardValidityStart() { + return idcardValidityStart; + } + + public void setIdcardValidityStart(String idcardValidityStart) { + this.idcardValidityStart = idcardValidityStart; + } + + public String getIdcarName() { + return idcarName; + } + + public void setIdcarName(String idcarName) { + this.idcarName = idcarName; + } + + public String getIdcard() { + return idcard; + } + + public void setIdcard(String idcard) { + this.idcard = idcard; + } + + public String getIdcardAddress() { + return idcardAddress; + } + + public void setIdcardAddress(String idcardAddress) { + this.idcardAddress = idcardAddress; + } + + public int getIdcardPhoto() { + return idcardPhoto; + } + + public void setIdcardPhoto(int idcardPhoto) { + this.idcardPhoto = idcardPhoto; + } + + public int getIdcardPhotoBack() { + return idcardPhotoBack; + } + + public void setIdcardPhotoBack(int idcardPhotoBack) { + this.idcardPhotoBack = idcardPhotoBack; + } + + public int getIdcardSex() { + return idcardSex; + } + + public void setIdcardSex(int idcardSex) { + this.idcardSex = idcardSex; + } + + public String getIdcardValidity() { + return idcardValidity; + } + + public void setIdcardValidity(String idcardValidity) { + this.idcardValidity = idcardValidity; + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/InsBankInputBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/InsBankInputBean.java new file mode 100644 index 0000000..1d47903 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/InsBankInputBean.java @@ -0,0 +1,146 @@ +package com.arpa.hndahesudintocctmsdriver.request.bean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/18 15:57 + * @description: + */ +public class InsBankInputBean { + + private String address; + private int auditStatus; + private int bankId; + private String bankName; + private String cardNo; + private int cardType; + private int cardUserType; + private String companyCode; + private String companyName; + private String createTime; + private int id; + private int isDeleted; + private String openBank; + private String phone; + private int imageId; + + public int getImageId() { + return imageId; + } + + public void setImageId(int imageId) { + this.imageId = imageId; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public int getAuditStatus() { + return auditStatus; + } + + public void setAuditStatus(int auditStatus) { + this.auditStatus = auditStatus; + } + + public int getBankId() { + return bankId; + } + + public void setBankId(int bankId) { + this.bankId = bankId; + } + + 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 getCardType() { + return cardType; + } + + public void setCardType(int cardType) { + this.cardType = cardType; + } + + public int getCardUserType() { + return cardUserType; + } + + public void setCardUserType(int cardUserType) { + this.cardUserType = cardUserType; + } + + public String getCompanyCode() { + return companyCode; + } + + public void setCompanyCode(String companyCode) { + this.companyCode = companyCode; + } + + public String getCompanyName() { + return companyName; + } + + public void setCompanyName(String companyName) { + this.companyName = companyName; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getIsDeleted() { + return isDeleted; + } + + public void setIsDeleted(int isDeleted) { + this.isDeleted = isDeleted; + } + + public String getOpenBank() { + return openBank; + } + + public void setOpenBank(String openBank) { + this.openBank = openBank; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/LUInputBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/LUInputBean.java new file mode 100644 index 0000000..987404c --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/LUInputBean.java @@ -0,0 +1,58 @@ +package com.arpa.hndahesudintocctmsdriver.request.bean; + +import java.util.List; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/13 10:27 + * @description:装卸货输入参数实体 + */ +public class LUInputBean { + + private List imageId; + private String latitude; + private String locationAddress; + private String longitude; + private String waybillId; + + public List getImageId() { + return imageId; + } + + public void setImageId(List imageId) { + this.imageId = imageId; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getLocationAddress() { + return locationAddress; + } + + public void setLocationAddress(String locationAddress) { + this.locationAddress = locationAddress; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getWaybillId() { + return waybillId; + } + + public void setWaybillId(String waybillId) { + this.waybillId = waybillId; + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/LicenseInputBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/LicenseInputBean.java new file mode 100644 index 0000000..10398f2 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/LicenseInputBean.java @@ -0,0 +1,86 @@ +package com.arpa.hndahesudintocctmsdriver.request.bean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/17 11:52 + * @description: + */ +public class LicenseInputBean { + + private String allowType; + private String archivesName; + private String driverLicense; + private int driverLicenseBackPhoto; + private String driverLicenseName; + private int driverLicensePhoto; + private String endTime; + private String firstTime; + + + + public String getAllowType() { + return allowType; + } + + public void setAllowType(String allowType) { + this.allowType = allowType; + } + + public String getArchivesName() { + return archivesName; + } + + public void setArchivesName(String archivesName) { + this.archivesName = archivesName; + } + + public String getDriverLicense() { + return driverLicense; + } + + public void setDriverLicense(String driverLicense) { + this.driverLicense = driverLicense; + } + + public int getDriverLicenseBackPhoto() { + return driverLicenseBackPhoto; + } + + public void setDriverLicenseBackPhoto(int driverLicenseBackPhoto) { + this.driverLicenseBackPhoto = driverLicenseBackPhoto; + } + + public String getDriverLicenseName() { + return driverLicenseName; + } + + public void setDriverLicenseName(String driverLicenseName) { + this.driverLicenseName = driverLicenseName; + } + + public int getDriverLicensePhoto() { + return driverLicensePhoto; + } + + public void setDriverLicensePhoto(int driverLicensePhoto) { + this.driverLicensePhoto = driverLicensePhoto; + } + + public String getEndTime() { + return endTime; + } + + public void setEndTime(String endTime) { + this.endTime = endTime; + } + + public String getFirstTime() { + return firstTime; + } + + public void setFirstTime(String firstTime) { + this.firstTime = firstTime; + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/LoginRegInputBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/LoginRegInputBean.java new file mode 100644 index 0000000..420fec8 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/LoginRegInputBean.java @@ -0,0 +1,92 @@ +package com.arpa.hndahesudintocctmsdriver.request.bean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/2 9:45 + * @description:登录和注册的入参实体 + */ +public class LoginRegInputBean { + + private String captcha; + private String companyName; + private int registerType; + private String reupass; + private String rname; + private int roleId; + private String smscode; + private String uname; + private String upass; + + public String getCaptcha() { + return captcha; + } + + public void setCaptcha(String captcha) { + this.captcha = captcha; + } + + public String getCompanyName() { + return companyName; + } + + public void setCompanyName(String companyName) { + this.companyName = companyName; + } + + public int getRegisterType() { + return registerType; + } + + public void setRegisterType(int registerType) { + this.registerType = registerType; + } + + public String getReupass() { + return reupass; + } + + public void setReupass(String reupass) { + this.reupass = reupass; + } + + public String getRname() { + return rname; + } + + public void setRname(String rname) { + this.rname = rname; + } + + public int getRoleId() { + return roleId; + } + + public void setRoleId(int roleId) { + this.roleId = roleId; + } + + public String getSmscode() { + return smscode; + } + + public void setSmscode(String smscode) { + this.smscode = smscode; + } + + public String getUname() { + return uname; + } + + public void setUname(String uname) { + this.uname = uname; + } + + public String getUpass() { + return upass; + } + + public void setUpass(String upass) { + this.upass = upass; + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/TrackInputBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/TrackInputBean.java new file mode 100644 index 0000000..e39f217 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/TrackInputBean.java @@ -0,0 +1,39 @@ +package com.arpa.hndahesudintocctmsdriver.request.bean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/13 18:47 + * @description: + */ +public class TrackInputBean { + + private String latitude; + private String longitude; + private String shippingNoteNumber; + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getShippingNoteNumber() { + return shippingNoteNumber; + } + + public void setShippingNoteNumber(String shippingNoteNumber) { + this.shippingNoteNumber = shippingNoteNumber; + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/UploadReceiptInputBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/UploadReceiptInputBean.java new file mode 100644 index 0000000..968b95a --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/UploadReceiptInputBean.java @@ -0,0 +1,67 @@ +package com.arpa.hndahesudintocctmsdriver.request.bean; + +import java.util.List; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/13 10:39 + * @description:上传回单输入参数实体 + */ +public class UploadReceiptInputBean { + + private String latitude; + private String locationAddress; + private String longitude; + private List receiptId; + private int type; + private String waybillId; + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getLocationAddress() { + return locationAddress; + } + + public void setLocationAddress(String locationAddress) { + this.locationAddress = locationAddress; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public List getReceiptId() { + return receiptId; + } + + public void setReceiptId(List receiptId) { + this.receiptId = receiptId; + } + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + + public String getWaybillId() { + return waybillId; + } + + public void setWaybillId(String waybillId) { + this.waybillId = waybillId; + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/XiaoXiInputBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/XiaoXiInputBean.java new file mode 100644 index 0000000..c79e4e1 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/XiaoXiInputBean.java @@ -0,0 +1,128 @@ +package com.arpa.hndahesudintocctmsdriver.request.bean; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/3 17:51 + * @description: + */ +public class XiaoXiInputBean { + + private int cate; + private String content; + private String createTimeEnd; + private String createTimeStart; + private String createUserName; + private int forwordType; + private int isRead; + private int limit; + private String messageTypes; + private int page; + private int receiverId; + private String receiverName; + private int roleId; + + public int getCate() { + return cate; + } + + public void setCate(int cate) { + this.cate = cate; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCreateTimeEnd() { + return createTimeEnd; + } + + public void setCreateTimeEnd(String createTimeEnd) { + this.createTimeEnd = createTimeEnd; + } + + public String getCreateTimeStart() { + return createTimeStart; + } + + public void setCreateTimeStart(String createTimeStart) { + this.createTimeStart = createTimeStart; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getForwordType() { + return forwordType; + } + + public void setForwordType(int forwordType) { + this.forwordType = forwordType; + } + + public int getIsRead() { + return isRead; + } + + public void setIsRead(int isRead) { + this.isRead = isRead; + } + + public int getLimit() { + return limit; + } + + public void setLimit(int limit) { + this.limit = limit; + } + + public String getMessageTypes() { + return messageTypes; + } + + public void setMessageTypes(String messageTypes) { + this.messageTypes = messageTypes; + } + + public int getPage() { + return page; + } + + public void setPage(int page) { + this.page = page; + } + + public int getReceiverId() { + return receiverId; + } + + public void setReceiverId(int receiverId) { + this.receiverId = receiverId; + } + + public String getReceiverName() { + return receiverName; + } + + public void setReceiverName(String receiverName) { + this.receiverName = receiverName; + } + + public int getRoleId() { + return roleId; + } + + public void setRoleId(int roleId) { + this.roleId = roleId; + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/service/JTTSendService.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/service/JTTSendService.java new file mode 100644 index 0000000..6452c8a --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/service/JTTSendService.java @@ -0,0 +1,116 @@ +package com.arpa.hndahesudintocctmsdriver.service; + +import android.app.Service; +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.IBinder; +import android.util.Log; + +import androidx.annotation.Nullable; + +import com.arpa.hndahesudintocctmsdriver.bean.StartOrderBean; +import com.arpa.hndahesudintocctmsdriver.constant.JTTConstant; +import com.arpa.hndahesudintocctmsdriver.report.JTTProcess; +import com.arpa.hndahesudintocctmsdriver.util.msg.MsgUtil; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; +import com.google.gson.Gson; +import com.hdgq.locationlib.entity.ShippingNoteInfo; + +import java.util.Timer; +import java.util.TimerTask; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/12/24 14:16 + * @description: + */ +public class JTTSendService extends Service { + + private Context con; + private String snn=""; + private Gson gson=new Gson(); + private StartOrderBean sob=null; + + private Handler hd=new Handler(msg -> { + switch (msg.what){ + case 66: + JTTProcess.send(con,sob,""); + break; + case 67: + JTTProcess.pause(getBaseContext(),sob,""); + sob.getData().setCarNumber("豫PK2861"); + new Timer().schedule(new TimerTask() { + @Override + public void run() { + MsgUtil.addHdMsgWat(hd,68); + } + },6000,100000000); + break; + case 68: + JTTProcess.restart(getBaseContext(),sob,"[03]换车"); + break; + } + return false; + }); + + @Nullable + @Override + public IBinder onBind(Intent intent) {return null; } + + private int sum=0; + private ShippingNoteInfo sf; + + @Override + public void onCreate() { + super.onCreate(); + Log.e("交通厅","开启位置上传"); + con=this; + String str= SPUtil.getSP(con, JTTConstant.JTT_DATA_NAME,JTTConstant.JTT_DATA_JTTORDER_KEY); + String str2=SPUtil.getSP(con,JTTConstant.JTT_DATA_NAME,JTTConstant.JTT_DATA_ORDER_KEY); + sf=gson.fromJson(str,ShippingNoteInfo.class); + sob=gson.fromJson(str2,StartOrderBean.class); + new Thread(){ + @Override + public void run() { + while (true){ + String str= SPUtil.getSP(con,JTTConstant.JTT_DATA_NAME,JTTConstant.JTT_DATA_JTTORDER_KEY); + if ("".equals(str)) { + break; + } + sf=gson.fromJson(str, ShippingNoteInfo.class); + try { + Thread.sleep(sf.getInterval()+1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + MsgUtil.addHdMsgWat(hd,66); + try { + Thread.sleep(6000); + } catch (InterruptedException e) { + e.printStackTrace(); + } +// sum++; +// if(sum==3){ +// MsgUtil.addHdMsgWat(hd,67); +// } + } + } + }.start(); + } + + //开始 + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + Log.e("服务开启","-----"); + return START_STICKY; + + } + + @Override + public void onDestroy() { + super.onDestroy(); + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/service/LocationService.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/service/LocationService.java new file mode 100644 index 0000000..2987f52 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/service/LocationService.java @@ -0,0 +1,93 @@ +package com.arpa.hndahesudintocctmsdriver.service; + +import android.app.Service; +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.IBinder; +import android.util.Log; + +import androidx.annotation.Nullable; + +import com.google.gson.Gson; +import com.arpa.hndahesudintocctmsdriver.request.HuoYuanRequset; +import com.arpa.hndahesudintocctmsdriver.request.bean.TrackInputBean; +import com.arpa.hndahesudintocctmsdriver.util.location.LocationGDUtil; +import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants; + +import java.util.Timer; +import java.util.TimerTask; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/11/15 17:13 + * @description: + */ +public class LocationService extends Service { + + private Context con; + private TrackInputBean tib=new TrackInputBean(); + private LocationGDUtil l; + private int timeSum=1000*5; + private String snn=""; + private Gson gson=new Gson(); + private HuoYuanRequset hyr; + private Handler hd=new Handler(msg -> { + switch (msg.what){ + case RequsetCodeConstants.SUCCESS: + + break; + case LocationGDUtil.RES: + genzong(); + break; + } + return false; + }); + + @Nullable + @Override + public IBinder onBind(Intent intent) {return null; } + + @Override + public void onCreate() { + super.onCreate(); + con=this; + hyr=new HuoYuanRequset(con,hd); + Log.e("开始循环上传,等待100ms","-----"); + new Timer().schedule(new TimerTask() { + @Override + public void run() { + l = new LocationGDUtil(con, hd); + l.onCreate(); + } + },100,timeSum); + } + + //开始 + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + Log.e("服务开启","-----"); + return START_STICKY; + + } + + @Override + public void onDestroy() { + super.onDestroy(); + } + + + int sum=0; + public void genzong(){ + //经度 + tib.setLatitude(l.getLatitude()+""); + //纬度 + tib.setLongitude(l.getLongitude()+""); + Log.e("经度",l.getLatitude()+""); + Log.e("维度",l.getLongitude()+""); + sum+=3; + Log.e("当前app后台服务存活时间(手机息屏状态)",sum+"秒"); + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/service/MakeUpAlService.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/service/MakeUpAlService.java new file mode 100644 index 0000000..c3badf1 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/service/MakeUpAlService.java @@ -0,0 +1,137 @@ +package com.arpa.hndahesudintocctmsdriver.service; + +import android.app.Service; +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.IBinder; +import android.util.Log; + +import androidx.annotation.Nullable; + +import com.alct.mdp.MDPLocationCollectionManager; +import com.alct.mdp.model.Image; +import com.google.gson.Gson; +import com.arpa.hndahesudintocctmsdriver.util.msg.MsgUtil; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/11/23 20:31 + * @description: + */ +public class MakeUpAlService extends Service { + + //装货照片 卸货照片 回单照片 + + private Context con; + private Gson gson=new Gson(); + private int cd=60*1; + private Handler hd=new Handler(msg -> { + switch (msg.what){ + case 15: + up(); + break; + } + return false; + }); + + @Nullable + @Override + public IBinder onBind(Intent intent) { + return null; + } + + @Override + public void onCreate() { + super.onCreate(); + con=getBaseContext(); + new Handler().postDelayed(() -> { + MsgUtil.addHdMsgWat(hd,15); + },cd); + } + + //开始 + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + Log.e("服务开启","-----"); + return START_STICKY; + + } + + @Override + public void onDestroy() { + super.onDestroy(); + } + + private void up(){ + String id_1=SPUtil.getSP(con,"make","装货"); + String id_2=SPUtil.getSP(con,"make","卸货"); + String id_3=SPUtil.getSP(con,"make","回单"); + if(!"".equals(id_1)){ + String image_1=SPUtil.getSP(con,"make","装货-"+id_1); + up_image_z(id_1,gson.fromJson(image_1,Image.class)); + } + if(!"".equals(id_2)){ + String image_2=SPUtil.getSP(con,"make","卸货-"+id_2); + up_image_z(id_2,gson.fromJson(image_2,Image.class)); + } + if(!"".equals(id_3)){ + String image_3=SPUtil.getSP(con,"make","回单-"+id_3); + up_image_z(id_3,gson.fromJson(image_3,Image.class)); + } + } + + + + public void up_image_z(String id,Image image){ + MDPLocationCollectionManager.uploadPickupImage(con,id,image, new com.alct.mdp.callback.OnResultListener() { + + @Override + public void onSuccess() { + Log.e("上报安联","装货照片上传成功"); + } + + @Override + public void onFailure(String s, String s1) { + Log.e("上报安联失败(装货照片):",s+s1); + } + + }); + } + + public void up_image(String id,Image image){ + MDPLocationCollectionManager.uploadUnloadImage(con,id, image, new com.alct.mdp.callback.OnResultListener() { + + @Override + public void onSuccess() { + Log.e("上报安联","卸货照片上传成功"); + } + + @Override + public void onFailure(String s, String s1) { + Log.e("上报安联失败(卸货照片):",s+s1); + } + + }); + } + + public void receipt_image(String id,Image image){ + MDPLocationCollectionManager.uploadPODImage(con,id, image, new com.alct.mdp.callback.OnResultListener() { + + @Override + public void onSuccess() { + Log.e("上报安联","回单照片上传成功"); + } + + @Override + public void onFailure(String s, String s1) { + Log.e("上报安联失败(回单照片):",s+s1); + } + + }); + } + + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/service/MakeUpService.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/service/MakeUpService.java new file mode 100644 index 0000000..3d34522 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/service/MakeUpService.java @@ -0,0 +1,82 @@ +package com.arpa.hndahesudintocctmsdriver.service; + +import android.app.Service; +import android.content.Intent; +import android.content.res.AssetFileDescriptor; +import android.media.MediaPlayer; +import android.os.Handler; +import android.os.IBinder; +import android.util.Log; + +import androidx.annotation.Nullable; + +import com.arpa.hndahesudintocctmsdriver.request.HuoYuanRequset; +import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; +import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants; + + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/10/8 16:33 + * @description:上传失败后进行重新上传 + */ +public class MakeUpService extends Service { + + private MediaPlayer mediaPlayer = new MediaPlayer(); + public void palyMp3(){ + Log.e("开始播放","-----"); + try { + AssetFileDescriptor fd =getAssets().openFd("kujp9scu.mp3"); + mediaPlayer.setDataSource(fd); + mediaPlayer.setLooping(false);//设置为循环播放 + mediaPlayer.prepare();//初始化播放器MediaPlayer + mediaPlayer.start(); + Log.e("播放成功","-----"); + } catch (Exception e) { + e.printStackTrace(); + Log.e("播放失败","-----"); + } + } + private Handler hd=new Handler(msg -> { + switch (msg.what){ + case RequsetCodeConstants.SUCCESS: + if(CacheGroup.cacheList.get(HuoYuanRequset.ASYMMETRYWAYBILL)!=null){ + + CacheGroup.cacheList.remove(CacheGroup.cacheList.get(HuoYuanRequset.ASYMMETRYWAYBILL)); + } + break; + } + return false; + }); + @Nullable + @Override + public IBinder onBind(Intent intent) { + return null; + } + + @Override + public void onCreate() { + super.onCreate(); + palyMp3(); + } + + //开始 + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + Log.e("服务开启","-----"); + + return START_STICKY; + + } + + @Override + public void onDestroy() { + super.onDestroy(); + if (mediaPlayer!=null) { + mediaPlayer.stop(); + mediaPlayer.release(); + } + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/service/PlayerMusicService.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/service/PlayerMusicService.java new file mode 100644 index 0000000..a4e312f --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/service/PlayerMusicService.java @@ -0,0 +1,97 @@ +package com.arpa.hndahesudintocctmsdriver.service; + +import android.app.Notification; +import android.app.NotificationChannel; +import android.app.NotificationManager; +import android.app.Service; +import android.content.Context; +import android.content.Intent; +import android.media.MediaPlayer; +import android.os.Build; +import android.os.IBinder; + +import androidx.annotation.Nullable; + +import com.arpa.hndahesudintocctmsdriver.R; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/9/10 11:17 + * @description: + */ +public class PlayerMusicService extends Service { + private MediaPlayer mMediaPlayer; + private boolean normalExit; + + @Nullable + @Override + public IBinder onBind(Intent intent) { + return null; + } + + @Override + public void onCreate() { + super.onCreate(); + Context con; + NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); + NotificationChannel mChannel = null; + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { + mChannel = new NotificationChannel("1", getString(R.string.app_name), + NotificationManager.IMPORTANCE_LOW); + notificationManager.createNotificationChannel(mChannel); + Notification notification = new Notification.Builder(getApplicationContext(), "1").build(); + startForeground(1, notification); + } + normalExit = false; + mMediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.silent); + if (mMediaPlayer != null) { + mMediaPlayer.setLooping(true); + } + } + + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + new Thread(new Runnable() { + @Override + public void run() { + startPlayMusic(); + } + }).start(); + return START_STICKY; + } + + + private void startPlayMusic() { + if (mMediaPlayer == null) { + mMediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.silent); + + if (mMediaPlayer != null) { + mMediaPlayer.setLooping(true); + mMediaPlayer.start(); + } + } + } + + + private void stopPlayMusic() { + if (mMediaPlayer != null && mMediaPlayer.isPlaying()) { + mMediaPlayer.stop(); + } + } + + @Override + public void onDestroy() { + super.onDestroy(); + stopPlayMusic(); + // 重启 + if (!normalExit) { + Intent intent = new Intent(getApplicationContext(), PlayerMusicService.class); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + startForegroundService(intent); + } else { + startService(intent); + } + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/service/RestartService.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/service/RestartService.java new file mode 100644 index 0000000..8418177 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/service/RestartService.java @@ -0,0 +1,47 @@ +package com.arpa.hndahesudintocctmsdriver.service; + +import android.app.Service; +import android.content.Context; +import android.content.Intent; +import android.os.IBinder; +import android.util.Log; + +import androidx.annotation.Nullable; + +import com.arpa.hndahesudintocctmsdriver.ui.MainActivity; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/31 19:54 + * @description: + */ +public class RestartService extends Service { + + private Context con; + + @Nullable + @Override + public IBinder onBind(Intent intent) { + return null; + } + + //Service被启动的时候回调onStartCommand方法 + public int onStartCommand(Intent intent, int flags, int startId){ + Log.e("---static---","启动"); + return START_STICKY; + } + @Override + public void onCreate() { + super.onCreate(); + con=getApplication(); + Intent in=new Intent(con, MainActivity.class); + startActivity(in); + } + + @Override + public void onDestroy() { + super.onDestroy(); + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/service/TestService.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/service/TestService.java new file mode 100644 index 0000000..52e3207 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/service/TestService.java @@ -0,0 +1,107 @@ +package com.arpa.hndahesudintocctmsdriver.service; + +import android.app.Notification; +import android.app.NotificationChannel; +import android.app.NotificationManager; +import android.app.PendingIntent; +import android.app.Service; +import android.content.Context; +import android.content.Intent; +import android.os.Build; +import android.os.Handler; +import android.os.IBinder; +import android.util.Log; + +import androidx.annotation.Nullable; +import androidx.core.app.NotificationCompat; +import androidx.core.app.TaskStackBuilder; + +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.ui.login.WelcomeActivity; + +import java.util.Timer; +import java.util.TimerTask; + + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/10 19:00 + * @description: + */ +public class TestService extends Service { + + private Context con; + private Handler hd=new Handler(msg -> { + switch (msg.what){ + case 1: + + + case 2: + break; + } + return false; + }); + //DanWeiBroadcastReceiver db; + @Nullable + @Override + //想要使用Service必须实现这个方法,该方法返回一个IBinder对象 + //应用程序使用这个对象与Service组件进行通信 + public IBinder onBind(Intent intent) { + return null; + } + + //Service被创建的时候回调onCreate方法 + public void onCreate(){ + super.onCreate(); + con=this; + new Timer().schedule(new TimerTask() { + @Override + public void run() { + notification("消息","您有一条新的订单"); + Log.e("1234","1234"); + } + },100,5000); + } + + + //Service被启动的时候回调onStartCommand方法 + public int onStartCommand(Intent intent, int flags, int startId){ + Log.e("---static---","启动"); + return START_STICKY; + } + + //Service被销毁的时候回调onDestroy方法 + public void onDestroy(){ + super.onDestroy(); + Log.e("---static---","关闭"); + Intent intentOne = new Intent(con,TestService.class); + startService(intentOne); + } + + private void notification(String title,String value) { + Intent intent = new Intent(this, WelcomeActivity.class); + NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); + //8.0 以后需要加上channelId 才能正常显示 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){ + String channelId = "default"; + String channelName = "默认通知"; + manager.createNotificationChannel(new NotificationChannel(channelId, channelName, NotificationManager.IMPORTANCE_HIGH)); + } + //设置TaskStackBuilder + TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); + stackBuilder.addParentStack(WelcomeActivity.class); + stackBuilder.addNextIntent(intent); + PendingIntent pendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); + Notification notification = new NotificationCompat.Builder(this, "default") + .setSmallIcon(R.mipmap.ic_launcher) + .setContentTitle("您有一条新的订单") + .setContentText(value) + .setAutoCancel(true) + .setDefaults(Notification.DEFAULT_ALL) + .setWhen(System.currentTimeMillis()) + .setContentIntent(pendingIntent) + .build(); + manager.notify(1, notification); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/service/TrackService.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/service/TrackService.java new file mode 100644 index 0000000..bfec823 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/service/TrackService.java @@ -0,0 +1,109 @@ +package com.arpa.hndahesudintocctmsdriver.service; + +import android.app.Service; +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.IBinder; +import android.util.Log; + +import androidx.annotation.Nullable; + +import com.google.gson.Gson; +import com.arpa.hndahesudintocctmsdriver.bean.BaseBean; +import com.arpa.hndahesudintocctmsdriver.request.HuoYuanRequset; +import com.arpa.hndahesudintocctmsdriver.request.bean.TrackInputBean; +import com.arpa.hndahesudintocctmsdriver.util.location.LocationGDUtil; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; +import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; +import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants; + +import java.util.Timer; +import java.util.TimerTask; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/13 18:52 + * @description:上传司机轨迹位置 + */ +public class TrackService extends Service { + + private Context con; + private TrackInputBean tib=new TrackInputBean(); + private LocationGDUtil l; + private int timeSum=1000*60*3; + private String snn=""; + private Gson gson=new Gson(); + private HuoYuanRequset hyr; + + private Handler hd=new Handler(msg -> { + switch (msg.what){ + case RequsetCodeConstants.SUCCESS: + if(CacheGroup.cacheList.get("genzong")!=null){ + BaseBean bb=gson.fromJson(CacheGroup.cacheList.get("genzong"),BaseBean.class); + if(bb.getCode()==200){ + Log.e("--轨迹上传--","成功"); + }else{ + Log.e("--轨迹上传失败:--",bb.getMsg()); + } + CacheGroup.cacheList.remove("genzong"); + } + break; + case LocationGDUtil.RES: + genzong(); + break; + } + return false; + }); + + @Nullable + @Override + public IBinder onBind(Intent intent) {return null; } + + @Override + public void onCreate() { + super.onCreate(); + con=this; + hyr=new HuoYuanRequset(con,hd); + Log.e("开始循环上传,等待100ms","-----"); + new Timer().schedule(new TimerTask() { + @Override + public void run() { + snn=SPUtil.getSP(con,"order","ShippingNoteNumber"); + if(!snn.equals("")) { + l = new LocationGDUtil(con, hd); + l.onCreate(); + }else{ + onDestroy(); + } + } + },100,timeSum); + } + + //开始 + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + Log.e("服务开启","-----"); + return START_STICKY; + + } + + @Override + public void onDestroy() { + super.onDestroy(); + } + + public void genzong(){ + //经度 + tib.setLatitude(l.getLatitude()+""); + //纬度 + tib.setLongitude(l.getLongitude()+""); + Log.e("经度",l.getLatitude()+""); + Log.e("维度",l.getLongitude()+""); + //单号 + tib.setShippingNoteNumber(snn); + hyr.trackTracking(tib); + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/MainActivity.kt b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/MainActivity.kt new file mode 100644 index 0000000..e67a530 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/MainActivity.kt @@ -0,0 +1,179 @@ +package com.arpa.hndahesudintocctmsdriver.ui + +import android.Manifest +import android.content.Intent +import android.os.Build +import android.os.Bundle +import android.os.Message +import android.view.KeyEvent +import android.widget.* +import androidx.fragment.app.Fragment +import com.arpa.hndahesudintocctmsdriver.R +import com.arpa.hndahesudintocctmsdriver.ui.home.HomeFragment +import com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity +import com.arpa.hndahesudintocctmsdriver.ui.my.MyFragment +import com.arpa.hndahesudintocctmsdriver.ui.news.NewsFragment +import com.arpa.hndahesudintocctmsdriver.ui.wallet.WalletFragment +import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil +import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity +import com.arpa.hndahesudintocctmsdriver.util.view.BottomTabUtil +import com.arpa.hndahesudintocctmsdriver.util.view.PanDuanUtil +import com.google.gson.Gson +import com.luck.picture.lib.permissions.RxPermissions +import io.reactivex.functions.Consumer + +class MainActivity : BaseAppCompatActivity() { + + private var ibs = arrayOf() + private var title_view=arrayOf() + private var imgs0= intArrayOf(R.mipmap.tab1,R.mipmap.tab2,R.mipmap.xiaoxi0,R.mipmap.tab3) + private var imgs1= intArrayOf(R.mipmap.tab1_s,R.mipmap.tab2_s,R.mipmap.xiaoxi1,R.mipmap.tab3_s) + private val gson = Gson() + + override fun msgMethod(m: Message?) { + super.msgMethod(m) + when(m!!.what){ + 1->{ + isExit = false; + } + RequsetCodeConstants.SUCCESS->{ } + } + } + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + StateStyleUtil.stateTextColor(this) + setContentView(R.layout.activity_main) + con=this + act=this + //隐藏标题栏 + val actionBar = supportActionBar + actionBar?.hide() + var r1=findViewById(R.id.r1) + var r2=findViewById(R.id.r2) + var r3=findViewById(R.id.r3) + var r4=findViewById(R.id.r4) + var fs = arrayOfNulls(4) + fs[0] = HomeFragment() + fs[1] = WalletFragment() + fs[2] = NewsFragment() + fs[3] = MyFragment() + ibs=arrayOf( + findViewById(R.id.huoyuan), + findViewById(R.id.qianbao), + findViewById(R.id.xiaoxi), + findViewById(R.id.wode)) + title_view=arrayOf(findViewById(R.id.title1),findViewById(R.id.title2),findViewById(R.id.title3),findViewById(R.id.title4)) + var bt = BottomTabUtil(this, R.id.body, fs) + bt.selectItem(fs[0]) + r1.setOnClickListener { v -> + selectImage(bt.index,0) + bt.setDefaultFragment(fs[0]) + bt.index=0 + } + r2.setOnClickListener { v -> + if (!PanDuanUtil.isLogin(con)){ + jumpLogin() + }else{ + selectImage(bt.index,1) + if (!fs[1]!!.isAdded) { + bt.hide(fs[bt.index]) + bt.selectItem(fs[1]) + } else { + bt.setDefaultFragment(fs[1]) + } + bt.index = 1 + } + } + r3.setOnClickListener { v -> + if (!PanDuanUtil.isLogin(con)){ + jumpLogin() + }else{ + selectImage(bt.index,2) + if (!fs[2]!!.isAdded) { + bt.hide(fs[bt.index]) + bt.selectItem(fs[2]) + } else { + bt.setDefaultFragment(fs[2]) + } + bt.index = 2 + } + } + r4.setOnClickListener { v -> + if (!PanDuanUtil.isLogin(con)){ + jumpLogin() + }else{ + selectImage(bt.index,3) + if (!fs[3]!!.isAdded) { + bt.hide(fs[bt.index]) + bt.selectItem(fs[3]) + } else { + bt.setDefaultFragment(fs[3]) + } + bt.index = 3 + } + } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q){ + getPression() + } + } + + fun getPression(){ + var gpsPermissions = RxPermissions(this) + gpsPermissions.request( + Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.ACCESS_COARSE_LOCATION, + Manifest.permission.ACCESS_BACKGROUND_LOCATION + ).subscribe( + Consumer { b: Boolean -> + if (b) { + //判断GPS模块是否开启 + + } else { + Toast.makeText(con,"开启权限失败,请在应用设置-权限-定位-始终允许",Toast.LENGTH_SHORT).show() + //.show("开启权限失败,请在应用设置-权限-定位-始终允许") + } + } + ) + } + + + + fun selectImage(old:Int, new:Int){ + ibs[old].setImageResource(imgs0[old]) + ibs[new].setImageResource(imgs1[new]) + title_view[old].setTextColor(resources.getColor(R.color.tab_select_no,null)) + title_view[new].setTextColor(resources.getColor(R.color.tab_select,null)) + } + + fun jumpLogin(){ + var inl=Intent(con,LoginActivity::class.java) + startActivity(inl) + } + + + override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { + return if (keyCode == KeyEvent.KEYCODE_BACK) { + exit() + false + } else { + super.onKeyDown(keyCode, event) + } + } + + private var isExit = false + + fun exit() { + if (!isExit) { + isExit = true + Toast.makeText(applicationContext, "再按一次退出程序", Toast.LENGTH_SHORT).show() + hd.sendEmptyMessageDelayed(0, 2000) + } else { + val intent = Intent(Intent.ACTION_MAIN) + intent.addCategory(Intent.CATEGORY_HOME) + startActivity(intent) + System.exit(1) + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/NFCActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/NFCActivity.java new file mode 100644 index 0000000..4330349 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/NFCActivity.java @@ -0,0 +1,90 @@ +package com.arpa.hndahesudintocctmsdriver.ui; + +import android.content.Intent; +import android.os.Bundle; +import android.util.Log; +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.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.util.NfcUtils; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity; + +import java.io.UnsupportedEncodingException; + +/** + * @author hlh + * @version 1.0.0 + * @date 2022/2/15 17:03 + * @description: + */ +public class NFCActivity extends BaseAppCompatActivity { + + private TextView get; + + @Override + protected void onCreate(@Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_nfc); + con=this; + get=findViewById(R.id.get); + if (!NfcUtils.hasNfc(con)) { + Toast.makeText(con,"请先开启nfc",Toast.LENGTH_LONG).show(); + }else{ + initData(); + } + + } + + public void initData() { + //nfc初始化设置 + NfcUtils nfcUtils = new NfcUtils(this); + } + + @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 str=""; + + @Override + protected void onNewIntent(Intent intent) { + super.onNewIntent(intent); + //当该Activity接收到NFC标签时,运行该方法 + //调用工具方法,读取NFC数据 + try { + str = NfcUtils.readNFCId(intent); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + get.setText("读取内容"+str); + MDPLocationCollectionManager.checkNfc(getBaseContext(), "123456", str, new OnResultListener() { + @Override + public void onSuccess() { + get.setText("读取内容"+str+"成功"); + } + + @Override + public void onFailure(String s, String s1) { + get.setText("读取内容"+str+"失败"+s+s1); + + } + }); + Log.e("nfc",str); + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/PhotoUtils.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/PhotoUtils.java new file mode 100644 index 0000000..544605d --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/PhotoUtils.java @@ -0,0 +1,288 @@ +package com.arpa.hndahesudintocctmsdriver.ui; + +import android.annotation.SuppressLint; +import android.app.Activity; +import android.content.ContentUris; +import android.content.Context; +import android.content.Intent; +import android.database.Cursor; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.net.Uri; +import android.os.Build; +import android.os.Environment; +import android.provider.DocumentsContract; +import android.provider.MediaStore; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; + +/** + * @author hlh + * @version 1.0.0 + * @date 2022/2/9 10:31 + * @description: + */ +public class PhotoUtils { + + private static final String TAG = "PhotoUtils"; + + /** + * @param activity 当前activity + * @param imageUri 拍照后照片存储路径 + * @param requestCode 调用系统相机请求码 + */ + public static void takePicture(Activity activity, Uri imageUri, int requestCode) { + //调用系统相机 + Intent intentCamera = new Intent(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + intentCamera.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); //添加这一句表示对目标应用临时授权该Uri所代表的文件 + } + intentCamera.setAction(MediaStore.ACTION_IMAGE_CAPTURE); + //将拍照结果保存至photo_file的Uri中,不保留在相册中 + intentCamera.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); + if (activity!=null){ + activity.startActivityForResult(intentCamera, requestCode); + } + } + + /** + * @param activity 当前activity + * @param requestCode 打开相册的请求码 + */ + public static void openPic(Activity activity, int requestCode) { + Intent photoPickerIntent = new Intent(Intent.ACTION_GET_CONTENT); + photoPickerIntent.setType("image/*"); + activity.startActivityForResult(photoPickerIntent, requestCode); + } + + /** + * @param activity 当前activity + * @param orgUri 剪裁原图的Uri + * @param desUri 剪裁后的图片的Uri + * @param aspectX X方向的比例 + * @param aspectY Y方向的比例 + * @param width 剪裁图片的宽度 + * @param height 剪裁图片高度 + * @param requestCode 剪裁图片的请求码 + */ + public static void cropImageUri(Activity activity, Uri orgUri, Uri desUri, int aspectX, int aspectY, int width, int height, int requestCode) { + Intent intent = new Intent("com.android.camera.action.CROP"); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + } + intent.setDataAndType(orgUri, "image/*"); + intent.putExtra("crop", "true"); + intent.putExtra("aspectX", aspectX); + intent.putExtra("aspectY", aspectY); + intent.putExtra("outputX", width); + intent.putExtra("outputY", height); + intent.putExtra("scale", true); + //将剪切的图片保存到目标Uri中 + intent.putExtra(MediaStore.EXTRA_OUTPUT, desUri); + intent.putExtra("return-data", false); + intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString()); + intent.putExtra("noFaceDetection", true); + activity.startActivityForResult(intent, requestCode); + } + + /** + * 读取uri所在的图片 + * + * @param uri 图片对应的Uri + * @param mContext 上下文对象 + * @return 获取图像的Bitmap + */ + public static Bitmap getBitmapFromUri(Uri uri, Context mContext) { + try { +// Bitmap bitmap = MediaStore.Images.Media.getBitmap(mContext.getContentResolver(), uri); + Bitmap bitmapFormUri = getBitmapFormUri(mContext, uri); + return bitmapFormUri; + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + /** + * 通过uri获取图片并进行压缩 + * + * @param uri + */ + public static Bitmap getBitmapFormUri(Context ac, Uri uri) throws FileNotFoundException, IOException { + InputStream input = ac.getContentResolver().openInputStream(uri); + BitmapFactory.Options onlyBoundsOptions = new BitmapFactory.Options(); + onlyBoundsOptions.inJustDecodeBounds = true; + onlyBoundsOptions.inDither = true;//optional + onlyBoundsOptions.inPreferredConfig = Bitmap.Config.ARGB_8888;//optional + BitmapFactory.decodeStream(input, null, onlyBoundsOptions); + input.close(); + int originalWidth = onlyBoundsOptions.outWidth; + int originalHeight = onlyBoundsOptions.outHeight; + if ((originalWidth == -1) || (originalHeight == -1)){ + return null; + } + //图片分辨率以480x800为标准 + float hh = 800f;//这里设置高度为800f + float ww = 480f;//这里设置宽度为480f + //缩放比。由于是固定比例缩放,只用高或者宽其中一个数据进行计算即可 + int be = 1;//be=1表示不缩放 + if (originalWidth > originalHeight && originalWidth > ww) {//如果宽度大的话根据宽度固定大小缩放 + be = (int) (originalWidth / ww); + } else if (originalWidth < originalHeight && originalHeight > hh) {//如果高度高的话根据宽度固定大小缩放 + be = (int) (originalHeight / hh); + } + if (be <= 0){ + be = 1; + } + //比例压缩 + BitmapFactory.Options bitmapOptions = new BitmapFactory.Options(); + bitmapOptions.inSampleSize = be;//设置缩放比例 + bitmapOptions.inDither = true;//optional + bitmapOptions.inPreferredConfig = Bitmap.Config.ARGB_8888;//optional + input = ac.getContentResolver().openInputStream(uri); + Bitmap bitmap = BitmapFactory.decodeStream(input, null, bitmapOptions); + input.close(); + return compressImage(bitmap);//再进行质量压缩 + } + + /** + * 质量压缩方法 + * + * @param image + * @return + */ + public static Bitmap compressImage(Bitmap image) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + image.compress(Bitmap.CompressFormat.JPEG, 100, baos);//质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中 + int options = 100; + while (baos.toByteArray().length / 1024 > 100) { //循环判断如果压缩后图片是否大于100kb,大于继续压缩 + baos.reset();//重置baos即清空baos + //第一个参数 :图片格式 ,第二个参数: 图片质量,100为最高,0为最差 ,第三个参数:保存压缩后的数据的流 + image.compress(Bitmap.CompressFormat.JPEG, options, baos);//这里压缩options%,把压缩后的数据存放到baos中 + options -= 10;//每次都减少10 + } + ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());//把压缩后的数据baos存放到ByteArrayInputStream中 + Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, null);//把ByteArrayInputStream数据生成图片 + return bitmap; + } + + + /** + * @param context 上下文对象 + * @param uri 当前相册照片的Uri + * @return 解析后的Uri对应的String + */ + @SuppressLint("NewApi") + public static String getPath(final Context context, final Uri uri) { + + final boolean isKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT; + String pathHead = "file:///"; + // DocumentProvider + if (isKitKat && DocumentsContract.isDocumentUri(context, uri)) { + // ExternalStorageProvider + if (isExternalStorageDocument(uri)) { + final String docId = DocumentsContract.getDocumentId(uri); + final String[] split = docId.split(":"); + final String type = split[0]; + if ("primary".equalsIgnoreCase(type)) { + return pathHead + Environment.getExternalStorageDirectory() + "/" + split[1]; + } + } + // DownloadsProvider + else if (isDownloadsDocument(uri)) { + + final String id = DocumentsContract.getDocumentId(uri); + + final Uri contentUri = ContentUris.withAppendedId(Uri.parse("content://downloads/public_downloads"), Long.valueOf(id)); + + return pathHead + getDataColumn(context, contentUri, null, null); + } + // MediaProvider + else if (isMediaDocument(uri)) { + final String docId = DocumentsContract.getDocumentId(uri); + final String[] split = docId.split(":"); + final String type = split[0]; + + Uri contentUri = null; + if ("image".equals(type)) { + contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; + } else if ("video".equals(type)) { + contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI; + } else if ("audio".equals(type)) { + contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; + } + + final String selection = "_id=?"; + final String[] selectionArgs = new String[]{split[1]}; + + return pathHead + getDataColumn(context, contentUri, selection, selectionArgs); + } + } + // MediaStore (and general) + else if ("content".equalsIgnoreCase(uri.getScheme())) { + return pathHead + getDataColumn(context, uri, null, null); + } + // File + else if ("file".equalsIgnoreCase(uri.getScheme())) { + return pathHead + uri.getPath(); + } + return null; + } + + /** + * Get the value of the data column for this Uri. This is useful for + * MediaStore Uris, and other file-based ContentProviders. + * + * @param context The context. + * @param uri The Uri to query. + * @param selection (Optional) Filter used in the query. + * @param selectionArgs (Optional) Selection arguments used in the query. + * @return The value of the _data column, which is typically a file path. + */ + private static String getDataColumn(Context context, Uri uri, String selection, String[] selectionArgs) { + + Cursor cursor = null; + final String column = "_data"; + final String[] projection = {column}; + try { + cursor = context.getContentResolver().query(uri, projection, selection, selectionArgs, null); + if (cursor != null && cursor.moveToFirst()) { + final int column_index = cursor.getColumnIndexOrThrow(column); + return cursor.getString(column_index); + } + } finally { + if (cursor != null){ + cursor.close(); + } + } + return null; + } + + /** + * @param uri The Uri to check. + * @return Whether the Uri authority is ExternalStorageProvider. + */ + private static boolean isExternalStorageDocument(Uri uri) { + return "com.android.externalstorage.documents".equals(uri.getAuthority()); + } + + /** + * @param uri The Uri to check. + * @return Whether the Uri authority is DownloadsProvider. + */ + private static boolean isDownloadsDocument(Uri uri) { + return "com.android.providers.downloads.documents".equals(uri.getAuthority()); + } + + /** + * @param uri The Uri to check. + * @return Whether the Uri authority is MediaProvider. + */ + private static boolean isMediaDocument(Uri uri) { + return "com.android.providers.media.documents".equals(uri.getAuthority()); + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/UiAuxiliary.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/UiAuxiliary.java new file mode 100644 index 0000000..2af3a21 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/UiAuxiliary.java @@ -0,0 +1,53 @@ +package com.arpa.hndahesudintocctmsdriver.ui; + +import android.content.Context; + +import com.arpa.hndahesudintocctmsdriver.event.HomeEvent; +import com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; + +import org.greenrobot.eventbus.EventBus; + +import cn.jpush.android.api.JPushInterface; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/18 8:45 + * @description:ui界面的辅助类 + */ +public class UiAuxiliary { + + public static String getState(int stateCode){ + String state=""; + switch (stateCode){ + case 100001: state="待认证";break; + case 100002: state="审核中";break; + case 100003: state="审核通过";break; + case 100004: state="审核不通过";break; + default:state="未认证";break; + } + return state; + } + + public static boolean isLogin(Context con){ + if (SPUtil.getSP(con, LoginActivity.USER,LoginActivity.USER_TOKEN).equals("")){ + return false; + } + return true; + } + + public static void delLogin(Context con){ + JPushInterface.deleteAlias(con,0); + SPUtil.insSP(con,LoginActivity.USER,LoginActivity.USER_TOKEN,""); + SPUtil.insSP(con,LoginActivity.USER,LoginActivity.USER_UNAME,""); + SPUtil.insSP(con,LoginActivity.USER,LoginActivity.USER_RNAME,""); + SPUtil.insSP(con,LoginActivity.USER,LoginActivity.USER_ID,""); + SPUtil.insSP(con,"user","userdata",""); + } + + public static void homeRequest(String msg){ + HomeEvent he=new HomeEvent(msg); + EventBus.getDefault().post(he); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/alert/AgreementAlert.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/alert/AgreementAlert.java new file mode 100644 index 0000000..98cb60f --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/alert/AgreementAlert.java @@ -0,0 +1,115 @@ +package com.arpa.hndahesudintocctmsdriver.ui.alert; + +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.text.SpannableStringBuilder; +import android.text.TextPaint; +import android.text.method.LinkMovementMethod; +import android.text.style.ClickableSpan; +import android.view.Gravity; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; + +import androidx.annotation.NonNull; + +import com.lxj.xpopup.core.CenterPopupView; +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.ui.web.WebActivity; +import com.arpa.hndahesudintocctmsdriver.util.msg.MsgUtil; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; + +import org.jetbrains.annotations.NotNull; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/10/13 10:30 + * @description: + */ +public class AgreementAlert extends CenterPopupView { + + private String url; + private String url2; + private Handler hd; + private Context con; + + public AgreementAlert(@NonNull @NotNull Context context,String url,String url2,Handler hd) { + super(context); + this.url=url; + this.url2=url2; + this.hd=hd; + this.con=context; + } + + @Override + protected int getImplLayoutId() { + return R.layout.alert_ok_cancel; + } + // 执行初始化操作,比如:findView,设置点击,或者任何你弹窗内的业务逻辑 + @Override + protected void onCreate() { + super.onCreate(); + TextView tv_title=findViewById(R.id.tv_title); + TextView tv_content=findViewById(R.id.tv_content); + Button tv_cancel=findViewById(R.id.tv_cancel); + Button tv_confirm=findViewById(R.id.tv_confirm); + tv_content.setGravity(Gravity.LEFT); + tv_confirm.setText("同意"); + tv_title.setText("用户服务协议和隐私政策"); + String str = "请你务必审慎阅读、充分理解此内容中的“用户服务协议和隐私政策”各条款、包括但不限于:为了向你提供身份认证、接单、运单查询、消息推送等服务我们需要收集你的设备信息、操作日志等个人信息。" + + "\n你可阅读《用户服务协议》和《隐私政策》了解详细信息。如果你同意,请点击“同意”开始接受我们的服务。"; + SpannableStringBuilder ssb = new SpannableStringBuilder(); + ssb.append(str); + //第一个出现的位置 + final int start = str.indexOf("《"); + ssb.setSpan(new ClickableSpan() { + @Override + public void onClick(View widget) { + //用户服务协议点击事件 + Intent in=new Intent(getContext(), WebActivity.class); + in.putExtra("url",url2); + in.putExtra("title","用户服务协议"); + getContext().startActivity(in); + } + @Override + public void updateDrawState(TextPaint ds) { + super.updateDrawState(ds); + //设置文件颜色 + ds.setColor(getResources().getColor(R.color.theme_color,null)); + // 去掉下划线 + ds.setUnderlineText(false); + } + }, start, start + 8, 0); + final int end = str.lastIndexOf("《"); + ssb.setSpan(new ClickableSpan() { + @Override + public void onClick(View widget) { + //用户服务协议点击事件 + Intent in=new Intent(getContext(), WebActivity.class); + in.putExtra("url",url); + in.putExtra("title","隐私政策"); + getContext().startActivity(in); + } + @Override + public void updateDrawState(TextPaint ds) { + super.updateDrawState(ds); + //设置文件颜色 + ds.setColor(getResources().getColor(R.color.theme_color,null)); + // 去掉下划线 + ds.setUnderlineText(false); + } + }, end, end + 6, 0); + tv_content.setMovementMethod(LinkMovementMethod.getInstance()); + tv_content.setText(ssb, TextView.BufferType.SPANNABLE); + tv_cancel.setOnClickListener(v -> { + System.exit(1); + }); + tv_confirm.setOnClickListener(v -> { + SPUtil.insSP(con,"data","firstKey","1"); + dismiss(); + MsgUtil.addHdMsgWat(hd,13); + }); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/alert/ChoiceVehicleAlert.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/alert/ChoiceVehicleAlert.java new file mode 100644 index 0000000..1a281da --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/alert/ChoiceVehicleAlert.java @@ -0,0 +1,115 @@ +package com.arpa.hndahesudintocctmsdriver.ui.alert; + +import android.content.Context; +import android.graphics.Color; +import android.os.Handler; +import android.widget.Button; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.cardview.widget.CardView; + +import com.lxj.xpopup.core.CenterPopupView; +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.bean.CarListBean; +import com.arpa.hndahesudintocctmsdriver.util.msg.MsgUtil; + +import org.jetbrains.annotations.NotNull; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/10/8 15:20 + * @description: + */ +public class ChoiceVehicleAlert extends CenterPopupView{ + + private CardView box,box2,box3,choice,choice2,choice3; + private TextView name,name2,name3; + private Button tv_cancel,tv_confirm; + private Context con; + private CarListBean clb; + private Handler hd; + private int index=-1; + public ChoiceVehicleAlert(@NonNull @NotNull Context context,CarListBean clb, Handler hd) { + super(context); + this.con=context; + this.clb=clb; + this.hd=hd; + } + + @Override + protected int getImplLayoutId() { + return R.layout.alert_choice_vehicle; + } + + @Override + protected void onCreate() { + super.onCreate(); + box=findViewById(R.id.box); + box2=findViewById(R.id.box2); + box3=findViewById(R.id.box3); + choice=findViewById(R.id.choice); + choice2=findViewById(R.id.choice2); + choice3=findViewById(R.id.choice3); + name=findViewById(R.id.name); + name2=findViewById(R.id.name2); + name3=findViewById(R.id.name3); + tv_cancel=findViewById(R.id.tv_cancel); + tv_confirm=findViewById(R.id.tv_confirm); + switch (clb.getData().size()){ + case 3: + box3.setVisibility(VISIBLE); + name3.setText(clb.getData().get(2).getCarNumber()); + case 2: + box2.setVisibility(VISIBLE); + name2.setText(clb.getData().get(1).getCarNumber()); + case 1: + box.setVisibility(VISIBLE); + name.setText(clb.getData().get(0).getCarNumber()); + break; + } + box.setOnClickListener(v -> { + initItem(); + selectItem(name,choice); + index=0; + }); + box2.setOnClickListener(v -> { + initItem(); + selectItem(name2,choice2); + index=1; + }); + box3.setOnClickListener(v -> { + initItem(); + selectItem(name3,choice3); + index=2; + }); + tv_confirm.setOnClickListener(v -> { + if(index!=-1){ + MsgUtil.addHdMsgWatBody(hd,13,index+""); + destroy(); + }else{ + Toast.makeText(con,"请先选择车辆",Toast.LENGTH_LONG).show(); + } + }); + tv_cancel.setOnClickListener(v -> { + destroy(); + }); + } + + + public void initItem(){ + name.setTextColor(Color.rgb(51,51,51)); + name2.setTextColor(Color.rgb(51,51,51)); + name3.setTextColor(Color.rgb(51,51,51)); + choice.setCardBackgroundColor(Color.rgb(51,51,51)); + choice2.setCardBackgroundColor(Color.rgb(51,51,51)); + choice3.setCardBackgroundColor(Color.rgb(51,51,51)); + } + + public void selectItem(TextView v1,CardView v2){ + v1.setTextColor(getResources().getColor(R.color.theme_color)); + v2.setCardBackgroundColor(getResources().getColor(R.color.theme_color)); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/alert/CustomAttachPopup.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/alert/CustomAttachPopup.java new file mode 100644 index 0000000..2df2e29 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/alert/CustomAttachPopup.java @@ -0,0 +1,82 @@ +package com.arpa.hndahesudintocctmsdriver.ui.alert; + +import android.content.Context; +import android.os.Handler; +import android.widget.TextView; + +import androidx.annotation.NonNull; + +import com.lxj.xpopup.core.AttachPopupView; +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.bean.CarListBean; +import com.arpa.hndahesudintocctmsdriver.util.msg.MsgUtil; + +import org.jetbrains.annotations.NotNull; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/3 14:30 + * @description: + */ +public class CustomAttachPopup extends AttachPopupView { + + private CarListBean clb; + private Handler hd; + public CustomAttachPopup(@NonNull @NotNull Context context, CarListBean clb, Handler hd) { + super(context); + this.clb=clb; + this.hd=hd; + } + + public CustomAttachPopup(@NonNull @NotNull Context context, Handler hd) { + super(context); + this.hd = hd; + } + + @Override + protected int getImplLayoutId() { + return R.layout.activity_vc; + } + + @Override + protected void onCreate() { + super.onCreate(); + if(clb!=null){ + TextView tv1 = findViewById(R.id.che_1); + TextView tv2 = findViewById(R.id.che_2); + TextView tv3 = findViewById(R.id.che_3); + switch (clb.getData().size()){ + case 3: + tv3.setVisibility(VISIBLE); + tv3.setText(clb.getData().get(2).getCarNumber()); + case 2: + tv2.setVisibility(VISIBLE); + tv2.setText(clb.getData().get(1).getCarNumber()); + case 1: + tv1.setVisibility(VISIBLE); + tv1.setText(clb.getData().get(0).getCarNumber()); + break; + } + tv1.setOnClickListener(v -> { + MsgUtil.addHdMsgWatBody(hd,13,"0"); + }); + tv2.setOnClickListener(v -> { + MsgUtil.addHdMsgWatBody(hd,13,"1"); + }); + tv3.setOnClickListener(v -> { + MsgUtil.addHdMsgWatBody(hd,13,"2"); + }); + }else{ + TextView t1 = findViewById(R.id.type1); + TextView t2 = findViewById(R.id.type2); + t1.setVisibility(VISIBLE);t2.setVisibility(VISIBLE); + t1.setOnClickListener(v -> { + MsgUtil.addHdMsgWatBody(hd,13,"1"); + }); + t2.setOnClickListener(v -> { + MsgUtil.addHdMsgWatBody(hd,13,"2"); + }); + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/alert/UpAppAlert.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/alert/UpAppAlert.java new file mode 100644 index 0000000..583ea67 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/alert/UpAppAlert.java @@ -0,0 +1,118 @@ +package com.arpa.hndahesudintocctmsdriver.ui.alert; + +import android.content.Context; +import android.util.Log; +import android.widget.Button; +import android.widget.ImageButton; +import android.widget.LinearLayout; +import android.widget.ProgressBar; +import android.widget.TextView; + +import androidx.annotation.NonNull; + +import com.king.app.updater.AppUpdater; +import com.king.app.updater.callback.AppUpdateCallback; +import com.lxj.xpopup.core.CenterPopupView; +import com.arpa.hndahesudintocctmsdriver.R; + +import org.jetbrains.annotations.NotNull; + +import java.io.File; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/9/6 17:23 + * @description: + */ +public class UpAppAlert extends CenterPopupView { + + private TextView content,vs; + private Button tv_cancel,tv_confirm; + private LinearLayout up_div; + private String url=""; + private String body=""; + private Context con; + private ProgressBar progress_view; + private String version; + private String force; + private LinearLayout force_box; + private ImageButton force_btn; + + public UpAppAlert(@NonNull @NotNull Context context, String url, String body,String version,String force) { + super(context); + con=context; + this.url=url; + this.body=body; + this.version=version; + this.force=force; + } + + @Override + protected int getImplLayoutId() { + return R.layout.alert_up_app; + } + public UpAppAlert(@NonNull @NotNull Context context) { + super(context); + + } + + @Override + protected void onCreate() { + super.onCreate(); + content=findViewById(R.id.tv_content); + tv_cancel=findViewById(R.id.tv_cancel); + tv_confirm=findViewById(R.id.tv_confirm); + up_div=findViewById(R.id.up_div); + progress_view=findViewById(R.id.progress); + content=findViewById(R.id.tv_content); + force_box=findViewById(R.id.force_box); + force_btn=findViewById(R.id.force_btn); + if(force.equals("1")){ + force_box.setVisibility(GONE); + } + force_btn.setOnClickListener(v -> { + setVisibility(GONE); + dismiss(); + //detachFromHost(); + }); + vs=findViewById(R.id.vs); + content.setText(body); + vs.setText(version); + tv_cancel.setOnClickListener(v -> { + System.exit(1); + }); + tv_confirm.setOnClickListener(v -> { + new AppUpdater.Builder() + .setUrl(url) + .build(con) + .setUpdateCallback(new AppUpdateCallback() { + @Override + public void onStart(String url) { + super.onStart(url); + tv_confirm.setVisibility(GONE); + up_div.setVisibility(VISIBLE); + } + @Override + public void onProgress(long progress, long total, boolean isChange) { +// Log.e("progress",progress+""); +// Log.e("total",total+""); +// Log.e("isChange",isChange+""); + float sum=progress; + float max=total; + if(progress>0){ + float b=sum/max; + Log.e("百分比",(100*b)+""); + progress_view.setProgress((int) (100*b)); + } + } + + @Override + public void onFinish(File file) { + + } + }) + .start(); + }); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/alert/VehicleChoiceActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/alert/VehicleChoiceActivity.java new file mode 100644 index 0000000..4bf80d9 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/alert/VehicleChoiceActivity.java @@ -0,0 +1,23 @@ +package com.arpa.hndahesudintocctmsdriver.ui.alert; + +import android.os.Bundle; + +import androidx.annotation.Nullable; + +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/3 11:52 + * @description: + */ +public class VehicleChoiceActivity extends BaseActivity { + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_vc); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/auth/AddCarSuccActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/auth/AddCarSuccActivity.java new file mode 100644 index 0000000..334f1a5 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/auth/AddCarSuccActivity.java @@ -0,0 +1,51 @@ +package com.arpa.hndahesudintocctmsdriver.ui.auth; + +import android.os.Bundle; +import android.os.CountDownTimer; +import android.view.View; +import android.widget.TextView; + +import androidx.annotation.Nullable; + +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity; + +import java.util.concurrent.TimeUnit; + +import rx.Observable; +import rx.schedulers.Schedulers; + +/** + * @ClassName AddCarSuccActivity + * @Author 用户 + * @Date 2022/4/13 11:37 + * @Description TODO + */ +public class AddCarSuccActivity extends BaseAppCompatActivity { + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + StateStyleUtil.stateTextColor(this); + setContentView(R.layout.activity_add_car_result); + con = this; + TextView tvTips = findViewById(R.id.tvTips); + + new CountDownTimer(4*1000,1000){ + @Override + public void onTick(long millisUntilFinished) { + + tvTips.setText(millisUntilFinished / 1000+"秒后自动关闭"); + } + + @Override + public void onFinish() { + finish(); + } + }.start(); + + initView(null); + + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/auth/AuthQualificationActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/auth/AuthQualificationActivity.java new file mode 100644 index 0000000..20cc40d --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/auth/AuthQualificationActivity.java @@ -0,0 +1,347 @@ +package com.arpa.hndahesudintocctmsdriver.ui.auth; + +import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.Nullable; + +import com.arpa.hndahesudintocctmsdriver.parts.UserParts; +import com.arpa.hndahesudintocctmsdriver.util.string.StringUtil; +import com.bumptech.glide.Glide; +import com.esign.esignsdk.EsignSdk; +import com.github.gzuliyujiang.wheelpicker.DatePicker; +import com.github.gzuliyujiang.wheelpicker.annotation.DateMode; +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.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.bean.BaseBean; +import com.arpa.hndahesudintocctmsdriver.bean.IsAuthDriverAuthQualificationBean; +import com.arpa.hndahesudintocctmsdriver.bean.UploadBean; +import com.arpa.hndahesudintocctmsdriver.bean.UserBean; +import com.arpa.hndahesudintocctmsdriver.request.AuthRequest; +import com.arpa.hndahesudintocctmsdriver.request.UserRequset; +import com.arpa.hndahesudintocctmsdriver.util.img.GetImageAlert; +import com.arpa.hndahesudintocctmsdriver.util.img.ImageUriUtil; +import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; +import com.arpa.hndahesudintocctmsdriver.util.file.ImageFileCompressUtil; +import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants; +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity; + +import java.io.File; +import java.util.List; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/9/1 16:24 + * @description: + */ +public class AuthQualificationActivity extends BaseAppCompatActivity { + + private IsAuthDriverAuthQualificationBean ib; + private RelativeLayout up_img, cow1; + private LinearLayout data_view; + private ImageView img; + private TextView zjimg_name, upload_img, name2, title1, title2, tvSkip,tvTips; + private View vs; + private EditText value1; + private Button submit; + private TextView value2; + private UploadBean ub; + private String url = ""; + private UserRequset ur; + private Gson gson = new Gson(); + + @Override + public void msgMethod(Message m) { + super.msgMethod(m); + switch (m.what) { + case RequsetCodeConstants.SUCCESS: + if (CacheGroup.cacheList.get("upload") != null) { + ub = gson.fromJson(CacheGroup.cacheList.get("upload"), UploadBean.class); + if (ub.getCode() == 200) { + url = ub.getData().getUrl(); + Glide.with(con).load(url).into(img); + up_img.setVisibility(View.GONE); + img.setVisibility(View.VISIBLE); + } + CacheGroup.cacheList.remove("upload"); + } + if (CacheGroup.cacheList.get("isAuthDriverAuthQualification") != null) { + Log.e("is", CacheGroup.cacheList.get("isAuthDriverAuthQualification")); + ib = gson.fromJson(CacheGroup.cacheList.get("isAuthDriverAuthQualification"), IsAuthDriverAuthQualificationBean.class); + if (ib.getCode() == 200) { + if (ib.getData() != null) { + initAuth(); + } + } else { + Toast.makeText(con, ib.getMsg(), Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove("isAuthDriverAuthQualification"); + } + if (CacheGroup.cacheList.get("driverAuthQualification") != null) { + BaseBean bb = gson.fromJson(CacheGroup.cacheList.get("driverAuthQualification"), BaseBean.class); + if (bb.getCode() == 200) { +// initAuth(); + //从业资格证->实名认证 +// finish(); + if (key) { + key = false; + new AuthRequest().getAuthUrl(con, hd); + new Handler().postDelayed(() -> { + key = true; + }, 3000); + } + + Toast.makeText(con, "资格证上传成功", Toast.LENGTH_SHORT).show(); + } else { + Toast.makeText(con, bb.getMsg(), Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove("driverAuthQualification"); + } + if (CacheGroup.cacheList.get("partyMember") != null) { + BaseBean bb = gson.fromJson(CacheGroup.cacheList.get("partyMember"), BaseBean.class); + if (bb.getCode() == 200) { + Toast.makeText(con, "党员信息上传成功", Toast.LENGTH_SHORT).show(); +// WoDeFragment.dang.setVisibility(View.VISIBLE); +// UserBean user=UserParts.getUser(con); +// user.getData().setPartyMemberUrl(url); +// user.getData().setPartyMemberStatus(1); +// UserParts.setUser(con,user); + } else { + Toast.makeText(con, bb.getMsg(), Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove("partyMember"); + } + + if (CacheGroup.cacheList.get("authUrl") != null) { + Log.e("url", CacheGroup.cacheList.get("authUrl")); + BaseBean bb = gson.fromJson(CacheGroup.cacheList.get("authUrl"), BaseBean.class); + if (bb.getCode() == 200) { + finish(); + EsignSdk.getInstance().startH5Activity(act, StringUtil.isNull(String.valueOf(bb.getData()), "")); + } else { + Toast.makeText(con, bb.getMsg(), Toast.LENGTH_LONG).show(); + }//Log.e("url",CacheGroup.cacheList.get("authUrl")); + CacheGroup.cacheList.remove("authUrl"); + } + break; + case ImageFileCompressUtil.COMPRESS_SUCCESS: + path = (String) m.obj; + new AuthRequest().upload(con, hd, new File(path)); + break; + default: + break; + } + } + + private String type = "0"; + private UserBean userBean; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + StateStyleUtil.stateTextColor(this); + setContentView(R.layout.activity_auth_qualification); + con = this; + act=this; + img = findViewById(R.id.img); + zjimg_name = findViewById(R.id.zjimg_name); + upload_img = findViewById(R.id.upload_img); + value1 = findViewById(R.id.value1); + value2 = findViewById(R.id.value2); + submit = findViewById(R.id.submit); + up_img = findViewById(R.id.up_img); + name2 = findViewById(R.id.name2); + title1 = findViewById(R.id.title1); + title2 = findViewById(R.id.title2); + tvSkip = findViewById(R.id.tvSkip); + tvTips = findViewById(R.id.tvTips); + cow1 = findViewById(R.id.cow1); + vs = findViewById(R.id.vs); + data_view = findViewById(R.id.data_view); + type = getIntent().getExtras().getString("type"); + ur = new UserRequset(con, hd); + initView(null); + if ("0".equals(type)) { + new AuthRequest().isDriverAuthQualification(con, hd); + } else { + userBean = UserParts.getUser(con); + if (userBean.getData().getPartyMemberStatus() == 2) { + initAuth(); + } + //new RZRequest().isDriverAuthQualification(con,hd); + } + } + + private boolean key = true; + boolean isAuth = false; + private GetImageAlert gia = new GetImageAlert(); + + @Override + public void initView(Object obj) { + super.initView(obj); + upload_img.setOnClickListener(v -> { + if (!isAuth) { + gia.showPopueWindow(this); + } + }); + img.setOnClickListener(v -> { + if (!"".equals(url)) { + new XPopup.Builder(con) + .asImageViewer(img, url, true, -1, -1, 50, false, new CertificatesActivity.ImageLoader()) + .show(); + } + }); + value2.setOnClickListener(v -> { + 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(); + }); + submit.setOnClickListener(v -> { + if (!isAuth) { + String id = value1.getText() + ""; + String date = value2.getText() + ""; + if ("0".equals(type)) { + if (!"".equals(id) && !"".equals(date) && !"".equals(url)) { + new AuthRequest().driverAuthQualification(con, hd, id, ub.getData().getId(), date); + } else { + Toast.makeText(con, "提交信息不完整", Toast.LENGTH_SHORT).show(); + } + } else { + if (!"".equals(url)) { + ur.partyMember(url); + } else { + Toast.makeText(con, "请先上传党员证照片", Toast.LENGTH_SHORT).show(); + } + } + } else { + if ("0".equals(type)) { + if (key) { + key = false; + new AuthRequest().getAuthUrl(con, hd); + new Handler().postDelayed(() -> { + key = true; + }, 3000); + } + } else { + if (key) { + key = false; + new AuthRequest().getAuthUrl(con, hd); + new Handler().postDelayed(() -> { + key = true; + }, 3000); + } + } + } + }); + + tvSkip.setOnClickListener(v -> { + if (type.equals("0")) { +// finish(); + if (key) { + key = false; + new AuthRequest().getAuthUrl(con, hd); + new Handler().postDelayed(() -> { + key = true; + }, 3000); + } + } else if (type.equals("1")) { + //跳过党员信息 -> 实名认证 + if (key) { + key = false; + new AuthRequest().getAuthUrl(con, hd); + new Handler().postDelayed(() -> { + key = true; + }, 3000); + } + } + }); + + if (type.equals("1")) { + tvTips.setVisibility(View.GONE); + submit.setText("保存"); + tvSkip.setVisibility(View.GONE); + title1.setText("党员信息"); + title2.setText("党员信息"); + cow1.setVisibility(View.GONE); + vs.setVisibility(View.GONE); + name2.setText("入党时间"); + zjimg_name.setText("党员证照片"); + data_view.setVisibility(View.GONE); + title2.setVisibility(View.GONE); + }else{ + tvTips.setVisibility(View.VISIBLE); + } + } + + public void initAuth() { + if ("0".equals(type)) { + submit.setBackgroundResource(R.drawable.bg_btn_grey); + isAuth = true; + url = ib.getData().getQualificationCertificatePhotoUrl(); + value1.setText(ib.getData().getQualificationCertificate()); + value2.setText(ib.getData().getQualificationCertificateValidity()); + up_img.setVisibility(View.GONE); + img.setVisibility(View.VISIBLE); + Glide.with(con).load(url).into(img); + upload_img.setText("已上传"); + } else { + submit.setBackgroundResource(R.drawable.bg_btn_grey); + isAuth = true; + url = userBean.getData().getPartyMemberUrl(); + Glide.with(con).load(url).into(img); + up_img.setVisibility(View.GONE); + img.setVisibility(View.VISIBLE); + upload_img.setText("已上传"); + } + } + + private String path; + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == 12 && resultCode == RESULT_OK) { + 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 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); + } + } + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/auth/CertificatesActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/auth/CertificatesActivity.java new file mode 100644 index 0000000..ad3f42a --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/auth/CertificatesActivity.java @@ -0,0 +1,901 @@ +package com.arpa.hndahesudintocctmsdriver.ui.auth; + +import android.content.Context; +import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; +import android.os.Message; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; + +import com.arpa.hndahesudintocctmsdriver.bean.DicBean; +import com.arpa.hndahesudintocctmsdriver.bean.SinglePickBean; +import com.arpa.hndahesudintocctmsdriver.event.HomeEvent; +import com.arpa.hndahesudintocctmsdriver.event.PersonEvent; +import com.arpa.hndahesudintocctmsdriver.event.VehicleEvent; +import com.arpa.hndahesudintocctmsdriver.util.PickerUtils; +import com.arpa.hndahesudintocctmsdriver.util.alert.ToastUtil; +import com.arpa.hndahesudintocctmsdriver.util.map.MapUtil; +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; +import com.bumptech.glide.request.target.Target; +import com.github.gzuliyujiang.wheelpicker.contract.OnOptionPickedListener; +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.XPopupImageLoader; +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.bean.BaseBean; +import com.arpa.hndahesudintocctmsdriver.bean.CarDelBean; +import com.arpa.hndahesudintocctmsdriver.bean.CarZhengBean; +import com.arpa.hndahesudintocctmsdriver.bean.IsAuthCardBean; +import com.arpa.hndahesudintocctmsdriver.bean.IsAuthDriverAuthLicenseBean; +import com.arpa.hndahesudintocctmsdriver.bean.OCRCardBackBean; +import com.arpa.hndahesudintocctmsdriver.bean.OCRCardBean; +import com.arpa.hndahesudintocctmsdriver.bean.OCRDrivingLicenseBackBean; +import com.arpa.hndahesudintocctmsdriver.bean.OCRDrivingLicenseBean; +import com.arpa.hndahesudintocctmsdriver.bean.OCRVehicleBackLicenseBean; +import com.arpa.hndahesudintocctmsdriver.bean.OCRVehicleLicenseBean; +import com.arpa.hndahesudintocctmsdriver.bean.UploadBean; +import com.arpa.hndahesudintocctmsdriver.request.OCRRequest; +import com.arpa.hndahesudintocctmsdriver.request.AuthRequest; +import com.arpa.hndahesudintocctmsdriver.request.bean.IDInputBean; +import com.arpa.hndahesudintocctmsdriver.request.bean.LicenseInputBean; +import com.arpa.hndahesudintocctmsdriver.util.img.GetImageAlert; +import com.arpa.hndahesudintocctmsdriver.util.img.ImageUriUtil; +import com.arpa.hndahesudintocctmsdriver.util.string.StringUtil; +import com.arpa.hndahesudintocctmsdriver.util.alert.CustomDialog; +import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; +import com.arpa.hndahesudintocctmsdriver.util.file.ImageFileCompressUtil; +import com.arpa.hndahesudintocctmsdriver.util.http.RequestUtil; +import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants; +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView; + +import org.greenrobot.eventbus.EventBus; + +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +//修改后不可编辑 +public class CertificatesActivity extends BaseAppCompatActivity { + + public static final String ISAUTH = "isauth"; + public static final String CAR_COLOR = "CAR_COLOR"; + public static final String CAR_ENERGY_TYPE = "CAR_ENERGY_TYPE"; + public static final String[] TYPE_NAME = {"card", "jiashi", "xingshi", "xingshi_g"}; + public static final String[] TYPE_NAME_BANK = {"card1", "jiashi2", "xingshi3", "xingshi3_g"}; + public static final String[] TYPE_NAME_BANK_FU = {"", "", "fuye3", "fuye3_g"}; + private String[] names = {"身份证信息", "驾驶证信息", "行驶证信息", "挂车行驶证信息"}; + private String[] names_img1 = {"身份证人像页照片", "驾驶证正页照片", "行驶证主页照片", "挂车行驶证主页照片"}; + private String[] names_img2 = {"身份证国徽页照片", "驾驶证副页照片", "行驶证副页正面照片", "挂车行驶证副页正面照片"}; + private String[] names_img3 = {"", "", "行驶证副页背面照片", "挂车行驶证副页背面照片"}; + private String[][] name = { + {"姓名", "身份证号", "地址", "有效期至"}, + {"档案编号", "初次领证日期", "准驾车型", "有效期限(止)"}, + {"车牌号码", "车辆类型", "所有人", "车辆识别代码"}, + {"车牌号码", "车辆类型", "所有人", "车辆识别代码"} + }; + private int[] typeImgOne = {R.mipmap.id, R.mipmap.license, R.mipmap.vehicle_license, R.mipmap.vehicle_license}; + private int[] typeImgTwo = {R.mipmap.id_back, R.mipmap.license_back, R.mipmap.vehicle_license_back, R.mipmap.vehicle_license_back}; + private int index = 0; + private DicBean.DataDTO curColor,curEnergy; + private TextView zj_name, zjimg_name, zjimg2_name, zj_name2, zj_name3; + private TextView name1, name2, name3, name4, value5, value6; + private EditText value1, value2, value3, value4,value7; + private Button submit; + private ImageView img1, img2, img3, type_img; + private TextView u_img, u_img2, u_img3; + private LinearLayout llColor, llType,llCarName; + private CardView there_div; + private BaseRecyclerView brv; + // + private Gson gson = new Gson(); + // + private IsAuthCardBean iacb; + private IsAuthDriverAuthLicenseBean iadalb; + private CarDelBean cdb; + private String carId = ""; + // + private String url1 = ""; + private String url2 = ""; + private String url3 = ""; + private boolean[] keys = {false, false, false}; + + public void FalseKeys() { + for (int i = 0; i < keys.length; i++) { + keys[i] = false; + } + } + + private String oCrcarId = ""; + //底部弹窗 + GetImageAlert gia = new GetImageAlert(); + + @Override + public void msgMethod(Message m) { + switch (m.what) { + case RequestUtil.FEEDBACK: + Toast.makeText(con, "请求错误或网络不佳,请稍后重试", Toast.LENGTH_SHORT).show(); + if (customDialog != null) { + customDialog.dismiss(); + } + break; + case RequsetCodeConstants.SUCCESS: + if (CacheGroup.cacheList.get("driverAuthIdCard") != null || CacheGroup.cacheList.get("driverAuthLicense") != null + || CacheGroup.cacheList.get("saveVehicleLicense") != null || CacheGroup.cacheList.get("saveDrawCar") != null) { + if (CacheGroup.cacheList.get("driverAuthIdCard") != null) { + BaseBean bb = gson.fromJson(CacheGroup.cacheList.get("driverAuthIdCard"), BaseBean.class); + if (bb.getCode() == 200) { + Toast.makeText(con, "保存成功", Toast.LENGTH_SHORT).show(); + finish(); + + //上传身份证信息后 跳转上传驾驶证信息页面 + Intent in = new Intent(con, CertificatesActivity.class); + in.putExtra("index", 1); + startActivity(in); + + } else { + Toast.makeText(con, bb.getMsg(), Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove("driverAuthIdCard"); + } + + if (CacheGroup.cacheList.get("driverAuthLicense") != null) { + BaseBean bb = gson.fromJson(CacheGroup.cacheList.get("driverAuthLicense"), BaseBean.class); + if (bb.getCode() == 200) { + Toast.makeText(con, "保存成功", Toast.LENGTH_SHORT).show(); + finish(); + + //上传驾驶证信息页面 跳转资格证信息页面 + Intent in = new Intent(con, AuthQualificationActivity.class); + in.putExtra("type", "0"); + startActivity(in); + + } else { + Toast.makeText(con, bb.getMsg(), Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove("driverAuthLicense"); + } + + if (CacheGroup.cacheList.get("saveVehicleLicense") != null) { + CarZhengBean czb = gson.fromJson(CacheGroup.cacheList.get("saveVehicleLicense"), CarZhengBean.class); + if (czb.getCode() == 200) { + Toast.makeText(con, "车辆行驶证保存成功", Toast.LENGTH_SHORT).show(); + finish(); + VehicleEvent ve = new VehicleEvent(String.valueOf(czb.getData().getCarId())); + EventBus.getDefault().post(ve); + + //上传行驶证信息后 跳转车辆照片页面 + Intent in = new Intent(con, PhotoCarActivity.class); + in.putExtra("type", 0); + in.putExtra("carId", String.valueOf(czb.getData().getCarId())); + con.startActivity(in); + } else { + Toast.makeText(con, czb.getMsg(), Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove("saveVehicleLicense"); + } + if (CacheGroup.cacheList.get("saveDrawCar") != null) { + Log.e("-saveDrawCar-", CacheGroup.cacheList.get("saveDrawCar")); + BaseBean bb = gson.fromJson(CacheGroup.cacheList.get("saveDrawCar"), BaseBean.class); + if (bb.getCode() == 200) { + Toast.makeText(con, "挂车信息保存成功", Toast.LENGTH_SHORT).show(); + finish(); + VehicleEvent ve = new VehicleEvent("挂"); + EventBus.getDefault().post(ve); + + //挂车信息保存成功跳转成功页面 + Intent in = new Intent(con, AddCarSuccActivity.class); + in.putExtra("type", 3); + in.putExtra("carId", carId); + con.startActivity(in); + + + } else { + Toast.makeText(con, "挂车信息保存失败", Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove("saveDrawCar"); + } + } else if (CacheGroup.cacheList.get(CAR_COLOR) != null) { + DicBean bb = gson.fromJson(CacheGroup.cacheList.get(CAR_COLOR), DicBean.class); + if (bb.getCode()==200){ + PickerUtils.getInstance().pickSingle(this, "车牌颜色", bb.getData(), new OnOptionPickedListener() { + @Override + public void onOptionPicked(int position, Object item) { + if (item instanceof DicBean.DataDTO) { + curColor = (DicBean.DataDTO) item; + value5.setText(((DicBean.DataDTO) item).provideText()); + } + } + }); + } + CacheGroup.cacheList.remove(CAR_COLOR); + } else if (CacheGroup.cacheList.get(CAR_ENERGY_TYPE) != null) { + DicBean bb = gson.fromJson(CacheGroup.cacheList.get(CAR_ENERGY_TYPE), DicBean.class); + if (bb.getCode()==200){ + PickerUtils.getInstance().pickSingle(this, "燃油类型", bb.getData(), new OnOptionPickedListener() { + @Override + public void onOptionPicked(int position, Object item) { + if (item instanceof DicBean.DataDTO) { + curEnergy = (DicBean.DataDTO) item; + value6.setText(((DicBean.DataDTO) item).provideText()); + } + } + }); + } + CacheGroup.cacheList.remove(CAR_ENERGY_TYPE); + } else { + initView(null); + initData(); + pathOrcRes(); + } + break; + case ImageFileCompressUtil.COMPRESS_SUCCESS: + path = (String) m.obj; + pathOrc(); + break; + default: + break; + } + } + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + StateStyleUtil.stateTextColor(this); + setContentView(R.layout.activity_shangchuan_xsz); + llColor = findViewById(R.id.llColor); + llCarName = findViewById(R.id.llCarName); + llType = findViewById(R.id.llType); + value5 = findViewById(R.id.value5); + value6 = findViewById(R.id.value6); + zj_name = findViewById(R.id.zj_name); + zj_name2 = findViewById(R.id.zj_name2); + zjimg_name = findViewById(R.id.zjimg_name); + zjimg2_name = findViewById(R.id.zjimg_name2); + type_img = findViewById(R.id.type_img); + u_img = findViewById(R.id.upload_img); + u_img2 = findViewById(R.id.upload_img2); + u_img3 = findViewById(R.id.upload_img3); + img1 = findViewById(R.id.img1); + img2 = findViewById(R.id.img2); + img3 = findViewById(R.id.img3); + brv = findViewById(R.id.brv); + name1 = findViewById(R.id.name1); + name2 = findViewById(R.id.name2); + name3 = findViewById(R.id.name3); + name4 = findViewById(R.id.name4); + value1 = findViewById(R.id.value1); + value2 = findViewById(R.id.value2); + value3 = findViewById(R.id.value3); + value4 = findViewById(R.id.value4); + value7 = findViewById(R.id.value7); + submit = findViewById(R.id.submit); + there_div = findViewById(R.id.there_div); + con = this; + act = this; + Intent in = getIntent(); + index = in.getExtras().getInt("index"); + String c_str = in.getExtras().getString("cheData"); + carId = in.getExtras().getString("carId"); + switch (index) { + case 0: + llColor.setVisibility(View.GONE); + llType.setVisibility(View.GONE); + value4.setFocusable(false); + type_img.setImageResource(R.mipmap.auth_icon_1); + new AuthRequest().getCard(con, hd); + break; + case 1: + llCarName.setVisibility(View.VISIBLE); + llColor.setVisibility(View.GONE); + llType.setVisibility(View.GONE); + value2.setFocusable(false); + value4.setFocusable(false); + type_img.setImageResource(R.mipmap.auth_icon_2); + new AuthRequest().getDriverAuthLicense(con, hd); + break; + case 3: + llCarName.setVisibility(View.GONE); + llColor.setVisibility(View.GONE); + llType.setVisibility(View.GONE); + type_img.setImageResource(R.mipmap.auth_icon_3); +// there_div.setVisibility(View.VISIBLE); + if (c_str != null && !c_str.equals("")) { + cdb = gson.fromJson(c_str, CarDelBean.class); + initView(null); + initData(); + } else { + initView(null); + } + break; + case 2: + llCarName.setVisibility(View.GONE); + llColor.setVisibility(View.VISIBLE); + llType.setVisibility(View.VISIBLE); + type_img.setImageResource(R.mipmap.auth_icon_3); +// there_div.setVisibility(View.VISIBLE); + if (c_str != null && !c_str.equals("")) { + cdb = gson.fromJson(c_str, CarDelBean.class); + initView(null); + initData(); + } else { + initView(null); + } + break; + default: + break; + } + } + + @Override + public void initView(Object obj) { + super.initView(obj); + zj_name.setText(names[index]); + zj_name2.setText(names[index]); + zjimg_name.setText(names_img1[index]); + zjimg2_name.setText(names_img2[index]); + name1.setText(name[index][0]); + name2.setText(name[index][1]); + name3.setText(name[index][2]); + name4.setText(name[index][3]); + img1.setImageResource(typeImgOne[index]); + img2.setImageResource(typeImgTwo[index]); + if (!url1.equals("")) { + Glide.with(con).load(url1).into(img1); + } + if (!url2.equals("")) { + Glide.with(con).load(url2).into(img2); + } + //查看第一张照片 + img1.setOnClickListener(v -> { + if (!url1.equals("")) { + new XPopup.Builder(con) + .asImageViewer(img1, url1, true, -1, -1, 50, false, new ImageLoader()) + .show(); + }else{ + if (!isAuth) { + FalseKeys(); + keys[0] = true; + gia.showPopueWindow(this); + } + } + }); + //查看第二张照片 + img2.setOnClickListener(v -> { + if (!url2.equals("")) { + new XPopup.Builder(con) + .asImageViewer(img2, url2, true, -1, -1, 50, false, new ImageLoader()) + .show(); + }else{ + if (!isAuth) { + FalseKeys(); + keys[1] = true; + gia.showPopueWindow(this); + } + } + }); + //查看第三张照片 +// u_img3.setOnClickListener(v -> { +// if (!url3.equals("")) { +// new XPopup.Builder(con) +// .asImageViewer(img3, url3, true, -1, -1, 50, false, new ImageLoader()) +// .show(); +// } +// }); + + //识别第一张图片 + u_img.setOnClickListener(v -> { + if (!isAuth) { + FalseKeys(); + keys[0] = true; + gia.showPopueWindow(this); + } + + }); + //识别第二张图片 + u_img2.setOnClickListener(v -> { + if (!isAuth) { + FalseKeys(); + keys[1] = true; + gia.showPopueWindow(this); + } + }); + //识别第三张图片 + u_img3.setOnClickListener(v -> { + if (!isAuth) { + FalseKeys(); + keys[2] = true; + gia.showPopueWindow(this); + } else if (!url3.equals("")) { + new XPopup.Builder(con) + .asImageViewer(img3, url3, true, -1, -1, 50, false, new ImageLoader()) + .show(); + } + }); + value5.setOnClickListener(v -> { + if (!isAuth) { + new AuthRequest().getCarColor(con, hd); + } + }); + + value6.setOnClickListener(v -> { + if (!isAuth) { + new AuthRequest().getCarEnergyType(con, hd); + } + }); + + submit.setOnClickListener(v -> { + if (!isAuth) { + subimt(); + } else { + switch (index) { + case 0: + finish(); + //上传身份证信息后 跳转上传驾驶证信息页面 + Intent in1 = new Intent(con, CertificatesActivity.class); + in1.putExtra("index", 1); + startActivity(in1); + break; + case 1: + finish(); + //上传驾驶证信息页面 跳转资格证信息页面 + Intent in2 = new Intent(con, AuthQualificationActivity.class); + in2.putExtra("type", "0"); + startActivity(in2); + break; + case 2: + finish(); + //上传行驶证信息后 跳转车辆照片页面 + Intent in = new Intent(con, PhotoCarActivity.class); + in.putExtra("type", 0); + in.putExtra("carId", carId); + con.startActivity(in); + break; + } + } + }); + } + + boolean isAuth = false; + + public void initData() { + switch (index) { + case 0: + if (CacheGroup.cacheList.get(ISAUTH) != null) { + iacb = gson.fromJson(CacheGroup.cacheList.get(ISAUTH), IsAuthCardBean.class); + if (iacb.getData() != null) { + url1 = iacb.getData().getIdcardPhotoUrl(); + url2 = iacb.getData().getIdcardPhotoBackUrl(); + value1.setText(iacb.getData().getIdcardName()); + value2.setText(iacb.getData().getIdcard()); + value3.setText(iacb.getData().getIdcardAddress()); + value4.setText(iacb.getData().getIdcardValidity()); + Glide.with(con).load(url1).into(img1); + Glide.with(con).load(url2).into(img2); + submit.setBackgroundResource(R.drawable.bg_btn_grey); + u_img.setText("已上传"); + u_img2.setText("已上传"); + isAuth = true; + } + } + break; + case 1: + if (CacheGroup.cacheList.get(ISAUTH) != null) { + iadalb = gson.fromJson(CacheGroup.cacheList.get(ISAUTH), IsAuthDriverAuthLicenseBean.class); + if (iadalb.getData() != null) { + url1 = iadalb.getData().getDriverLicensePhotoUrl(); + url2 = iadalb.getData().getDriverLicenseBackPhotoUrl(); + value1.setText(iadalb.getData().getArchivesName()); + value7.setText(iadalb.getData().getDriverLicenseName()); + value2.setText(iadalb.getData().getDriverLicenseFirstTime()); + value3.setText(iadalb.getData().getAllowType()); + value4.setText(iadalb.getData().getDriverLicenseValidity()); + submit.setBackgroundResource(R.drawable.bg_btn_grey); + Glide.with(con).load(url1).into(img1); + Glide.with(con).load(url2).into(img2); + u_img.setText("已上传"); + u_img2.setText("已上传"); + isAuth = true; + } + } + break; + case 2: + if (cdb != null && cdb.getData() != null) { + url1 = StringUtil.isNull(cdb.getData().getFrontImage(), ""); + url2 = StringUtil.isNull(cdb.getData().getBackImage(), ""); + url3 = StringUtil.isNull(cdb.getData().getThreeImage(), ""); + value1.setText(StringUtil.isNull(cdb.getData().getCarNumber(), "空数据")); + value2.setText(StringUtil.isNull(cdb.getData().getType(), "空数据")); + value3.setText(StringUtil.isNull(cdb.getData().getOwner(), "空数据")); + value4.setText(StringUtil.isNull(cdb.getData().getVehicleNumber(), "空数据")); + value5.setText(StringUtil.isNull(cdb.getData().getCarPlateColorValue(), "空数据")); + value6.setText(StringUtil.isNull(cdb.getData().getCarEnergyTypValue(), "空数据")); + submit.setBackgroundResource(R.drawable.bg_btn_grey); + Glide.with(con).load(url1).into(img1); + Glide.with(con).load(url2).into(img2); + Glide.with(con).load(url3).into(img3); + u_img.setText("已上传"); + u_img2.setText("已上传"); + u_img3.setText("点击查看"); + isAuth = true; + } + break; + case 3: + Log.e("挂车信息", gson.toJson(cdb)); + if (cdb != null && cdb.getData().getTrailerResVo() != null) { + url1 = StringUtil.isNull(cdb.getData().getTrailerResVo().getFrontImage(), ""); + url2 = StringUtil.isNull(cdb.getData().getTrailerResVo().getBackImage(), ""); + url3 = StringUtil.isNull(cdb.getData().getTrailerResVo().getThreeImage(), ""); + value1.setText(StringUtil.isNull(cdb.getData().getTrailerResVo().getCarNumber(), "空数据")); + value2.setText(StringUtil.isNull(cdb.getData().getTrailerResVo().getType(), "空数据")); + value3.setText(StringUtil.isNull(cdb.getData().getTrailerResVo().getOwner(), "空数据")); + value4.setText(StringUtil.isNull(cdb.getData().getTrailerResVo().getVehicleNumber(), "空数据")); + value6.setText(StringUtil.isNull(cdb.getData().getCarEnergyTypValue(), "空数据")); + submit.setBackgroundResource(R.drawable.bg_btn_grey); + Glide.with(con).load(url1).into(img1); + Glide.with(con).load(url2).into(img2); + Glide.with(con).load(url3).into(img3); + u_img.setText("已上传"); + u_img2.setText("已上传"); + u_img3.setText("点击查看"); + isAuth = true; + } + break; + default: + break; + } + } + + String path; + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == 12 && resultCode == RESULT_OK) { + 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 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); + } + } + } + + private OCRCardBean ocb; + private OCRCardBackBean ocbb; + private OCRDrivingLicenseBean odl; + private OCRDrivingLicenseBackBean odlb; + private OCRVehicleLicenseBean olb; + private OCRVehicleBackLicenseBean oblb; + private UploadBean ub; + private String startTime; + int fontId; + int backId; + int fid; + + private void pathOrcRes() { + if (customDialog != null) { + customDialog.dismiss(); + } + switch (index) { + case 0: + if (CacheGroup.cacheList.get(TYPE_NAME[0]) != null) { + ocb = gson.fromJson(CacheGroup.cacheList.get(TYPE_NAME[0]), OCRCardBean.class); + if (ocb.getCode() == 200) { + url1 = ocb.getData().getUrl(); + value1.setText(ocb.getData().getName()); + value2.setText(ocb.getData().getCardId()); + value3.setText(ocb.getData().getAddress()); + Glide.with(con).load(url1).into(img1); + fontId = ocb.getData().getId(); + } else { + Toast.makeText(con, "识别失败", Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove(TYPE_NAME[0]); + } + if (CacheGroup.cacheList.get(TYPE_NAME_BANK[0]) != null) { + ocbb = gson.fromJson(CacheGroup.cacheList.get(TYPE_NAME_BANK[0]), OCRCardBackBean.class); + if (ocbb.getCode() == 200) { + url2 = ocbb.getData().getUrl(); + value4.setText(ocbb.getData().getEndTime()); + Glide.with(con).load(url2).into(img2); + startTime = ocbb.getData().getStartTime(); + backId = ocbb.getData().getId(); + } else { + Toast.makeText(con, "识别失败", Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove(TYPE_NAME_BANK[0]); + } + break; + case 1: + //{"档案编号","初次领证日期","准驾车型","有效期限(止)"}, + if (CacheGroup.cacheList.get(TYPE_NAME[1]) != null) { + odl = gson.fromJson(CacheGroup.cacheList.get(TYPE_NAME[1]), OCRDrivingLicenseBean.class); + if (odl.getCode() == 200) { + OCRDrivingLicenseBean.DataDTO od = odl.getData(); + url1 = odl.getData().getUrl(); + value7.setText(StringUtil.isNull(od.getName(), "识别异常")); + value1.setText(StringUtil.isNull(od.getNumber(), "识别异常")); + value2.setText(StringUtil.isNull(od.getStartTime(), "识别异常")); + value3.setText(StringUtil.isNull(od.getAllowType(), "识别异常")); + value4.setText(StringUtil.isNull(od.getEndTime(), "识别异常")); + Glide.with(con).load(url1).into(img1); + fontId = od.getId(); + } else { + Toast.makeText(con, "识别失败", Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove(TYPE_NAME[1]); + } + if (CacheGroup.cacheList.get(TYPE_NAME_BANK[1]) != null) { + odlb = gson.fromJson(CacheGroup.cacheList.get(TYPE_NAME_BANK[1]), OCRDrivingLicenseBackBean.class); + if (odlb.getCode() == 200) { + url2 = odlb.getData().getUrl(); + backId = odlb.getData().getId(); + Glide.with(con).load(url2).into(img2); + } else { + Toast.makeText(con, "识别失败", Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove(TYPE_NAME_BANK[1]); + } + break; + case 3: + case 2: + //{"车牌号","车辆类型","所有人","车辆识别代码"} + if (CacheGroup.cacheList.get(TYPE_NAME[2]) != null) { + Log.e("olb", CacheGroup.cacheList.get(TYPE_NAME[2])); + olb = gson.fromJson(CacheGroup.cacheList.get(TYPE_NAME[2]), OCRVehicleLicenseBean.class); + if (olb.getCode() == 200) { + url1 = olb.getData().getUrl(); + value1.setText(olb.getData().getCarNumber()); + value2.setText(olb.getData().getType()); + value3.setText(olb.getData().getOwner()); + value4.setText(olb.getData().getVehicleNumber()); + fontId = olb.getData().getId(); + Glide.with(con).load(url1).into(img1); + oCrcarId = olb.getData().getCarId() + ""; + Log.e("-cardId-", oCrcarId); + } else { + Toast.makeText(con, olb.getMsg(), Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove(TYPE_NAME[2]); + } + if (CacheGroup.cacheList.get(TYPE_NAME_BANK[2]) != null) { + oblb = gson.fromJson(CacheGroup.cacheList.get(TYPE_NAME_BANK[2]), OCRVehicleBackLicenseBean.class); + if (oblb.getCode() == 200) { + url2 = oblb.getData().getUrl(); + backId = oblb.getData().getId(); + Glide.with(con).load(url2).into(img2); + } else { + Toast.makeText(con, oblb.getMsg(), Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove(TYPE_NAME_BANK[2]); + } + if (CacheGroup.cacheList.get("upload") != null) { + ub = gson.fromJson(CacheGroup.cacheList.get("upload"), UploadBean.class); + if (ub.getCode() == 200) { + url3 = ub.getData().getUrl(); + fid = ub.getData().getId(); + Glide.with(con).load(url3).into(img3); + } else { + Toast.makeText(con, ub.getMsg(), Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove("upload"); + } + break; + default: + break; + } + } + + private CustomDialog customDialog; + private String carNum = ""; + + private void pathOrc() { + customDialog = new CustomDialog(con, "上传识别中..."); + customDialog.show(); + carNum = value1.getText().toString().trim(); + switch (index) { + case 0: + if (keys[0]) { + new OCRRequest().OCRCard(con, hd, new File(path)); + } else { + Log.e("res" + new File(path).getName(), new File(path).getPath()); + new OCRRequest().OCRCardBack(con, hd, new File(path)); + } + break; + case 1: + if (keys[0]) { + new OCRRequest().OCRDrivingLicense(con, hd, new File(path)); + } else { + new OCRRequest().OCRDrivingLicenseBack(con, hd, new File(path)); + } + break; + case 2: + if (keys[0]) { + new OCRRequest().OCRVehicleLicense(con, hd, new File(path)); + } else if (keys[1]) { + if ("".equals(carNum)) { + Toast.makeText(con, "车牌号不能为空", Toast.LENGTH_LONG).show(); + customDialog.dismiss(); + return; + } + new OCRRequest().OCRVehicleLicenseBack(con, hd, new File(path), oCrcarId, carNum); + + } else { + new AuthRequest().upload(con, hd, new File(path)); + } + break; + case 3: + Log.e("添加挂车", "挂车" + oCrcarId); + if (keys[0]) { + new OCRRequest().OCRVehicleLicense(con, hd, new File(path)); + } else if (keys[1]) { + if ("".equals(carNum)) { + Toast.makeText(con, "车牌号不能为空", Toast.LENGTH_LONG).show(); + customDialog.dismiss(); + return; + } + new OCRRequest().OCRVehicleLicenseBack(con, hd, new File(path), oCrcarId, carNum); + } else { + new AuthRequest().upload(con, hd, new File(path)); + } + break; + default: + break; + } + } + + public void subimt() { + String str1 = value1.getText().toString().trim(); + String str2 = value2.getText().toString().trim(); + String str3 = value3.getText().toString().trim(); + String str4 = value4.getText().toString().trim(); + if ("".equals(str1) || "".equals(str2) || "".equals(str3) || "".equals(str4) || "".equals(url1) || "".equals(url2)) { + Toast.makeText(con, "请补充完整的信息", Toast.LENGTH_LONG).show(); +// Toast.makeText(con, "请补充完整的" + name[index], Toast.LENGTH_LONG).show(); + return; + } + switch (index) { + case 0: + if (ocb != null && ocbb != null) { + IDInputBean ib = new IDInputBean(); + ib.setIdcarName(str1); + ib.setIdcard(str2); + ib.setIdcardAddress(str3); + ib.setIdcardPhoto(fontId); + ib.setIdcardPhotoBack(backId); + ib.setIdcardValidityStart(startTime); + if (ocb.getData().getSex().equals("男")) { + ib.setIdcardSex(1); + } else { + ib.setIdcardSex(2); + } + ib.setIdcardValidity(ocbb.getData().getEndTime()); + new AuthRequest().driverAuthIdCard(con, hd, ib); + } else { + Toast.makeText(con, "请先上传资料", Toast.LENGTH_SHORT).show(); + } + break; + case 1: + //olb + //{"档案编号","初次领证日期","准驾车型","有效期限(止)"}, + if (odl != null && odlb != null) { + Log.e("ocr", new Gson().toJson(odl)); + LicenseInputBean iib = new LicenseInputBean(); + iib.setArchivesName(str1); + iib.setDriverLicenseName(value7.getText().toString()); + iib.setAllowType(str3); + iib.setDriverLicense(odl.getData().getNumber()); + iib.setDriverLicenseBackPhoto(backId); + iib.setDriverLicensePhoto(fontId); + iib.setEndTime(odl.getData().getEndTime()); + iib.setFirstTime(odl.getData().getFirstTime()); + new AuthRequest().driverAuthLicense(con, hd, iib); + } else { + Toast.makeText(con, "请先上传资料", Toast.LENGTH_SHORT).show(); + } + break; + case 2: + if (olb != null && oblb != null) { + if (curColor==null||curEnergy==null){ + Toast.makeText(con,"请完善内容",Toast.LENGTH_SHORT).show(); + return; + } + HashMap map = new HashMap<>(); + if ("".equals(url3)) { + map.put("imgId", fid); + } + map.put("licenseId", oblb.getData().getLicenseId()); + map.put("carNumber", str1); + map.put("type", str2); + map.put("owner", str3); + map.put("vehicleNumber", str4); + map.put("carPlateColor", curColor.getValue()); + map.put("carEnergyTyp", curEnergy.getValue()); + new AuthRequest().saveVehicleLicense(con, hd, MapUtil.mapJson(map)); + } else { + Toast.makeText(con, "请先上传资料", Toast.LENGTH_SHORT).show(); + } + break; + case 3: + if (olb != null && oblb != null) { +// if (curEnergy==null){ +// Toast.makeText(con,"请完善内容",Toast.LENGTH_SHORT).show(); +// return; +// } + Map map = new HashMap<>(); + if ("".equals(url3)) { + map.put("imgId", fid); + } + map.put("licenseId", oblb.getData().getLicenseId()); + map.put("carId", carId); + map.put("carNumberDraw", str1); + map.put("type", str2); + map.put("owner", str3); +// map.put("carEnergyTyp", curEnergy.getValue()); + map.put("vehicleNumber", str4); + new AuthRequest().saveDrawCar(con, hd, MapUtil.mapJson(map)); + } else { + Toast.makeText(con, "请先上传资料", Toast.LENGTH_SHORT).show(); + } + break; + default: + break; + } + } + + public static void personEvent(String msg){ + PersonEvent he=new PersonEvent(msg); + EventBus.getDefault().post(he); + } + + public static class ImageLoader implements XPopupImageLoader { + @Override + public void loadImage(int position, @NonNull Object url, @NonNull ImageView imageView) { + //必须指定Target.SIZE_ORIGINAL,否则无法拿到原图,就无法享用天衣无缝的动画 + Glide.with(imageView).load(url).apply(new RequestOptions().placeholder(R.mipmap.ic_launcher_round).override(Target.SIZE_ORIGINAL)).into(imageView); + } + + @Override + public File getImageFile(@NonNull Context context, @NonNull Object uri) { + try { + return Glide.with(context).downloadOnly().load(uri).submit().get(); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/auth/PersonalAuthActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/auth/PersonalAuthActivity.java new file mode 100644 index 0000000..f734d6a --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/auth/PersonalAuthActivity.java @@ -0,0 +1,283 @@ +package com.arpa.hndahesudintocctmsdriver.ui.auth; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.text.TextUtils; +import android.util.Log; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.Nullable; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.arpa.hndahesudintocctmsdriver.event.HomeEvent; +import com.arpa.hndahesudintocctmsdriver.event.PersonEvent; +import com.bumptech.glide.Glide; +import com.esign.esignsdk.EsignSdk; +import com.esign.esignsdk.data.AuthEvent; +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.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.bean.BaseBean; +import com.arpa.hndahesudintocctmsdriver.bean.UploadBean; +import com.arpa.hndahesudintocctmsdriver.bean.UserBean; +import com.arpa.hndahesudintocctmsdriver.request.HuoYuanRequset; +import com.arpa.hndahesudintocctmsdriver.request.AuthRequest; +import com.arpa.hndahesudintocctmsdriver.request.UserRequset; +import com.arpa.hndahesudintocctmsdriver.util.img.GetImageAlert; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; +import com.arpa.hndahesudintocctmsdriver.util.string.StringUtil; +import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; +import com.arpa.hndahesudintocctmsdriver.util.file.ImageFileCompressUtil; +import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants; +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity; + +import org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Subscribe; + +import java.io.File; +import java.util.List; + +public class PersonalAuthActivity extends BaseAppCompatActivity { + + private RelativeLayout r1, r2, r3, r4, r5; + private UserBean ub; + private ImageView up_head; + private TextView up_img; + private Gson gson = new Gson(); + private UploadBean upb; + private HuoYuanRequset hyr; + private UserRequset ur; + + @Override + public void msgMethod(Message m) { + super.msgMethod(m); + switch (m.what) { + case RequsetCodeConstants.SUCCESS: + if (CacheGroup.cacheList.get("userdata") != null) { + ub = gson.fromJson(CacheGroup.cacheList.get("userdata"), UserBean.class); + if (ub.getCode() == 200) { + initView(ub); + SPUtil.insSP(con, "data", "userdata", CacheGroup.cacheList.get("userdata")); + } else { + Toast.makeText(con, ub.getMsg(), Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove("userdata"); + } + if (CacheGroup.cacheList.get("upload") != null) { + upb = gson.fromJson(CacheGroup.cacheList.get("upload"), UploadBean.class); + if (upb.getCode() == 200) { + upImg(); + } else { + Toast.makeText(con, upb.getMsg(), Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove("upload"); + } + if (CacheGroup.cacheList.get("upHeadImg") != null) { + BaseBean bb = gson.fromJson(CacheGroup.cacheList.get("upHeadImg"), BaseBean.class); + if (bb.getCode() == 200) { + Toast.makeText(con, "头像上传成功", Toast.LENGTH_SHORT).show(); + } else { + Toast.makeText(con, bb.getMsg(), Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove("upHeadImg"); + } + if (CacheGroup.cacheList.get("authUrl") != null) { + Log.e("url", CacheGroup.cacheList.get("authUrl")); + BaseBean bb = gson.fromJson(CacheGroup.cacheList.get("authUrl"), BaseBean.class); + if (bb.getCode() == 200) { + EsignSdk.getInstance().startH5Activity(act, StringUtil.isNull(String.valueOf(bb.getData()), "")); + } else { + Toast.makeText(con, bb.getMsg(), Toast.LENGTH_LONG).show(); + }//Log.e("url",CacheGroup.cacheList.get("authUrl")); + CacheGroup.cacheList.remove("authUrl"); + } + break; + case ImageFileCompressUtil.COMPRESS_SUCCESS: + path = (String) m.obj; + hyr.uploadFile(new File(path)); + break; + default: + break; + } + } + + private boolean key = true; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + StateStyleUtil.stateTextColor(this); + setContentView(R.layout.activity_wode_data); + con = this; + act = this; + r1 = findViewById(R.id.r1); + r2 = findViewById(R.id.r2); + r3 = findViewById(R.id.r3); + r4 = findViewById(R.id.r4); + r5 = findViewById(R.id.r5); + up_head = findViewById(R.id.up_head); + up_img = findViewById(R.id.up_img); + //身份证 + r1.setOnClickListener(v -> { + Intent in = new Intent(con, CertificatesActivity.class); + in.putExtra("index", 0); + startActivity(in); + }); + //驾驶证 + r2.setOnClickListener(v -> { + Intent in = new Intent(con, CertificatesActivity.class); + in.putExtra("index", 1); + startActivity(in); + }); + //行业资格证 + r3.setOnClickListener(v -> { + //upKey=false; + //gia.showPopueWindow(this); + Intent in = new Intent(con, AuthQualificationActivity.class); + in.putExtra("type", "0"); + startActivity(in); + }); + r4.setOnClickListener(v -> { + //upKey=false; + //gia.showPopueWindow(this); + Intent in = new Intent(con, AuthQualificationActivity.class); + in.putExtra("type", "1"); + startActivity(in); + }); + r5.setOnClickListener(v -> { + // 调用拍摄身份证正面(不带本地质量控制)activity +// Intent in=new Intent(con, CameraActivity.class); +// in.putExtra(CameraActivity.KEY_CONTENT_TYPE, CameraActivity.CONTENT_TYPE_ID_CARD_FRONT); +// startActivityForResult(in, 12); + //EsignSdk.getInstance().startH5Activity(act,"https://smlh5.esign.cn/usercenterFront/oemAuth/v3/realName/index?contextKey=b7b103b15b866ec4c72beef1dfe20828&appId=7438873235"); + if (key) { + key = false; + new AuthRequest().getAuthUrl(con, hd); + new Handler().postDelayed(() -> { + key = true; + }, 3000); + } + }); + //头像 + up_img.setOnClickListener(v -> { + gia.showPopueWindow(this); + }); + up_head.setOnClickListener(v -> { + if (ub.getData().getHeadportraitUrl() != null && !ub.getData().getHeadportraitUrl().equals("")) { + new XPopup.Builder(con) + .asImageViewer(up_head, ub.getData().getHeadportraitUrl(), true, -1, -1, 50, false, new CertificatesActivity.ImageLoader()) + .show(); + } + }); + hyr = new HuoYuanRequset(con, hd); + ur = new UserRequset(con, hd); + ur.User(); + EventBus.getDefault().register(this); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + EventBus.getDefault().unregister(this); + } + + private GetImageAlert gia = new GetImageAlert(); + + //审核状态;100001:待认证,100002:审核中,100003:审核通过,100004:审核不通过 + @Override + public void initView(Object obj) { + super.initView(obj); + TextView name = findViewById(R.id.rname); + name.setText(StringUtil.isNull(ub.getData().getRname(), "未实名")); + if (ub.getData().getHeadportraitUrl() != null && !ub.getData().getHeadportraitUrl().equals("")) { + Glide.with(con).load(ub.getData().getHeadportraitUrl()).into(up_head); + } + } + + @Subscribe + public void personResult(PersonEvent home) { + Log.e("-res-", home.getMessage()); + if (ur != null) { + ur.User(); + } + } + + public void upImg() { + new AuthRequest().upHeadImg(con, hd, upb.getData().getUrl()); + } + + String path; + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == 12 && resultCode == RESULT_OK) { + 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 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); + } + } + // 获取调用参数 +// String contentType = data.getStringExtra(CameraActivity.KEY_CONTENT_TYPE); +// // 通过临时文件获取拍摄的图片 +// String filePath = FileUtil.getSaveFile(getApplicationContext()).getAbsolutePath(); +// // 判断拍摄类型(通用,身份证,银行卡等) +// if (requestCode == REQUEST_CODE_GENERAL && resultCode == Activity.RESULT_OK) { +// // 判断是否是身份证正面 +// if (CameraActivity.CONTENT_TYPE_ID_CARD_FRONT.equals(contentType)){ +// // 获取图片文件调用sdk数据接口,见数据接口说明 +// } +// } + } + + + @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(); + } + } 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(); + } + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/auth/PhotoCarActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/auth/PhotoCarActivity.java new file mode 100644 index 0000000..89054c5 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/auth/PhotoCarActivity.java @@ -0,0 +1,483 @@ +package com.arpa.hndahesudintocctmsdriver.ui.auth; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Message; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.Nullable; + +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.bean.BaseBean; +import com.arpa.hndahesudintocctmsdriver.bean.CarDelBean; +import com.arpa.hndahesudintocctmsdriver.bean.IsAuthDriverAuthQualificationBean; +import com.arpa.hndahesudintocctmsdriver.bean.UploadBean; +import com.arpa.hndahesudintocctmsdriver.request.AuthRequest; +import com.arpa.hndahesudintocctmsdriver.request.UserRequset; +import com.arpa.hndahesudintocctmsdriver.ui.my.WoDeFragment; +import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; +import com.arpa.hndahesudintocctmsdriver.util.file.ImageFileCompressUtil; +import com.arpa.hndahesudintocctmsdriver.util.img.GetImageAlert; +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView; +import com.bumptech.glide.Glide; +import com.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 java.io.File; +import java.util.List; + +/** + * @ClassName PhotoCarActivity + * @Author 用户 + * @Date 2022/4/12 14:43 + * @Description TODO + */ +public class PhotoCarActivity extends BaseAppCompatActivity implements View.OnClickListener { + + private String[] titles = {"车辆照片", "NFC照片", "车辆登记证书", "道路运输许可证"}; + private String[] name1 = {"车辆照片", "NFC照片", "车辆登记证书照片", "道路运输许可证照片"}; + private String[] name2 = {"请上传车辆照片", "请上传NFC照片", "请上传车辆登记证书照片", "请上传道路运输许可证照片"}; + private Boolean[] isShowEdit = {false, false, true, true}; + private Boolean[] isShowSkip = {true, false, false, false}; + private String[] tips = { + "", + "*注意: 没有粘贴NFC芯片的车辆无需上传,可直接跳过", + "*注意: 没有可直接跳过,等候下次上传", + "*注意: 4.5吨一下车辆不需要上传,可直接跳过"}; + + + private BaseRecyclerView brv; + private ImageView img; + private TextView title1, title2, title3, zjimg_name, upload_img, tvTips, tvSkip; + private EditText value1; + private LinearLayout llInfo; + private RelativeLayout up_img; + private Button submit; + + private Gson gson = new Gson(); + private UserRequset ur; + private CarDelBean cdb; + + private int type;//页面类型 + private String path, carId, url;//图片路径 + private GetImageAlert gia = new GetImageAlert(); + + @Override + public void msgMethod(Message m) { + super.msgMethod(m); + switch (m.what) { + case 200: + if (CacheGroup.cacheList.get(WoDeFragment.VEHICLE_DEL) != null) { + Log.e("--res--", CacheGroup.cacheList.get(WoDeFragment.VEHICLE_DEL)); + cdb = gson.fromJson(CacheGroup.cacheList.get(WoDeFragment.VEHICLE_DEL), CarDelBean.class); + if (cdb.getCode() == 200) { + showImgToView(); + } else { + Toast.makeText(con, cdb.getMsg(), Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove(WoDeFragment.VEHICLE_DEL); + } + + + if (CacheGroup.cacheList.get("upload") != null) { + UploadBean ub = gson.fromJson(CacheGroup.cacheList.get("upload"), UploadBean.class); + switch (type) { + case 0: + new AuthRequest().saveCarImg(con, hd, carId, ub.getData().getId(), 1); + break; + case 1: + new AuthRequest().saveCarImg(con, hd, carId, ub.getData().getId(), 4); + break; + case 2: + new AuthRequest().saveCarImg(con, hd, carId, ub.getData().getId(), 5); + break; + case 3: + new AuthRequest().saveCarImg(con, hd, carId, ub.getData().getId(), 2); + break; + } + url = ub.getData().getUrl(); + Glide.with(con).load(url).into(img); + + CacheGroup.cacheList.remove("upload"); + } + + if (CacheGroup.cacheList.get("saveCarImg") != null) { + BaseBean bb = gson.fromJson(CacheGroup.cacheList.get("saveCarImg"), BaseBean.class); + if (bb.getCode() == 200) { + switch (type) { + case 0: + Toast.makeText(con, "上传车辆照片成功", Toast.LENGTH_SHORT).show(); + break; + case 1: + Toast.makeText(con, "上传nfc照片成功", Toast.LENGTH_SHORT).show(); + break; + case 2: + Toast.makeText(con, "上传车辆登记证书照片", Toast.LENGTH_SHORT).show(); + break; + case 3: + Toast.makeText(con, "上传道路运输证成功", Toast.LENGTH_SHORT).show(); + break; + } + } else { + Toast.makeText(con, bb.getMsg(), Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove("saveCarImg"); + } + if (CacheGroup.cacheList.get("saveCarRegisterNo") != null) { + Log.e("is", CacheGroup.cacheList.get("saveCarRegisterNo")); + IsAuthDriverAuthQualificationBean ib = gson.fromJson(CacheGroup.cacheList.get("saveCarRegisterNo"), IsAuthDriverAuthQualificationBean.class); + if (ib.getCode() == 200) { + finish(); + Intent in = new Intent(con, PhotoCarActivity.class); + in.putExtra("type", 3); + in.putExtra("carId", carId); + con.startActivity(in); + } else { + Toast.makeText(con, ib.getMsg(), Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove("saveCarRegisterNo"); + } + + if (CacheGroup.cacheList.get("saveCarRoadLicenseNo") != null) { + Log.e("is", CacheGroup.cacheList.get("saveCarRoadLicenseNo")); + IsAuthDriverAuthQualificationBean ib = gson.fromJson(CacheGroup.cacheList.get("saveCarRoadLicenseNo"), IsAuthDriverAuthQualificationBean.class); + if (ib.getCode() == 200) { + //判断是否需要跳转挂车行驶证页面 + if (!"".equals(carId) && cdb.getData().getIsTrailer() == 1) { + if (!"".equals(carId)) { + finish(); + Intent in = new Intent(con, CertificatesActivity.class); + in.putExtra("index", 3); + in.putExtra("carId", carId); + if (cdb != null) { + in.putExtra("cheData", new Gson().toJson(cdb)); + } + startActivity(in); + } else { + Toast.makeText(con, "请先绑定行驶证", Toast.LENGTH_SHORT).show(); + } + } else { + finish(); + Intent in = new Intent(con, AddCarSuccActivity.class); + in.putExtra("type", 3); + con.startActivity(in); + } + } else { + Toast.makeText(con, ib.getMsg(), Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove("saveCarRoadLicenseNo"); + } + break; + case ImageFileCompressUtil.COMPRESS_SUCCESS: + path = (String) m.obj; + new AuthRequest().upload(con, hd, new File(path)); + break; + default: + break; + } + } + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + StateStyleUtil.stateTextColor(this); + setContentView(R.layout.activity_photo_car); + con = this; +// EventBus.getDefault().register(this); + title1 = findViewById(R.id.title1); + title2 = findViewById(R.id.title2); + title3 = findViewById(R.id.name1); + up_img = findViewById(R.id.up_img); + img = findViewById(R.id.img); + zjimg_name = findViewById(R.id.zjimg_name); + upload_img = findViewById(R.id.upload_img); + tvTips = findViewById(R.id.tvTips); + value1 = findViewById(R.id.value1); + llInfo = findViewById(R.id.llInfo); + tvSkip = findViewById(R.id.tvSkip); + submit = findViewById(R.id.submit); + + tvSkip.setOnClickListener(this); + submit.setOnClickListener(this); + upload_img.setOnClickListener(this); + img.setOnClickListener(this); + + + type = getIntent().getExtras().getInt("type"); + carId = getIntent().getExtras().getString("carId", ""); + changeViewByType(type); + + ur = new UserRequset(con, hd); + initView(null); + } + + @Override + public void initView(Object obj) { + super.initView(obj); + if ("".equals(carId)) { + + } else { + ur.vehicleDel(carId); + } + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == 12 && resultCode == RESULT_OK) { + 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 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); + } + } + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tvSkip: + skip(type); + break; + case R.id.submit: + submit(); + break; + case R.id.upload_img: + choicePhoto(); + break; + case R.id.img: + showBigImg(); + break; + } + } + + + /** + * 展示大图片 + */ + private void showBigImg() { + switch (type) { + case 0: + if (cdb.getData().getRoadLicensePhoto() != null && !cdb.getData().getCarImage().equals("")) { + new XPopup.Builder(con) + .asImageViewer(img, cdb.getData().getCarImage(), true, -1, -1, 50, false, new CertificatesActivity.ImageLoader()) + .show(); + } + break; + case 1: + if (cdb.getData().getRoadLicensePhoto() != null && !cdb.getData().getNfcImage().equals("")) { + new XPopup.Builder(con) + .asImageViewer(img, cdb.getData().getNfcImage(), true, -1, -1, 50, false, new CertificatesActivity.ImageLoader()) + .show(); + } + break; + case 2: + if (cdb.getData().getRoadLicensePhoto() != null && !cdb.getData().getRegisterImage().equals("")) { + new XPopup.Builder(con) + .asImageViewer(img, cdb.getData().getRegisterImage(), true, -1, -1, 50, false, new CertificatesActivity.ImageLoader()) + .show(); + } + break; + case 3: + if (cdb.getData().getRoadLicensePhoto() != null && !"".equals(cdb.getData().getRoadLicensePhoto())) { + //roadLicensePhoto + new XPopup.Builder(con) + .asImageViewer(img, cdb.getData().getRoadLicensePhoto(), true, -1, -1, 50, false, new CertificatesActivity.ImageLoader()) + .show(); + + break; + } + } + } + + /** + * 照片提交 + * "车辆照片", "NFC照片", "车辆登记证书", "道路运输许可证" + */ + private void submit() { + if ("".equals(carId)) { + Toast.makeText(this, "请先绑定行驶证", Toast.LENGTH_SHORT).show(); + return; + } + + switch (type) { + case 0: + if (!TextUtils.isEmpty(url)||(cdb!=null&&!TextUtils.isEmpty(cdb.getData().getCarImage()))){ + finish(); + Intent in = new Intent(con, PhotoCarActivity.class); + in.putExtra("type", 1); + in.putExtra("carId", carId); + con.startActivity(in); + } else{ + Toast.makeText(this, "请上传车辆照片", Toast.LENGTH_SHORT).show(); + } + break; + case 1: + finish(); + Intent in1 = new Intent(con, PhotoCarActivity.class); + in1.putExtra("type", 2); + in1.putExtra("carId", carId); + con.startActivity(in1); + break; + case 2: + String s = value1.getText().toString(); + if (TextUtils.isEmpty(s)) { + Toast.makeText(this, "请完善证号", Toast.LENGTH_SHORT).show(); + return; + } + new AuthRequest().saveCarRegisterNo(con,hd,carId,s); + break; + case 3: + String s1 = value1.getText().toString(); + if (TextUtils.isEmpty(s1)) { + Toast.makeText(this, "请完善证号", Toast.LENGTH_SHORT).show(); + return; + } + new AuthRequest().saveCarRoadLicenseNo(con,hd,carId,s1); + break; + } + } + + /** + * 显示上传图片 + */ + private void showImgToView() { + if (null != cdb) { + if (0 == type) { + if (!TextUtils.isEmpty(cdb.getData().getCarImage())) { + Glide.with(con).load(cdb.getData().getCarImage()).into(img); + submit.setBackgroundResource(R.drawable.bg_btn_grey); + upload_img.setText("已上传"); + } + } else if (1 == type) { + if (!TextUtils.isEmpty(cdb.getData().getNfcImage())) { + Glide.with(con).load(cdb.getData().getNfcImage()).into(img); + submit.setBackgroundResource(R.drawable.bg_btn_grey); + upload_img.setText("已上传"); + } + } else if (2 == type) { + if (!TextUtils.isEmpty(cdb.getData().getRegisterImage())) { + Glide.with(con).load(cdb.getData().getRegisterImage()).into(img); + value1.setText(cdb.getData().getRegisterNo()); + submit.setBackgroundResource(R.drawable.bg_btn_grey); + upload_img.setText("已上传"); + } + } else if (3 == type) { + if (!TextUtils.isEmpty(cdb.getData().getRoadLicensePhoto())) { + Glide.with(con).load(cdb.getData().getRoadLicensePhoto()).into(img); + value1.setText(cdb.getData().getRoadLicense()); + submit.setBackgroundResource(R.drawable.bg_btn_grey); + upload_img.setText("已上传"); + } + } + } + } + + /** + * 选择照片 + * "车辆照片", "NFC照片", "车辆登记证书", "道路运输许可证" + */ + private void choicePhoto() { + if ("" == carId) { + Toast.makeText(con, "请先绑定行驶证", Toast.LENGTH_SHORT).show(); + } else { + //已上传不允许再次上传 + if ("已上传".equals(upload_img.getText().toString())) { + return; + } + gia.showPopueWindow(this); + } + + } + + /** + * 跳转下一步 + * {"车辆照片", "NFC照片", "车辆登记证书", "道路运输许可证"} + */ + private void skip(int type) { + if (0 == type) { + finish(); + Intent in = new Intent(con, PhotoCarActivity.class); + in.putExtra("type", 1); + in.putExtra("carId", carId); + con.startActivity(in); + } else if (1 == type) { + finish(); + Intent in = new Intent(con, PhotoCarActivity.class); + in.putExtra("type", 2); + in.putExtra("carId", carId); + con.startActivity(in); + } else if (2 == type) { + finish(); + Intent in = new Intent(con, PhotoCarActivity.class); + in.putExtra("type", 3); + in.putExtra("carId", carId); + con.startActivity(in); + } else if (3 == type) { + //判断是否需要跳转挂车行驶证页面 + if (!"".equals(carId) && cdb.getData().getIsTrailer() == 1) { + if (!"".equals(carId)) { + finish(); + Intent in = new Intent(con, CertificatesActivity.class); + in.putExtra("index", 3); + in.putExtra("carId", carId); + if (cdb != null) { + in.putExtra("cheData", new Gson().toJson(cdb)); + } + startActivity(in); + } else { + Toast.makeText(con, "请先绑定行驶证", Toast.LENGTH_SHORT).show(); + } + } else { + finish(); + Intent in = new Intent(con, AddCarSuccActivity.class); + in.putExtra("type", 3); + in.putExtra("carId", carId); + con.startActivity(in); + } + } + } + + /** + * 根据类型显示不同内容 + * + * @param type + */ + private void changeViewByType(int type) { + title1.setText(titles[type]); + zjimg_name.setText(name1[type]); + upload_img.setText(name2[type]); + tvTips.setText(tips[type]); + tvSkip.setVisibility(isShowSkip[type] ? View.GONE : View.VISIBLE); + llInfo.setVisibility(isShowEdit[type] ? View.VISIBLE : View.GONE); + } + + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/auth/VehicleAuthActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/auth/VehicleAuthActivity.java new file mode 100644 index 0000000..37bdc70 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/auth/VehicleAuthActivity.java @@ -0,0 +1,392 @@ +package com.arpa.hndahesudintocctmsdriver.ui.auth; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Message; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.ImageButton; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.Nullable; + +import com.arpa.hndahesudintocctmsdriver.event.VehicleEvent; +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.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.bean.BaseBean; +import com.arpa.hndahesudintocctmsdriver.bean.CarDelBean; +import com.arpa.hndahesudintocctmsdriver.bean.UploadBean; +import com.arpa.hndahesudintocctmsdriver.request.AuthRequest; +import com.arpa.hndahesudintocctmsdriver.request.UserRequset; +import com.arpa.hndahesudintocctmsdriver.ui.my.WoDeFragment; +import com.arpa.hndahesudintocctmsdriver.util.img.GetImageAlert; +import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; +import com.arpa.hndahesudintocctmsdriver.util.file.ImageFileCompressUtil; +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView; +import com.scwang.smart.refresh.layout.SmartRefreshLayout; + +import org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Subscribe; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +public class VehicleAuthActivity extends BaseAppCompatActivity { + + private BaseRecyclerView brv; + private CarDelBean cdb; + private Gson gson=new Gson(); + public String carId=""; + public static final String DEL_CAR="delete_che"; + public static final String CAR_AUDIO="CAR_AUDIO"; + private int submitIndex=0; + private BaseBean bb; + private ImageView show_img; + private UserRequset ur; + + @Override + public void msgMethod(Message m) { + super.msgMethod(m); + switch (m.what){ + case 200: + if(CacheGroup.cacheList.get(CAR_AUDIO)!=null){ + CacheGroup.cacheList.remove(CAR_AUDIO); + } + if(CacheGroup.cacheList.get(WoDeFragment.VEHICLE_DEL)!=null){ + Log.e("--res--",CacheGroup.cacheList.get(WoDeFragment.VEHICLE_DEL)); + cdb=gson.fromJson(CacheGroup.cacheList.get(WoDeFragment.VEHICLE_DEL), CarDelBean.class); + if(cdb.getCode()==200){ + initView(null); + }else{ + Toast.makeText(con,cdb.getMsg(),Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove(WoDeFragment.VEHICLE_DEL); + refreshLayout.finishRefresh(); + } + if(CacheGroup.cacheList.get(DEL_CAR)!=null){ + bb=gson.fromJson(CacheGroup.cacheList.get(DEL_CAR),BaseBean.class); + if (bb.getCode()==200) { + Toast.makeText(con,"删除成功",Toast.LENGTH_SHORT).show(); + finish(); + }else{ + Toast.makeText(con,"删除失败:"+bb.getMsg(),Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove(DEL_CAR); + } + if(CacheGroup.cacheList.get("upload")!=null){ + UploadBean ub=gson.fromJson(CacheGroup.cacheList.get("upload"),UploadBean.class); + if (key1) { + switch (submitIndex){ + case 0: + new AuthRequest().saveCarImg(con,hd,carId,ub.getData().getId(),1); + break; + case 1: + new AuthRequest().saveCarImg(con,hd,carId,ub.getData().getId(),4); + break; + case 2: + new AuthRequest().saveCarImg(con,hd,carId,ub.getData().getId(),5); + break; + default:break; + } + } + if (key2) { + new AuthRequest().saveCarImg(con,hd,carId,ub.getData().getId(),2); + } + if (key3) { + new AuthRequest().saveCarImg(con,hd,carId,ub.getData().getId(),2); + } + CacheGroup.cacheList.remove("upload"); + refreshLayout.finishRefresh(); + } + if(CacheGroup.cacheList.get("saveCarImg")!=null){ + BaseBean bb=gson.fromJson(CacheGroup.cacheList.get("saveCarImg"),BaseBean.class); + if(bb.getCode()==200){ + if(key1){ + switch (submitIndex){ + case 0: + Toast.makeText(con,"上传车辆照片成功",Toast.LENGTH_SHORT).show(); + break; + case 1: + Toast.makeText(con,"上传nfc照片成功",Toast.LENGTH_SHORT).show(); + break; + case 2: + Toast.makeText(con,"上传车辆登记证书照片",Toast.LENGTH_SHORT).show(); + break; + default:break; + } + } + if(key2){ + Toast.makeText(con,"上传道路运输证成功",Toast.LENGTH_SHORT).show(); + } + if(key3){ + Toast.makeText(con,"上传挂车道路运输证成功",Toast.LENGTH_SHORT).show(); + } + }else{ + Toast.makeText(con,bb.getMsg(),Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove("saveCarImg"); + } + break; + case ImageFileCompressUtil.COMPRESS_SUCCESS: + path= (String) m.obj; + new AuthRequest().upload(con,hd,new File(path)); + break; + default:break; + } + } + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + StateStyleUtil.stateTextColor(this); + setContentView(R.layout.activity_brv); + con=this; + EventBus.getDefault().register(this); + brv=findViewById(R.id.rv); + show_img=findViewById(R.id.show_img); + refreshLayout=findViewById(R.id.srl); + carId=getIntent().getExtras().getString("carId"); + ur=new UserRequset(con,hd); + Log.e("--carId--",carId+"--"); + initRefreshLoad(); + } + + private GetImageAlert gia=new GetImageAlert(); + private boolean key1,key2,key3=false; + + @Override + public void initView(Object obj) { + super.initView(obj); + List list=new ArrayList<>(); + if(cdb!=null){ + list.add(cdb.getData()); + }else{ + list.add(new model()); + } + brv.createV(con,list,R.layout.activity_che_data).setOnItemViewListener((position, o, v) -> { + TextView number=v.findViewById(R.id.number); + TextView type=v.findViewById(R.id.type); + TextView state=v.findViewById(R.id.state); + TextView del=v.findViewById(R.id.del); + ImageView carImage=v.findViewById(R.id.carImage); + if (cdb!=null) { + number.setText(cdb.getData().getCarNumber()); + type.setText(cdb.getData().getType()); + state.setText(getState(cdb.getData().getAuditStatus())); + del.setVisibility(View.VISIBLE); + } + ImageButton return_btn=v.findViewById(R.id.return_btn); + return_btn.setOnClickListener(v1 -> { + if (!TextUtils.isEmpty(carId)){ + ur.carAudit(carId); + } + finish(); + }); + TextView bangding=v.findViewById(R.id.bangding); + bangding.setOnClickListener(v1 -> { + Toast.makeText(con,"暂未开放",Toast.LENGTH_SHORT).show(); +// Intent in=new Intent(con,CheBindingActivity.class); +// startActivity(in); + }); + RelativeLayout r1=v.findViewById(R.id.r1); + RelativeLayout r2=v.findViewById(R.id.r2); + RelativeLayout r3=v.findViewById(R.id.r3); + RelativeLayout r4=v.findViewById(R.id.r4); + RelativeLayout r5=v.findViewById(R.id.r5); + RelativeLayout r6=v.findViewById(R.id.r6); + RelativeLayout r7=v.findViewById(R.id.r7); + View vs1=v.findViewById(R.id.vs1); + View vs2=v.findViewById(R.id.vs2); + r4.setVisibility(View.GONE); + r5.setVisibility(View.GONE); + vs1.setVisibility(View.GONE); + vs2.setVisibility(View.GONE); + if(!"".equals(carId) && cdb.getData().getIsTrailer()==1){ + r4.setVisibility(View.VISIBLE); +// r5.setVisibility(View.VISIBLE); + vs1.setVisibility(View.VISIBLE); + vs2.setVisibility(View.VISIBLE); + } + carImage.setOnClickListener(v14 -> { + if(cdb!=null && cdb.getData()!=null && cdb.getData().getCarImage()!=null && !cdb.getData().getCarImage().equals("")){ + new XPopup.Builder(con) + .asImageViewer(carImage,cdb.getData().getCarImage(), true, -1, -1, 50, false,new CertificatesActivity.ImageLoader()) + .show(); + } + }); + r1.setOnClickListener(v12 -> { + Intent in=new Intent(con, CertificatesActivity.class); + in.putExtra("index",2); + in.putExtra("carId", carId); + if (cdb!=null) { + in.putExtra("cheData",new Gson().toJson(cdb)); + } + startActivity(in); + }); + r2.setOnClickListener(v12 -> { + if(!"".equals(carId)){ + Intent in = new Intent(con, PhotoCarActivity.class); + in.putExtra("type", 0); + in.putExtra("carId", carId); + con.startActivity(in); + }else{ + Toast.makeText(con,"请先绑定行驶证",Toast.LENGTH_SHORT).show(); + } + }); + r6.setOnClickListener(v12 -> { + if(!"".equals(carId)){ + Intent in = new Intent(con, PhotoCarActivity.class); + in.putExtra("type", 1); + in.putExtra("carId", carId); + con.startActivity(in); + }else{ + Toast.makeText(con,"请先绑定行驶证",Toast.LENGTH_SHORT).show(); + } + }); + r7.setOnClickListener(v12 -> { + if(!"".equals(carId)){ + Intent in = new Intent(con, PhotoCarActivity.class); + in.putExtra("type", 2); + in.putExtra("carId", carId); + con.startActivity(in); + }else{ + Toast.makeText(con,"请先绑定行驶证",Toast.LENGTH_SHORT).show(); + } + }); + r3.setOnClickListener(v12 -> { + if(!"".equals(carId)){ + Intent in = new Intent(con, PhotoCarActivity.class); + in.putExtra("type", 3); + in.putExtra("carId", carId); + con.startActivity(in); + }else{ + Toast.makeText(con,"请先绑定行驶证",Toast.LENGTH_SHORT).show(); + } + }); + r4.setOnClickListener(v12 -> { + if(!"".equals(carId)) { + Intent in = new Intent(con, CertificatesActivity.class); + in.putExtra("index", 3); + in.putExtra("carId", carId); + if (cdb != null) { + in.putExtra("cheData", new Gson().toJson(cdb)); + } + startActivity(in); + }else{ + Toast.makeText(con,"请先绑定行驶证",Toast.LENGTH_SHORT).show(); + } + }); + r5.setOnClickListener(v1 -> { + if(!"".equals(carId) && cdb.getData().getTrailerResVo()!=null){ + key1=false; + key2=false; + key3=true; + gia.showPopueWindow(this); + }else{ + Toast.makeText(con,"请先绑定挂车",Toast.LENGTH_SHORT).show(); + } + }); + del.setOnClickListener(v13 -> { + new XPopup.Builder(con) + .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 + .asConfirm("请确认", "您是否确定删除此车辆吗?", + "取消", "确认", + () -> ur.delVehicle(carId), null, false, R.layout.alert_ok_cancel) //最后一个参数绑定已有布局 + .show(); + }); + }); + } + + @Override + public void onBackPressed() { + super.onBackPressed(); + if (!TextUtils.isEmpty(carId)){ + ur.carAudit(carId); + } + } + + public String getState(int state){ + //认证状态 100001待认证, 100002审核中, 100003审核通过 ,100004审核不通过 + String str=""; + switch (state){ + case 100001:str="待认证";break; + case 100002:str="审核中";break; + case 100003:str="审核通过";break; + case 100004:str="审核不通过";break; + default:break; + } + return str; + } + + String path; + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == 12 && resultCode == RESULT_OK) { + 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 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); + } + } + } + + class model{} + + public static SmartRefreshLayout refreshLayout; + + //加载和刷新 + public void initRefreshLoad(){ + refreshLayout=findViewById(R.id.srl); + refreshLayout.setOnRefreshListener(refreshLayout -> { + Log.e("下拉刷新","pps"); + if("".equals(carId)){ + initView(null); + refreshLayout.finishRefresh(); + }else{ + ur.vehicleDel(carId); + } + }); + refreshLayout.autoRefresh(); + } + + @Override + protected void onResume() { + super.onResume(); + } + + @Subscribe + public void processResult(VehicleEvent event) { + Log.e("-msg-",event.getMessage()); + if(!"挂".equals(event.getMessage())) { + carId = event.getMessage(); + } + ur.vehicleDel(carId); + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/business/BusinessActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/business/BusinessActivity.java new file mode 100644 index 0000000..8e47c6b --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/business/BusinessActivity.java @@ -0,0 +1,230 @@ +package com.arpa.hndahesudintocctmsdriver.ui.business; + +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.Nullable; + +import com.google.gson.Gson; +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.bean.BusinessBean; +import com.arpa.hndahesudintocctmsdriver.bean.BusinessListBean; +import com.arpa.hndahesudintocctmsdriver.request.BusinessRequest; +import com.arpa.hndahesudintocctmsdriver.util.location.LocationGDUtil; +import com.arpa.hndahesudintocctmsdriver.util.msg.MsgUtil; +import com.arpa.hndahesudintocctmsdriver.util.alert.CustomDialog; +import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; +import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants; +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import okhttp3.Call; +import okhttp3.Callback; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/9/6 9:59 + * @description: + */ +public class BusinessActivity extends BaseActivity { + + private BaseRecyclerView business_type; + private BaseRecyclerView business_list; + private LocationGDUtil ld; + private TextView address; + private BusinessListBean blb; + private Gson gson=new Gson(); + private List bbs=new ArrayList<>(); + private CustomDialog customDialog; + private int sum=0; + private String type="餐饮"; + @Override + public void msgMethod(Message m) { + super.msgMethod(m); + switch (m.what){ + case RequsetCodeConstants.SUCCESS: + if(CacheGroup.cacheList.get("business_list")!=null){ + Log.e("--res--",CacheGroup.cacheList.get("business_list")+""); + blb=gson.fromJson(CacheGroup.cacheList.get("business_list"),BusinessListBean.class); + if(blb.getCode()==200){ + forGetBusDel(); + }else{ + Toast.makeText(con,blb.getMsg(),Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove("business_list"); + } + break; + case LocationGDUtil.RES: + address.setText(ld.getAddress()); + new BusinessRequest().GetBusinessList(con,hd,ld.getLongitude()+"",ld.getLatitude()+"",type); + break; + case 2: + BusinessBean.DataDTO bds=gson.fromJson((String) m.obj,BusinessBean.DataDTO.class); + bbs.add(bds); + initBusListDel(); + break; + case 3: + Log.e("aaa",(String) m.obj); + BusinessBean.DataDTO bd=gson.fromJson((String) m.obj,BusinessBean.DataDTO.class); + + if(bd!=null){ + //if (BeanUtil.isBean(bd.getClass())) { + try { + business_list.addItemV(bd); + }catch (Exception e){ + Log.e("遇到了",bd.toString()); + } + //} + } + break; + } + } + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + StateStyleUtil.stateTextColor(this); + setContentView(R.layout.activity_business); + con=this; + business_type=findViewById(R.id.business_type); + business_list=findViewById(R.id.business_list); + address=findViewById(R.id.address); + try { + type=getIntent().getExtras().getString("type"); + }catch (Exception e){ + type="餐饮"; + } + initView(null); + customDialog=new CustomDialog(con, "正在定位..."); + customDialog.show(); + ld=new LocationGDUtil(con,hd); + ld.onCreate(); + } + + List list_type=new ArrayList<>(); + @Override + public void initView(Object obj) { + super.initView(obj); + list_type.add(new Model("餐饮",R.mipmap.icon_canguan)); + list_type.add(new Model("住宿",R.mipmap.icon_jiudian)); + list_type.add(new Model("商店",R.mipmap.icon_shangdian)); + list_type.add(new Model("加油站",R.mipmap.icon_jiayouzhan)); + list_type.add(new Model("汽车维修",R.mipmap.icon_xiuche)); + business_type.createG(4,con,list_type,R.layout.item_business_type).setOnItemViewListener((position, o, v) -> { + Model m= (Model) o; + ImageView type_img=v.findViewById(R.id.type_icon); + type_img.setImageResource(m.getType_img()); + v.setOnClickListener(v1 -> { + sum=0; + bbs=new ArrayList<>(); + customDialog=new CustomDialog(con, "正在切换..."); + customDialog.show(); + new BusinessRequest().GetBusinessList(con,hd,ld.getLongitude()+"",ld.getLatitude()+"",m.getType_name()); + }); + }); + } + + public void forGetBusDel(){ + customDialog.dismiss(); + //business_list.remo + Log.e("-数组-",gson.toJson(blb)); + for (int i=0;i { + BusinessBean.DataDTO bd= (BusinessBean.DataDTO) o; + v.setOnClickListener(v1 -> { +// Intent in=new Intent(con, WebActivity.class); +// in.putExtra("url",bd.getBusiness_url()); +// in.putExtra("title",bd.getName()); +// startActivity(in); + }); + }); + } + + public void requestGet(String url){ + OkHttpClient client = new OkHttpClient().newBuilder() + .build(); + Request request = new Request.Builder() + .url(url) + .method("GET", null) + .addHeader("Content-Type", "application/json") + .build(); + client.newCall(request).enqueue(new Callback() { + @Override + public void onFailure(Call call, IOException e) { + + } + + @Override + public void onResponse(Call call, Response response) throws IOException { + if(response.code()==200){ + String body=response.body().string(); + Log.e("-body-",body); + BusinessBean bb=gson.fromJson(body,BusinessBean.class); + if(bb.getCode()==200){ + sum++; + //bbs.add(bb.getData()); + if(sum==1){ + Log.e("--添加--",bbs.size()+"_"+blb.getData().getResults().size()); + MsgUtil.addHdMsgWatBody(hd,2,gson.toJson(bb.getData())); + }else{ + Log.e("--添加--",bbs.size()+"_"+blb.getData().getResults().size()); + MsgUtil.addHdMsgWatBody(hd,3,gson.toJson(bb.getData())); + } + } + }else{ + + } + } + }); + } + + + + class Model{ + private String type_name; + private int type_img; + + public Model(String type_name, int type_img) { + this.type_name = type_name; + this.type_img = type_img; + } + + public String getType_name() { + return type_name; + } + + public void setType_name(String type_name) { + this.type_name = type_name; + } + + public int getType_img() { + return type_img; + } + + public void setType_img(int type_img) { + this.type_img = type_img; + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/business/Md5Util.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/business/Md5Util.java new file mode 100644 index 0000000..c95f19a --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/business/Md5Util.java @@ -0,0 +1,147 @@ +package com.arpa.hndahesudintocctmsdriver.ui.business; + +import com.arpa.hndahesudintocctmsdriver.util.time.Timer; + +import java.io.UnsupportedEncodingException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/9/6 10:05 + * @description: + */ +public class Md5Util { + static String app_key="3d4c1b5592f9ae09"; + static String appSecret="642cc46b385264595df7cce271250a1cb782b39c"; + static String[] strs={"app_key","deviceId","longitude","latitude","keyword","timestamp","format","v","sign_method","session","sign"}; + static String[] strsDel={"app_key","deviceId","openshopid","timestamp","format","v","sign_method","session","sign"}; + public static String resUrl(String longitude,String latitude,String keyword){ + String str=""; + Map requestParam = new HashMap<>(); + requestParam.put("app_key", app_key); + requestParam.put("deviceId", "user-13460042961"); + requestParam.put("longitude", longitude); + requestParam.put("latitude", latitude); + requestParam.put("keyword",keyword); + requestParam.put("timestamp", Timer.getTimer()); + requestParam.put("format", "json"); + requestParam.put("v", "1"); + requestParam.put("sign_method", "MD5"); + requestParam.put("session", "cb2007c78d055247f7f242760173268caef1183a"); + requestParam.put("sign", generateSign(requestParam,appSecret,"MD5")); + str+="?"; + for(int i=0;i requestParam = new HashMap<>(); + requestParam.put("app_key", app_key); + requestParam.put("deviceId", "user-13460042961"); + requestParam.put("openshopid", id); + requestParam.put("timestamp", Timer.getTimer()); + requestParam.put("format", "json"); + requestParam.put("v", "1"); + requestParam.put("sign_method", "MD5"); + requestParam.put("session", "cb2007c78d055247f7f242760173268caef1183a"); + requestParam.put("sign", generateSign(requestParam,appSecret,"MD5")); + str+="?"; + for(int i=0;i requestParam){ + String str=""; + str+="?"; + if (requestParam.size()>0){ + for (Map.Entry entry : requestParam.entrySet()){ + str+=entry.getKey()+"="+entry.getValue()+"&"; + } + str = str.substring(0,str.length()-1); + } + + return str; + } + + public static String generateSign(Map params, String appSecret, String signMethod) { + // 第一步:参数排序 + List keys =new ArrayList<>(); //Lists.newArrayList(); + for (Map.Entry entry : params.entrySet()) { + if (isNotEmpty(entry.getValue())) { + keys.add(entry.getKey()); + } + } + Collections.sort(keys); + // 第二步:把所有参数名和参数值串在一起 + StringBuilder sb = new StringBuilder(); + if (isNotEmpty(appSecret)) { + sb.append(appSecret); + } + for (String key : keys) { + sb.append(key).append(params.get(key).trim()); + } + if (isNotEmpty(appSecret)) { + sb.append(appSecret); + } + String encryptionKey = sb.toString().trim(); + // 第三步:加签 + if (signMethod.equals("MD5")) { + try { + String sign = genMd5(encryptionKey); + return sign; + } catch (Exception e) { + throw new RuntimeException(e.getMessage()); + } + }else{ + //开发者暂不需支持,支持MD5即可 + return ""; + } + } + + public static String genMd5(String info) throws NoSuchAlgorithmException, UnsupportedEncodingException { + MessageDigest md5 = MessageDigest.getInstance("MD5"); + byte[] infoBytes = info.getBytes(); + md5.update(infoBytes); + byte[] sign = md5.digest(); + return byteArrayToHex(sign); + } + + public static String byteArrayToHex(byte[] bytes) { + StringBuilder sign = new StringBuilder(); + for (int i = 0; i < bytes.length; i++) { + String hex = Integer.toHexString(bytes[i] & 0xFF); + if (hex.length() == 1) { + sign.append("0"); + } + sign.append(hex.toLowerCase()); + } + return sign.toString(); + } + + public static boolean isNotEmpty(String str){ + if(str==null || str.equals("")){ + return false; + } + return true; + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/HomeBottomPopup.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/HomeBottomPopup.java new file mode 100644 index 0000000..f8ce35a --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/HomeBottomPopup.java @@ -0,0 +1,50 @@ +package com.arpa.hndahesudintocctmsdriver.ui.home; + +import android.content.Context; + +import androidx.annotation.NonNull; + +import com.lxj.xpopup.core.BottomPopupView; + +import org.jetbrains.annotations.NotNull; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/10/14 9:13 + * @description: + */ +public class HomeBottomPopup extends BottomPopupView { + + public HomeBottomPopup(@NonNull @NotNull Context context) { + super(context); + } + @Override + protected int getImplLayoutId() { + return 0; + } + + @Override + protected void onCreate() { + super.onCreate(); + + } + + //完全可见执行 + @Override + protected void onShow() { + super.onShow(); + } + + //完全消失执行 + @Override + protected void onDismiss() { + + } + + @Override + protected int getMaxHeight() { +// return XPopupUtils.getWindowHeight(getContext()); + return 100; + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/HomeFragment.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/HomeFragment.java new file mode 100644 index 0000000..22310dd --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/HomeFragment.java @@ -0,0 +1,1011 @@ +package com.arpa.hndahesudintocctmsdriver.ui.home; + +import android.Manifest; +import android.content.Context; +import android.content.Intent; +import android.graphics.Outline; +import android.location.Location; +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewOutlineProvider; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; + +import com.alct.mdp.MDPLocationCollectionManager; +import com.alct.mdp.callback.OnDownloadResultListener; +import com.amap.api.maps.AMap; +import com.amap.api.maps.CameraUpdate; +import com.amap.api.maps.CameraUpdateFactory; +import com.amap.api.maps.MapView; +import com.amap.api.maps.UiSettings; +import com.amap.api.maps.model.BitmapDescriptorFactory; +import com.amap.api.maps.model.LatLng; +import com.amap.api.maps.model.Marker; +import com.amap.api.maps.model.MarkerOptions; +import com.amap.api.maps.model.MyLocationStyle; +import com.arpa.hndahesudintocctmsdriver.bean.DriverExpireBean; +import com.arpa.hndahesudintocctmsdriver.bean.ImageConfig; +import com.arpa.hndahesudintocctmsdriver.bean.JTT; +import com.arpa.hndahesudintocctmsdriver.constant.JTTConstant; +import com.arpa.hndahesudintocctmsdriver.event.HomeEvent; +import com.arpa.hndahesudintocctmsdriver.parts.StartOrderParts; +import com.arpa.hndahesudintocctmsdriver.report.JTTProcess; +import com.arpa.hndahesudintocctmsdriver.ui.news.NewActivity; +import com.arpa.hndahesudintocctmsdriver.util.string.StringUtil; +import com.bumptech.glide.Glide; +import com.google.gson.Gson; +import com.hjq.xtoast.XToast; +import com.luck.picture.lib.permissions.RxPermissions; +import com.lxj.xpopup.XPopup; +import com.lxj.xpopup.interfaces.OnConfirmListener; +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.report.ALProcess; +import com.arpa.hndahesudintocctmsdriver.bean.DriverAuthDataBean; +import com.arpa.hndahesudintocctmsdriver.bean.HuoYuanListBean; +import com.arpa.hndahesudintocctmsdriver.bean.HuoYuanListDealBean; +import com.arpa.hndahesudintocctmsdriver.bean.StartOrderBean; +import com.arpa.hndahesudintocctmsdriver.bean.UpAppBean; +import com.arpa.hndahesudintocctmsdriver.bean.UserBean; +import com.arpa.hndahesudintocctmsdriver.request.HuoYuanRequset; +import com.arpa.hndahesudintocctmsdriver.request.UserRequset; +import com.arpa.hndahesudintocctmsdriver.service.TrackService; +import com.arpa.hndahesudintocctmsdriver.util.alert.ToastUtil; +import com.arpa.hndahesudintocctmsdriver.ui.UiAuxiliary; +import com.arpa.hndahesudintocctmsdriver.ui.web.WebActivity; +import com.arpa.hndahesudintocctmsdriver.ui.web.WebKfActivity; +import com.arpa.hndahesudintocctmsdriver.ui.alert.UpAppAlert; +import com.arpa.hndahesudintocctmsdriver.ui.business.BusinessActivity; + +import com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity; + +import com.arpa.hndahesudintocctmsdriver.ui.auth.PersonalAuthActivity; +import com.arpa.hndahesudintocctmsdriver.ui.my.WoDeFragment; +import com.arpa.hndahesudintocctmsdriver.util.msg.MsgUtil; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; +import com.arpa.hndahesudintocctmsdriver.util.adapter.AdapterAlls; +import com.arpa.hndahesudintocctmsdriver.util.adapter.ManyBean; +import com.arpa.hndahesudintocctmsdriver.util.alert.CustomDialog; +import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; +import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants; +import com.arpa.hndahesudintocctmsdriver.util.time.Timer; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseFragment; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView; +import com.youth.banner.Banner; +import com.youth.banner.BannerConfig; +import com.youth.banner.Transformer; +import com.youth.banner.loader.ImageLoader; + +import org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Subscribe; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/10/18 10:19 + * @description: + */ +public class HomeFragment extends BaseFragment { + + private MapView map; + private AMap aMap; + //private NestedScrollView bottomSheet; + private BaseRecyclerView brv; + private CardView order_start; + private HuoYuanRequset hyr; + private UserRequset ur; + private UserBean ub; + private StartOrderBean sob; + private HuoYuanListBean hb; + private Gson gson=new Gson(); + private CardView btn_news,btn_loadin,btn_update; + private LinearLayout order_all; + private HuoYuanListBean uab; + private List list=new ArrayList<>(); + private HuoYuanListDealBean hdb; + private LinearLayout home_top; + private boolean keys=false; + private ImageConfig ic; + private DriverExpireBean deb; + + @Override + public void msgMethod(Message m) { + super.msgMethod(m); + switch (m.what){ + case RequsetCodeConstants.SUCCESS: +// if (customDialog!=null) { +// customDialog.dismiss(); +// } + if(refreshLayout!=null && keys){ + refreshLayout.finishRefresh(500); + keys=false; + } + if (CacheGroup.cacheList.get("userdata")!=null){ + ub=gson.fromJson(CacheGroup.cacheList.get("userdata"), UserBean.class); + if(ub.getCode()==200){ + SPUtil.insSP(con,"data","userdata",CacheGroup.cacheList.get("userdata")); + MsgUtil.addHdMsgWat(hd,33); + }else{ + Toast.makeText(con,ub.getMsg(),Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove("userdata"); + } + if (CacheGroup.cacheList.get(HuoYuanFragmengt.START_ORDER)!=null){ + Log.e("--sob--",CacheGroup.cacheList.get(HuoYuanFragmengt.START_ORDER)); + sob=gson.fromJson(CacheGroup.cacheList.get(HuoYuanFragmengt.START_ORDER),StartOrderBean.class); + if(sob.getCode()==200){ + SPUtil.insSP(con, JTTConstant.JTT_DATA_NAME,JTTConstant.JTT_DATA_ORDER_KEY,gson.toJson(sob)); + initStart(); + StartOrderParts.setStartOrder(con,sob); + if(sob.getData()!=null){ + ur.getJtts(sob.getData().getShippingNoteNumber()); + } + }else{ + Toast.makeText(con,sob.getMsg(),Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove(HuoYuanFragmengt.START_ORDER); + } + 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(); + } + } + CacheGroup.cacheList.remove("up_app"); + } + if(CacheGroup.cacheList.get("hl")!=null){ + Log.e("hl",CacheGroup.cacheList.get("hl")); + uab=new Gson().fromJson(CacheGroup.cacheList.get("hl"),HuoYuanListBean.class); + if(uab.getCode()==200){ + initOrder(); + }else{ + Toast.makeText(con,uab.getMsg(),Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove("hl"); + } + if(CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA)!=null){ + DriverAuthDataBean dad=gson.fromJson(CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA),DriverAuthDataBean.class); + if (dad.getCode()==200) { + SPUtil.insSP(con,"data","authdata",CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA)); + if (dad.getData()!=null && 100003==dad.getData().getAuditStatus()) { + initAlct(); + } + }else{ + Toast.makeText(con,dad.getMsg(),Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove(WoDeFragment.AUTH_DATA); + } + if(CacheGroup.cacheList.get("dealList")!=null){ + Log.e("历史货源",CacheGroup.cacheList.get("dealList")); + hdb=gson.fromJson(CacheGroup.cacheList.get("dealList"),HuoYuanListDealBean.class); + if(hdb.getCode()==200){ + insDeal(); + }else{ + Toast.makeText(con,hdb.getMsg(),Toast.LENGTH_LONG).show(); + } + CacheGroup.cacheList.remove("dealList"); + } + if (CacheGroup.cacheList.get("getImage")!=null) { + ic=gson.fromJson(CacheGroup.cacheList.get("getImage"),ImageConfig.class); + if(ic.getCode()==200){ + initBanner(); + }else{ + Toast.makeText(con, StringUtil.isNull(ic.getMsg(),""),Toast.LENGTH_LONG).show(); + } + CacheGroup.cacheList.remove("getImage"); + } + if(CacheGroup.cacheList.get("driverExpire")!=null){ + Log.e("过期数据:",CacheGroup.cacheList.get("driverExpire")); + deb=gson.fromJson(CacheGroup.cacheList.get("driverExpire"),DriverExpireBean.class); + if (deb.getCode()==200) { + Intent in=new Intent(con,WebActivity.class); + in.putExtra("title","证件补传"); + if (!"".equals(deb.getData().getDriverLicenseUpdateUrl())){ + in.putExtra("url",deb.getData().getDriverLicenseUpdateUrl()); + }else{ + if(!"".equals(deb.getData().getIdCardUpdateUrl())){ + in.putExtra("url",deb.getData().getIdCardUpdateUrl()); + } + } + if(!"".equals(deb.getData().getDriverLicenseUpdateUrl()) || !"".equals(deb.getData().getIdCardUpdateUrl())){ + 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"); + } + + } + if(CacheGroup.cacheList.get("jttRes")!=null){ + JTT jtt=gson.fromJson(CacheGroup.cacheList.get("jttRes"),JTT.class); + if(jtt.getCode()==200){ + SPUtil.insSP(con,"data","jtt",CacheGroup.cacheList.get("jttRes")); + JTTProcess.auth(con); + }else{ + Toast.makeText(con,StringUtil.isNull(jtt.getMsg(),"返回错误"),Toast.LENGTH_LONG).show(); + } + CacheGroup.cacheList.remove("jttRes"); + } + break; + case 33: + initAuth(); + break; + default:break; + } + } + + private TextView home_state; + private ImageView news_btn; + + private TextView orderNum; + private TextView order_state; + + @Nullable + @org.jetbrains.annotations.Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + root=inflater.inflate(R.layout.fragment_home,container,false); + con=root.getContext(); + act=getActivity(); +// map=root.findViewById(R.id.map); +// map.onCreate(savedInstanceState); +// if(aMap==null){ +// aMap=map.getMap(); +// initLoaction(); +// } + brv=root.findViewById(R.id.brv_box); + btn_news=root.findViewById(R.id.btn_news); + btn_loadin=root.findViewById(R.id.btn_loadin); + btn_update=root.findViewById(R.id.btn_update); +// bottomSheet=root.findViewById(R.id.bottom_sheet); + home_top=root.findViewById(R.id.home_top); + home_state=root.findViewById(R.id.home_state); + news_btn=root.findViewById(R.id.news_btn); + order_start=root.findViewById(R.id.order_start); + orderNum=root.findViewById(R.id.orderNum); + order_state=root.findViewById(R.id.order_state); +// BottomSheetBehavior mBottomSheetBehavior = BottomSheetBehavior.from(bottomSheet); +// mBottomSheetBehavior.setHideable(false); +// mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); + EventBus.getDefault().register(this); + hyr=new HuoYuanRequset(con,hd); + ur=new UserRequset(con,hd); + initRefreshLoad(); + initView(null); + btn_news.setOnClickListener(v -> { + + }); + btn_loadin.setOnClickListener(v -> { + //initLoaction(); + }); + btn_update.setOnClickListener(v -> { + getRequest(); + }); + home_top.setOnClickListener(v -> { + if(!UiAuxiliary.isLogin(con)){ + Intent in=new Intent(con,LoginActivity.class); + startActivity(in); + } + }); + news_btn.setOnClickListener(v -> { + 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); + //getActivity().startService(serviceIn); + Intent in=new Intent(con, WebKfActivity.class); +// 传入 Activity 对象表示设置成局部的,不需要有悬浮窗权限 +// 传入 Application 对象表示设置成全局的,但需要有悬浮窗权限 + new XToast<>(act) + .setContentView(R.layout.view_kf) + // 设置成可拖拽的 + .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, 1700); +// new Thread(){ +// @Override +// public void run() { +// super.run(); +// String str=""; +// try { +// str=InetAddress.getByName("hmapi.gj.center").getHostAddress(); +// } catch (UnknownHostException e) { +// e.printStackTrace(); +// } +// Log.e("-ip-",":"+str); +// } +// }.start(); + return root; + } + + + public void initRefreshLoad() { + refreshLayout =root.findViewById(R.id.srl); + refreshLayout.setOnRefreshListener(refreshLayout -> { + Log.e("下拉刷新", "pps"); + keys=true; + getRequest(); + }); + } + + private AdapterAlls as; + + @Override + public void initView(Object obj) { + super.initView(obj); + List list=new ArrayList<>(); + list.add(new ManyBean(new Model(),R.layout.item_home)); + as=brv.creates(con,list); + as.setOnItemViewListener((position, o, v, layout) -> { + banner=v.findViewById(R.id.banner); + initItemHome(v); + }); + } + + private BaseRecyclerView brv_order; + private LinearLayout order_box,auth_box; + private Button btn_auth; + private TextView text_login; + private CardView card_order; + private BaseRecyclerView brv_order_recommend; + + /** + * + * @param v + */ + public void initItemHome(View v){ + brv_order=v.findViewById(R.id.brv_order); + BaseRecyclerView brv_function=v.findViewById(R.id.brv_function); + brv_order_recommend=v.findViewById(R.id.brv_order_recommend); + btn_auth=v.findViewById(R.id.btn_auth); + text_login=v.findViewById(R.id.text_login); + order_box=v.findViewById(R.id.order_box); + auth_box=v.findViewById(R.id.auth_box); + order_all=v.findViewById(R.id.order_all); + ImageView fun_left=v.findViewById(R.id.fun_left); + ImageView fun_right=v.findViewById(R.id.fun_right); + fun_left.setOnClickListener(v16 -> startActivity(new Intent(con, OrderListActivity.class))); + fun_right.setOnClickListener(v15 -> { + if(UiAuxiliary.isLogin(con)){ + startActivity(new Intent(con, OrderAllActivity.class)); + }else{ + startActivity(new Intent(con, LoginActivity.class)); + } + }); + LinearLayout huoyuan_all=v.findViewById(R.id.huoyuan_all); + + if(!UiAuxiliary.isLogin(con)){ + btn_auth.setText("去登录"); + text_login.setText("您还没有登录,请先登录"); + } + + btn_auth.setOnClickListener(v13 -> { + if(UiAuxiliary.isLogin(con)){ + startActivity(new Intent(con, PersonalAuthActivity.class)); + }else{ + startActivity(new Intent(con, LoginActivity.class)); + } + }); + order_all.setOnClickListener(v12 -> { + startActivity(new Intent(con, OrderAllActivity.class)); + }); + huoyuan_all.setOnClickListener(v14 -> { + startActivity(new Intent(con, OrderListActivity.class)); + }); + order_start.setOnClickListener(v15 -> { + Intent in=new Intent(con,StartYunDanActivity.class); + in.putExtra("id",0); + startActivity(in); + }); + //功能入口列表 + List list_function=new ArrayList<>(); +// list_function.add(new Model(R.mipmap.icon_fun_qiang,"去抢单")); +// list_function.add(new Model(R.mipmap.icon_function_order,"我的运单")); +// list_function.add(new Model(R.mipmap.icon_function_auth,"司机圈")); + list_function.add(new Model(R.mipmap.icon_home_fun1,"司机之家")); + list_function.add(new Model(R.mipmap.icon_home_fun2,"咨询建议")); + list_function.add(new Model(R.mipmap.icon_home_fun3,"问卷调查")); + list_function.add(new Model(R.mipmap.icon_home_fun4,"知识竞赛")); + brv_function.createG(4,con,list_function,R.layout.item_image_text).setOnItemViewListener((position, o, v1) -> { + Model m= (Model) o; + ImageView img=v1.findViewById(R.id.img); + img.setImageResource(m.getImageId()); + if (0==position) { + card_order=v1.findViewById(R.id.card_order); + } + v1.setOnClickListener(v2 -> { + switch (position){ + case 0: + //startActivity(new Intent(con, OrderListActivity.class)); + RxPermissions rp=new RxPermissions(getActivity()); + rp.request( + Manifest.permission.ACCESS_BACKGROUND_LOCATION + ).subscribe(b -> { + if (b) { + Intent in=new Intent(con, BusinessActivity.class); + in.putExtra("type","餐饮"); + startActivity(in); + } else { + Toast.makeText(act.getBaseContext(),"请先开启定位权限",Toast.LENGTH_LONG).show(); + } + } + ); + //Toast.makeText(con,"定位开启失败,请检查配置项",Toast.LENGTH_LONG).show(); + break; + case 1: + if(UiAuxiliary.isLogin(con)){ + Intent in3=new Intent(con, WebActivity.class); + in3.putExtra("url",""); + in3.putExtra("title","咨询建议"); + startActivity(in3); + }else{ + startActivity(new Intent(con, LoginActivity.class)); + } + break; + case 2: + Intent in4=new Intent(con, WebActivity.class); + in4.putExtra("url","https://www.wjx.cn/vm/mKciqMo.aspx"); + in4.putExtra("title","问卷调查"); + startActivity(in4); + break; + case 3: + Intent in5=new Intent(con, WebActivity.class); + in5.putExtra("url","https://ks.wjx.top/vm/h6Jqu8A.aspx"); + in5.putExtra("title","知识竞猜"); + startActivity(in5); + break; + default:break; + } + }); + }); + //请求货源列表 + initMap(); + } + + /** + * + */ + public void initMap(){ + getRequest(); + } + private CustomDialog customDialog; + private boolean key=false; + private long oldTime=0; + + public void getRequest(){ +// long newTime=Calendar.getInstance().getTimeInMillis(); +// if((newTime-oldTime)>1000){ +// customDialog=new CustomDialog(con,"加载中..."); +// customDialog.show(); + ur.upApp(); + hyr.getHuoYuan(1,100); + ur.getImage(1); + if(UiAuxiliary.isLogin(con)){ + ur.User(); + ur.getDriverExpire(); + hyr.startOrder(0); + ur.driverAuthData(); + } +// oldTime= Calendar.getInstance().getTimeInMillis(); +// }else{ +// Toast.makeText(con,"您刷新的太频繁了",Toast.LENGTH_LONG).show(); +// } + } + + private String loadingAddress=""; + private String putAddress=""; + private String putTimer=""; + private int loadingSum=0; + private int putSum=0; + + public void initAuth(){ + String str=""; + if(ub.getData()!=null){ + str=ub.getData().getUname(); + }else{ + str="您好,请先登录"; + } + home_state.setText(str); + if(ub!=null && 100003==ub.getData().getAuditStatus()){ + if (auth_box!=null && order_box!=null) { + auth_box.setVisibility(View.GONE); + //order_box.setVisibility(View.VISIBLE); + } + }else{ + btn_auth.setText("去认证"); + text_login.setText("认证成功,开始接单"); + if (auth_box!=null && order_box!=null) { + //auth_box.setVisibility(View.VISIBLE); + //order_box.setVisibility(View.GONE); + } + } + } + + public void initStart(){ + loadingSum=0; + putSum=0; + if(sob.getData()!=null) { + for (StartOrderBean.DataDTO.WayChildrenDTO wayChild : sob.getData().getWayChildren()) { + if (wayChild.getType() == 1) { + loadingAddress = wayChild.getAddress(); + loadingSum++; + } else { + putAddress = wayChild.getAddress(); + putTimer = wayChild.getDeadline(); + putSum++; + } + } + order_start.setVisibility(View.GONE); + if(sob!=null && sob.getData()!=null && 0 list_order=new ArrayList<>(); + if (loadingSum!=0) { + list_order.add(new ManyBean(sob.getData(),R.layout.item_start_order)); + }else{ + list_order.add(new ManyBean(new Model(),R.layout.item_null_start)); + } + brv_order.creates(con,list_order).setOnItemViewListener((position, o, v, layout) -> { + switch (layout){ + case R.layout.item_start_order: + TextView loadingAddress_view=v.findViewById(R.id.loadingAddress); + TextView receiverAddress_view=v.findViewById(R.id.receiverAddress); + TextView type_timer=v.findViewById(R.id.type_timer); + loadingAddress_view.setText(loadingAddress); + receiverAddress_view.setText(putAddress); + type_timer.setText(loadingSum+"装"+putSum+"卸"+" "+ putTimer+"截止"); + v.setOnClickListener(v1 -> { + Intent in=new Intent(con, StartYunDanActivity.class); + in.putExtra("id",0); + startActivity(in); + }); + break; + } + }); + } + + private List list_order; + + public void initOrder(){ + list_order=new ArrayList<>(); + for (HuoYuanListBean.DataDTO.RecordsDTO record : uab.getData().getRecords()) { + list_order.add(new ManyBean(record,R.layout.item_huoyuan)); + if(list_order.size()>=3){ + break; + } + } + brv_order_recommend.creates(con,list_order).setOnItemViewListener((position, o, v, layout) -> { + switch (layout){ + case R.layout.item_huoyuan: + HuoYuanListBean.DataDTO.RecordsDTO hdr= (HuoYuanListBean.DataDTO.RecordsDTO) o; + TextView qiang=v.findViewById(R.id.qiang); + TextView type_timer=v.findViewById(R.id.type_timer); + String up_time= Timer.formatChange(hdr.getEffectiveTime(),"yyyy-MM-dd HH:mm:ss","MM-dd HH:mm"); + type_timer.setText(hdr.getSendPutString()+" "+up_time+"截止"); + v.setOnClickListener(v2 -> { + receivingOrder(hdr.getOrderId()); + }); + qiang.setOnClickListener(v1 -> { + receivingOrder(hdr.getOrderId()); + }); + if(1==hdr.getDispatchType()){ + qiang.setText("接单"); + }else{ + qiang.setText("抢单"); + } + break; + case R.layout.item_huoyuan_deal: + HuoYuanListDealBean.DataDTO.RecordsDTO recordsDTO= (HuoYuanListDealBean.DataDTO.RecordsDTO) o; + TextView driver_data=v.findViewById(R.id.diver_data); + TextView type_timer2=v.findViewById(R.id.type_timer); + String up_time2= Timer.formatChange(recordsDTO.getReceiveTime(),"yyyy-MM-dd HH:mm:ss","MM-dd HH:mm"); + type_timer2.setText(recordsDTO.getSendPutString()+" "+up_time2+"成交"); + driver_data.setText("承运人:"+recordsDTO.getDriverName()+" | "+recordsDTO.getDriverPhone()+" | "+recordsDTO.getReceiveCarNum()); + v.setOnClickListener(v12 -> { + new ToastUtil(con,0,"此订单已被抢单,下次努力").show(2000); + }); + break; + default:break; + + } + }); +// for(int i=0;i listadd=new ArrayList<>(); + // + for (HuoYuanListDealBean.DataDTO.RecordsDTO record : hdb.getData().getRecords()) { + listadd.add(new ManyBean(record,R.layout.item_huoyuan_deal)); + if((list_order.size()+listadd.size())>=3){ + break; + } + } + brv_order_recommend.adds(listadd); + } + + + public void receivingOrder(int id){ + if(UiAuxiliary.isLogin(con)){ + if(ub!=null && 100003==ub.getData().getAuditStatus()){ + Intent in=new Intent(con,HuoYunDelActivity.class); + in.putExtra("id",id); + startActivity(in); + }else{ + new XPopup.Builder(con) + .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 + .asConfirm("提示", "请先完成认证,才能抢单哦!", + "取消", "去认证", + new OnConfirmListener() { + @Override + public void onConfirm() { + Intent in=new Intent(con, PersonalAuthActivity.class); + con.startActivity(in); + } + }, null, false, R.layout.alert_rz) //最后一个参数绑定已有布局 + .show(); + } + }else{ + new XPopup.Builder(con) + .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 + .asConfirm("提示", "请先完成登录,才能抢单哦!", + "取消", "去登录", + () -> { + Intent in=new Intent(con, LoginActivity.class); + con.startActivity(in); + }, null, false, R.layout.alert_login) //最后一个参数绑定已有布局 + .show(); + } + } + + + + private Banner banner; + private List imageUrlData; + private List contentData; + + private void initBanner(){ + banner.setOutlineProvider(new ViewOutlineProvider() { + @Override + public void getOutline(View view, Outline outline) { + outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), 30); + } + }); + banner.setClipToOutline(true); + imageUrlData = new ArrayList<>(); + contentData = new ArrayList<>(); + for (ImageConfig.DataDTO datum : ic.getData()) { + imageUrlData.add(datum.getUrl()); + contentData.add(datum.getTitle()); + } + banner.setImageLoader(new MyLoader()); + banner.setImages(imageUrlData); + banner.setBannerTitles(contentData); + banner.setBannerAnimation(Transformer.Default); + banner.setDelayTime(5000); + banner.isAutoPlay(true); + banner.setIndicatorGravity(BannerConfig.CENTER); + banner.setOnBannerListener(position -> {//System.out.println("跳转"); + Intent in=new Intent(con, WebActivity.class); + Intent inL=new Intent(con, LoginActivity.class); + in.putExtra("url",ic.getData().get(position).getJumpUrl()); + in.putExtra("title",ic.getData().get(position).getTitle()); + if ("咨询建议".equals(ic.getData().get(position).getTitle())) { + if(UiAuxiliary.isLogin(con)){ + startActivity(in); + }else{ + startActivity(inL); + } + }else{ + startActivity(in); + } + }); + banner.start(); + } + + private class MyLoader extends ImageLoader { + @Override + public void displayImage(Context context, Object path, ImageView imageView) { + Glide.with(con).load(path).into(imageView); + } + } + + public void addMap(double latitude,double longitude,String title,String price,int id){ + if (aMap!=null) { + Log.e("longitude",longitude+""); + Log.e("latitude",latitude+""); + MarkerOptions markerOption = new MarkerOptions(); + markerOption.position(new LatLng(latitude,longitude)); + View infoWindow = LayoutInflater.from(con).inflate( + R.layout.map_source_goods, null); + TextView address=infoWindow.findViewById(R.id.address); + TextView prices=infoWindow.findViewById(R.id.price); + address.setText(title); + prices.setText("¥"+price+"元"); + markerOption.title(id+""); + markerOption.draggable(false);//设置Marker不可拖动 + markerOption.icon(BitmapDescriptorFactory.fromView(infoWindow)); + markerOption.getIcon().getHeight(); + list.add(aMap.addMarker(markerOption)); + aMap.setInfoWindowAdapter(new AMap.InfoWindowAdapter() { + @Override + public View getInfoWindow(Marker marker) { + + return null; + } + + @Override + public View getInfoContents(Marker marker) { + return null; + } + }); + aMap.setOnMarkerClickListener(marker -> { + //Toast.makeText(con,"点击了"+marker.getId(),Toast.LENGTH_LONG).show(); + if(UiAuxiliary.isLogin(con) && ub!=null){ + if(ub.getData().getAuditStatus()==100003){ + Intent in=new Intent(con,HuoYunDelActivity.class); + in.putExtra("id",Integer.parseInt(marker.getTitle())); + startActivity(in); + }else{ + new XPopup.Builder(con) + .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 + .asConfirm("提示", "请先完成认证,才能抢单哦!", + "取消", "去认证", + new OnConfirmListener() { + @Override + public void onConfirm() { + Intent in=new Intent(con, PersonalAuthActivity.class); + con.startActivity(in); + } + }, null, false, R.layout.alert_rz) //最后一个参数绑定已有布局 + .show(); + //Toast.makeText(con,"请认证之后再接单",Toast.LENGTH_SHORT).show(); + } + }else{ + new XPopup.Builder(con) + .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 + .asConfirm("提示", "请先完成登录,才能抢单哦!", + "取消", "去登录", + () -> { + Intent in=new Intent(con,LoginActivity.class); + con.startActivity(in); + }, null, false, R.layout.alert_login) //最后一个参数绑定已有布局 + .show(); + } + return false; + }); + //Log.e("--长度--",aMap.getMapScreenMarkers().size()+"个"); + } + } + +// @Override +// public void onSaveInstanceState(@NonNull @NotNull Bundle outState) { +// super.onSaveInstanceState(outState); +// map.onSaveInstanceState(outState); +// } +// +// @Override +// public void onResume() { +// super.onResume(); +// map.onResume(); +// } +// +// @Override +// public void onPause() { +// super.onPause(); +// map.onPause(); +// } +// +// @Override +// public void onDestroy() { +// super.onDestroy(); +// map.onDestroy(); +// } + + public void initAlct(){ + RxPermissions rp=new RxPermissions(getActivity()); + rp.request( + Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.RECORD_AUDIO + ).subscribe(b -> { + if (b) { + + } else { + + } + } + ); + ALProcess.verification(con); + MDPLocationCollectionManager.getInvoices(con, 10, 1, new OnDownloadResultListener() { + @Override + public void onSuccess(Object o) { + Log.e("--成功信息--",new Gson().toJson(o)); + } + @Override + public void onFailure(String s, String s1) { + Log.e("--失败信息--",s+s1); + } + }); + } + + private MyLocationStyle myLocationStyle;//地图定位样式 + private boolean isFirstLocation = true;//第一次定位成功 + + public void initLoaction(){ + aMap.getUiSettings().setZoomControlsEnabled(true);//是否可以缩放 + aMap.moveCamera(CameraUpdateFactory.zoomTo(11));//缩放比例 + //地图文字的Z轴指数,设置为2可以将地图底图文字设置在添加的覆盖物之上 + //aMap.setMapTextZIndex(2); + UiSettings uiSettings = aMap.getUiSettings();//地图的UI设置控制器 + uiSettings.setCompassEnabled(false);// 设置指南针是否显示 + uiSettings.setZoomControlsEnabled(false);// 设置缩放按钮是否显示 + uiSettings.setScaleControlsEnabled(false);// 设置比例尺是否显示 + //uiSettings.setRotateGesturesEnabled(true);// 设置地图旋转是否可用 + //uiSettings.setTiltGesturesEnabled(true);// 设置地图倾斜是否可用 + uiSettings.setMyLocationButtonEnabled(false);// 设置默认定位按钮是否显示 + myLocationStyle = new MyLocationStyle(); + //设置连续定位模式下的定位间隔,只在连续定位模式下生效,单次定位模式下不会生效。单位为秒。 + myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_SHOW);//只定位一次。 + myLocationStyle.interval(3000); + //设置连续定位、蓝点不会移动到地图中心点,定位点依照设备方向旋转,并且蓝点会跟随设备移动。 + //具体场景可根据高德API查看 +// myLocationStyle.myLocationType(MyLocationStyle +// .LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER); + myLocationStyle.showMyLocation(true);//显示定位蓝点 +// //设置图标 +// myLocationStyle.myLocationIcon(BitmapDescriptorFactory. +// fromResource(R.mipmap.navi_map_gps_locked)); + //设置圆圈颜色 + myLocationStyle.radiusFillColor(0x70ffffff); + //设置边框颜色 + myLocationStyle.strokeColor(0xffffffff); + aMap.setMyLocationStyle(myLocationStyle);//关联myLocationStyle + //监听定位信息的回调 + aMap.setOnMyLocationChangeListener(new OnMyLocationChangeListener()); + //开启定位,设置为true表示启动显示定位蓝点,false表示隐藏定位蓝点并不进行定位,默认false。 + aMap.setMyLocationEnabled(true); + } + + class OnMyLocationChangeListener implements AMap.OnMyLocationChangeListener { + + @Override //定位信息的回调监听 + public void onMyLocationChange(Location location) { + if (location == null) { + return; + } + Bundle bundle = location.getExtras(); + if (bundle != null && (bundle.getInt("errorCode", -1)) == 0) {//定位成功 + //获取定位数据 + //经度 + double lat = location.getLatitude(); + //纬度 + double lng = location.getLongitude(); + Log.e("定位信息1",location.getLatitude()+""); + Log.e("定位信息2",location.getLongitude()+""); + //实现第一次定位成功,将地图中心移动到定位点 + CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(new + LatLng(lat, lng), 11); + aMap.moveCamera(cameraUpdate);//将地图移动到定位坐标点 + } else { + //错误信息 + String error = bundle.get("errorInfo").toString(); + Log.e("Map", error); + Toast.makeText(con,"地图定位失败"+error,Toast.LENGTH_LONG).show(); + } + } + } + + @Subscribe + public void processResult(HomeEvent home) { + Log.e("-res-",home.getMessage()); + initView(null); + } + + class Model{ + + private int imageId; + private String title; + + public Model() { + } + + public Model(int imageId, String title) { + this.imageId = imageId; + this.title = title; + } + + public int getImageId() { + return imageId; + } + + public void setImageId(int imageId) { + this.imageId = imageId; + } + + public String getTitle() { + return title == null ? "" : title; + } + + public void setTitle(String title) { + this.title = title; + } + + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/HuoYuanFragmengt.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/HuoYuanFragmengt.java new file mode 100644 index 0000000..9d05a79 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/HuoYuanFragmengt.java @@ -0,0 +1,422 @@ +package com.arpa.hndahesudintocctmsdriver.ui.home; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.ImageButton; +import android.widget.LinearLayout; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import com.alct.mdp.MDPLocationCollectionManager; +import com.alct.mdp.callback.OnDownloadResultListener; +import com.google.gson.Gson; +import com.haozhang.lib.SlantedTextView; +import com.lxj.xpopup.XPopup; +import com.lxj.xpopup.interfaces.OnConfirmListener; +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.report.ALProcess; +import com.arpa.hndahesudintocctmsdriver.bean.DriverAuthDataBean; +import com.arpa.hndahesudintocctmsdriver.bean.HuoYuanListBean; +import com.arpa.hndahesudintocctmsdriver.bean.StartOrderBean; +import com.arpa.hndahesudintocctmsdriver.bean.UpAppBean; +import com.arpa.hndahesudintocctmsdriver.bean.UserBean; +import com.arpa.hndahesudintocctmsdriver.constant.PushConstant; +import com.arpa.hndahesudintocctmsdriver.request.HuoYuanRequset; +import com.arpa.hndahesudintocctmsdriver.request.UserRequset; +import com.arpa.hndahesudintocctmsdriver.service.TrackService; +import com.arpa.hndahesudintocctmsdriver.ui.UiAuxiliary; +import com.arpa.hndahesudintocctmsdriver.ui.alert.UpAppAlert; +import com.arpa.hndahesudintocctmsdriver.ui.business.BusinessActivity; +import com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity; +import com.arpa.hndahesudintocctmsdriver.ui.auth.PersonalAuthActivity; +import com.arpa.hndahesudintocctmsdriver.ui.my.WoDeFragment; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; +import com.arpa.hndahesudintocctmsdriver.util.adapter.ManyBean; +import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; +import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants; +import com.arpa.hndahesudintocctmsdriver.util.time.Timer; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseFragment; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView; + +import java.util.ArrayList; +import java.util.List; + +public class HuoYuanFragmengt extends BaseFragment { + + // + public static final String START_ORDER="start_order"; + // + private BaseRecyclerView rv; + private HuoYuanListBean hb; + private StartOrderBean sob; + private UserBean user; + private ImageButton bus,bus_dis; + private LinearLayout bus_div; + private int user_state=0; + private boolean firstKey=true; + private Gson gson=new Gson(); + private HuoYuanRequset hyr; + private UserRequset ur; + //审核状态;100001:待认证,100002:审核中,100003:审核通过,100004:审核不通过 + private String[] states_body={ + "您还没有登录,\n当前以游客身份访问", + "提交信息认证,\n查看更多待抢运单", + "暂时没有派单,\n快去浏览大厅货源吧!", + "您有一个派单,\n请及时接单!" + }; + private String[] states={ + "去登录", + "去认证", + "我的运单" + }; + private boolean iskey=true; + @Override + public void msgMethod(Message m) { + super.msgMethod(m); + switch (m.what){ + case RequsetCodeConstants.SUCCESS: + if (!UiAuxiliary.isLogin(con)){ + if (CacheGroup.cacheList.get("hl")!=null && CacheGroup.cacheList.get("up_app")!=null){ + Log.e("未登录货源1",CacheGroup.cacheList.get("hl")); + hb=gson.fromJson(CacheGroup.cacheList.get("hl"),HuoYuanListBean.class); + if(hb.getCode()==200){ + initView(null); + }else{ + Toast.makeText(con,hb.getMsg(),Toast.LENGTH_SHORT).show(); + } + 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(); + } + } + refreshLayout.finishRefresh(); + CacheGroup.cacheList.remove("hl"); + CacheGroup.cacheList.remove("up_app"); + } + }else{ + if (CacheGroup.cacheList.get("hl")!=null && CacheGroup.cacheList.get(START_ORDER)!=null + && CacheGroup.cacheList.get("userdata")!=null && CacheGroup.cacheList.get("up_app")!=null){ + Log.e("货源",CacheGroup.cacheList.get("hl")); + Log.e("user",CacheGroup.cacheList.get("userdata")); + Log.e("up_app",CacheGroup.cacheList.get("up_app")); + hb=gson.fromJson(CacheGroup.cacheList.get("hl"),HuoYuanListBean.class); + sob=gson.fromJson(CacheGroup.cacheList.get(START_ORDER),StartOrderBean.class); + user=gson.fromJson(CacheGroup.cacheList.get("userdata"),UserBean.class); + if(hb.getCode()==200 && sob.getCode()==200 && user.getCode()==200){ + SPUtil.insSP(con,"data","startOrder",gson.toJson(sob)); + initView(null); + }else{ + Toast.makeText(con,hb.getMsg(),Toast.LENGTH_SHORT).show(); + } + 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(); + } + } + SPUtil.insSP(con,"data","userdata",CacheGroup.cacheList.get("userdata")); + refreshLayout.finishRefresh(); + delCac(); + } + if(CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA)!=null){ + Log.e("--认证信息--",CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA)); + DriverAuthDataBean dad=gson.fromJson(CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA),DriverAuthDataBean.class); + if (dad.getCode()==200) { + SPUtil.insSP(con,"data","authdata",CacheGroup.cacheList.get(WoDeFragment.AUTH_DATA)); + if (dad.getData()!=null && 100003==dad.getData().getAuditStatus()) { + initAlct(); + } + }else{ + Toast.makeText(con,dad.getMsg(),Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove(WoDeFragment.AUTH_DATA); + } + } + break; + case 502: + refreshLayout.finishRefresh(); + break; + case 30: + bus_div.setVisibility(View.VISIBLE); + break; + case 10: + if(refreshLayout.isRefreshing()){ + refreshLayout.finishRefresh(); + } + break; + default:break; + } + } + + @Nullable + @org.jetbrains.annotations.Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + root=inflater.inflate(R.layout.fragment_huoyuan,container,false); + con=getContext(); + act=getActivity(); + rv=root.findViewById(R.id.rv); + bus=root.findViewById(R.id.bus); + bus_dis=root.findViewById(R.id.bus_dis); + bus_div=root.findViewById(R.id.bus_div); + bus.setOnClickListener(v -> { + Intent in=new Intent(con, BusinessActivity.class); + startActivity(in); + }); + bus_dis.setOnClickListener(v -> { + bus_div.setVisibility(View.GONE); + new Thread(){ + @Override + public void run() { + hd.sendEmptyMessageDelayed(30, 30000);// 半分钟后发TEST(即msg.what) + } + }.start(); + }); + initRefreshLoad(); + hyr=new HuoYuanRequset(con,hd); + ur=new UserRequset(con,hd); + return root; + } + + public void delCac(){ + CacheGroup.cacheList.remove("hl"); + CacheGroup.cacheList.remove(START_ORDER); + CacheGroup.cacheList.remove("userdata"); + CacheGroup.cacheList.remove("up_app"); + } + + //加载和刷新 + public void initRefreshLoad(){ + refreshLayout=root.findViewById(R.id.srl); + refreshLayout.setOnRefreshListener(refreshLayout -> { + Log.e("下拉刷新","pps"); + delCac(); + hd.sendEmptyMessageDelayed(10, 10000); + hyr.getHuoYuan(1,100); + ur.upApp(); + if(UiAuxiliary.isLogin(con)){ + System.out.println("开始"); + hyr.startOrder(0); + ur.User(); + ur.driverAuthData(); + } + }); + iskey=true; + refreshLayout.autoRefresh(); + } + + @Override + public void initView(Object obj) { + super.initView(obj); + List list=new ArrayList<>(); + list.add(new ManyBean(new model(),R.layout.renzheng)); + if(sob!=null && sob.getData()!=null && sob.getData().getWayChildren().size()>0){ + SPUtil.insSP(con,"order","ShippingNoteNumber",sob.getData().getShippingNoteNumber()); + Log.e("开始轨迹上传服务","-----"); + Intent serviceIn=new Intent(con,TrackService.class); + getActivity().startService(serviceIn); + list.add(new ManyBean(sob.getData(),R.layout.huoyuan_yundan)); + }else{ + SPUtil.insSP(con,"order","ShippingNoteNumber",""); + if(hb.getData()!=null && hb.getData().getRecords()!=null){ + if(hb.getData().getRecords().size()==0){ + list.add(new ManyBean(new model(),R.layout.item_null2)); + } + } + } + list.add(new ManyBean(new model(),R.layout.huoyuan_qiangdan)); + rv.creates(con,list).setOnItemViewListener((position, o, v, layout) -> { + switch (layout){ + case R.layout.renzheng: + initRenZhen(v); + break; + case R.layout.huoyuan_yundan: + initHuoYuan(v); + break; + case R.layout.huoyuan_qiangdan: + initHuoYuan_QiangDan(v); + break; + } + }); + } + + public void initAlct(){ + ALProcess.verification(con); + MDPLocationCollectionManager.getInvoices(con, 10, 1, new OnDownloadResultListener() { + @Override + public void onSuccess(Object o) { + Log.e("--成功信息--",new Gson().toJson(o)); + } + @Override + public void onFailure(String s, String s1) { + Log.e("--失败信息--",s+s1); + } + }); + } + + //认证组件 + private void initRenZhen(View v){ + if(UiAuxiliary.isLogin(con)){ + if(user.getData().getAuditStatus()==100003){ + user_state=2; + }else{ + user_state=1; + } + } + Log.e("--登录状态--",UiAuxiliary.isLogin(con)+""); + TextView rz=v.findViewById(R.id.rz); + TextView state_body=v.findViewById(R.id.state_body); + state_body.setText(states_body[user_state]); + rz.setText(states[user_state]); + rz.setOnClickListener(v1 -> { + switch(user_state){ + case 0: + Intent in1=new Intent(con, LoginActivity.class); + startActivity(in1); + break; + case 1: + Intent in2=new Intent(con, PersonalAuthActivity.class); + startActivity(in2); + break; + case 2: + Log.e("路径",PushConstant.ORDER_ALL); + //ARouter.getInstance().build(PushConstant.ORDER_ALL).navigation(); + Intent in3=new Intent(con, OrderAllActivity.class); + startActivity(in3); +// Intent in=new Intent(con, TestAcivity.class); +// startActivity(in); + break; + } + }); + } + + //运单执行/记录组件 + private void initHuoYuan(View v){ + TextView loadingAddress=v.findViewById(R.id.loadingAddress); + TextView receiverAddress=v.findViewById(R.id.receiverAddress); + if(sob!=null && sob.getData()!=null && sob.getData().getWayChildren().size()>=0){ + loadingAddress.setText(sob.getData().getWayChildren().get(0).getAddress()); + receiverAddress.setText(sob.getData().getWayChildren().get((sob.getData().getWayChildren().size()-1)).getAddress()); + SlantedTextView state=v.findViewById(R.id.states); + state.setText("执行中"); + v.setOnClickListener(v1 -> { + Intent in=new Intent(con,StartYunDanActivity.class); + in.putExtra("id",0); + startActivity(in); + }); + }else{ + SPUtil.insSP(con,"order","ShippingNoteNumber",""); + } + } + + //接单/抢单 + private void initHuoYuan_QiangDan(View v){ + List lists=new ArrayList<>(); + if(hb.getData()!=null && hb.getData().getRecords()!=null){ + for(int i=0;i { + HuoYuanListBean.DataDTO.RecordsDTO hdr= (HuoYuanListBean.DataDTO.RecordsDTO) o; + Button qiang=v1.findViewById(R.id.qiang); + TextView type_timer=v1.findViewById(R.id.type_timer); + qiang.setOnClickListener(v22 -> { + Log.e("user",new Gson().toJson(user)); + if(UiAuxiliary.isLogin(con) && user!=null){ + if(user.getData().getAuditStatus()==100003){ + Intent in=new Intent(con,HuoYunDelActivity.class); + in.putExtra("id",hdr.getOrderId()); + Log.e("---id---",hdr.getOrderId()+""); + startActivity(in); + }else{ + new XPopup.Builder(act) + .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 + .asConfirm("提示", "请先完成认证,才能抢单哦!", + "取消", "去认证", + new OnConfirmListener() { + @Override + public void onConfirm() { + Intent in=new Intent(con, PersonalAuthActivity.class); + con.startActivity(in); + } + }, null, false, R.layout.alert_rz) //最后一个参数绑定已有布局 + .show(); + //Toast.makeText(con,"请认证之后再接单",Toast.LENGTH_SHORT).show(); + } + }else{ + new XPopup.Builder(act) + .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 + .asConfirm("提示", "请先完成登录,才能抢单哦!", + "取消", "去登录", + () -> { + Intent in=new Intent(con,LoginActivity.class); + con.startActivity(in); + }, null, false, R.layout.alert_login) //最后一个参数绑定已有布局 + .show(); + //Toast.makeText(con,"请登录之后再接单",Toast.LENGTH_SHORT).show(); + } + }); + //修改时间格式 + String up_time= Timer.formatChange(hdr.getEffectiveTime(),"yyyy-MM-dd HH:mm:ss","MM-dd HH:mm"); + type_timer.setText(hdr.getSendPutString()+" "+up_time+"截止"); + if(hdr.getDispatchType()==1){ +// jie.setVisibility(View.VISIBLE); +// qiang.setVisibility(View.GONE); + qiang.setText("接单"); + }else{ +// jie.setVisibility(View.GONE); +// qiang.setVisibility(View.VISIBLE); + qiang.setText("抢单"); + } + v1.setOnClickListener(v2 -> { + Log.e("user",new Gson().toJson(user)); + if(UiAuxiliary.isLogin(con) && user!=null){ + if(user.getData().getAuditStatus()==100003){ + Intent in=new Intent(con,HuoYunDelActivity.class); + in.putExtra("id",hdr.getOrderId()); + Log.e("---id---",hdr.getOrderId()+""); + startActivity(in); + }else{ + Toast.makeText(con,"请认证之后再接单",Toast.LENGTH_SHORT).show(); + } + }else{ + Toast.makeText(con,"请登录之后再接单",Toast.LENGTH_SHORT).show(); + } + + }); + }); + } + } + + private class model{} + + @Override + public void onResume(){ + super.onResume(); + refreshLayout.autoRefresh(); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/HuoYunDelActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/HuoYunDelActivity.java new file mode 100644 index 0000000..494e3d8 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/HuoYunDelActivity.java @@ -0,0 +1,354 @@ +package com.arpa.hndahesudintocctmsdriver.ui.home; + +import android.Manifest; +import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.text.Html; +import android.util.Log; +import android.widget.Button; +import android.widget.ImageButton; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.Nullable; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.arpa.hndahesudintocctmsdriver.bean.JTT; +import com.arpa.hndahesudintocctmsdriver.parts.ConfigParts; +import com.arpa.hndahesudintocctmsdriver.parts.UserParts; +import com.arpa.hndahesudintocctmsdriver.report.JTTProcess; +import com.arpa.hndahesudintocctmsdriver.ui.auth.PersonalAuthActivity; +import com.arpa.hndahesudintocctmsdriver.util.img.ImageGetUtil; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; +import com.arpa.hndahesudintocctmsdriver.util.string.StringUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity; +import com.esign.esignsdk.EsignSdk; +import com.esign.esignsdk.data.AuthEvent; +import com.google.gson.Gson; +import com.luck.picture.lib.permissions.RxPermissions; +import com.lxj.xpopup.XPopup; +import com.lxj.xpopup.core.BasePopupView; +import com.lxj.xpopup.interfaces.OnConfirmListener; +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.bean.BaseBean; +import com.arpa.hndahesudintocctmsdriver.bean.CarListBean; +import com.arpa.hndahesudintocctmsdriver.bean.ConfigBean; +import com.arpa.hndahesudintocctmsdriver.bean.HuoYuanDelBean; +import com.arpa.hndahesudintocctmsdriver.request.HuoYuanRequset; +import com.arpa.hndahesudintocctmsdriver.request.UserRequset; +import com.arpa.hndahesudintocctmsdriver.ui.UiAuxiliary; +import com.arpa.hndahesudintocctmsdriver.ui.web.WebActivity; +import com.arpa.hndahesudintocctmsdriver.ui.alert.ChoiceVehicleAlert; +import com.arpa.hndahesudintocctmsdriver.ui.my.WoDeFragment; +import com.arpa.hndahesudintocctmsdriver.util.adapter.ManyBean; +import com.arpa.hndahesudintocctmsdriver.util.alert.CustomDialog; +import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; +import com.arpa.hndahesudintocctmsdriver.util.time.Timer; +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView; + +import org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Subscribe; + +import java.util.ArrayList; +import java.util.List; + +public class HuoYunDelActivity extends BaseAppCompatActivity { + + public static final String HUOYUANDEL = "huoyuandel"; + public static final String END = "end"; + private BaseRecyclerView rv; + private int id = 0; + private HuoYuanDelBean hyd; + private CarListBean clb; + private Gson gson = new Gson(); + private BasePopupView xp; + private TextView car; + private String cid; + + @Override + public void msgMethod(Message m) { + super.msgMethod(m); + switch (m.what) { + case 200: + if (CacheGroup.cacheList.get(HUOYUANDEL) != null && CacheGroup.cacheList.get(WoDeFragment.VEHICLE_LIST) != null) { + hyd = gson.fromJson(CacheGroup.cacheList.get(HUOYUANDEL), HuoYuanDelBean.class); + clb = gson.fromJson(CacheGroup.cacheList.get(WoDeFragment.VEHICLE_LIST), CarListBean.class); + if (hyd.getCode() == 200 && clb.getCode() == 200) { + initView(null); + } else { + Toast.makeText(con, hyd.getMsg(), Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove(HUOYUANDEL); + CacheGroup.cacheList.remove(WoDeFragment.VEHICLE_LIST); + } + if (CacheGroup.cacheList.get(END) != null) { + Log.e("--end--", CacheGroup.cacheList.get(END)); + BaseBean bb = gson.fromJson(CacheGroup.cacheList.get(END), BaseBean.class); + if (bb.getCode() == 200) { + //Toast.makeText(con,"接单成功",Toast.LENGTH_SHORT).show(); + customDialog.dismiss(); + EsignSdk.getInstance().startH5Activity(act, (String) bb.getData()); + //finish(); + } else { + Toast.makeText(con, bb.getMsg(), Toast.LENGTH_SHORT).show(); + customDialog.dismiss(); + } + CacheGroup.cacheList.remove(END); + } + if (CacheGroup.cacheList.get("jttRes") != null) { + JTT jtt = gson.fromJson(CacheGroup.cacheList.get("jttRes"), JTT.class); + if (jtt.getCode() == 200) { + if (jtt.getData() != null) { + SPUtil.insSP(con, "data", "jtt", CacheGroup.cacheList.get("jttRes")); + JTTProcess.auth(con); + } + } else { + Toast.makeText(con, StringUtil.isNull(jtt.getMsg(), "返回错误"), Toast.LENGTH_LONG).show(); + } + CacheGroup.cacheList.remove("jttRes"); + } + 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; + } + } + + private String url = ""; + private HuoYuanRequset hyr; + private UserRequset ur; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + StateStyleUtil.stateTextColor(this); + setContentView(R.layout.activity_brv); + con = this; + act = this; + rv = findViewById(R.id.rv); + Intent in = getIntent(); + id = in.getExtras().getInt("id"); + EventBus.getDefault().register(this); + ConfigBean cb = ConfigParts.getConfigParts(con); + if (cb != null) { + url = cb.getData().getContractUrl(); + } + hyr = new HuoYuanRequset(con, hd); + hyr.getHuoYuanDel(id); + ur = new UserRequset(con, hd); + ur.vehicleList("2"); + } + + private int sum = 0; + private boolean key = false; + private boolean fpKey = false; + private CustomDialog customDialog; + + @Override + public void initView(Object obj) { + super.initView(obj); + List list = new ArrayList<>(); + list.add(new ManyBean(hyd.getData(), R.layout.huoyuan_xq)); + rv.creates(con, list).setOnItemViewListener((position, o, v, layout) -> { + switch (layout) { + case R.layout.huoyuan_xq: + //2021/02/27记,类型声明错误 + ImageButton return_btn = v.findViewById(R.id.return_btn); + ImageButton xuan = v.findViewById(R.id.xuan); + ImageButton btnFp = v.findViewById(R.id.btnFp); + TextView effectiveTime = v.findViewById(R.id.effectiveTime); + TextView check_contract = v.findViewById(R.id.check_contract); + TextView tvZzs = v.findViewById(R.id.tvZzs); + TextView orderNum = v.findViewById(R.id.orderNum); + TextView vehicleType = v.findViewById(R.id.vehicleType); + vehicleType.setText(hyd.getData().getVehicleLengthName() + hyd.getData().getVehicleTypeName() + ""); + return_btn.setOnClickListener(v16 -> { + finish(); + }); +// String textSource = "同意在符合相关税务机关要求的情况下代开增值税发票"; + String textSource = "公司已对运输合同条款充分解释说明,本人已充分理解、认可并签署;同意符合税务机关要求下代开增值税发票,产生的增值税及附加税本人承担。"; + tvZzs.setText(Html.fromHtml(textSource)); + car = v.findViewById(R.id.car); + xuan.setOnClickListener(v15 -> { + if (!key) { + xuan.setImageResource(R.mipmap.choice); + key = true; + } else { + xuan.setImageResource(R.mipmap.no_xuan); + key = false; + } + }); +// btnFp.setOnClickListener(v15 -> { +// if (!fpKey) { +// btnFp.setImageResource(R.mipmap.choice); +// fpKey = true; +// } else { +// btnFp.setImageResource(R.mipmap.no_xuan); +// fpKey = false; +// } +// }); + check_contract.setOnClickListener(v14 -> { + Intent in = new Intent(con, WebActivity.class); + in.putExtra("url", url); + in.putExtra("title", "运输合同"); + startActivity(in); + }); + orderNum.setText(hyd.getData().getOrderNum()); + //07/22 02:25 + effectiveTime.setText(Timer.formatChange(hyd.getData().getEffectiveTime() + , "yyyy-MM-dd HH:mm:ss", "MM/dd HH:mm")); + // + TextView huozhu = v.findViewById(R.id.huozhu); + huozhu.setOnClickListener(v12 -> { + Intent intent = new Intent(Intent.ACTION_DIAL); + Uri data = Uri.parse("tel:" + hyd.getData().getLoadingPhone()); + intent.setData(data); + startActivity(intent); + }); + // + ImageButton xuanze = v.findViewById(R.id.xuanze); + if (clb != null && clb.getData().size() == 1) { + cid = clb.getData().get(0).getCarId(); + car.setText("选择车辆:" + clb.getData().get(0).getCarNumber()); + } + xuanze.setOnClickListener(v1 -> { + if (clb.getData().size() > 0) { + xp = new XPopup.Builder(con) + .asCustom(new ChoiceVehicleAlert(con, clb, hd)) + .show(); + } else { + Toast.makeText(con, "请先绑定车辆", Toast.LENGTH_LONG).show(); + } + }); + // + Button confirm_btn = v.findViewById(R.id.confirm_btn); + confirm_btn.setOnClickListener(v13 -> { + if ("1".equals(UserParts.getUser(con).getData().getRealAuthentication())) { + if (cid != null) { +// if (fpKey){ + if (key) { + new XPopup.Builder(con) + .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 + .asConfirm("请确认接单", "是否确定承运此运单?", + "取消", "确认", + new OnConfirmListener() { + @Override + public void onConfirm() { + Log.e("--id--", "cid:" + cid + "---wid:" + id); + customDialog = new CustomDialog(con, "正在接单..."); + customDialog.show(); + hyr.confirm(cid, id); + } + }, null, false, R.layout.alert_ok_cancel) //最后一个参数绑定已有布局 + .show(); + } else { + Toast.makeText(con, "请先同意并签署运输合同", Toast.LENGTH_SHORT).show(); + } +// }else{ +// Toast.makeText(con, "请先同意代开增值税要求", Toast.LENGTH_SHORT).show(); +// } + + } else { + Toast.makeText(con, "请先选择车辆", Toast.LENGTH_SHORT).show(); + } + } else { + Toast.makeText(con, "请先进行实名认证", Toast.LENGTH_LONG).show(); + Intent in = new Intent(con, PersonalAuthActivity.class); + startActivity(in); + } + }); + BaseRecyclerView zhuang_data = v.findViewById(R.id.zhuang_rv1); + BaseRecyclerView xie_data = v.findViewById(R.id.zhuang_rv2); + List listz = new ArrayList<>(); + List listx = new ArrayList<>(); + for (HuoYuanDelBean.DataDTO.SendInfoDTO sendInfoDTO : hyd.getData().getSendInfo()) { + listz.add(sendInfoDTO); + } + for (HuoYuanDelBean.DataDTO.PutInfoDTO putInfoDTO : hyd.getData().getPutInfo()) { + listx.add(putInfoDTO); + } + zhuang_data.createV(con, listz, R.layout.item_huoyuan_xq_datab).setOnItemViewListener((position1, o1, v1) -> { + ImageView type = v1.findViewById(R.id.type_img); + TextView goodData = v1.findViewById(R.id.goodData); + TextView deadline = v1.findViewById(R.id.deadline); + HuoYuanDelBean.DataDTO.SendInfoDTO hdsg = (HuoYuanDelBean.DataDTO.SendInfoDTO) o1; + type.setImageResource(R.mipmap.zhuang); + String goodsData = ""; + Log.e("--goodsData--", goodsData); + for (int i = 0; i < hdsg.getGoods().size(); i++) { + if (i != 0) { + goodsData += "\n" + hdsg.getGoods().get(i).getGoodName() + "|" + hdsg.getGoods().get(i).getGoodNum() + hdsg.getGoods().get(i).getGoodUnit() + "|货物价值(元):" + hdsg.getGoods().get(i).getGoodPrice(); + } else { + goodsData += hdsg.getGoods().get(i).getGoodName() + "|" + hdsg.getGoods().get(i).getGoodNum() + hdsg.getGoods().get(i).getGoodUnit() + "|货物价值(元):" + hdsg.getGoods().get(i).getGoodPrice(); + } + } + goodData.setText(goodsData); + deadline.setText(hdsg.getDeadline()); + }); + xie_data.createV(con, listx, R.layout.item_huoyuan_xq_datab).setOnItemViewListener((position1, o1, v1) -> { + ImageView type = v1.findViewById(R.id.type_img); + TextView goodData = v1.findViewById(R.id.goodData); + TextView deadline = v1.findViewById(R.id.deadline); + HuoYuanDelBean.DataDTO.PutInfoDTO hdsg = (HuoYuanDelBean.DataDTO.PutInfoDTO) o1; + type.setImageResource(R.mipmap.xie); + String goodsData = ""; + Log.e("--goodsData--", goodsData); + for (int i = 0; i < hdsg.getGoods().size(); i++) { + if (i != 0) { + goodsData += "\n" + hdsg.getGoods().get(i).getGoodName() + "|" + hdsg.getGoods().get(i).getGoodNum() + hdsg.getGoods().get(i).getGoodUnit() + "|货物价值(元):" + hdsg.getGoods().get(i).getGoodPrice(); + } else { + goodsData += hdsg.getGoods().get(i).getGoodName() + "|" + hdsg.getGoods().get(i).getGoodNum() + hdsg.getGoods().get(i).getGoodUnit() + "|货物价值(元):" + hdsg.getGoods().get(i).getGoodPrice(); + } + } + goodData.setText(goodsData); + deadline.setText(hdsg.getDeadline()); + }); + } + }); + } + + @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"))) { + new Handler().postDelayed(() -> { + EsignSdk.getInstance().finishH5Activity(); + UiAuxiliary.homeRequest("接单"); +// //ur.getJtt(hyd.getData().getId()); + + Intent in = new Intent(con, StartYunDanActivity.class); + in.putExtra("id", "0"); + startActivity(in); + + finish(); + + + }, 1500); + } + } 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(); + } + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/OrderAllActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/OrderAllActivity.java new file mode 100644 index 0000000..f36382c --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/OrderAllActivity.java @@ -0,0 +1,268 @@ +package com.arpa.hndahesudintocctmsdriver.ui.home; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.Nullable; + +import com.google.gson.Gson; +import com.haozhang.lib.SlantedTextView; +import com.lxj.xpopup.core.BasePopupView; +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.bean.OrderListBean; +import com.arpa.hndahesudintocctmsdriver.bean.UserBean; +import com.arpa.hndahesudintocctmsdriver.request.UserRequset; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; +import com.arpa.hndahesudintocctmsdriver.util.adapter.ManyBean; +import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; +import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants; +import com.arpa.hndahesudintocctmsdriver.util.time.Timer; +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +public class OrderAllActivity extends BaseActivity { + + public final static String USER_ORDER_LIST="user_order_list"; + private UserBean user; + private OrderListBean olb; + private Gson gson=new Gson(); + private BasePopupView xp; + private boolean dataKey=true; + private UserRequset ur; + + @Override + public void msgMethod(Message m) { + super.msgMethod(m); + switch (m.what){ + case RequsetCodeConstants.SUCCESS: + if (CacheGroup.cacheList.get(USER_ORDER_LIST)!=null && index==1) { + Log.e("结果2",CacheGroup.cacheList.get(USER_ORDER_LIST)); + olb=gson.fromJson(CacheGroup.cacheList.get(USER_ORDER_LIST),OrderListBean.class); + if(olb.getCode()==200){ + initView(null); + }else{ + Toast.makeText(con,olb.getMsg(),Toast.LENGTH_SHORT).show(); + } + refreshLayout.finishRefresh(); + //CacheGroup.cacheList.remove("userdata"); + //CacheGroup.cacheList.remove(USER_ORDER_LIST); + } + if (CacheGroup.cacheList.get(USER_ORDER_LIST)!=null && index!=1) { + olb=gson.fromJson(CacheGroup.cacheList.get(USER_ORDER_LIST),OrderListBean.class); + if(olb.getCode()==200){ + if(olb.getData().getList().size()==0){ + dataKey=false; + Toast.makeText(con,"没有更多了",Toast.LENGTH_SHORT).show(); + }else{ + insInit(); + } + }else{ + Toast.makeText(con,"加载失败",Toast.LENGTH_SHORT).show(); + } + refreshLayout.finishLoadMore(); + CacheGroup.cacheList.remove(USER_ORDER_LIST); + } + break; + case 13: + //处理修改类型 + if(m.obj.equals("1")){ + Toast.makeText(con,"派单",Toast.LENGTH_SHORT).show(); + }else{ + Toast.makeText(con,"抢单",Toast.LENGTH_SHORT).show(); + } + xp.dismiss(); + break; + default:break; + } + } + + //加载和刷新 + public void initRefreshLoad() { + refreshLayout =findViewById(R.id.srl); + refreshLayout.setOnRefreshListener(refreshLayout -> { + Log.e("下拉刷新", "pps"); + index=1; + dataKey=true; + timer=""; + ur.getListV2(index,10); + }); + refreshLayout.setOnLoadMoreListener(refreshLayout -> { + Log.e("上拉加载", "次数"+index); + if(dataKey){ + index++; + ur.getListV2(index,10); + }else{ + Toast.makeText(con,"没有更多了",Toast.LENGTH_SHORT).show(); + refreshLayout.finishLoadMore(); + } + + }); + refreshLayout.autoRefresh(); + } + + private BaseRecyclerView rv; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + StateStyleUtil.stateTextColor(this); + setContentView(R.layout.activity_yundan); + con=this; + rv=findViewById(R.id.rv); +// select_type=findViewById(R.id.select_type); +// select_type.setOnClickListener(v -> { +// xp=new XPopup.Builder(con) +// .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 +// .atView(v) +// .popupPosition(PopupPosition.Bottom) +// .hasShadowBg(true) // 去掉半透明背景 +// .asCustom(new CustomAttachPopup(con,hd)) +// .show(); +// }); + String userdata= SPUtil.getSP(con,"data","userdata"); + if(!"".equals(userdata)){ + user=gson.fromJson(userdata,UserBean.class); + } + ur=new UserRequset(con,hd); + initRefreshLoad(); + } + + private String timer=""; + + @Override + public void initView(Object obj) { + super.initView(obj); + List list=new ArrayList<>(); + list.add(new ManyBean(user.getData(),R.layout.huoyuan_top)); + for(int i=0;i { + switch (layout){ + case R.layout.huoyuan_top: + TextView waybillNum=v.findViewById(R.id.waybillNum); + waybillNum.setText("运单量"+user.getData().getWaybillNum()+"单"); + break; + case R.layout.item_quan_yundan: + v.setTop(getResources().getDimensionPixelOffset(R.dimen.dp_10)); + OrderListBean.DataDTO.ListDTO idl= (OrderListBean.DataDTO.ListDTO) o; + v.setOnClickListener(v1 -> { + Log.e("id",idl.getOrderId()+""); + Intent in=new Intent(con,StartYunDanActivity.class); + in.putExtra("id",idl.getOrderId()); + startActivity(in); + }); + OrderListBean.DataDTO.ListDTO ld= (OrderListBean.DataDTO.ListDTO) o; + TextView state1=v.findViewById(R.id.state1); + TextView state2=v.findViewById(R.id.state2); + TextView state3=v.findViewById(R.id.state3); + TextView state4=v.findViewById(R.id.state4); + TextView orderTime=v.findViewById(R.id.orderTime); + String str=ld.getOrderTime(); + orderTime.setText(Timer.formatChange(str,"yyyy-MM-dd HH:mm:ss","dd日HH:mm")); + //运单状态 200001:待接单 200002:待装货 200003:已装货 200004:已卸货 200005:待结算 200006: + //已结算 200007:已拒绝 200008:已取消 200009:已签收 200010:已回单 + switch (ld.getWaybillStatus()){ + case 200006: + state4.setTextColor(getResources().getColor(R.color.blue)); + state4.setText(" 已评价"); + case 200005: + state3.setTextColor(getResources().getColor(R.color.blue)); + state3.setText(" 已结算"); + case 200004: + state2.setTextColor(getResources().getColor(R.color.blue)); + state2.setText(" 已卸货"); + case 200003: + state1.setTextColor(getResources().getColor(R.color.blue)); + state1.setText("已装货"); + break; + default: + break; + } + //mdp_sdk.jarMDPLocationCollectionManager.uploadPickupImage + if(ld.getEvaluation()==1){ + state4.setTextColor(getResources().getColor(R.color.blue)); + state4.setText(" 已评价"); + } + SlantedTextView states=v.findViewById(R.id.states); + Log.e("类型",":"+ld.getDispatchType()); + if(ld.getDispatchType()==1){ + states.setText("派单"); + } else if(ld.getDispatchType()==2) { + states.setText("抢单").setSlantedBackgroundColor(Color.rgb(47,208,165)); + } + break; + default:break; + } + }); + } + + public void insInit(){ + List listadd=new ArrayList<>(); + for (OrderListBean.DataDTO.ListDTO listDTO : olb.getData().getList()) { + String str=listDTO.getOrderTime(); + str=Timer.formatChange(str,"yyyy-MM-dd HH:mm:ss","yyyy-MM"); + if(!str.equals(timer)){ + timer=str; + listadd.add(new ManyBean(new time(timer),R.layout.huoyuan_quan_time)); + } + listadd.add(new ManyBean(listDTO,R.layout.item_quan_yundan)); + } + rv.adds(listadd); + } + + class time{ + + private String timer; + + public time(String timer) { + this.timer = timer; + } + + public String getTimer() { + return timer; + } + + public void setTimer(String timer) { + this.timer = timer; + } + + } + class Model{} + private int index=1; + + private String getTime(){ + Calendar cal = Calendar.getInstance(); + cal.add(Calendar.MONTH,-index); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); + return sdf.format(cal.getTime()); + } + + private String getTimes(){ + Calendar cal = Calendar.getInstance(); + cal.add(Calendar.MONTH,-index); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月"); + return sdf.format(cal.getTime()); + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/OrderListActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/OrderListActivity.java new file mode 100644 index 0000000..0e6231d --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/OrderListActivity.java @@ -0,0 +1,229 @@ +package com.arpa.hndahesudintocctmsdriver.ui.home; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.widget.Button; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.Nullable; + +import com.arpa.hndahesudintocctmsdriver.parts.UserParts; +import com.google.gson.Gson; +import com.lxj.xpopup.XPopup; +import com.lxj.xpopup.interfaces.OnConfirmListener; +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.bean.HuoYuanListBean; +import com.arpa.hndahesudintocctmsdriver.bean.HuoYuanListDealBean; +import com.arpa.hndahesudintocctmsdriver.bean.UserBean; +import com.arpa.hndahesudintocctmsdriver.request.HuoYuanRequset; +import com.arpa.hndahesudintocctmsdriver.util.alert.ToastUtil; +import com.arpa.hndahesudintocctmsdriver.ui.UiAuxiliary; +import com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity; +import com.arpa.hndahesudintocctmsdriver.ui.auth.PersonalAuthActivity; +import com.arpa.hndahesudintocctmsdriver.util.adapter.ManyBean; +import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; +import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants; +import com.arpa.hndahesudintocctmsdriver.util.time.Timer; +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/10/18 14:51 + * @description: + */ +public class OrderListActivity extends BaseActivity { + + private HuoYuanRequset hyr; + private HuoYuanListBean hb; + private HuoYuanListDealBean hdb; + private BaseRecyclerView brv_order_list; + private Gson gson=new Gson(); + private int index=1; + private boolean dataKey=true; + + //加载和刷新 + public void initRefreshLoad() { + refreshLayout =findViewById(R.id.srl); + refreshLayout.setOnRefreshListener(refreshLayout -> { + Log.e("下拉刷新", "pps"); + index=1; + dataKey=true; + hyr.getHuoYuan(index,10); + }); + refreshLayout.setOnLoadMoreListener(refreshLayout -> { + Log.e("上拉加载", "次数"+index); + if(dataKey){ + index++; + hyr.getHuoYuan(index,10); + }else{ + Toast.makeText(con,"没有更多了",Toast.LENGTH_SHORT).show(); + refreshLayout.finishLoadMore(); + } + + }); + refreshLayout.autoRefresh(); + } + + @Override + public void msgMethod(Message m) { + super.msgMethod(m); + switch (m.what){ + case RequsetCodeConstants.SUCCESS: + refreshLayout.finishRefresh(); + refreshLayout.finishLoadMore(); + if(CacheGroup.cacheList.get("hl")!=null){ + Log.e("货源",CacheGroup.cacheList.get("hl")); + hb=gson.fromJson(CacheGroup.cacheList.get("hl"),HuoYuanListBean.class); + if(hb.getCode()==200){ + if(index==1){ + initOrderList(); + }else{ + insInit(); + } + }else{ + Toast.makeText(con,hb.getMsg(),Toast.LENGTH_LONG).show(); + } + CacheGroup.cacheList.remove("hl"); + } + if(CacheGroup.cacheList.get("dealList")!=null){ + Log.e("历史货源",CacheGroup.cacheList.get("dealList")); + hdb=gson.fromJson(CacheGroup.cacheList.get("dealList"),HuoYuanListDealBean.class); + if(hdb.getCode()==200){ + insDeal(); + }else{ + Toast.makeText(con,hdb.getMsg(),Toast.LENGTH_LONG).show(); + } + CacheGroup.cacheList.remove("dealList"); + } + break; + } + } + + private UserBean user; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + StateStyleUtil.stateTextColor(this); + setContentView(R.layout.activity_order_list); + brv_order_list=findViewById(R.id.brv_order_list); + con=this; + hyr=new HuoYuanRequset(con,hd); + user= UserParts.getUser(con); + initRefreshLoad(); + initView(null); + } + + @Override + public void initView(Object obj) { + super.initView(obj); + } + + //初始化货源列表 + public void initOrderList(){ + List list=new ArrayList<>(); + for (HuoYuanListBean.DataDTO.RecordsDTO record : hb.getData().getRecords()) { + list.add(new ManyBean(record,R.layout.item_huoyuan)); + } +// if(list.size()==0){ +// list.add(new ManyBean(new Model(),R.layout.item_null2)); +// } + brv_order_list.creates(con,list).setOnItemViewListener((position, o, v, layout) -> { + switch (layout){ + case R.layout.item_huoyuan: + HuoYuanListBean.DataDTO.RecordsDTO hdr= (HuoYuanListBean.DataDTO.RecordsDTO) o; + TextView qiang=v.findViewById(R.id.qiang); + TextView type_timer=v.findViewById(R.id.type_timer); + String up_time= Timer.formatChange(hdr.getEffectiveTime(),"yyyy-MM-dd HH:mm:ss","MM-dd HH:mm"); + type_timer.setText(hdr.getSendPutString()+" "+up_time+"截止"); + v.setOnClickListener(v2 -> { + receivingOrder(hdr.getOrderId()); + }); + if(1==hdr.getDispatchType()){ + qiang.setText("接单"); + }else{ + qiang.setText("抢单"); + } + break; + case R.layout.item_huoyuan_deal: + HuoYuanListDealBean.DataDTO.RecordsDTO recordsDTO= (HuoYuanListDealBean.DataDTO.RecordsDTO) o; + TextView driver_data=v.findViewById(R.id.diver_data); + TextView type_timer2=v.findViewById(R.id.type_timer); + Button qiang2=v.findViewById(R.id.qiang); + String up_time2= Timer.formatChange(recordsDTO.getReceiveTime(),"yyyy-MM-dd HH:mm:ss","MM-dd HH:mm"); + type_timer2.setText(recordsDTO.getSendPutString()+" "+up_time2+"成交"); + driver_data.setText("承运人:"+recordsDTO.getDriverName()+" | "+recordsDTO.getDriverPhone()+" | "+recordsDTO.getReceiveCarNum()); + v.setOnClickListener(v12 -> { + new ToastUtil(con,0,"此订单已被抢单,下次努力").show(2000); + }); + break; + default:break; + + } + }); + hyr.getHuoYuanDealList(); + } + + public void receivingOrder(int id){ + if(UiAuxiliary.isLogin(con)){ + if(user!=null && 100003==user.getData().getAuditStatus()){ + Intent in=new Intent(con,HuoYunDelActivity.class); + in.putExtra("id",id); + startActivity(in); + }else{ + new XPopup.Builder(con) + .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 + .asConfirm("提示", "请先完成认证,才能抢单哦!", + "取消", "去认证", + new OnConfirmListener() { + @Override + public void onConfirm() { + Intent in=new Intent(con, PersonalAuthActivity.class); + con.startActivity(in); + } + }, null, false, R.layout.alert_rz) //最后一个参数绑定已有布局 + .show(); + } + }else{ + new XPopup.Builder(con) + .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 + .asConfirm("提示", "请先完成登录,才能抢单哦!", + "取消", "去登录", + () -> { + Intent in=new Intent(con, LoginActivity.class); + con.startActivity(in); + }, null, false, R.layout.alert_login) //最后一个参数绑定已有布局 + .show(); + } + } + + public void insInit(){ + List listadd=new ArrayList<>(); + for (HuoYuanListBean.DataDTO.RecordsDTO record : hb.getData().getRecords()) { + listadd.add(new ManyBean(record,R.layout.item_huoyuan)); + } + if(listadd.size()==0){ + dataKey=false; + } + brv_order_list.adds(listadd); + } + + public void insDeal(){ + List listadd=new ArrayList<>(); + // + for (HuoYuanListDealBean.DataDTO.RecordsDTO record : hdb.getData().getRecords()) { + listadd.add(new ManyBean(record,R.layout.item_huoyuan_deal)); + } + brv_order_list.adds(listadd); + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/StartYunDanActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/StartYunDanActivity.java new file mode 100644 index 0000000..77e908b --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/StartYunDanActivity.java @@ -0,0 +1,676 @@ +package com.arpa.hndahesudintocctmsdriver.ui.home; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.view.View; +import android.view.animation.AlphaAnimation; +import android.widget.Button; +import android.widget.ImageButton; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.widget.NestedScrollView; + +import com.amap.api.location.AMapLocation; +import com.amap.api.location.AMapLocationClient; +import com.amap.api.location.AMapLocationClientOption; +import com.amap.api.location.AMapLocationListener; +import com.amap.api.maps.AMap; +import com.amap.api.maps.CameraUpdateFactory; +import com.amap.api.maps.LocationSource; +import com.amap.api.maps.MapView; +import com.amap.api.maps.model.BitmapDescriptorFactory; +import com.amap.api.maps.model.LatLng; +import com.amap.api.maps.model.LatLngBounds; +import com.amap.api.maps.model.MarkerOptions; +import com.amap.api.maps.model.PolylineOptions; + +import com.amap.api.services.core.AMapException; +import com.amap.api.services.core.LatLonPoint; +import com.amap.api.services.route.BusRouteResult; +import com.amap.api.services.route.DrivePath; +import com.amap.api.services.route.DriveRouteResult; +import com.amap.api.services.route.DriveStep; +import com.amap.api.services.route.RideRouteResult; +import com.amap.api.services.route.RouteSearch; +import com.amap.api.services.route.WalkRouteResult; +import com.bumptech.glide.Glide; +import com.google.android.material.bottomsheet.BottomSheetBehavior; +import com.google.gson.Gson; +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.bean.BaseBean; +import com.arpa.hndahesudintocctmsdriver.bean.StartOrderBean; +import com.arpa.hndahesudintocctmsdriver.bean.UserBean; +import com.arpa.hndahesudintocctmsdriver.bean.WNewsBean; +import com.arpa.hndahesudintocctmsdriver.request.HuoYuanRequset; +import com.arpa.hndahesudintocctmsdriver.ui.UiAuxiliary; +import com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan.GetShangChuanActivity; +import com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan.OrderComplaintActivity; +import com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan.ShangChuangImgActivity; +import com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan.WebPDFActivity; +import com.arpa.hndahesudintocctmsdriver.util.location.LocationGDUtil; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; +import com.arpa.hndahesudintocctmsdriver.util.string.StringUtil; +import com.arpa.hndahesudintocctmsdriver.util.adapter.ManyBean; +import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; +import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants; +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView; +import com.arpa.hndahesudintocctmsdriver.util.view.ScoreView; + +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +public class StartYunDanActivity extends BaseActivity { + + public static final String GET_EVALUTE="getEvalute"; + public static final String KEEP_EVALUTE="keepEvalte"; + public static final String GET_COMPLAINT="getComplaint"; + + private String TAG="StartYunDanActivity"; + private NestedScrollView bottomSheet; + private MapView map; + private BaseRecyclerView brv; + private AlphaAnimation mShowAnim, mHiddenAmin;//控件的显示和隐藏动画 + private LinearLayout protect; + //private RelativeLayout title_rl; + private TextView title; + private ScoreView sv1,sv2; + private Gson gson=new Gson(); + private StartOrderBean sob; + private WNewsBean wnb; + private HuoYuanRequset hyr; + //是否处于展开状态 + private boolean key=false; + private int id=0; + LocationGDUtil ld; + + @Override + public void msgMethod(Message m) { + super.msgMethod(m); + switch (m.what){ + case RequsetCodeConstants.SUCCESS: + //获取页面数据 + if (CacheGroup.cacheList.get(HuoYuanFragmengt.START_ORDER)!=null && CacheGroup.cacheList.get(GET_EVALUTE)!=null) { + Log.e("-评论-",CacheGroup.cacheList.get(GET_EVALUTE)); + Log.e("-运单-",CacheGroup.cacheList.get(HuoYuanFragmengt.START_ORDER)); + sob=gson.fromJson(CacheGroup.cacheList.get(HuoYuanFragmengt.START_ORDER), StartOrderBean.class); + wnb=gson.fromJson(CacheGroup.cacheList.get(GET_EVALUTE), WNewsBean.class); + if(sob.getCode()==200 && sob.getData()!=null){ + id = sob.getData().getWaybillId(); + initView(null); + }else if(sob.getData()==null){ +// Toast.makeText(con,"运单执行结束",Toast.LENGTH_SHORT).show(); + SPUtil.insSP(con,"order","ShippingNoteNumber",""); + UiAuxiliary.homeRequest("运单结束"); +// finish(); + }else{ + Toast.makeText(con,sob.getMsg(),Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove(HuoYuanFragmengt.START_ORDER); + CacheGroup.cacheList.remove(GET_EVALUTE); + } + //保存评价 + if(CacheGroup.cacheList.get(KEEP_EVALUTE)!=null){ + BaseBean bb=gson.fromJson(CacheGroup.cacheList.get(KEEP_EVALUTE),BaseBean.class); + if(bb.getCode()==200){ + Toast.makeText(con,"评价保存成功",Toast.LENGTH_SHORT).show(); + hyr.startOrder(id); + hyr.getEvaluate(id); + }else{ + Toast.makeText(con,bb.getMsg(),Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove(KEEP_EVALUTE); + } + break; + case 15: + break; + default:break; + } + } + + private UserBean ub; + private AMap aMap; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + StateStyleUtil.stateTextColor(this); + setContentView(R.layout.activity_yundan_start); + con=this; + id=getIntent().getExtras().getInt("id"); + brv=findViewById(R.id.brv); + protect=findViewById(R.id.protect); + title=findViewById(R.id.title); + bottomSheet =findViewById(R.id.bottom_sheet); + BottomSheetBehavior mBottomSheetBehavior = BottomSheetBehavior.from(bottomSheet); + mBottomSheetBehavior.setHideable(false); + mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); + //mBottomSheetBehavior.set + map=findViewById(R.id.map); + map.onCreate(savedInstanceState); + if (aMap == null) { + aMap = map.getMap(); + initLoaction(); + } + Log.e("--id--",""+id); + String userdata= SPUtil.getSP(con,"data","userdata"); + if(!userdata.equals("")){ + ub=gson.fromJson(userdata,UserBean.class); + } + hyr=new HuoYuanRequset(con,hd); +// hyr.startOrder(id); +// hyr.getEvaluate(id); + } + + @Override + public void initView(Object obj) { + super.initView(obj); + //up_traffic(); + brv.setNestedScrollingEnabled(false); + //控件显示的动画 + mShowAnim = new AlphaAnimation(0.0f, 1.0f); + mShowAnim.setDuration(1000); + //控件隐藏的动画 + mHiddenAmin = new AlphaAnimation(1.0f, 0.0f); + mHiddenAmin.setDuration(1000); + List list=new ArrayList<>(); + //list.add(new ManyBean(new model(),R.layout.yundan_start_top)); + list.add(new ManyBean(sob.getData(),R.layout.item_yundan_yunxing)); + list.add(new ManyBean(sob.getData(),R.layout.yundan_start_bottom)); + brv.creates(con,list).setOnItemViewListener((position, o, v, layout) -> { + switch (layout){ + case R.layout.yundan_start_top: + ImageButton return_btn=v.findViewById(R.id.return_btn); + return_btn.setOnClickListener(v1 -> finish()); + break; + case R.layout.yundan_start_bottom: + initStartBody(v); + break; + case R.layout.item_yundan_yunxing: + ImageView head_img=v.findViewById(R.id.head_img); + if(ub!=null && ub.getData()!=null && !ub.getData().getHeadportraitUrl().equals("")){ + Glide.with(con).load(ub.getData().getHeadportraitUrl()).into(head_img); + } + break; + default: break; + } + }); + } + + private boolean iskey=false; + + private void initStartBody(View v){ + LinearLayout jiesuan=v.findViewById(R.id.jiesuan); +// if(id==0){ +// jiesuan.setVisibility(View.GONE); +// }else{ +// jiesuan.setVisibility(View.VISIBLE); +// } + sv1=v.findViewById(R.id.score1); + sv2=v.findViewById(R.id.score2); + sv1.initView(); + sv2.initView(); + sv1.setScore(5); + //设置是否可以修改评分,默认为true + TextView pl_submit=v.findViewById(R.id.pl_submit); + TextView m_pl_value=v.findViewById(R.id.m_pl_value); + TextView pl_value=v.findViewById(R.id.pl_value); + if(wnb.getData()!=null){ + for (WNewsBean.DataDTO datum : wnb.getData()) { + if(datum.getType()==0){ + sv1.setScore(datum.getAttitudeScore()); + m_pl_value.setText(datum.getContent()); + pl_submit.setVisibility(View.GONE); + sv1.setUpKey(false); + m_pl_value.setEnabled(false); + } + if(datum.getType()==1){ + Log.e("分数",datum.getAttitudeScore()+"_"); + sv2.setScore(datum.getAttitudeScore()); + pl_value.setText(datum.getContent()); + } + } + } + sv2.setUpKey(false); + pl_submit.setOnClickListener(v12 -> { + String evaluate=m_pl_value.getText()+""; + if(id!=0){ + if(evaluate.length()>=5){ + Log.e("星星",""+sv1.getScore()); + hyr.keepEvaluate(sv1.getScore(),m_pl_value.getText()+"",id); + }else{ + Toast.makeText(con,"写够5个字才是好司机~",Toast.LENGTH_SHORT).show(); + } + }else{ + Toast.makeText(con,"运单尚未结束",Toast.LENGTH_SHORT).show(); + } + }); + Button complaint=v.findViewById(R.id.complaint); + complaint.setOnClickListener(v1 -> { + Intent in=new Intent(con, OrderComplaintActivity.class); + in.putExtra("id",id); + startActivity(in); + }); + BaseRecyclerView bv_zhuang=v.findViewById(R.id.bv_zhuang); + BaseRecyclerView bv_xie=v.findViewById(R.id.bv_xie); + //bv_zhuang.set + List list_zhuang=new ArrayList<>(); + List list_xie=new ArrayList<>(); + for(int i=0;i { + Intent in=new Intent(con, WebPDFActivity.class); + in.putExtra("title","电子合同"); + Log.e("--地址--",sob.getData().getContractUrl()); + in.putExtra("url",sob.getData().getContractUrl()); + startActivity(in); + }); +// v.findViewById(R.id.upload_receipt).setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View v) { +// Intent in=new Intent(con, ShangChuangImgActivity.class); +// in.putExtra("type",2); +// in.putExtra("wid",0); +// startActivity(in); +// } +// }); + bv_zhuang.createV(con,list_zhuang,R.layout.item_huoyuan_start_zx).setOnItemViewListener((position, o, v14) -> { + // + boolean upkey=false; + if(position==0){ + upkey=true; + } + initZX(upkey, v14,position,o,0); + }); + bv_xie.createV(con,list_xie,R.layout.item_huoyuan_start_zx).setOnItemViewListener((position, o, v15) -> { + // + boolean upkey=false; + if(position==(list_xie.size()-1)){ + upkey=true; + } + initZX(upkey, v15, position, o, 1); + }); + search(); + } + + public void initZX(boolean key,View v,int position,Object o,int type){ + StartOrderBean.DataDTO.WayChildrenDTO sdw= (StartOrderBean.DataDTO.WayChildrenDTO) o; + TextView index=v.findViewById(R.id.index); + TextView s_zx=v.findViewById(R.id.s_zx); + TextView j_zx=v.findViewById(R.id.j_zx); + if(type==1){ + s_zx.setText("实际卸货时间:"); + j_zx.setText("计划卸货时间:"); + } + if(position==0){ + if(type==0){ + index.setText("装货地"); + }else{ + index.setText("卸货地"); + } + }else{ + if(type==0) { + index.setText("第" + (position + 1) + "装货地"); + }else{ + index.setText("第" + (position + 1) + "卸货地"); + } + } + TextView goodName=v.findViewById(R.id.goodName); + TextView goodNum=v.findViewById(R.id.goodNum); + TextView goodUnit=v.findViewById(R.id.goodUnit); + goodName.setText(sdw.getGoods().get(0).getGoodName()); + goodNum.setText(sdw.getGoods().get(0).getGoodNum()); + goodUnit.setText(sdw.getGoods().get(0).getGoodUnit()); + TextView huoyuan_state=v.findViewById(R.id.huoyuan_state); + huoyuan_state.setText(stateText(sdw.getStatus(),type)); + huoyuan_state.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + String wid= sdw.getId()+""; + if(sdw.getStatus()==0){ + if(type==0){ + Intent in=new Intent(con, ShangChuangImgActivity.class); + in.putExtra("type",type); + in.putExtra("wid",wid); + in.putExtra("sob",gson.toJson(sob)); + in.putExtra("keys",key); + startActivity(in); + }else{ + Toast.makeText(con,"您还没有装货",Toast.LENGTH_SHORT).show(); + } + }else if(sdw.getStatus()==1){ + Intent in=new Intent(con, ShangChuangImgActivity.class); + in.putExtra("type",2); + in.putExtra("wid",wid); + in.putExtra("h_type",type); + in.putExtra("sob",gson.toJson(sob)); + startActivity(in); + }else if(sdw.getStatus()==2){ + Intent in=new Intent(con, ShangChuangImgActivity.class); + in.putExtra("type",2); + in.putExtra("wid",wid); + in.putExtra("h_type",type); + in.putExtra("sob",gson.toJson(sob)); + in.putExtra("keys",key); + startActivity(in); + }else if(sdw.getStatus()==3){ + Intent in=new Intent(con, GetShangChuanActivity.class); + in.putExtra("sdwStr",gson.toJson(sdw)); + startActivity(in); + }else{ + Intent in=new Intent(con, ShangChuangImgActivity.class); + in.putExtra("type",type); + in.putExtra("wid",wid); + in.putExtra("sob",gson.toJson(sob)); + in.putExtra("keys",key); + startActivity(in); + } + } + }); + } + + public String stateText(int state,int type){ + String str=""; + //0待装货,1已装货 2已卸货 3已上传回单 4待卸货 + switch (state){ + case 0://str="待装货"; + if(type==0){ + str="立即装货"; +// str="确认装货"; + }else{ + str="请先装货"; + } + break; + case 1://str="已装货"; + str="上传出货单"; +// str="确认回单"; + break; + case 2://str="已卸货"; + str="上传收货单"; +// str="确认回单"; + break; + case 3: + //str="已上传回单"; + str="查看凭证"; + break; + case 4: + //str="待卸货"; + str="确认卸货"; + break; + default:break; + } + return str; + } + + @Override + protected void onResume() { + super.onResume(); + if(map!=null){ + map.onResume(); + } + hyr.startOrder(id); + hyr.getEvaluate(id); + } + + @Override + protected void onPause() { + super.onPause(); + if(map!=null){ + map.onPause(); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if(map!=null){ + map.onDestroy(); + } + } + + @Override + protected void onSaveInstanceState(@NonNull @NotNull Bundle outState) { + super.onSaveInstanceState(outState); + map.onSaveInstanceState(outState); + } + LocationSource.OnLocationChangedListener mListener; + AMapLocationClient mlocationClient; + AMapLocationClientOption mLocationOption; + + public void initLoaction(){ + // 设置定位监听 + aMap.setLocationSource(new LocationSource() { + @Override + public void activate(OnLocationChangedListener onLocationChangedListener) { + mListener = onLocationChangedListener; + if (mlocationClient == null) { + //初始化定位 + try { + mlocationClient = new AMapLocationClient(con); + } catch (Exception e) { + e.printStackTrace(); + } + //初始化定位参数 + mLocationOption = new AMapLocationClientOption(); + //设置定位回调监听 + mlocationClient.setLocationListener(new AMapLocationListener() { + @Override + public void onLocationChanged(AMapLocation aMapLocation) { + if (mListener != null&&aMapLocation != null) { + if (aMapLocation != null + &&aMapLocation.getErrorCode() == 0) { + mListener.onLocationChanged(aMapLocation);// 显示系统小蓝点 + } else { + String errText = "定位失败," + aMapLocation.getErrorCode()+ ": " + aMapLocation.getErrorInfo(); + Log.e("AmapErr",errText); + } + } + } + }); + //设置为高精度定位模式 + mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy); + // mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Battery_Saving); + //设置定位模式为AMapLocationMode.Device_Sensors,仅设备模式。 + //mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Device_Sensors); + //获取一次定位结果: + //该方法默认为false。 + mLocationOption.setOnceLocation(true); + //获取最近3s内精度最高的一次定位结果: + //设置setOnceLocationLatest(boolean b)接口为true,启动定位时SDK会返回最近3s内精度最高的一次定位结果。如果设置其为true,setOnceLocation(boolean b)接口也会被设置为true,反之不会,默认为false。 + mLocationOption.setOnceLocationLatest(true); + //设置是否返回地址信息(默认返回地址信息) + mLocationOption.setNeedAddress(true); + //设置是否允许模拟位置,默认为true,允许模拟位置 + mLocationOption.setMockEnable(true); + //单位是毫秒,默认30000毫秒,建议超时时间不要低于8000毫秒。 + mLocationOption.setHttpTimeOut(20000); + //关闭缓存机制 + mLocationOption.setLocationCacheEnable(false); + //设置定位参数 + mlocationClient.setLocationOption(mLocationOption); + // 此方法为每隔固定时间会发起一次定位请求,为了减少电量消耗或网络流量消耗, + // 注意设置合适的定位时间的间隔(最小间隔支持为2000ms),并且在合适时间调用stopLocation()方法来取消定位请求 + // 在定位结束后,在合适的生命周期调用onDestroy()方法 + // 在单次定位情况下,定位无论成功与否,都无需调用stopLocation()方法移除请求,定位sdk内部会移除 + mlocationClient.startLocation();//启动定位 + } + } + + @Override + public void deactivate() { + mListener = null; + if (mlocationClient != null) { + mlocationClient.stopLocation(); + mlocationClient.onDestroy(); + } + mlocationClient = null; + } + }); + // 设置为true表示显示定位层并可触发定位,false表示隐藏定位层并不可触发定位,默认是false + aMap.setMyLocationEnabled(true); +// ld=new LocationGDUtil(con,hd); +// ld.onCreate(); + } + + + private RouteSearch mRouteSearch;//路线查询器 + private List lists=new ArrayList<>(); + + + public void search(){ +// try { +// AMapLocationClient.updatePrivacyShow(con,true,true); +// AMapLocationClient.updatePrivacyAgree(con,true); + mRouteSearch = new RouteSearch(this); +// } catch (AMapException e) { +// e.printStackTrace(); +// } + //设置数据回调监听器 + mRouteSearch.setRouteSearchListener(new OnRouteSearchListener()); + //设置开始位置坐标点(注意经纬度不能写反,会报错1800(只能规划到中国区域里的地图路线)) + LatLonPoint startPoint=new LatLonPoint(Double.parseDouble(sob.getData().getWayChildren().get(0).getLatitude()), + Double.parseDouble(sob.getData().getWayChildren().get((0)).getLongitude())); + //设置目的地坐标点 + LatLonPoint endPoint = new LatLonPoint(Double.parseDouble(sob.getData().getWayChildren().get((sob.getData().getWayChildren().size()-1)).getLatitude()), + Double.parseDouble(sob.getData().getWayChildren().get((sob.getData().getWayChildren().size()-1)).getLongitude())); + //查询信息对象 + for (int i=0;i paths = driveRouteResult.getPaths(); + //创建存储坐标点的集合 + List latLngs = new ArrayList<>(); + //遍历获取规划的所有路线坐标点 + for (DrivePath mDrivePath : paths) { + for (DriveStep mDriveStep : mDrivePath.getSteps()) { + for (LatLonPoint mLatLonPoint : mDriveStep.getPolyline()) { + latLngs.add(new + LatLng(mLatLonPoint.getLatitude(),mLatLonPoint.getLongitude())); + } + } + } + //先清除一下,避免重复显示 + aMap.clear(); + //绘制起始位置和目的地marker + aMap.addMarker(new MarkerOptions() + .icon(BitmapDescriptorFactory.fromResource(R.mipmap.qi)) + .position(new LatLng(Double.parseDouble(sob.getData().getWayChildren().get(0).getLatitude()), + Double.parseDouble(sob.getData().getWayChildren().get(0).getLongitude())))); + for(int i=0;i 0) { + middllStr = arrstr[y]; + arrstr[y] = arrstr[y+1]; + arrstr[y+1] = middllStr; + } + } + } + } + + //百分号编码方法 + public static String percentEncode(String value) throws UnsupportedEncodingException { + return value != null ? URLEncoder.encode(value, "UTF-8").replace("+", + "%20").replace("*", "%2A").replace("%7E", + "~") : null; + } + + //构造请求规范化字符串 + private static String CanonicalizedQueryString(Map parameterPairs) throws UnsupportedEncodingException { + Set parameters = parameterPairs.keySet(); + String[] a = parameters.toArray(new String[0]); + sortWithFirstCharacter(a); + String canonicalizedQueryString = ""; + for (int i=0;i parameters, String HttpMethod, String secret, String EndPoint) throws Exception { + String canonicalizedQueryString = CanonicalizedQueryString(parameters); + String strToSign = getStrToSign(HttpMethod,canonicalizedQueryString); + String signature = sign(secret+"&", strToSign); + String url = EndPoint + "?" + canonicalizedQueryString + "&" + "Signature=" + percentEncode(signature); + return url; + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/drivercircle/DriverCircleActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/drivercircle/DriverCircleActivity.java new file mode 100644 index 0000000..e38c0ec --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/drivercircle/DriverCircleActivity.java @@ -0,0 +1,307 @@ +package com.arpa.hndahesudintocctmsdriver.ui.home.drivercircle; + +import android.os.Bundle; +import android.view.View; + +import androidx.annotation.Nullable; + +//import com.alibaba.sdk.android.vod.upload.VODSVideoUploadCallback; +//import com.alibaba.sdk.android.vod.upload.VODSVideoUploadClient; +//import com.alibaba.sdk.android.vod.upload.VODSVideoUploadClientImpl; +//import com.alibaba.sdk.android.vod.upload.model.SvideoInfo; +//import com.alibaba.sdk.android.vod.upload.session.VodHttpClientConfig; +//import com.alibaba.sdk.android.vod.upload.session.VodSessionCreateInfo; +//import com.aliyun.player.AliPlayer; +//import com.aliyun.player.AliPlayerFactory; +//import com.aliyun.player.IPlayer; +//import com.aliyun.player.bean.ErrorCode; +//import com.aliyun.player.bean.InfoCode; +//import com.aliyun.player.source.UrlSource; +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/10/26 10:20 + * @description: + */ +public class DriverCircleActivity extends BaseActivity { + private String tesrUrl="https://flv2.bn.netease.com/ea2e02bb22184092e3b5a228fcc6fe7955a351070b149ca1b813cb919b0ef17626f05b192a262cc1bff270266f1c4f1b880ce4b2a401b7ea0dcad0c37545b1f20b89d6a23f1d611dd61ac9620e8743b4be2eb177b233bf27b814fb86cd14dddf4192357960c85a39ec58a231523eaf69e14f22bf338230c6.mp4"; + private BaseRecyclerView brv_douyin; + + @Override + protected void onCreate(@Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + StateStyleUtil.stateTextColor(this); + con=this; + setContentView(R.layout.activity_driver_circle); + brv_douyin=findViewById(R.id.brv_douyin); + //Signature = Base64( HMAC-SHA1( AccessKey Secret, UTF-8-Encoding-Of(StringToSign)) ) + initView(null); + //AliUrlUtil.test(); + } + + public void videoRecording(View v){ + //启动系统录像机 +// Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); +// startActivityForResult(intent, 1); + //XVideo.setVideoCachePath(PathUtils.getExtDcimPath() + "/xvideo/"); + // 初始化拍摄 + //XVideo.initialize(false, null); + } +// private MyLayoutManager my; +// @Override +// public void initView(Object obj) { +// super.initView(obj); +// List list=new ArrayList<>(); +// list.add(new Model()); +// list.add(new Model()); +// list.add(new Model()); +// my = new MyLayoutManager(this, OrientationHelper.VERTICAL, false); +// brv_douyin.createV(con,list,R.layout.item_short_video).setOnItemViewListener((position, o, v) -> { +// CardView head_portrait=v.findViewById(R.id.head_portrait); +// head_portrait.setOnClickListener(v12 -> { +// Intent in=new Intent(con,HomePageActivity.class); +// startActivity(in); +// }); +// boolean key =false; +// ImageView btn_play=v.findViewById(R.id.btn_play); +// AliPlayer aliPlayer = AliPlayerFactory.createAliPlayer(con); +// initPlayer(aliPlayer); +// //url 方式 +// UrlSource urlSource = new UrlSource(); +// switch (position){ +// case 2: +// urlSource.setUri(tesrUrl); +// break; +// case 1: +// urlSource.setUri(tesrUrl); +// break; +// case 0: +// urlSource.setUri(tesrUrl); +// break; +// } +// aliPlayer.setDataSource(urlSource); +// TextureView textureView=v.findViewById(R.id.list_player_textureview); +// textureView.setSurfaceTextureListener(new TextureView.SurfaceTextureListener() { +// @Override +// public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) { +// aliPlayer.setSurface(new Surface(surface)); +// } +// +// @Override +// public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) { +// aliPlayer.surfaceChanged(); +// } +// +// @Override +// public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) { +// aliPlayer.setSurface(null); +// return false; +// } +// +// @Override +// public void onSurfaceTextureUpdated(SurfaceTexture surface) { +// +// } +// }); +// aliPlayer.setLoop(true); +// aliPlayer.prepare(); +// v.setOnClickListener(v1 -> { +// if(btn_play.getVisibility()==View.GONE){ +// btn_play.setVisibility(View.VISIBLE); +// aliPlayer.pause(); +// }else{ +// btn_play.setVisibility(View.GONE); +// aliPlayer.start(); +// } +// }); +// my.setOnViewPagerListener(new OnViewPagerListener() { +// @Override +// public void onPageSelected(View v) { +// aliPlayer.stop(); +// } +// +// @Override +// public void onPageRelease(View v) { +// aliPlayer.start(); +// } +// }); +// }); +// brv_douyin.setLayoutManager(my); +// PagerSnapHelper psh = new PagerSnapHelper(); +// psh.attachToRecyclerView(brv_douyin); +// } +// +// class Model{ +// +// private String title; +// +// public String getTitle() { +// return title == null ? "" : title; +// } +// +// public void setTitle(String title) { +// this.title = title; +// } +// +// } +// +// +// public void initPlayer(AliPlayer aliPlayer){ +// //此回调会在使用播放器的过程中,出现了任何错误,都会回调此接口。 +// aliPlayer.setOnErrorListener(errorInfo -> { +// ErrorCode errorCode = errorInfo.getCode(); //错误码 +// String errorMsg =errorInfo.getMsg(); //错误描述 +// //出错后需要停止掉播放器 +// aliPlayer.stop(); +// }); +// // 调用aliPlayer.prepare()方法后,播放器开始读取并解析数据。成功后,会回调此接口。 +// aliPlayer.setOnPreparedListener(() -> { +// //一般调用start开始播放视频 +// aliPlayer.start(); +// }); +// //播放完成之后,就会回调到此接口。 +// aliPlayer.setOnCompletionListener(() -> { +// //一般调用stop停止播放视频 +// aliPlayer.stop(); +// }); +// //播放器中的一些信息,包括:当前进度、缓存位置等等 +// aliPlayer.setOnInfoListener(infoBean -> { +// InfoCode code = infoBean.getCode(); //信息码 +// String msg = infoBean.getExtraMsg();//信息内容 +// long value = infoBean.getExtraValue(); //信息值 +// +// //当前进度:InfoCode.CurrentPosition +// //当前缓存位置:InfoCode.BufferedPosition +// }); +// aliPlayer.setOnLoadingStatusListener(new IPlayer.OnLoadingStatusListener() { +// //播放器的加载状态, 网络不佳时,用于展示加载画面。 +// +// @Override +// public void onLoadingBegin() { +// //开始加载。画面和声音不足以播放。 +// //一般在此处显示圆形加载 +// } +// +// @Override +// public void onLoadingProgress(int percent, float netSpeed) { +// //加载进度。百分比和网速。 +// } +// +// @Override +// public void onLoadingEnd() { +// //结束加载。画面和声音可以播放。 +// //一般在此处隐藏圆形加载 +// } +// }); +// } +// +// String path=""; +// //回调 +// @Override +// public void onActivityResult(int requestCode, int resultCode, @Nullable @org.jetbrains.annotations.Nullable Intent data) { +// super.onActivityResult(requestCode, resultCode, data); +// Log.e("suesss","拍摄完成"); +// Uri uri = data.getData(); +// path= ImageUriUtil.uriTurnPath(uri,con); +// Intent in=new Intent(con,VideoReleaseActivity.class); +// in.putExtra("path",path); +// startActivity(in); +// Log.e("视频地址:",path); +// Log.e("图片地址",path2+""); +// //uplod(path2,path); +// } +// +// +// String path2=""; +// +// +// +// public interface OnViewPagerListener{ +// void onPageSelected(View v); +// void onPageRelease(View v); +// } +// public class MyLayoutManager extends LinearLayoutManager implements RecyclerView.OnChildAttachStateChangeListener { +// +// //根据这个参数来判断当前是上滑 还是下滑 +// private int mDrift; +// //传进来的监听接口类 +// private OnViewPagerListener onViewPagerListener; +// +// public MyLayoutManager(Context context) { +// super(context); +// } +// +// public MyLayoutManager(Context context, int orientation, boolean reverseLayout) { +// super(context, orientation, reverseLayout); +// } +// +// /** +// * 当MyLayoutManager完全放入到RecyclerView中的时候会被调用 +// */ +// @Override +// public void onAttachedToWindow(RecyclerView view) { +// view.addOnChildAttachStateChangeListener(this); +// super.onAttachedToWindow(view); +// } +// +// @Override +// public int scrollVerticallyBy(int dy, RecyclerView.Recycler recycler, RecyclerView.State state) { +// mDrift = dy; +// return super.scrollVerticallyBy(dy, recycler, state); +// } +// +// @Override +// public boolean canScrollVertically() { +// return true; +// } +// +// /** +// * 将Item添加进来的时候 调用这个方法 +// */ +// @Override +// public void onChildViewAttachedToWindow(@NonNull View view) { +// if(mDrift >0){ +// //向上滑 +// if(onViewPagerListener !=null){ +// //如果是向上滑动的时候 就选中当前itemView下一个item +// onViewPagerListener.onPageSelected(view); +// } +// }else{ +// //向下滑 +// if(onViewPagerListener !=null){ +// //如果是向上滑动的时候 就选中当前itemView下一个item +// onViewPagerListener.onPageSelected(view); +// } +// } +// } +// +// /** +// * 将Item移除出去的时候 调用这个方法 +// */ +// @Override +// public void onChildViewDetachedFromWindow(@NonNull View view) { +// Log.e("EEEEEEEEE","22222222222222222"); +// if(mDrift >=0){ +// //向上滑 +// if(onViewPagerListener !=null){ +// onViewPagerListener.onPageRelease(view); +// } +// }else{ +// //向下滑 +// if(onViewPagerListener !=null){ +// onViewPagerListener.onPageRelease(view); +// } +// } +// } +// +// public void setOnViewPagerListener(OnViewPagerListener onViewPagerListener) { +// this.onViewPagerListener = onViewPagerListener; +// } +// } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/drivercircle/HomePageActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/drivercircle/HomePageActivity.java new file mode 100644 index 0000000..0b0d857 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/drivercircle/HomePageActivity.java @@ -0,0 +1,33 @@ +package com.arpa.hndahesudintocctmsdriver.ui.home.drivercircle; + +import android.os.Bundle; + +import androidx.annotation.Nullable; + +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/11/1 16:35 + * @description: + */ +public class HomePageActivity extends BaseActivity { + + @Override + protected void onCreate(@Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + StateStyleUtil.stateTextColor(this); + setContentView(R.layout.activity_homepage); + con=this; + setTitle("个人主页"); + initView(null); + } + + @Override + public void initView(Object obj) { + super.initView(obj); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/drivercircle/VideoReleaseActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/drivercircle/VideoReleaseActivity.java new file mode 100644 index 0000000..f7929d8 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/drivercircle/VideoReleaseActivity.java @@ -0,0 +1,182 @@ +package com.arpa.hndahesudintocctmsdriver.ui.home.drivercircle; + +import android.graphics.Bitmap; +import android.media.MediaMetadataRetriever; +import android.os.Bundle; +import android.os.Environment; +import android.util.Log; +import android.view.View; +import android.widget.ImageView; +import android.widget.Toast; + +import androidx.annotation.Nullable; + +//import com.alibaba.sdk.android.vod.upload.VODSVideoUploadCallback; +//import com.alibaba.sdk.android.vod.upload.VODSVideoUploadClient; +//import com.alibaba.sdk.android.vod.upload.VODSVideoUploadClientImpl; +//import com.alibaba.sdk.android.vod.upload.model.SvideoInfo; +//import com.alibaba.sdk.android.vod.upload.session.VodHttpClientConfig; +//import com.alibaba.sdk.android.vod.upload.session.VodSessionCreateInfo; +import com.bumptech.glide.Glide; +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity; + +import java.io.File; +import java.io.FileOutputStream; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.GregorianCalendar; +import java.util.Locale; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/11/4 17:15 + * @description: + */ + +public class VideoReleaseActivity extends BaseActivity { + + private String videoPath=""; + private String coverPath=""; + private String video_title="用户未设置"; + private ImageView video_cover; + @Override + protected void onCreate(@Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + StateStyleUtil.stateTextColor(this); + setContentView(R.layout.activity_video_release); + con=this; + video_cover=findViewById(R.id.video_cover); + videoPath=getIntent().getExtras().getString("path"); + setTitle("发布"); + initView(null); + } + + @Override + public void initView(Object obj) { + super.initView(obj); + getFirstframe(videoPath); + Glide.with(con).load(new File(coverPath)).into(video_cover); + } + + public void submit(View v){ + + //uplod(); + } + + private void getFirstframe(String path){ + MediaMetadataRetriever mmr=new MediaMetadataRetriever();//实例化MediaMetadataRetriever对象 + File file=new File(path);//实例化File对象,文件路径为/storage/emulated/0/shipin.mp4 (手机根目录) + if(!file.exists()){ + Log.e("s","文件不存在"); + } + mmr.setDataSource(path); + Bitmap bitmap = mmr.getFrameAtTime(0); //0表示首帧图片 + mmr.release(); //释放MediaMetadataRetriever对象 + if(bitmap!=null){ + Log.e("s","获取视频缩略图成功"); + //存储媒体已经挂载,并且挂载点可读/写。 + if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { + bitmap.recycle(); //回收bitmap + return; + } + try { + Calendar now = new GregorianCalendar(); + SimpleDateFormat simpleDate = new SimpleDateFormat("yyyyMMddHHmmss", Locale.getDefault()); + String picture_Name = simpleDate.format(now.getTime()); //获取当前时间戳作为文件名称,避免同名 + String framePath = "/storage/emulated/0/DCIM/Camera/"; //图片保存文件夹 + File frame_file = new File(framePath); + if (!frame_file.exists()) { //// 如果路径不存在,就创建路径 + frame_file.mkdirs(); + } + File picture_file = new File(framePath,picture_Name + ".jpg"); // 创建路径和文件名的File对象 + FileOutputStream out = new FileOutputStream(picture_file); + bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out); + out.flush(); + out.close(); //注意关闭文件流 + Log.e("s","保存图片成功"); + coverPath=picture_file.getPath(); + } catch (Exception e) { + Log.e("保存图片失败",e.getMessage().toString()); + Toast.makeText(con, "保存图片失败!" + e.getMessage().toString(), Toast.LENGTH_LONG).show(); + e.printStackTrace(); + } + }else{ + Log.e("e","获取视频缩略图失败"); + } + } + + private String accessKeyId=""; + private String accessKeySecret=""; + private String securityToken=""; + private String expriedTime=""; + private String requestID=""; + +// public void uplod(){ +// VODSVideoUploadClient vodsVideoUploadClient = new VODSVideoUploadClientImpl(getApplicationContext()); +// vodsVideoUploadClient.init(); +// //构建上传参数 +// //参数请确保存在,如不存在SDK内部将会直接将错误throw Exception +// //文件路径保证存在之外因为Android 6.0之后需要动态获取权限,请开发者自行实现获取"文件读写权限" +// VodHttpClientConfig vodHttpClientConfig = new VodHttpClientConfig.Builder() +// .setMaxRetryCount(2)//重试次数 +// .setConnectionTimeout(15 * 1000)//连接超时 +// .setSocketTimeout(15 * 1000)//socket超时 +// .build(); +// //构建短视频VideoInfo,常见的描述、标题、详情都可以设置 +// SvideoInfo svideoInfo = new SvideoInfo(); +// svideoInfo.setTitle(video_title);//标题 +// svideoInfo.setDesc("-无-");//文件详情 +// svideoInfo.setCateId(1);//分类ID +// //构建点播上传参数(重要) +// VodSessionCreateInfo vodSessionCreateInfo =new VodSessionCreateInfo.Builder() +// .setImagePath(coverPath)//图片地址 +// .setVideoPath(videoPath)//视频地址 +// .setAccessKeyId(accessKeyId)//临时accessKeyId +// .setAccessKeySecret(accessKeySecret)//临时accessKeySecret +// .setSecurityToken(securityToken)//securityToken +// .setExpriedTime(expriedTime)//STStoken过期时间 +// .setRequestID(requestID)//requestID,开发者可以传将获取STS返回的requestID设置也可以不设 +// .setIsTranscode(true)//是否转码,如开启转码请AppSever务必监听服务端转码成功的通知 +// .setSvideoInfo(svideoInfo)//短视频信息 +// .setVodHttpClientConfig(vodHttpClientConfig)//网络参数 +// .build(); +// vodsVideoUploadClient.uploadWithVideoAndImg(vodSessionCreateInfo, new VODSVideoUploadCallback() { +// @Override +// public void onUploadSucceed(String videoId, String imageUrl) { +// //上传成功返回视频ID和图片URL +// Log.d("-success-","onUploadSucceed"+ "videoId:"+ videoId + "imageUrl" + imageUrl); +// } +// @Override +// public void onUploadFailed(String code, String message) { +// //上传失败返回错误码和message,错误码有详细的错误信息请开发者仔细阅读 +// Log.d("-error-","onUploadFailed" + "code" + code + "message" + message); +// } +// @Override +// public void onUploadProgress(long uploadedSize, long totalSize) { +// //上传的进度回调,非UI线程 +// Log.d("-进度-","onUploadProgress" + uploadedSize * 100 / totalSize); +// //progress = uploadedSize * 100 / totalSize; +// //handler.sendEmptyMessage(0); +// } +// @Override +// public void onSTSTokenExpried() { +// Log.d("过期","onSTSTokenExpried"); +// //STS token过期之后刷新STStoken,如正在上传将会断点续传 +// // vodsVideoUploadClient.refreshSTSToken(accessKeyId,accessKeySecret,securityToken,expriedTime); +// } +// @Override +// public void onUploadRetry(String code, String message) { +// //上传重试的提醒 +// //Log.d(TAG,"onUploadRetry" + "code" + code + "message" + message); +// } +// @Override +// public void onUploadRetryResume() { +// //上传重试成功的回调,告知用户重试成功 +// //Log.d(TAG,"onUploadRetryResume"); +// } +// }); +// } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/shangchuan/GetShangChuanActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/shangchuan/GetShangChuanActivity.java new file mode 100644 index 0000000..885935f --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/shangchuan/GetShangChuanActivity.java @@ -0,0 +1,92 @@ +package com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan; + +import android.os.Bundle; +import android.util.Log; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; + +import com.bumptech.glide.Glide; +import com.google.gson.Gson; +import com.lxj.xpopup.XPopup; +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.bean.StartOrderBean; +import com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity; +import com.arpa.hndahesudintocctmsdriver.util.string.StringUtil; +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/25 9:59 + * @description:获取用户上传的装卸货照片和回单 + */ +public class GetShangChuanActivity extends BaseActivity { + + private TextView name_one,name_two,address,address2,time_one,time_two; + private ImageView img1,img2; + StartOrderBean.DataDTO.WayChildrenDTO sdw; + String sdwStr=""; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + StateStyleUtil.stateTextColor(this); + setContentView(R.layout.activity_get_shangchuan); + con=this; + initFind(); + sdwStr=getIntent().getExtras().getString("sdwStr"); + Log.e("---sdwStr--",sdwStr); + sdw=new Gson().fromJson(sdwStr,StartOrderBean.DataDTO.WayChildrenDTO.class); + initView(null); + } + + public void initFind(){ + name_one=findViewById(R.id.name_one); + name_two=findViewById(R.id.name_two); + address=findViewById(R.id.address); + address2=findViewById(R.id.address2); + img1=findViewById(R.id.img1); + img2=findViewById(R.id.img2); + time_one=findViewById(R.id.time_one); + time_two=findViewById(R.id.time_two); + } + + @Override + public void initView(Object obj) { + super.initView(obj); + if(sdw.getType()==1){ + name_one.setText("装货照片"); + name_two.setText("装货回单"); + }else{ + name_one.setText("卸货照片"); + name_two.setText("卸货回单"); + } + address.setText(StringUtil.isNull(sdw.getSendPutLocationAddress(),"")); + address2.setText(StringUtil.isNull(sdw.getReceiptLocationAddress(),"")); + time_one.setText(StringUtil.isNull(sdw.getUpdateTime(),"")); + time_two.setText(StringUtil.isNull(sdw.getReceiptTime(),"")); + //coordinate.setText(StringUtil.isNull(sdw.getLongitude(),"")+","+StringUtil.isNull(sdw.getLatitude(),"")); + //coordinate2.setText(StringUtil.isNull(sdw.getReceiptLongitude(),"")+","+StringUtil.isNull(sdw.getReceiptLatitude(),"")); + if(sdw.getSendPutImagesUrl()!=null && sdw.getSendPutImagesUrl().size()>=1){ + Glide.with(con).load(sdw.getSendPutImagesUrl().get(0)).into(img1); + img1.setOnClickListener(v -> { + new XPopup.Builder(con) + .asImageViewer(img1,sdw.getSendPutImagesUrl().get(0), true, -1, -1, 50, false,new CertificatesActivity.ImageLoader()) + .show(); + }); + } + if(sdw.getReceiptUrl()!=null && sdw.getReceiptUrl().size()>=1){ + Glide.with(con).load(sdw.getReceiptUrl().get(0)).into(img2); + img2.setOnClickListener(v -> { + new XPopup.Builder(con) + .asImageViewer(img2,sdw.getReceiptUrl().get(0), true, -1, -1, 50, false,new CertificatesActivity.ImageLoader()) + .show(); + }); + } + //new GlideUrl(sdw.getSendPutImagesUrl().toString(), new LazyHeaders.Builder().addHeader("Cookie", AppCurrentUser.getInstance().getUserCookie()).build()); + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/shangchuan/OrderComplaintActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/shangchuan/OrderComplaintActivity.java new file mode 100644 index 0000000..8479cf0 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/shangchuan/OrderComplaintActivity.java @@ -0,0 +1,118 @@ +package com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan; + +import android.os.Bundle; +import android.os.Message; +import android.view.View; +import android.widget.Button; +import android.widget.LinearLayout; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.Nullable; + +import com.google.gson.Gson; +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.bean.BaseBean; +import com.arpa.hndahesudintocctmsdriver.bean.ComplaintBean; +import com.arpa.hndahesudintocctmsdriver.request.HuoYuanRequset; +import com.arpa.hndahesudintocctmsdriver.util.string.StringUtil; +import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/30 10:05 + * @description: + */ +public class OrderComplaintActivity extends BaseActivity { + + public final static String GET_COMPLAINT="get_complaint"; + public final static String COMPLAINT="complaint"; + private Button tijiao; + private TextView text_body; + private ComplaintBean cb; + private LinearLayout reply_box; + private TextView reply_body,ts; + private HuoYuanRequset hyr; + @Override + public void msgMethod(Message m) { + super.msgMethod(m); + switch (m.what){ + case 200: + if(CacheGroup.cacheList.get(GET_COMPLAINT)!=null){ + cb=new Gson().fromJson(CacheGroup.cacheList.get(GET_COMPLAINT),ComplaintBean.class); + if(cb.getCode()==200){ + initView(null); + }else{ + Toast.makeText(con,cb.getMsg(),Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove(GET_COMPLAINT); + } + if(CacheGroup.cacheList.get(COMPLAINT)!=null){ + BaseBean bb=new Gson().fromJson(CacheGroup.cacheList.get(COMPLAINT),BaseBean.class); + if(bb.getCode()==200){ + Toast.makeText(con,"保存投诉信息成功",Toast.LENGTH_SHORT).show(); + finish(); + }else{ + Toast.makeText(con,bb.getMsg(),Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove(COMPLAINT); + } + break; + default:break; + } + } + + private boolean key=true; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + StateStyleUtil.stateTextColor(this); + setContentView(R.layout.activity_complaint); + con=this; + act=this; + int id=getIntent().getExtras().getInt("id"); + tijiao=findViewById(R.id.tijiao); + text_body=findViewById(R.id.text_body); + reply_box=findViewById(R.id.reply_box); + reply_body=findViewById(R.id.reply_body); + ts=findViewById(R.id.ts); + hyr=new HuoYuanRequset(con,hd); + tijiao.setOnClickListener(v -> { + if(key){ + String body=text_body.getText()+""; + if(!body.equals("")){ + hyr.Complaint(body,id); + }else{ + Toast.makeText(con,"请先输入内容",Toast.LENGTH_SHORT).show(); + } + }else{ + Toast.makeText(con,"您已经提交过投诉了,请勿重复提交",Toast.LENGTH_SHORT).show(); + } + }); + hyr.getComplaint(id); + } + + @Override + public void initView(Object obj){ + super.initView(obj); + if(cb.getData()!=null && cb.getData().size()>0){ + for(int i=0;i 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; + + @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 { + if (!locationKey){ + customDialog.show(); + lgdu.onCreate(); + } + }); + hyr=new HuoYuanRequset(con,hd); +// if (!NfcUtils.hasNfc(con)) { +// Toast.makeText(con,"请先开启nfc",Toast.LENGTH_LONG).show(); +// }else{ +// initData(); +// } + } + + 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,index==2); + }else{ + 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 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;i0) { + lub.setLatitude(lgdu.getLatitude() + ""); + lub.setLongitude(lgdu.getLongitude() + ""); + lub.setLocationAddress(lgdu.getAddress()); + lub.setImageId(imgIds); + lub.setWaybillId(wid); + Log.e("--装货信息", gson.toJson(lub)); + if(locationKey){ + hyr.loading(lub); + if(keys){ + nfc(); + 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(lgdu.getLatitude() + ""); + lub.setLongitude(lgdu.getLongitude() + ""); + lub.setLocationAddress(lgdu.getAddress()); + lub.setImageId(imgIds); + lub.setWaybillId(wid); + Log.e("--卸货信息", gson.toJson(lub)); + if(locationKey){ + if(keys){ + nfc(); + up_traffic_end(); + up_image(); + } + hyr.dischargeCargo(lub); + }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) { + up_trafficSign(); + up_trafficReceipt(); + receipt_image(); + } + hyr.receipt(urib); + }{ + Toast.makeText(con,"定位异常,请重新定位",Toast.LENGTH_SHORT).show(); + } + }else{ + Toast.makeText(con,"图片上传异常,请重新上传",Toast.LENGTH_SHORT).show(); + } + break; + default:break; + } + } + + 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); + } + }); + } + //交通厅 + if(sob.getData().getReport()==1){ + JTTProcess.start(con,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_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(){ + //安联 + Location l=new Location(); + l.setBaiduLongitude(lu.getLongitude()); + l.setBaiduLatitude(lu.getLatitude()); + l.setLocation(lu.getAddress()); + l.setTime(Timer.getTimerT()); + List 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 com.alct.mdp.callback.OnResultListener() { + @Override + public void onSuccess() { + Log.e("上报安联","签收成功"); + } + + @Override + public void onFailure(String s, String s1) { + Log.e("上报安联失败(签收):",s+s1); + } + }); + } + + //上传安联-回单 + public void up_trafficReceipt(){ + //安联 + Location l=new Location(); + l.setBaiduLongitude(lu.getLongitude()); + l.setBaiduLatitude(lu.getLatitude()); + l.setLocation(lu.getAddress()); + l.setTime(Timer.getTimerT()); + MDPLocationCollectionManager.pod(con, sob.getData().getShippingNoteNumber(), l, new com.alct.mdp.callback.OnResultListener() { + + @Override + public void onSuccess() { + Log.e("上报安联","回单上传成功"); + } + + @Override + public void onFailure(String s, String s1) { + Log.e("上报安联失败(回单):",s+s1); + } + + }); + } + + public void up_image_z(){ + ///storage/emulated/0/Android/data/com.oneclouds.wangluohuoyun/files/Pictures/163124593063154.jpg + File file=new File(path); + Image image=new Image(); + 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(lu.getLongitude()); + image.setBaiduLatitude(lu.getLatitude()); + image.setLocation(lu.getAddress()); + MDPLocationCollectionManager.uploadPickupImage(con, sob.getData().getShippingNoteNumber(), image, new com.alct.mdp.callback.OnResultListener() { + + @Override + public void onSuccess() { + Log.e("上报安联","装货照片上传成功"); + } + + @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(Timer.getTimerT()); + image.setBaiduLongitude(lu.getLongitude()); + image.setBaiduLatitude(lu.getLatitude()); + image.setLocation(lu.getAddress()); + MDPLocationCollectionManager.uploadUnloadImage(con, sob.getData().getShippingNoteNumber(), image, new com.alct.mdp.callback.OnResultListener() { + + @Override + public void onSuccess() { + Log.e("上报安联","卸货照片上传成功"); + } + + @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(Timer.getTimerT()); + image.setBaiduLongitude(lu.getLongitude()); + image.setBaiduLatitude(lu.getLatitude()); + image.setLocation(lu.getAddress()); + MDPLocationCollectionManager.uploadPODImage(con, sob.getData().getShippingNoteNumber(), image, new com.alct.mdp.callback.OnResultListener() { + + @Override + public void onSuccess() { + Log.e("上报安联","回单照片上传成功"); + } + + @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); + } + + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/shangchuan/WebPDFActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/shangchuan/WebPDFActivity.java new file mode 100644 index 0000000..c58d8d3 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/shangchuan/WebPDFActivity.java @@ -0,0 +1,69 @@ +package com.arpa.hndahesudintocctmsdriver.ui.home.shangchuan; + +import android.annotation.SuppressLint; +import android.os.AsyncTask; +import android.os.Bundle; +import android.webkit.WebView; + +import androidx.annotation.Nullable; + +import com.github.barteksc.pdfviewer.PDFView; +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity; + +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/24 9:02 + * @description: + */ +public class WebPDFActivity extends BaseActivity { + private PDFView pdf_view; + private WebView webView; + private String url=""; + private String title=""; + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + StateStyleUtil.stateTextColor(this); + setContentView(R.layout.activity_web_pdf); + pdf_view=findViewById(R.id.pdf_view); + title=getIntent().getExtras().getString("title"); + url=getIntent().getExtras().getString("url"); + initView(null); + } + + @Override + public void initView(Object obj) { + super.initView(obj); + //pdf_view.fromUri(Uri.parse(url)).load(); + final InputStream[] input = new InputStream[1]; + new AsyncTask() { + @SuppressLint({"WrongThread", "StaticFieldLeak"}) + @Override + protected Void doInBackground(Void... voids) { + try { + input[0] = new URL(url).openStream(); + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } + @Override + protected void onPostExecute(Void aVoid) { + super.onPostExecute(aVoid); + pdf_view.fromStream(input[0]) + .pages(0,1) // all pages are displayed by default + .enableAnnotationRendering(true) + .load(); + } + }.execute(); + } + + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/login/LoginActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/login/LoginActivity.java new file mode 100644 index 0000000..ce2fa1d --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/login/LoginActivity.java @@ -0,0 +1,311 @@ +package com.arpa.hndahesudintocctmsdriver.ui.login; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Message; +import android.text.SpannableStringBuilder; +import android.text.TextPaint; +import android.text.method.LinkMovementMethod; +import android.text.style.ClickableSpan; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ImageButton; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.Nullable; +import androidx.cardview.widget.CardView; + +import com.arpa.hndahesudintocctmsdriver.parts.ConfigParts; +import com.google.gson.Gson; +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.bean.ConfigBean; +import com.arpa.hndahesudintocctmsdriver.bean.LoginBean; +import com.arpa.hndahesudintocctmsdriver.constant.LoginConstant; +import com.arpa.hndahesudintocctmsdriver.request.UserRequset; +import com.arpa.hndahesudintocctmsdriver.request.bean.LoginRegInputBean; +import com.arpa.hndahesudintocctmsdriver.ui.UiAuxiliary; +import com.arpa.hndahesudintocctmsdriver.ui.web.WebActivity; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; +import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; +import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants; +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StatusBarUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity; + +import java.util.TimerTask; + +import cn.jiguang.verifysdk.api.AuthPageEventListener; +import cn.jiguang.verifysdk.api.JVerificationInterface; +import cn.jiguang.verifysdk.api.JVerifyUIConfig; +import cn.jiguang.verifysdk.api.LoginSettings; +import cn.jpush.android.api.JPushInterface; + + +public class LoginActivity extends BaseActivity { + + public static final String CODE_RESULT="code_result"; + public static final String LOGIN_RESULT="login_result"; + public static final String USER="user"; + public static final String USER_TOKEN="token"; + public static final String USER_UNAME="uname"; + public static final String USER_RNAME="rname"; + public static final String USER_ID="id"; + + private Button btn_login; + private Button auto_login; + private EditText input_phone,input_code; + private Button getCode; + private LoginBean loginBean; + private TimerTask tt; + private int timer_sum=60; + private ImageButton agree_btn; + private CardView no_btn; + private UserRequset ur; + + @Override + public void msgMethod(Message m) { + super.msgMethod(m); + switch (m.what){ + case 12: + getCode.setText(timer_sum+"s"); + if(timer_sum<=0){ + getCode.setText("获取验证码"); + timer_sum=60; + code_key=true; + } + break; + case RequsetCodeConstants.SUCCESS: + if(CacheGroup.cacheList.get(CODE_RESULT)!=null){ + Log.e("--短信发送res--","短信发送成功"); + } + if(CacheGroup.cacheList.get(LOGIN_RESULT)!=null){ + //存储登录记录 + loginBean=new Gson().fromJson(CacheGroup.cacheList.get(LOGIN_RESULT),LoginBean.class); + Log.e("--登录信息--",new Gson().toJson(loginBean)); + if(loginBean.getCode()==200){ + SPUtil.insSP(con,USER,USER_TOKEN,loginBean.getData().getToken()); + SPUtil.insSP(con,USER,USER_UNAME,loginBean.getData().getUname()); + SPUtil.insSP(con,USER,USER_RNAME,loginBean.getData().getRname()); + SPUtil.insSP(con,USER,USER_ID,loginBean.getData().getId()+""); + JPushInterface.setAlias(con,0,loginBean.getData().getUname()); + UiAuxiliary.homeRequest("登录成功"); + finish(); + }else{ + Toast.makeText(con,loginBean.getMsg(),Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove(LOGIN_RESULT); + } + break; + default:break; + } + } + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + StatusBarUtil.touming(getWindow()); + setContentView(R.layout.activity_login); + con=this; + btn_login=findViewById(R.id.btn_login); + auto_login=findViewById(R.id.auto_login); + input_phone=findViewById(R.id.input_phone); + input_code=findViewById(R.id.input_code); + getCode=findViewById(R.id.getCode); + agree_btn=findViewById(R.id.agree_btn); + no_btn=findViewById(R.id.no_btn); + ur=new UserRequset(con,hd); + initView(null); + } + + boolean key=false; + boolean code_key=true; + private String url1=""; + private String url2=""; + @Override + public void initView(Object obj) { + super.initView(obj); + agree_btn.setOnClickListener(v -> { + agree_btn.setVisibility(View.GONE); + no_btn.setVisibility(View.VISIBLE); + key=false; + }); + no_btn.setOnClickListener(v -> { + agree_btn.setVisibility(View.VISIBLE); + no_btn.setVisibility(View.GONE); + key=true; + + }); + ConfigBean cb= ConfigParts.getConfigParts(con); + if(cb!=null){ + url1=cb.getData().getUserUrl(); + url2="https://agreement.dahehuoyun.com/huawei/#/private"; + } + TextView tv_content=findViewById(R.id.tv_content); + String str = "我已阅读并同意相关服务条款和隐私政策《用户服务协议》和《隐私政策》"; + SpannableStringBuilder ssb = new SpannableStringBuilder(); + ssb.append(str); + //第一个出现的位置 + final int start = str.indexOf("《"); + ssb.setSpan(new ClickableSpan() { + @Override + public void onClick(View widget) { + Log.e("-用户服务协议-",url1); + //用户服务协议点击事件 + Intent in=new Intent(con, WebActivity.class); + in.putExtra("title","用户服务协议"); + in.putExtra("url", url1); + startActivity(in); + } + @Override + public void updateDrawState(TextPaint ds) { + super.updateDrawState(ds); + //设置文件颜色 + ds.setColor(getResources().getColor(R.color.theme_color,null)); + // 去掉下划线 + ds.setUnderlineText(false); + } + }, start, start + 8, 0); + final int end = str.lastIndexOf("《"); + ssb.setSpan(new ClickableSpan() { + @Override + public void onClick(View widget) { + //隐私协议点击事件 + Intent in=new Intent(con, WebActivity.class); + in.putExtra("title","隐私政策"); + in.putExtra("url",url2); + startActivity(in); + } + @Override + public void updateDrawState(TextPaint ds) { + super.updateDrawState(ds); + //设置文件颜色 + ds.setColor(getResources().getColor(R.color.theme_color,null)); + // 去掉下划线 + ds.setUnderlineText(false); + } + + }, end, end + 6, 0); + tv_content.setMovementMethod(LinkMovementMethod.getInstance()); + tv_content.setText(ssb, TextView.BufferType.SPANNABLE); + getCode.setOnClickListener(v -> { + String phone=String.valueOf(input_phone.getText()); + if ("".equals(phone) || phone==null){ + Log.e("点击事件","请先输入手机号"); + Toast.makeText(con,"请先输入手机号",Toast.LENGTH_SHORT).show(); + }else{ + if(11==phone.length() && phone.indexOf("1")==0){ + if(code_key){ + getCd(); + ur.getPhoneCode(phone); + code_key=false; + } + }else{ + Toast.makeText(con,"手机号格式不正确",Toast.LENGTH_SHORT).show(); + } + } + }); + btn_login.setOnClickListener(v -> { + String phone=String.valueOf(input_phone.getText()); + String code=String.valueOf(input_code.getText()); + Log.e("--code--",code); + if (judgeFormat(phone,code)){ + if(key){ + LoginRegInputBean lb=new LoginRegInputBean(); + lb.setRoleId(4); + lb.setUname(phone); + lb.setSmscode(code); + lb.setRegisterType(1); + ur.UserLogin(lb); + }else{ + Toast.makeText(con,"请先同意用户协议和隐私政策",Toast.LENGTH_SHORT).show(); + } + } + }); + auto_login.setOnClickListener(v -> { + JVerificationInterface.getToken(con, 20000, (i, s, s1) -> { + JVerifyUIConfig uiConfig = new JVerifyUIConfig.Builder() + .setAuthBGImgPath(LoginConstant.LOG_BG_IMG.getValue()) + .setNavColor(0xff0086d0) + .setNavText(LoginConstant.NAV_TEXT.getValue()) + .setNavTextColor(0xffffffff) + .setNavReturnImgPath(LoginConstant.NAV_RETURN_IMG_PATH.getValue()) + .setLogoWidth(70) + .setLogoHeight(70) + .setLogoHidden(false) + .setNumberColor(0xff333333) + .setLogBtnText(LoginConstant.LOG_BTN_TEXT.getValue()) + .setLogBtnTextColor(0xffffffff) + .setLogBtnImgPath(LoginConstant.BTN_IMG_PATH.getValue()) + .setAppPrivacyOne(LoginConstant.TIAOKUAN_ONE.getValue(),LoginConstant.TIAOKUAN_ONE_URL.getValue()) + .setAppPrivacyTwo(LoginConstant.TIAOKUAN_TWO.getValue(),LoginConstant.TIAOKUAN_TWO_URL.getValue()) + .setUncheckedImgPath(LoginConstant.BTN_IMG_PATH.getValue()) + .setCheckedImgPath(LoginConstant.BTN_IMG_PATH.getValue()) + .setSloganTextColor(0xff999999) + .setLogoOffsetY(50) + .setLogoImgPath(LoginConstant.BTN_IMG_PATH.getValue()) + .setNumFieldOffsetY(170) + .setSloganOffsetY(230) + .setLogBtnOffsetY(254) + .setNumberSize(18) + .setPrivacyState(false) + .setNavTransparent(false) + .setPrivacyOffsetY(30).build(); + JVerificationInterface.setCustomUIWithConfig(uiConfig); + LoginSettings settings = new LoginSettings(); + settings.setAutoFinish(true);//设置登录完成后是否自动关闭授权页 + settings.setTimeout(15 * 1000);//设置超时时间,单位毫秒。 合法范围(0,30000],范围以外默认设置为10000 + settings.setAuthPageEventListener(new AuthPageEventListener() { + @Override + public void onEvent(int cmd, String msg) { + //do something..W. + } + });//设置授权页事件监听 + JVerificationInterface.loginAuth(con, settings, (code, content, operator) -> { + if (code == 6000){ + Log.d("授权页", "code=" + code + ", token=" + content+" ,operator="+operator); + }else{ + Log.d("授权页", "code=" + code + ", message=" + content); + } + }); + }); + + }); + } + public void getCd(){ + new Thread(){ + @Override + public void run() { + while (timer_sum>0) { + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + timer_sum--; + Message msg=new Message(); + msg.what=12; + hd.sendMessage(msg); + } + interrupt(); + } + }.start(); + } + //验证用户输入的是否符合格式 + public boolean judgeFormat(String phone,String code){ + //1[0-9]{10} + if("".equals(phone) || "".equals(code)){ + Toast.makeText(con,"手机号和验证码不得为空",Toast.LENGTH_SHORT).show(); + return false; + }else{ + if(11==phone.length() && phone.indexOf("1")==0){ + return true; + }else{ + Toast.makeText(con,"手机号格式不正确",Toast.LENGTH_SHORT).show(); + return false; + } + } + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/login/WelcomeActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/login/WelcomeActivity.java new file mode 100644 index 0000000..1ae80cf --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/login/WelcomeActivity.java @@ -0,0 +1,377 @@ +package com.arpa.hndahesudintocctmsdriver.ui.login; + +import android.Manifest; +import android.app.ActivityManager; +import android.content.Context; +import android.content.Intent; +import android.content.pm.ApplicationInfo; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; +import android.os.PowerManager; +import android.provider.Settings; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.RequiresApi; +import androidx.cardview.widget.CardView; +import androidx.core.app.ActivityCompat; + +import com.alct.mdp.MDPLocationCollectionManager; +import com.arpa.hndahesudintocctmsdriver.bean.ImageConfig; +import com.arpa.hndahesudintocctmsdriver.parts.ConfigParts; +import com.arpa.hndahesudintocctmsdriver.report.JTTProcess; +import com.arpa.hndahesudintocctmsdriver.request.UserRequset; +import com.arpa.hndahesudintocctmsdriver.ui.business.BusinessActivity; +import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; +import com.bumptech.glide.Glide; +import com.esign.esignsdk.EsignSdk; +import com.google.gson.Gson; +import com.luck.picture.lib.permissions.RxPermissions; +import com.lxj.xpopup.XPopup; +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.bean.ConfigBean; +import com.arpa.hndahesudintocctmsdriver.request.RequestConstant; +import com.arpa.hndahesudintocctmsdriver.ui.MainActivity; +import com.arpa.hndahesudintocctmsdriver.ui.alert.AgreementAlert; +import com.arpa.hndahesudintocctmsdriver.util.msg.MsgUtil; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity; +import com.umeng.commonsdk.UMConfigure; + +import org.jetbrains.annotations.NotNull; + +import java.io.BufferedReader; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Iterator; + +import cn.jiguang.verifysdk.api.JVerificationInterface; +import okhttp3.Call; +import okhttp3.Callback; +import okhttp3.Headers; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; + +public class WelcomeActivity extends BaseAppCompatActivity { + + private Button btn; + private CardView skip; + private TextView cd_view; + private int cd = 3; + private ImageView startImageUrl; + private Boolean key = true; + private UserRequset ur; + private ImageConfig ic; + private Gson gson = new Gson(); + + @Override + public void msgMethod(Message m) { + super.msgMethod(m); + System.out.println("csdf"); + System.out.println("csdf"); + System.out.println("csdf"); + switch (m.what) { + case 200: + if (CacheGroup.cacheList.get("getImage") != null) { + ic = gson.fromJson(CacheGroup.cacheList.get("getImage"), ImageConfig.class); + if (ic.getCode() == 200) { + if (ic.getData() != null && ic.getData().size() > 0) { + cd = ic.getData().get(0).getCountDownSecond(); + cdWelcome(ic.getData().get(0).getUrl()); + } else { + cdWelcome(""); + } + } else { + cdWelcome(""); + } + CacheGroup.cacheList.remove("getImage"); + } + break; + case 11: + cdWelcome((String) m.obj); + break; + case 13: + init(); + initPower(); + break; + } + } + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + StateStyleUtil.stateTextColor(this); + con = this; + act = this; + setContentView(R.layout.activity_weclome); + skip = findViewById(R.id.skip); + cd_view = findViewById(R.id.cd); + startImageUrl = findViewById(R.id.startImageUrl); + ur = new UserRequset(con, hd); + cd_view.setOnClickListener(v -> { + if (key) { + key = false; + Intent in = new Intent(con, MainActivity.class); + startActivity(in); + finish(); + } + }); + String str = SPUtil.getSP(con, "data", "firstKey"); + if ("1".equals(str)) { + initPower(); + } else { + new XPopup.Builder(con) + .dismissOnBackPressed(false) + .dismissOnTouchOutside(false) + .asCustom(new AgreementAlert(con, "https://agreement.dahehuoyun.com/huawei/#/private", + "http://agreement.dahehuoyun.com/#/user", hd)) + .show(); + } + //SystemUtil.get + } + + public void initPower() { + + new Handler().postDelayed(new Runnable() { + @Override + public void run() { + initRequest(); + } + }, 1000); + +// String[] permissions=new String[]{ +// Manifest.permission.ACCESS_FINE_LOCATION, +// Manifest.permission.ACCESS_COARSE_LOCATION +// // Manifest.permission.WRITE_EXTERNAL_STORAGE, +// // Manifest.permission.RECORD_AUDIO +// }; +// ActivityCompat.requestPermissions(this, permissions, 101); + } + +// @Override +// public void onRequestPermissionsResult(int requestCode, @NonNull @NotNull String[] permissions, @NonNull @NotNull int[] grantResults) { +// switch (requestCode) { +// case 101: { +// new Handler().postDelayed(new Runnable() { +// @Override +// public void run() { +// initRequest(); +// } +// }, 1000); +// return; +// } +// } +// } + + @RequiresApi(api = Build.VERSION_CODES.M) + private boolean isIgnoringBatteryOptimizations() { + boolean isIgnoring = false; + PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE); + if (powerManager != null) { + isIgnoring = powerManager.isIgnoringBatteryOptimizations(getPackageName()); + } + return isIgnoring; + } + + @RequiresApi(api = Build.VERSION_CODES.M) + public void requestIgnoreBatteryOptimizations() { + try { + Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS); + intent.setData(Uri.parse("package:" + getPackageName())); + startActivity(intent); + } catch (Exception e) { + e.printStackTrace(); + } + } + + //public void setUpViewAndData(@Nullable Bundle savedInstanceState); + private boolean isneedCheckPermission(String packagename) { + ArrayList whiteListApp = new ArrayList(); + try { + BufferedReader br = new BufferedReader(new java.io.InputStreamReader( + new FileInputStream("/system/etc/WhiteListPermissionFilter.cfg"))); + + String line = ""; + while ((line = br.readLine()) != null) { + whiteListApp.add(line); + } + + br.close(); + } catch (java.io.FileNotFoundException ex) { + Log.d("TAG", "WhiteListPermissionFilter.cfg - FileNotFoundException"); + return true; + } catch (java.io.IOException ex) { + Log.d("TAG", "WhiteListPermissionFilter.cfg - IOException"); + return true; + } + + Iterator it = whiteListApp.iterator(); + + while (it.hasNext()) { + String whitelistItem = it.next(); + Log.d("TAG", "whitelistItem:" + whitelistItem); + if (packagename.contains(whitelistItem)) { + return false; + } + } + return true; + } + + public void initRequest() { + MediaType mediaType = MediaType.parse("application/json"); + RequestBody body = RequestBody.create(mediaType, "{}"); + Headers.Builder hb = new Headers.Builder(); + hb.add("Content-Type", "application/json"); + hb.add("Cache-Control", "no-cache"); + Request request = new Request.Builder() + .url(RequestConstant.getCONFIG()) + .post(body) + .headers(hb.build()) + .build(); + OkHttpClient client = new OkHttpClient().newBuilder() + .build(); + client.newCall(request).enqueue(new Callback() { + + @Override + public void onFailure(Call call, IOException e) { + Log.e("error", "配置项信息加载失败" + e.toString()); + } + + @Override + public void onResponse(Call call, Response response) throws IOException { + if (response.code() == 200) { + String body = response.body().string(); + Log.e("-body-", body); + ConfigBean cb = new Gson().fromJson(body, ConfigBean.class); + if (cb.getCode() == 200) { + ConfigParts.setParts(con, cb); + //MsgUtil.addHdMsgWatBody(hd,11,cb.getData().getStartImageUrl()); + } else { + ConfigParts.setParts(con, null); + } + } else { + MsgUtil.addHdMsgWatBody(hd, 11, ""); + } + } + }); + ur.getImage(2); + } + + public void cdWelcome(String url) { + if (!"".equals(url)) { + Glide.with(con).load(url).into(startImageUrl); + } + cd_view.setVisibility(View.VISIBLE); + new CountDownTimer(cd * 1000, 1000) { + @Override + public void onTick(long millisUntilFinished) { + cd_view.setText("跳过 " + millisUntilFinished / 1000); + } + + @Override + public void onFinish() { + cd_view.setText("正在进入"); + } + }.start(); + new Handler().postDelayed(() -> { + if (key) { + key = false; + Intent in = new Intent(con, MainActivity.class); + startActivity(in); + finish(); + } + }, cd * 1000); + } + + String keys = "f9d35b1133cff1f6e3960c89b249e03f"; + String license = "eQQm7gCZPF58Cy4i9OGkqSdFdDnFF0VSUVpw92WcrNLx7zVbpGJwjQhnKL8b0piApIbOTog5log/S1ZIxoUQogueaG84BQlJfRwKjtvpVWImlmhthQyQd2ogRqGkm3rkVGeG9wK49fzP3g5AtghNF05je2rQWd/Tyy/wutXq0e0rvR/bEckFaZ4BesQaYd0MejFC3lA8BjxNWiuvCKs15e1aRUOU5vwN5wsaTsTHokBIYhioSxOoGgHn6NrX6K9Dsl9uTWZ2dOVK/jEzYsNt6E/1Ww2ck1XmIWdRCQNmCpgikuPT0ACAL/w7UaRoWzM/Pm+akWqyp+bEavHT1Vhug3HAHOSGfOghGw2NerNlyEg8h6cVneMx+TsidnQ0ZG29aqdcLBRsvi26BYJJCA8+0WXjT+73RhS8g97Rfb6h0/W//5Az8UNZ6dp6XvUi2EJXQRhY5hkHiuwWT2W1ik+6wiiURkkrBACKbO1kmZWbVpRIe3Y3pcr3Q/V+oAcyPHRXCxu+JIe/j40/epuRrCyf8yvKsZ2Dnkl4QQmlwNqlW1F/arS+19G6zOG+6VKwtbI01A1R9SU1TYOA5UL/Qpo6Gyi3Ec3/irgQlzkq1rZrOIS4oo6tghul/zcG8rjno3luqHYwIZf8vAVfpwBesIVcANCOIuTRPU3A8vdmUoK/twGIchPapmjlAzLhjZ4KoAbNeMsWu3sN6kF44xofLMghos2X8OtvUA9CMD37v2FpYoM75qavyoivsBAbb6mG0p5TmkZ37BxfaGGP6SYrCa9ygQ=="; + + public void init() { + String state = SPUtil.getSP(con, "state_data", "authorization_state"); + if (!"1".equals(state)) { + try { + Context context = getApplicationContext(); + Resources res = getResources(); + Configuration config = new Configuration(); + config.setToDefaults(); + res.updateConfiguration(config, res.getDisplayMetrics()); + //安联初始化 + if (context.getPackageName().equals(getCurrentProcessName(context))) { + //Log.e("--使用的测试环境--",BuildConfig.OPEN_API_URL); + MDPLocationCollectionManager.initialize(getApplicationContext(), "https://oapi.alct56.com"); + } + //在使用SDK各组件之前初始化context信息,传入ApplicationContext + // 路由初始化 + JVerificationInterface.setDebugMode(true); + JVerificationInterface.init(con, 5000, (code, msg) -> Log.d("tag", "code = " + code + " msg = " + msg)); + //友盟 + //设置非debug版本开启 + if (!isDebugVersion(con)) { + youmenginit(); + } + EsignSdk.getInstance().init(keys, license); + JTTProcess.init(getApplication()); + } catch (Exception e) { + Log.e("-error-", "初始化失败sss"); + } + } + SPUtil.insSP(con, "state_data", "authorization_state", "1"); + } + + public void youmenginit() { + //设置LOG开关,默认为false + UMConfigure.setLogEnabled(true); + //友盟预初始化 + UMConfigure.preInit(getApplicationContext(), "60fbfe87ff4d74541c81e01a", "Umeng"); + /** + * 打开app首次隐私协议授权,以及sdk初始化,判断逻辑请查看SplashTestActivity + */ + //友盟正式初始化 + UMConfigure.init(getApplicationContext(), UMConfigure.DEVICE_TYPE_PHONE, ""); + } + + private static String getCurrentProcessName(Context context) { + String currentProcessName = ""; + int pid = android.os.Process.myPid(); + ActivityManager mActivityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); + if (mActivityManager.getRunningAppProcesses() != null && mActivityManager.getRunningAppProcesses().size() > 0) { + for (ActivityManager.RunningAppProcessInfo appProcess : mActivityManager.getRunningAppProcesses()) { + if (appProcess.pid == pid) { + currentProcessName = appProcess.processName; + } + } + } + return currentProcessName; + } + + private static boolean isDebugVersion(Context context) { + + try { + ApplicationInfo info = context.getApplicationInfo(); + return (info.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0; + } catch (Exception e) { + e.printStackTrace(); + } + + return false; + + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/my/MyFragment.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/my/MyFragment.java new file mode 100644 index 0000000..16a755e --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/my/MyFragment.java @@ -0,0 +1,307 @@ +package com.arpa.hndahesudintocctmsdriver.ui.my; + +import android.Manifest; +import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import com.arpa.hndahesudintocctmsdriver.event.PersonEvent; +import com.arpa.hndahesudintocctmsdriver.event.VehicleEvent; +import com.arpa.hndahesudintocctmsdriver.parts.ConfigParts; +import com.arpa.hndahesudintocctmsdriver.parts.StartOrderParts; +import com.arpa.hndahesudintocctmsdriver.parts.UserParts; +import com.arpa.hndahesudintocctmsdriver.ui.business.BusinessActivity; +import com.bumptech.glide.Glide; +import com.google.gson.Gson; +import com.luck.picture.lib.permissions.RxPermissions; +import com.lxj.xpopup.XPopup; + +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.bean.CarListBean; +import com.arpa.hndahesudintocctmsdriver.bean.StartOrderBean; +import com.arpa.hndahesudintocctmsdriver.bean.UserBean; +import com.arpa.hndahesudintocctmsdriver.request.UserRequset; +import com.arpa.hndahesudintocctmsdriver.ui.web.WebActivity; +import com.arpa.hndahesudintocctmsdriver.ui.home.OrderAllActivity; +import com.arpa.hndahesudintocctmsdriver.ui.auth.VehicleAuthActivity; +import com.arpa.hndahesudintocctmsdriver.ui.auth.PersonalAuthActivity; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; +import com.arpa.hndahesudintocctmsdriver.util.adapter.ManyBean; +import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; +import com.arpa.hndahesudintocctmsdriver.util.string.StringUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseFragment; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView; + +import org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Subscribe; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/10/14 15:22 + * @description: + */ +public class MyFragment extends BaseFragment { + + private BaseRecyclerView brv; + private UserBean userBean; + private StartOrderBean sob; + private CarListBean clb; + private Gson gson=new Gson(); + private UserRequset ur; + + @Override + public void msgMethod(Message m) { + super.msgMethod(m); + switch (m.what){ + case 200: + refreshLayout.finishRefresh(); + if(CacheGroup.cacheList.get(WoDeFragment.VEHICLE_LIST)!=null){ + clb=gson.fromJson(CacheGroup.cacheList.get(WoDeFragment.VEHICLE_LIST),CarListBean.class); + if(clb.getCode()==200){ + initVehicleList(true); + }else{ + Toast.makeText(con,clb.getRes(),Toast.LENGTH_LONG).show(); + initVehicleList(false); + } + CacheGroup.cacheList.remove(WoDeFragment.VEHICLE_LIST); + } + if (CacheGroup.cacheList.get("userdata")!=null){ + userBean=gson.fromJson(CacheGroup.cacheList.get("userdata"), UserBean.class); + if(userBean.getCode()==200 ){ + SPUtil.insSP(con,"data","userdata",CacheGroup.cacheList.get("userdata")); + initAuth(); + }else{ + Toast.makeText(con,userBean.getMsg(),Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove("userdata"); + } + break; + } + } + + @Nullable + @org.jetbrains.annotations.Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable @org.jetbrains.annotations.Nullable ViewGroup container, @Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) { + root=inflater.inflate(R.layout.fragment_my,container,false); + con=root.getContext(); + brv=root.findViewById(R.id.rv); + EventBus.getDefault().register(this); + userBean= UserParts.getUser(con); + ur=new UserRequset(con,hd); + getRequest(); + initId(); + initRefreshLoad(); + initView(null); + return root; + } + + public void initRefreshLoad() { + refreshLayout =root.findViewById(R.id.srl); + refreshLayout.setOnRefreshListener(refreshLayout -> { + getRequest(); + }); + } + + @Override + public void initView(Object obj) { + super.initView(obj); + brv_vehicle=root.findViewById(R.id.brv_vehicle); + ur.vehicleList("1"); + } + + private BaseRecyclerView brv_vehicle; + //执行中订单 + + //车辆信息 + public void initVehicleList(boolean isSuccess){ + //车辆信息 + List list_vehicle=new ArrayList<>(); + for (CarListBean.DataDTO datum : clb.getData()) { + list_vehicle.add(new ManyBean(datum,R.layout.my_item_vehicle)); + } + if(list_vehicle.size()==0){ + list_vehicle.add(new ManyBean(new Model(),R.layout.my_item_vehicle_null)); + } + brv_vehicle.creates(con,list_vehicle).setOnItemViewListener((position, o, v, layout) -> { + switch (layout){ + case R.layout.my_item_vehicle: + CarListBean.DataDTO cd= (CarListBean.DataDTO) o; + View br=v.findViewById(R.id.br); + if(position==(clb.getData().size()-1) && position!=2){ + LinearLayout add_box=v.findViewById(R.id.add_box); + TextView add_no=v.findViewById(R.id.add_no); + add_no.setVisibility(View.GONE); + add_box.setVisibility(View.VISIBLE); + br.setVisibility(View.GONE); + add_box.setOnClickListener(v1 -> { + Intent in=new Intent(con, VehicleAuthActivity.class); + in.putExtra("carId",""); + startActivity(in); + }); + } + v.setOnClickListener(v1 -> { + Intent in=new Intent(con, VehicleAuthActivity.class); + in.putExtra("carId",cd.getCarId()); + startActivity(in); + }); + break; + case R.layout.my_item_vehicle_null: + v.setOnClickListener(v12 -> { + Intent in=new Intent(con, VehicleAuthActivity.class); + in.putExtra("carId",""); + startActivity(in); + }); + break; + default:break; + } + }); + } + + class Model{ } + + public void getRequest(){ + sob= StartOrderParts.getStartOrder(con); + ur.User(); + ur.vehicleList("1"); + } + + private LinearLayout onGetUser,onAllOrder,onAuth,onDriverHome; + private ImageView onContact,onOpinion,onUpdate,onSetUp; + private TextView name,phone; + private ImageView dang_auth,no_auth,name_auth; + private LinearLayout auth_box; + private ImageView img_head; + + public void initId(){ + // + name=root.findViewById(R.id.name); + phone=root.findViewById(R.id.phone); + dang_auth=root.findViewById(R.id.dang_auth); + no_auth=root.findViewById(R.id.no_auth); + name_auth=root.findViewById(R.id.name_auth); + auth_box=root.findViewById(R.id.auth_box); + // + onGetUser=root.findViewById(R.id.onGetUser); + onAllOrder=root.findViewById(R.id.onAllOrder); + onAuth=root.findViewById(R.id.onAuth); + onDriverHome=root.findViewById(R.id.onDriverHome); + onContact=root.findViewById(R.id.onContact); + onOpinion=root.findViewById(R.id.onOpinion); + onUpdate=root.findViewById(R.id.onUpdate); + onSetUp=root.findViewById(R.id.onSetUp); + img_head=root.findViewById(R.id.img_head); + //认证 + no_auth.setOnClickListener(v -> startActivity(new Intent(con, PersonalAuthActivity.class))); + //用户信息 + onGetUser.setOnClickListener(v -> startActivity(new Intent(con, PersonalAuthActivity.class))); + //全部运单 + onAllOrder.setOnClickListener(v -> startActivity(new Intent(con, OrderAllActivity.class))); + //认证中心 + onAuth.setOnClickListener(v -> startActivity(new Intent(con, PersonalAuthActivity.class))); + //司机之家 + onDriverHome.setOnClickListener(v -> { + RxPermissions rp=new RxPermissions(getActivity()); + rp.request( + Manifest.permission.ACCESS_BACKGROUND_LOCATION + ).subscribe(b -> { + if (b) { + Intent in=new Intent(con, BusinessActivity.class); + in.putExtra("type","餐饮"); + startActivity(in); + } else { + Toast.makeText(getContext(),"请先开启定位权限",Toast.LENGTH_LONG).show(); + } + } + ); + }); + //联系我们 + onContact.setOnClickListener(v -> { + String serviceMobile=""; + if(ConfigParts.getConfigParts(con)!=null){ + serviceMobile=ConfigParts.getConfigParts(con).getData().getServiceMobile(); + serviceMobile=StringUtil.isNull(serviceMobile,""); + } + String[] title={"平台客服:"+serviceMobile,"银行客服:95528","技术咨询:13460042961"}; + String[] value={serviceMobile,"95528","13460042961"}; + new XPopup.Builder(con) + .isDarkTheme(false) + .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 + .asCenterList("请选择",title, + (position1, text) -> { + Intent intent = new Intent(Intent.ACTION_DIAL); + Uri data = Uri.parse("tel:" + value[position1]); + intent.setData(data); + startActivity(intent); + }) + .show(); + }); + //咨询建议 + onOpinion.setOnClickListener(v -> { + Intent in=new Intent(con, WebActivity.class); + in.putExtra("title","咨询建议"); + in.putExtra("url",""); + startActivity(in); + }); + //检查更新 + onUpdate.setOnClickListener(v -> Toast.makeText(con,"当前已经是最新版本",Toast.LENGTH_LONG).show()); + //系统设置 + onSetUp.setOnClickListener(v -> startActivity(new Intent(con, SetupActivity.class))); + } + + public void initAuth(){ + if(userBean.getData()!=null){ + name.setText(StringUtil.isNull(userBean.getData().getUname(),"未实名")); + phone.setText(StringUtil.isNull(userBean.getData().getRname(),"")); + if(2==userBean.getData().getPartyMemberStatus()){ + + } + if("1".equals(userBean.getData().getRealAuthentication())){ + + }else{ + + } + if (!"".equals(userBean.getData().getHeadportraitUrl())){ + Glide.with(con).load(userBean.getData().getHeadportraitUrl()).into(img_head); + } + if(userBean!=null && 100003==userBean.getData().getAuditStatus()){ + auth_box.setVisibility(View.GONE); + no_auth.setVisibility(View.GONE); + }else{ + auth_box.setVisibility(View.GONE); + no_auth.setVisibility(View.VISIBLE); + } + } + } + + @Subscribe + public void processResult(VehicleEvent event) { + Log.e("-msg-",event.getMessage()); + if(!"挂".equals(event.getMessage())) { + ur.vehicleList("1"); + } + } + @Subscribe + public void personResult(PersonEvent home) { + Log.e("-res-", home.getMessage()); + if (ur != null) { + ur.User(); + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/my/SetupActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/my/SetupActivity.java new file mode 100644 index 0000000..397b326 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/my/SetupActivity.java @@ -0,0 +1,171 @@ +package com.arpa.hndahesudintocctmsdriver.ui.my; + +import android.content.Intent; +import android.content.pm.PackageManager; +import android.net.Uri; +import android.os.Bundle; +import android.os.Message; +import android.widget.Button; +import android.widget.RelativeLayout; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.Nullable; + +import com.arpa.hndahesudintocctmsdriver.parts.ConfigParts; +import com.google.gson.Gson; +import com.lxj.xpopup.XPopup; +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.bean.ConfigBean; +import com.arpa.hndahesudintocctmsdriver.bean.UpAppBean; +import com.arpa.hndahesudintocctmsdriver.request.UserRequset; +import com.arpa.hndahesudintocctmsdriver.ui.MainActivity; +import com.arpa.hndahesudintocctmsdriver.ui.UiAuxiliary; +import com.arpa.hndahesudintocctmsdriver.ui.web.WebActivity; +import com.arpa.hndahesudintocctmsdriver.util.msg.MsgUtil; +import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; +import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants; +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity; + +public class SetupActivity extends BaseActivity { + + private UserRequset ur; + String url1=""; + String url2=""; + String url3=""; + String kefu=""; + private RelativeLayout r1,r2,r3,r4,r5,r6,r7; + + @Override + public void msgMethod(Message m) { + super.msgMethod(m); + switch (m.what){ + case RequsetCodeConstants.SUCCESS: + if(CacheGroup.cacheList.get("up_app")!=null){ + UpAppBean uab=new Gson().fromJson(CacheGroup.cacheList.get("up_app"),UpAppBean.class); + if(uab.getCode()==200){ + if(uab.getData()==null){ + Toast.makeText(con,"当前已经是最新版本",Toast.LENGTH_SHORT).show(); + }else{ + + } + } + CacheGroup.cacheList.remove("up_app"); + } + break; + case 13: + UiAuxiliary.delLogin(con); + Intent intent = new Intent(con, MainActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); + con.startActivity(intent); + default:break; + } + } + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + StateStyleUtil.stateTextColor(this); + setContentView(R.layout.setup); + con=this; + act=this; + ConfigBean cb= ConfigParts.getConfigParts(con); + if(cb!=null){ +// url1=cb.getData().getUserUrl(); + url1="https://agreement.dahehuoyun.com/huawei/#/private"; + url2=cb.getData().getPrivateUrl(); + kefu=cb.getData().getServiceMobile(); + url3=cb.getData().getSecurityUrl(); + } + r1=findViewById(R.id.r1); + r2=findViewById(R.id.r2); + r3=findViewById(R.id.r3); + r4=findViewById(R.id.r4); + r5=findViewById(R.id.r5); + r6=findViewById(R.id.r6); + r7=findViewById(R.id.r7); + ur=new UserRequset(con,hd); + initView(null); + } + @Override + public void initView(Object obj) { + super.initView(obj); + r1.setOnClickListener(v12 -> { + Intent in=new Intent(con,WebActivity.class); + in.putExtra("title","隐私政策"); + in.putExtra("url",url2); + startActivity(in); + }); + r2.setOnClickListener(v12 -> { + Intent in=new Intent(con,WebActivity.class); + in.putExtra("title","用户协议"); + in.putExtra("url",url1); + startActivity(in); + }); + r3.setOnClickListener(v12 -> { + Intent in=new Intent(con,WebActivity.class); + in.putExtra("title","运输安全责任书"); + in.putExtra("url",url3); + startActivity(in); + }); + r4.setOnClickListener(v12 -> { + ur.upApp(); + }); + r5.setOnClickListener(v12 -> { + Intent in=new Intent(con,WebActivity.class); + in.putExtra("title","关于我们"); + in.putExtra("url","https://smlt.esign.cn/hmfbZoeeGQqv"); + startActivity(in); + }); + r6.setOnClickListener(v12 -> { + String[] title={"平台客服:"+kefu,"银行客服:95528","技术咨询:13460042961"}; + String[] value={kefu,"95528","13460042961"}; + new XPopup.Builder(con) + .isDarkTheme(false) + .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 + .asCenterList("请选择",title, + (position1, text) -> { + Intent intent = new Intent(Intent.ACTION_DIAL); + Uri data = Uri.parse("tel:" + value[position1]); + intent.setData(data); + startActivity(intent); + }) + .show(); + }); + r7.setOnClickListener(v -> new XPopup.Builder(con) + .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 + .asConfirm("注销账户", " 注销提交后,资料将在7个工作日后永久删除,如需使用需再次提交资料,请谨慎操作~", + "取消操作", "确认注销", + () -> { + Toast.makeText(con,"注销申请提交成功",Toast.LENGTH_LONG).show(); + }, null, false, R.layout.alert_ok_cancel) //最后一个参数绑定已有布局 + .show()); + String vs="1.0.0"; + try { + vs = con.getPackageManager().getPackageInfo(con.getPackageName(), 0).versionName; + } catch (PackageManager.NameNotFoundException e) { + e.printStackTrace(); + } + + TextView edition=findViewById(R.id.edition); + edition.setText("V"+vs); + //退出登录 + Button btn_login_out=findViewById(R.id.btn_login_out); + btn_login_out.setOnClickListener(v1 -> { + new XPopup.Builder(con) + .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 + .asConfirm("提示", "确定退出登录?", + "取消", "退出", + () -> { + MsgUtil.addHdMsgWat(hd,13); + }, null, false, R.layout.alert_ok_cancel) //最后一个参数绑定已有布局 + .show(); + //finish(); + }); + + } + + class model{} + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/my/WoDeFragment.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/my/WoDeFragment.java new file mode 100644 index 0000000..9bb0926 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/my/WoDeFragment.java @@ -0,0 +1,299 @@ +package com.arpa.hndahesudintocctmsdriver.ui.my; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageButton; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import com.bumptech.glide.Glide; +import com.google.gson.Gson; +import com.lxj.xpopup.XPopup; +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.bean.CarListBean; +import com.arpa.hndahesudintocctmsdriver.bean.DriverAuthDataBean; +import com.arpa.hndahesudintocctmsdriver.bean.UserBean; +import com.arpa.hndahesudintocctmsdriver.request.UserRequset; +import com.arpa.hndahesudintocctmsdriver.ui.wallet.BannerApdate; +import com.arpa.hndahesudintocctmsdriver.ui.auth.VehicleAuthActivity; +import com.arpa.hndahesudintocctmsdriver.ui.auth.PersonalAuthActivity; +import com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; +import com.arpa.hndahesudintocctmsdriver.util.string.StringUtil; +import com.arpa.hndahesudintocctmsdriver.util.adapter.ManyBean; +import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; +import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseFragment; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView; +import com.zhpan.bannerview.BannerViewPager; +import com.zhpan.bannerview.constants.PageStyle; + +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.List; + +public class WoDeFragment extends BaseFragment { + + public static final String AUTH_DATA="auth_data"; + public static final String VEHICLE_LIST="cehicle_list"; + public static final String VEHICLE_DEL="cehicle_del"; + + private BaseRecyclerView rv; + private UserBean ub; + private CarListBean clb; + private DriverAuthDataBean dadb; + private Gson gson=new Gson(); + private UserRequset ur; + + @Override + public void msgMethod(Message m) { + super.msgMethod(m); + switch (m.what){ + case RequsetCodeConstants.SUCCESS: + if(CacheGroup.cacheList.get("userdata")!=null && CacheGroup.cacheList.get(AUTH_DATA)!=null && CacheGroup.cacheList.get(VEHICLE_LIST)!=null){ + ub=gson.fromJson(CacheGroup.cacheList.get("userdata"),UserBean.class); + dadb=gson.fromJson(CacheGroup.cacheList.get(AUTH_DATA),DriverAuthDataBean.class); + clb=gson.fromJson(CacheGroup.cacheList.get(VEHICLE_LIST),CarListBean.class); + if(dadb.getCode()==200 && clb.getCode()==200){ + initView(null); + }else{ + Toast.makeText(con,dadb.getMsg(),Toast.LENGTH_SHORT).show(); + } + SPUtil.insSP(con,"data","userdata",CacheGroup.cacheList.get("userdata")); + CacheGroup.cacheList.remove("userdata"); + CacheGroup.cacheList.remove(AUTH_DATA); + CacheGroup.cacheList.remove(VEHICLE_LIST); + refreshLayout.finishRefresh(); + } + break; + case 502: + refreshLayout.finishRefresh(); + break; + default:break; + } + } + + @Nullable + @org.jetbrains.annotations.Nullable + @Override + public View onCreateView(@NonNull @NotNull LayoutInflater inflater, @Nullable @org.jetbrains.annotations.Nullable ViewGroup container, @Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) { + root=inflater.inflate(R.layout.fragement_wode,container,false); + con=root.getContext(); + rv=root.findViewById(R.id.rv); + ur=new UserRequset(con,hd); + initRefreshLoad(); + String userdata= SPUtil.getSP(con,"data","userdata"); + if(!userdata.equals("")){ + ub=gson.fromJson(userdata,UserBean.class); + } + return root; + } + + @Override + public void onResume() { + super.onResume(); + } + + //加载和刷新 + public void initRefreshLoad(){ + refreshLayout=root.findViewById(R.id.srl); + refreshLayout.setOnRefreshListener(refreshLayout -> { + Log.e("下拉刷新","pps"); + ur.User(); + ur.driverAuthData(); + ur.vehicleList("1"); + }); + refreshLayout.autoRefresh(); + } + + boolean rz_key=false; + + @Override + public void initView(Object obj) { + super.initView(obj); + List list=new ArrayList<>(); + list.add(new ManyBean(ub.getData(),R.layout.wode_top)); + if(ub.getData().getAuditStatus()==100003){ + list.add(new ManyBean(dadb.getData(),R.layout.wode_center)); + list.add(new ManyBean(new model(),R.layout.wode_bottom)); + rz_key=true; + }else{ + list.add(new ManyBean(new model(),R.layout.item_rz)); + list.add(new ManyBean(new model(),R.layout.item_rz)); + } + rv.creates(con,list).setOnItemViewListener((position, o, v, layout) -> { + switch (layout){ + case R.layout.wode_top: + init_wode_top(v); + break; + case R.layout.wode_center: + init_wode_center(v); + break; + case R.layout.wode_bottom: + init_wode_bottom(v); + break; + case R.layout.item_rz: + init_item_rz(v,position); + break; + default:break; + } + }); + } + + public static ImageView dang; + + //个人信息头部 + private void init_wode_top(View v){ + ImageButton auth_name=v.findViewById(R.id.auth_name); + dang=v.findViewById(R.id.dang); + ImageView headportraitUrl=v.findViewById(R.id.headportraitUrl_no); + TextView name=v.findViewById(R.id.name); + TextView phone=v.findViewById(R.id.phone); + name.setText(StringUtil.isNull(ub.getData().getRname(),"未实名")); + phone.setText(ub.getData().getUname()); + TextView setup=v.findViewById(R.id.setup); + if(ub.getData().getPartyMemberStatus()==1){ + dang.setVisibility(View.VISIBLE); + } + setup.setOnClickListener(v1 -> { + Intent in=new Intent(con,SetupActivity.class); + startActivity(in); + }); + if(ub.getData()!=null && !ub.getData().getHeadportraitUrl().equals("")){ + Glide.with(con).load(ub.getData().getHeadportraitUrl()).into(headportraitUrl); + } + headportraitUrl.setOnClickListener(v1 -> { + if(ub.getData().getHeadportraitUrl()!=null && !ub.getData().getHeadportraitUrl().equals("")){ + new XPopup.Builder(con) + .asImageViewer(headportraitUrl,ub.getData().getHeadportraitUrl(), true, -1, -1, 50, false,new CertificatesActivity.ImageLoader()) + .show(); + }else{ + Intent in=new Intent(con, PersonalAuthActivity.class); + startActivity(in); + } + }); + ImageView rz_state=v.findViewById(R.id.rz_state); + if(rz_key){ + rz_state.setImageResource(R.mipmap.y_rz); + } + if(StringUtil.isNull(ub.getData().getRealAuthentication(),"").equals("1")){ + auth_name.setImageResource(R.mipmap.icon_name); + } + auth_name.setOnClickListener(v12 -> { + + }); + } + + //个人信息-个人 + private void init_wode_center(View v){ + v.setOnClickListener(v1 -> { + Intent in=new Intent(con, PersonalAuthActivity.class); + startActivity(in); + }); + TextView jump_personalData=v.findViewById(R.id.jump_personalData); + jump_personalData.setOnClickListener(v1 -> { + Intent in=new Intent(con, PersonalAuthActivity.class); + startActivity(in); + }); + } + + //个人信息-车辆 + private void init_wode_bottom(View v){ + List list=new ArrayList<>(); + for (CarListBean.DataDTO datum : clb.getData()) { + list.add(datum); + } + if(clb.getData().size()<3){ + list.add(new model()); + } + BannerViewPager mViewPager=v.findViewById(R.id.banner_view); + mViewPager.setPageStyle(PageStyle.MULTI_PAGE_SCALE); + BannerApdate ba=new BannerApdate(con,R.layout.item_wode_bottom); + mViewPager.setLifecycleRegistry(getLifecycle()) + .setPageMargin(getResources().getDimensionPixelOffset(R.dimen.dp_20)) + .setRevealWidth(getResources().getDimensionPixelOffset(R.dimen.dp_20)) + .setAdapter(ba) + .create(); + mViewPager.refreshData(list); + mViewPager.setIndicatorVisibility(View.GONE); + ba.setOnItemViewListener((position, o, v1, layout) -> { + init_item_wode_bottom(v1.itemView,position); + }); + } + + private String carId=""; + + private void init_item_wode_bottom(View v,int position){ + LinearLayout data_view=v.findViewById(R.id.data_view); + LinearLayout ins_view=v.findViewById(R.id.ins_view); + TextView state=v.findViewById(R.id.state); + if(position==clb.getData().size() && clb.getData().size()<3){ + data_view.setVisibility(View.GONE); + ins_view.setVisibility(View.VISIBLE); + v.setOnClickListener(v1 -> { + Intent in=new Intent(con, VehicleAuthActivity.class); + in.putExtra("carId",carId); + startActivity(in); + }); + }else{ + if(clb.getData().get(position).getAuditStatus()==100002){ + state.setText("审核中"); + + } + data_view.setVisibility(View.VISIBLE); + ins_view.setVisibility(View.GONE); + Log.e("--body--",gson.toJson(clb.getData().get(position))); + v.setOnClickListener(v1 -> { + Intent in=new Intent(con, VehicleAuthActivity.class); + in.putExtra("carId",clb.getData().get(position).getCarId()); + startActivity(in); + }); + } + } + + //个人信息-未认证 + private void init_item_rz(View v,int position){ + ImageView type_icon=v.findViewById(R.id.type_icon); + TextView state=v.findViewById(R.id.state); + if(position==2){ + if (position==1 && clb.getData().size()>0) { + state.setText("审核中"); + } + TextView rz_name=v.findViewById(R.id.rz_name); + TextView rz_body=v.findViewById(R.id.rz_body); + rz_name.setText("添加车辆信息"); + rz_body.setText("行驶证、车辆照片、道路运输证等"); + //type_icon.setImageResource(R.mipmap.che); + v.setOnClickListener(v1 -> { + Intent in=new Intent(con, VehicleAuthActivity.class); + in.putExtra("carId",carId); + startActivity(in); + }); + }else if(position==1){ + if(ub.getData().getAuditStatus()==100002){ + state.setText("审核中"); + } + // type_icon.setImageResource(R.mipmap.my_data); + v.setOnClickListener(v1 -> { + Intent in=new Intent(con, PersonalAuthActivity.class); + startActivity(in); + }); + } + + } + + private class model{ + + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/news/NewActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/news/NewActivity.java new file mode 100644 index 0000000..f27c0ab --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/news/NewActivity.java @@ -0,0 +1,32 @@ +package com.arpa.hndahesudintocctmsdriver.ui.news; + +import android.os.Bundle; + +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; + +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity; +import com.arpa.hndahesudintocctmsdriver.util.view.BottomTabUtil; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/12/21 9:09 + * @description: + */ +public class NewActivity extends BaseAppCompatActivity { + + @Override + protected void onCreate(@Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + StateStyleUtil.stateTextColor(this); + setContentView(R.layout.activity_news); + Fragment[] fs=new Fragment[1]; + fs[0] =new NewsFragment(); + BottomTabUtil bt =new BottomTabUtil(this,R.id.body, fs); + bt.selectItem(fs[0]); + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/news/NewsActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/news/NewsActivity.java new file mode 100644 index 0000000..c177b24 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/news/NewsActivity.java @@ -0,0 +1,192 @@ +package com.arpa.hndahesudintocctmsdriver.ui.news; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.Nullable; + +import com.google.gson.Gson; +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.bean.BaseBean; +import com.arpa.hndahesudintocctmsdriver.bean.XiaoXiBean; +import com.arpa.hndahesudintocctmsdriver.request.NewsRequest; +import com.arpa.hndahesudintocctmsdriver.util.adapter.ManyBean; +import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; +import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants; +import com.arpa.hndahesudintocctmsdriver.util.time.Timer; +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView; +import com.scwang.smart.refresh.layout.SmartRefreshLayout; + +import java.util.ArrayList; +import java.util.List; + +public class NewsActivity extends BaseAppCompatActivity { + + public static final String XIAOXILIST_TYPE="xiaoxilist_type"; + public static final String NEWS_DEL="news_del"; + private int type=0; + private XiaoXiBean xxb; + private SmartRefreshLayout refreshLayout; + private boolean iskey=true; + private TextView del_news,title_view; + private String title; + private boolean firstKey=true; + private NewsRequest.Model xm=new NewsRequest.Model(); + private int index=1; + + @Override + public void msgMethod(Message m) { + super.msgMethod(m); + switch (m.what){ + case RequsetCodeConstants.SUCCESS: + if(CacheGroup.cacheList.get(XIAOXILIST_TYPE)!=null && index==1){ + xxb=new Gson().fromJson(CacheGroup.cacheList.get(XIAOXILIST_TYPE), XiaoXiBean.class); + if(xxb.getCode()==200){ + initView(null); + }else{ + Toast.makeText(con,xxb.getMsg(),Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove(XIAOXILIST_TYPE); + } + if(CacheGroup.cacheList.get(XIAOXILIST_TYPE)!=null && index!=1){ + xxb=new Gson().fromJson(CacheGroup.cacheList.get(XIAOXILIST_TYPE), XiaoXiBean.class); + if(xxb.getCode()==200){ + initAdd(); + }else{ + Toast.makeText(con,xxb.getMsg(),Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove(XIAOXILIST_TYPE); + } + if(CacheGroup.cacheList.get(NEWS_DEL)!=null){ + BaseBean bb=new Gson().fromJson(CacheGroup.cacheList.get(NEWS_DEL),BaseBean.class); + if(bb.getCode()==200){ + Toast.makeText(con,"已经读取了全部消息",Toast.LENGTH_SHORT).show(); + refreshLayout.autoRefresh(); + }else{ + Toast.makeText(con,bb.getMsg(),Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove(NEWS_DEL); + } + refreshLayout.finishRefresh(); + break; + } + } + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + StateStyleUtil.stateTextColor(this); + setContentView(R.layout.activity_xiaoxi); + con=this; + del_news=findViewById(R.id.del_news); + title_view=findViewById(R.id.title_view); + brv=findViewById(R.id.brv); + Intent in=getIntent(); + type=in.getExtras().getInt("xiaoxi_type"); + title=in.getExtras().getString("xiaoxi_title"); + title_view.setText(title); + del_news.setOnClickListener(v -> { + if(list_id.size()>0){ + xm.setIds(list_id); + new NewsRequest().delNewsAll(con,hd,xm); + }else{ + Toast.makeText(con,"当前没有可读的消息",Toast.LENGTH_SHORT).show(); + } + }); + initRefreshLoad(); + } + + //加载和刷新 + public void initRefreshLoad(){ + refreshLayout=findViewById(R.id.srl); + refreshLayout.setOnRefreshListener(refreshLayout -> { + Log.e("下拉刷新","pps"); + index=1; + new NewsRequest().getXiaoXiList(con,hd,type,index); + }); + refreshLayout.autoRefresh(); + refreshLayout.setOnLoadMoreListener(refreshLayout -> { + Log.e("上拉加载","bbs"); + index++; + new NewsRequest().getXiaoXiList(con,hd,type,index); + refreshLayout.finishLoadMore(); + }); + } + + List list_id=new ArrayList<>(); + private BaseRecyclerView brv; + + @Override + public void initView(Object obj) { + super.initView(obj); + List list=new ArrayList<>(); + for (XiaoXiBean.DataDTO.RecordsDTO record : xxb.getData().getRecords()) { + list.add(new ManyBean(record,R.layout.item_xiaoxi_quan)); + } + if(list.size()<1){ + list.add(new ManyBean(new Model(),R.layout.item_empty)); + } + brv.creates(con,list).setOnItemViewListener((position, o, v, layout) -> { + switch (layout){ + case R.layout.item_xiaoxi_quan: + XiaoXiBean.DataDTO.RecordsDTO xx= (XiaoXiBean.DataDTO.RecordsDTO) o; + TextView createTime=v.findViewById(R.id.createTime); + TextView type_view=v.findViewById(R.id.type); + ImageView read=v.findViewById(R.id.read); + createTime.setText(Timer.formatChange(xx.getCreateTime(),"yyyy-MM-dd HH:mm:ss","MM/dd HH:mm")); + if(xx.getIsRead()==0){ + read.setVisibility(View.VISIBLE); + list_id.add(xx.getId()); + } + + break; + case R.layout.item_empty: + ImageView que=v.findViewById(R.id.que); + TextView que_text=v.findViewById(R.id.que_text); + que.setImageResource(R.drawable.no_news); + que_text.setText("暂时没有消息~"); + break; + default:break; + } + }); + } + + public void initAdd(){ + List lists=new ArrayList<>(); + for (XiaoXiBean.DataDTO.RecordsDTO record : xxb.getData().getRecords()) { + lists.add(new ManyBean(record,R.layout.item_xiaoxi_quan)); + } + brv.adds(lists); + if(lists.size()==0){ + Toast.makeText(con,"没有更多了",Toast.LENGTH_SHORT).show(); + index--; + } + } + + public void delListId(){ + for(int i=0;i { + Log.e("下拉刷新","pps"); + new NewsRequest().getXiaoXiLists(con,hd); + }); + refreshLayout.autoRefresh(); + return root; + } + + @Override + public void initView(final Object obj) { + super.initView(obj); + List list=new ArrayList<>(); + list.add(new ManyBean(new Model("系统消息",R.mipmap.icon_xiaoxi_xitong),R.layout.item_xiaoxi)); + list.add(new ManyBean(new Model("运单消息",R.mipmap.icon_xiaoxi_pingjia),R.layout.item_xiaoxi)); + list.add(new ManyBean(new Model("账户消息",R.mipmap.icon_xiaoix_account),R.layout.item_xiaoxi)); + rv.creates(con,list).setOnItemViewListener((position, o, v, layout) -> { + Model m= (Model) o; + ImageView img=v.findViewById(R.id.type_imgs); + TextView body=v.findViewById(R.id.body); + TextView timer=v.findViewById(R.id.timer); + TextView title=v.findViewById(R.id.title); + img.setImageResource(m.getType_img()); + XiaoXiListBean.DataDTO xd=xxlist.getData().get(position); + if(xd.getCount()>0){ + title.setText(xd.getMessageTypeName()); + body.setText("您有"+xd.getCount()+"条最新消息"); + } + v.setOnClickListener(v1 -> { + Intent in=new Intent(con, NewsActivity.class); + in.putExtra("xiaoxi_type",xd.getVcode()); + in.putExtra("xiaoxi_title",m.getType()); + startActivity(in); + }); + }); + + } + + class Model{ + + private String type; + private int type_img; + + public Model(String type, int type_img) { + this.type = type; + this.type_img = type_img; + } + + public Model() { + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public int getType_img() { + return type_img; + } + + public void setType_img(int type_img) { + this.type_img = type_img; + } + + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/test/AlTest.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/test/AlTest.java new file mode 100644 index 0000000..2f6cdfe --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/test/AlTest.java @@ -0,0 +1,52 @@ +package com.arpa.hndahesudintocctmsdriver.ui.test; + +import android.content.Context; +import android.util.Log; + +import com.alct.mdp.MDPLocationCollectionManager; +import com.alct.mdp.model.Image; +import com.arpa.hndahesudintocctmsdriver.util.BitmapUtil; +import com.arpa.hndahesudintocctmsdriver.util.file.FileUtil; +import com.arpa.hndahesudintocctmsdriver.util.time.Timer; + +import java.io.File; + + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/11/23 16:52 + * @description: + */ +public class AlTest { + + //SP21110900003 + String path=""; + public void up_image(Context con){ + ///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(113.64388251210016); + image.setBaiduLatitude(34.81200113111278); + image.setLocation(""); + MDPLocationCollectionManager.uploadUnloadImage(con,"SP21110900003", image, new com.alct.mdp.callback.OnResultListener() { + + @Override + public void onSuccess() { + Log.e("上报安联","卸货照片上传成功"); + } + + @Override + public void onFailure(String s, String s1) { + Log.e("上报安联失败(卸货照片):",s+s1); + } + + }); + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/test/Test.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/test/Test.java new file mode 100644 index 0000000..bff7324 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/test/Test.java @@ -0,0 +1,62 @@ +package com.arpa.hndahesudintocctmsdriver.ui.test; + +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.net.Uri; +import android.os.Build; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/10 18:23 + * @description: + */ +public class Test { + + public static Intent getAutostartSettingIntent(Context context) { + ComponentName componentName = null; + String brand = Build.MANUFACTURER; + Intent intent = new Intent(); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + switch (brand.toLowerCase()) { + case "samsung"://三星 + componentName = new ComponentName("com.samsung.android.sm", "com.samsung.android.sm.app.dashboard.SmartManagerDashBoardActivity"); + break; + case "huawei"://华为 + //荣耀V8,EMUI 8.0.0,Android 8.0上,以下两者效果一样 + componentName = new ComponentName("com.huawei.systemmanager", "com.huawei.systemmanager.appcontrol.activity.StartupAppControlActivity"); +// componentName = new ComponentName("com.huawei.systemmanager", "com.huawei.systemmanager.startupmgr.ui.StartupNormalAppListActivity");//目前看是通用的 + break; + case "xiaomi"://小米 + componentName = new ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity"); + break; + case "vivo"://VIVO +// componentName = new ComponentName("com.iqoo.secure", "com.iqoo.secure.safaguard.PurviewTabActivity"); + componentName = new ComponentName("com.iqoo.secure", "com.iqoo.secure.ui.phoneoptimize.AddWhiteListActivity"); + break; + case "oppo"://OPPO +// componentName = new ComponentName("com.oppo.safe", "com.oppo.safe.permission.startup.StartupAppListActivity"); + componentName = new ComponentName("com.coloros.oppoguardelf", "com.coloros.powermanager.fuelgaue.PowerUsageModelActivity"); + break; + case "yulong": + case "360"://360 + componentName = new ComponentName("com.yulong.android.coolsafe", "com.yulong.android.coolsafe.ui.activity.autorun.AutoRunListActivity"); + break; + case "meizu"://魅族 + componentName = new ComponentName("com.meizu.safe", "com.meizu.safe.permission.SmartBGActivity"); + break; + case "oneplus"://一加 + componentName = new ComponentName("com.oneplus.security", "com.oneplus.security.chainlaunch.view.ChainLaunchAppListActivity"); + break; + case "letv"://乐视 + intent.setAction("com.letv.android.permissionautoboot"); + default://其他 + intent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS"); + intent.setData(Uri.fromParts("package", context.getPackageName(), null)); + break; + } + intent.setComponent(componentName); + return intent; + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/test/TestAcivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/test/TestAcivity.java new file mode 100644 index 0000000..f085ac9 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/test/TestAcivity.java @@ -0,0 +1,46 @@ +package com.arpa.hndahesudintocctmsdriver.ui.test; + +import android.os.Bundle; +import android.util.Log; +import android.widget.Button; + +import androidx.annotation.Nullable; + +import com.esign.esignsdk.EsignSdk; +import com.esign.esignsdk.data.AuthEvent; +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity; + +import org.greenrobot.eventbus.EventBus; +import org.greenrobot.eventbus.Subscribe; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/9/29 12:12 + * @description: + */ +public class TestAcivity extends BaseActivity { + + private Button a1; + + @Override + protected void onCreate(@Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_test); + act=this; + EventBus.getDefault().register(this); + a1=findViewById(R.id.a1); + a1.setOnClickListener(v -> { + String url="https://smlh5.esign.cn/usercenterFront/oemAuth/v3/realName/index?contextKey=d952b2da3901f6656d12b5e39525554e&appId=7438873235"; + EsignSdk.getInstance().startH5Activity(act,url); + }); + } + + @Subscribe + public void processResult(AuthEvent auth) { + //添加实名/意愿/签署完成之后的逻辑 + //Toast.makeText(this, auth.result, Toast.LENGTH_SHORT).show(); + Log.e("-aaa-", auth.result); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/test/TestsActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/test/TestsActivity.java new file mode 100644 index 0000000..c5eaa66 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/test/TestsActivity.java @@ -0,0 +1,163 @@ +package com.arpa.hndahesudintocctmsdriver.ui.test; + +import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.view.View; +import android.widget.Toast; + +import androidx.annotation.Nullable; + +import com.alct.mdp.MDPLocationCollectionManager; +import com.alct.mdp.callback.OnDownloadResultListener; +import com.alct.mdp.callback.OnResultListener; +import com.alct.mdp.model.Image; +import com.arpa.hndahesudintocctmsdriver.util.BitmapUtil; +import com.google.gson.Gson; +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.util.img.GetImageAlert; +import com.arpa.hndahesudintocctmsdriver.util.img.ImageUriUtil; +import com.arpa.hndahesudintocctmsdriver.util.file.FileUtil; +import com.arpa.hndahesudintocctmsdriver.util.file.ImageFileCompressUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity; + +import java.io.File; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; + + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/11/23 16:58 + * @description: + */ +public class TestsActivity extends BaseAppCompatActivity { + + @Override + public void msgMethod(Message m) { + super.msgMethod(m); + switch (m.what){ + case 15: + break; + case ImageFileCompressUtil.COMPRESS_SUCCESS: + path= (String) m.obj; + Log.e("res:","选定图片结果"); + Log.e("res:",path); + up_image(); + break; + default:break; + } + } + + @Override + protected void onCreate(@Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_tests); + con=this; + //ALProcess.verification(con); + MDPLocationCollectionManager.getInvoices(con, 10, 1, new OnDownloadResultListener() { + @Override + public void onSuccess(Object o) { + Log.e("--成功信息--",new Gson().toJson(o)); + } + @Override + public void onFailure(String s, String s1) { + Log.e("--失败信息--",s+s1); + } + }); + } + + private GetImageAlert gia=new GetImageAlert(); + + public void up(View v){ + gia.showPopueWindow(this); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == 11 && resultCode == RESULT_OK ) { + Uri selectedImage = data.getData(); + path= ImageUriUtil.uriTurnPath(selectedImage,con); + Log.e("图片地址:",path); + gia.dis(); + ImageFileCompressUtil.imageFileCompress(con,new File(path),hd); + }else if(requestCode == 12 && resultCode == RESULT_OK){ + path=gia.getFile().getPath(); + Log.e("图片地址:",path); + gia.dis(); + ImageFileCompressUtil.imageFileCompress(con,new File(path),hd); + } + } + + //SP21110900003 + String path=""; + public void up_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(getTimerT("2011/10/30 13:25")); + image.setBaiduLongitude(113.76991); + image.setBaiduLatitude(34.782743); + image.setLocation("河南省郑州市金水区畅和街"); + MDPLocationCollectionManager.uploadUnloadImage(con,"SP21103000001", image, new com.alct.mdp.callback.OnResultListener() { + + @Override + public void onSuccess() { + Toast.makeText(con,"卸货照片上传成功",Toast.LENGTH_LONG).show(); + Log.e("上报安联","卸货照片上传成功"); + } + + @Override + public void onFailure(String s, String s1) { + Toast.makeText(con,"卸货照片上传失败"+s+s1,Toast.LENGTH_LONG).show(); + Log.e("上报安联失败(卸货照片):",s+s1); + } + + }); + } + + + public void delete(View v){ + MDPLocationCollectionManager.deleteUnloadImage(con, "SP21110900003", "E0019169", "1637661581002107.jpg", "jpg", new OnResultListener() { + @Override + public void onSuccess() { + Toast.makeText(con,"删除成功",Toast.LENGTH_LONG).show(); + Log.e("成功:","删除成功"); + } + + @Override + public void onFailure(String s, String s1) { + Toast.makeText(con,"删除失败",Toast.LENGTH_LONG).show(); + Log.e("失败:","删除失败"+s+s1); + } + }); + } + + public void getTime(View v){ + //getTimerT(); + } + + public static String getTimerT(String str) { + SimpleDateFormat ft = new SimpleDateFormat("yyyy/MM/dd HH:mm"); + String time = str; + Date date=null; + try { + date = ft.parse(time); + } catch (ParseException e) { + e.printStackTrace(); + } + String format = ""; + Log.e("时间",format+""); + return format; + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/wallet/BannerApdate.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/wallet/BannerApdate.java new file mode 100644 index 0000000..15975f7 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/wallet/BannerApdate.java @@ -0,0 +1,71 @@ +package com.arpa.hndahesudintocctmsdriver.ui.wallet; + + +import android.content.Context; +import android.view.View; +import android.view.ViewGroup; + +import com.arpa.hndahesudintocctmsdriver.util.adapter.ManyBean; +import com.arpa.hndahesudintocctmsdriver.util.bean.GetObjectName; +import com.zhpan.bannerview.BaseBannerAdapter; +import com.zhpan.bannerview.BaseViewHolder; + +import java.util.List; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/19 11:03 + * @description: + */ +public class BannerApdate extends BaseBannerAdapter { + + private int layout; + private List object; + private Context con; + // private List> bvs=new ArrayList<>(); + // public void initBvs(int size){ + // for(int i=0;i holder, Object data, int position, int pageSize){ + View v=holder.itemView; + ViewGroup vg=v.findViewById(v.getId()); + GetObjectName.ZIModel(vg,data,con); + listenterView.onItemView(position,object,holder, layout); + //bvs.set(position,holder); + //Log.e("position",":"+position); + //Log.e("pageSize",":"+pageSize); + } + + @Override + public int getLayoutId(int viewType) { + return layout; + } + +// public View getItemView(int position){ +// if(bvs.get(position)!=null){ +// return bvs.get(position).itemView; +// } +// return null; +// } +// +// public int getItemSize(){ +// return bvs.size(); +// } +// public List> getBvs() { +// return bvs; +// } + + private onItemViewListenter listenterView; + public void setOnItemViewListener(onItemViewListenter listenterView) { this.listenterView = listenterView; } + public interface onItemViewListenter { void onItemView(int position, Object o, BaseViewHolder v, int layout);} + + } diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/wallet/UpBankActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/wallet/UpBankActivity.java new file mode 100644 index 0000000..d175828 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/wallet/UpBankActivity.java @@ -0,0 +1,171 @@ +package com.arpa.hndahesudintocctmsdriver.ui.wallet; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Message; +import android.text.TextUtils; +import android.util.Log; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.Nullable; + +import com.bumptech.glide.Glide; +import com.google.gson.Gson; +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.bean.BaseBean; +import com.arpa.hndahesudintocctmsdriver.bean.OCRBankBean; +import com.arpa.hndahesudintocctmsdriver.request.OCRRequest; +import com.arpa.hndahesudintocctmsdriver.request.WalletRequest; +import com.arpa.hndahesudintocctmsdriver.request.bean.InsBankInputBean; +import com.arpa.hndahesudintocctmsdriver.util.img.GetImageAlert; +import com.arpa.hndahesudintocctmsdriver.util.alert.CustomDialog; +import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; +import com.arpa.hndahesudintocctmsdriver.util.file.ImageFileCompressUtil; +import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants; +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseAppCompatActivity; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.entity.LocalMedia; + +import java.io.File; +import java.util.List; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/26 19:06 + * @description: + */ +public class UpBankActivity extends BaseAppCompatActivity { + + private ImageView up_bank_img; + private EditText bank_name,bank_number; + private TextView submit; + private ImageView return_btn; + public GetImageAlert gia=new GetImageAlert(); + String path; + private OCRBankBean ib; + private WalletRequest qr; + private TextView tp; + + @Override + public void msgMethod(Message m) { + super.msgMethod(m); + switch (m.what){ + case RequsetCodeConstants.SUCCESS: + if (CacheGroup.cacheList.get("OCR_BANK")!=null) { + ib=new Gson().fromJson(CacheGroup.cacheList.get("OCR_BANK"),OCRBankBean.class); + if(ib.getCode()==200){ + initView(null); + customDialog.dismiss(); + WalletFragment.isInsBank=true; + }else{ + Toast.makeText(con,ib.getMsg(),Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove("OCR_BANK"); + } + if(CacheGroup.cacheList.get("insBank")!=null){ + BaseBean bb=new Gson().fromJson(CacheGroup.cacheList.get("insBank"),BaseBean.class); + if(bb.getCode()==200){ + Toast.makeText(con,"绑定成功",Toast.LENGTH_SHORT).show(); + finish(); + }else{ + Toast.makeText(con,bb.getMsg(),Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove("insBank"); + } + break; + case ImageFileCompressUtil.COMPRESS_SUCCESS: + customDialog=new CustomDialog(con, "上传识别中..."); + customDialog.show(); + path = (String) m.obj; + new OCRRequest().ORCBank(con,hd,new File(path)); + break; + } + } + + private CustomDialog customDialog; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + StateStyleUtil.stateTextColor(this); + setContentView(R.layout.activity_bank_auth); + act=this; + con=this; + up_bank_img=findViewById(R.id.up_bank_img); + bank_name=findViewById(R.id.bank_name); + bank_number=findViewById(R.id.bank_number); + submit=findViewById(R.id.submit); + return_btn=findViewById(R.id.return_btn); + qr=new WalletRequest(con,hd); + up_bank_img.setOnClickListener(v -> { + gia.showPopueWindow(this); + }); + submit.setOnClickListener(v -> { + if(ib!=null){ + submit(); + }else{ + Toast.makeText(con,"请先上传图片",Toast.LENGTH_SHORT).show(); + } + }); + return_btn.setOnClickListener(v -> { + finish(); + }); + } + + @Override + public void initView(Object obj) { + super.initView(obj); + bank_name.setText(ib.getData().getBankName()); + bank_number.setText(ib.getData().getBankCardNumber()); + Glide.with(con).load(ib.getData().getUrl()).into(up_bank_img); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == 12 && resultCode == RESULT_OK) { + 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 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 submit(){ + String bankName=bank_name.getText().toString().trim(); + String bankNumber=bank_number.getText().toString().trim(); + if("".equals(bankName) || "".equals(bankNumber)){ + Toast.makeText(con,"请先补充完整的银行卡信息",Toast.LENGTH_LONG).show(); + return; + } + InsBankInputBean ibib =new InsBankInputBean(); + ibib.setCardNo(bankNumber); + ibib.setCardType(Integer.parseInt(ib.getData().getBankCardType())); + ibib.setBankName(bankName); + ibib.setCardUserType(1); + ibib.setImageId(ib.getData().getId()); + Log.e("-res-",new Gson().toJson(ibib)); + qr.insBankCard(ibib); + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/wallet/WalletFragment.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/wallet/WalletFragment.java new file mode 100644 index 0000000..f6480b7 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/wallet/WalletFragment.java @@ -0,0 +1,319 @@ +package com.arpa.hndahesudintocctmsdriver.ui.wallet; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Message; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import com.arpa.hndahesudintocctmsdriver.parts.UserParts; +import com.google.gson.Gson; +import com.lxj.xpopup.XPopup; +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.bean.BankCardListBean; +import com.arpa.hndahesudintocctmsdriver.bean.BaseBean; +import com.arpa.hndahesudintocctmsdriver.bean.ContractsBean; +import com.arpa.hndahesudintocctmsdriver.bean.UserBean; +import com.arpa.hndahesudintocctmsdriver.request.WalletRequest; +import com.arpa.hndahesudintocctmsdriver.request.UserRequset; +import com.arpa.hndahesudintocctmsdriver.ui.home.OrderAllActivity; +import com.arpa.hndahesudintocctmsdriver.util.string.StringUtil; +import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; +import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseFragment; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView; + +import org.jetbrains.annotations.NotNull; + +public class WalletFragment extends BaseFragment{ + + public static UserBean userBean; + private BankCardListBean bcb; + private ContractsBean cb; + private UserBean ub; + private Gson gson=new Gson(); + private UserRequset ur; + private WalletRequest qr; + public static TextView account; + + @Override + public void msgMethod(Message m) { + switch (m.what){ + case -1: + refreshLayout.finishRefresh(); + break; + case RequsetCodeConstants.SUCCESS: + refreshLayout.finishRefresh(); + //银行卡信息接收 + if(CacheGroup.cacheList.get(dataName2)!=null){ + bcb=new Gson().fromJson(CacheGroup.cacheList.get(dataName2), BankCardListBean.class); + if(bcb.getCode()==200){ + initBack(); + }else{ + Toast.makeText(con,bcb.getMsg(),Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove(dataName2); + } + //电子账户信息接收 + if (CacheGroup.cacheList.get("getContracts")!=null) { + cb=new Gson().fromJson(CacheGroup.cacheList.get("getContracts"), ContractsBean.class); + if(cb.getCode()==200){ + initContracts(); + }else{ + Toast.makeText(con,cb.getMsg(),Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove("getContracts"); + } + //用户信息接收 + if(CacheGroup.cacheList.get("userdata")!=null){ + userBean=gson.fromJson(CacheGroup.cacheList.get("userdata"), UserBean.class); + if(userBean.getCode()==200){ + UserParts.setUser(con,userBean); + initUser(); + }else{ + Toast.makeText(con,userBean.getMsg(),Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove("userdata"); + } + //删除银行卡返回信息接收 + if(CacheGroup.cacheList.get("bankdelete")!=null){ + BaseBean bb=new Gson().fromJson(CacheGroup.cacheList.get("bankdelete"),BaseBean.class); + if(bb.getCode()==200){ + Toast.makeText(con,"删除银行卡成功",Toast.LENGTH_SHORT).show(); + refreshLayout.autoRefresh(); + }else{ + Toast.makeText(con,StringUtil.isNull(bb.getMsg(),"出现错误"),Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove("bankdelete"); + } + //开通电子账户返回信息接收 + if(CacheGroup.cacheList.get("addContracts")!=null){ + BaseBean bb=new Gson().fromJson(CacheGroup.cacheList.get("addContracts"),BaseBean.class); + if(bb.getCode()==200){ + Toast.makeText(con,"电子账户开通成功",Toast.LENGTH_SHORT).show(); + refreshLayout.autoRefresh(); + }else{ + Toast.makeText(con,bb.getMsg(),Toast.LENGTH_SHORT).show(); + } + CacheGroup.cacheList.remove("addContracts"); + } + break; + case 502: + refreshLayout.finishRefresh(); + Toast.makeText(con,"502",Toast.LENGTH_SHORT).show(); + break; + default:break; + } + } + + private BaseRecyclerView rv; + + @Nullable + @org.jetbrains.annotations.Nullable + @Override + public View onCreateView(@NonNull @NotNull LayoutInflater inflater, @Nullable @org.jetbrains.annotations.Nullable ViewGroup container, @Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) { + root=inflater.inflate(R.layout.fragmengt_qianbao,container,false); + dataName2="bcb"; + con=root.getContext(); + rv=root.findViewById(R.id.rv); + ur=new UserRequset(con,hd); + qr=new WalletRequest(con,hd); + initId(); + initView(null); + initRefreshLoad(); + return root; + } + + //加载和刷新 + public void initRefreshLoad(){ + refreshLayout=root.findViewById(R.id.srl); + refreshLayout.setOnRefreshListener(refreshLayout -> { + Log.e("下拉刷新","pps"); + qr.getBankCardList(); + qr.getContracts(); + ur.User(); + }); + refreshLayout.autoRefresh(); + } + + private TextView bank_title_1,bank_title_2,bank_number,bank2_number; + private ImageView bank_add,bank_add2,bank_right,bank2_right,bank_remove,tixian; + private RelativeLayout explain,orderAll; + + //绑定id + public void initId(){ + account=root.findViewById(R.id.account); + bank_title_1=root.findViewById(R.id.bank_title_1); + bank_title_2=root.findViewById(R.id.bank_title_2); + bank_add=root.findViewById(R.id.bank_add); + bank_add2=root.findViewById(R.id.bank_add2); + bank_right=root.findViewById(R.id.bank_right); + bank2_right=root.findViewById(R.id.bank2_right); + bank_number=root.findViewById(R.id.bank_number); + bank2_number=root.findViewById(R.id.bank2_number); + tixian=root.findViewById(R.id.tixian); + explain=root.findViewById(R.id.explain); + orderAll=root.findViewById(R.id.orderAll); + bank_remove=root.findViewById(R.id.bank_remove); + //提现 + tixian.setOnClickListener(v -> { + if(bcb.getData().getRecords().size()>0){ + Intent in=new Intent(con, WithdrawalActivity.class); + in.putExtra("money",userBean.getData().getAccount()); + in.putExtra("bankList",new Gson().toJson(bcb)); + startActivity(in); + }else{ + Toast.makeText(con,"请先绑定银行卡",Toast.LENGTH_SHORT).show(); + } + }); + //好运值说明 + explain.setOnClickListener(v -> { + new XPopup.Builder(con) + .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 + .asConfirm("好运值说明", "好运值是您在大河好运网络货运平台所赚取的运费总额,包括已提现到银行卡的金额和未提现的电子账户余额。", + "取消", "确认", + () -> Log.e("1","1"), null, false, R.layout.alert_close) //最后一个参数绑定已有布局 + .show(); + }); + //运单量 + orderAll.setOnClickListener(v -> { + Intent in=new Intent(con, OrderAllActivity.class); + startActivity(in); + }); + //添加银行卡 + bank_add.setOnClickListener(v -> { + Intent in=new Intent(con,UpBankActivity.class); + startActivity(in); + }); + //添加电子账户 + bank_add2.setOnClickListener(v -> { + new XPopup.Builder(con) + .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 + .asConfirm("请确认", "是否确定开通浦发银行电子账户?", + "取消", "确认", + () ->qr.addContracts(), null, false, R.layout.alert_ok_cancel) //最后一个参数绑定已有布局 + .show(); + }); + //解绑银行卡 + bank_remove.setOnClickListener(v -> new XPopup.Builder(con) + .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 + .asConfirm("请确认", "是否确定删除此银行卡?", + "取消", "确认", + () -> qr.deleteBankCard(bcb.getData().getRecords().get(0).getId()), null, false, R.layout.alert_ok_cancel) //最后一个参数绑定已有布局 + .show()); + + } + + //初始化账户信息 + public void initUser(){ + if(userBean.getData()!=null){ + account.setText(StringUtil.isNull(userBean.getData().getAccount(),"0")); + } + } + + //初始化银行卡信息 + public void initBack(){ + if(bcb.getData() !=null && bcb.getData().getRecords()!=null && bcb.getData().getRecords().size()>=1){ + bank_title_1.setText(bcb.getData().getRecords().get(0).getBankName()); + bank_number.setText(bcb.getData().getRecords().get(0).getCardNo()); + bank_number.setVisibility(View.VISIBLE); + bank_add.setVisibility(View.GONE); + bank_remove.setVisibility(View.VISIBLE); + } else{ + bank_number.setVisibility(View.GONE); + bank_add.setVisibility(View.VISIBLE); + bank_remove.setVisibility(View.GONE); + } + } + + //初始化电子账户信息 + public void initContracts(){ + if(cb.getData()!=null && !StringUtil.isNull(cb.getData().getChildAcctNo(),"").equals("")) { + bank_title_2.setText("浦发银行电子账户"); + bank2_number.setText(cb.getData().getChildAcctNo()); + bank2_number.setVisibility(View.VISIBLE); + bank_add2.setVisibility(View.GONE); + } + } + + public static boolean isInsBank=false; + + @Override + public void onResume() { + super.onResume(); + if (isInsBank) { + isInsBank=false; + refreshLayout.autoRefresh(); + } + } + + boolean iscon=false; + + class model{ } + +// //去提现 +// public void withdrawal(View v){ +// if(bcb.getData().getRecords().size()>0){ +// Intent in=new Intent(con, WithdrawalActivity.class); +// in.putExtra("money",userBean.getData().getAccount()); +// in.putExtra("bankList",new Gson().toJson(bcb)); +// startActivity(in); +// }else{ +// Toast.makeText(con,"请先绑定银行卡",Toast.LENGTH_SHORT).show(); +// } +// } +// +// //好运值说明 +// public void explain(View v){ +// new XPopup.Builder(con) +// .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 +// .asConfirm("好运值说明", "好运值是您在大河好运网络货运平台所赚取的运费总额,包括已提现到银行卡的金额和未提现的电子账户余额。", +// "取消", "确认", +// () -> Log.e("1","1"), null, false, R.layout.alert_close) //最后一个参数绑定已有布局 +// .show(); +// } +// +// //运单量 +// public void myOrder(View v){ +// Intent in=new Intent(con, OrderAllActivity.class); +// startActivity(in); +// } +// +// +// //添加银行卡 +// public void addBank(View v){ +// Intent in=new Intent(con,UpBankActivity.class); +// startActivity(in); +// } +// +// //添加电子账户 +// public void addContracts(View v){ +// new XPopup.Builder(con) +// .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 +// .asConfirm("请确认", "是否确定开通浦发银行电子账户?", +// "取消", "确认", +// () ->new QianBaoRequest().addContracts(con,hd), null, false, R.layout.alert_ok_cancel) //最后一个参数绑定已有布局 +// .show(); +// } +// +// //解绑银行卡 +// public void removeBank(View v){ +// new XPopup.Builder(con) +// .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 +// .asConfirm("请确认", "是否确定删除此银行卡?", +// "取消", "确认", +// () -> new QianBaoRequest().deleteBankCard(con,hd,bcb.getData().getRecords().get(0).getId()), null, false, R.layout.alert_ok_cancel) //最后一个参数绑定已有布局 +// .show(); +// } + + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/wallet/WithdrawalActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/wallet/WithdrawalActivity.java new file mode 100644 index 0000000..38cf0e0 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/wallet/WithdrawalActivity.java @@ -0,0 +1,274 @@ +package com.arpa.hndahesudintocctmsdriver.ui.wallet; + +import android.os.Bundle; +import android.os.Message; +import android.text.Editable; +import android.text.InputFilter; +import android.text.TextWatcher; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ImageButton; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.Nullable; + +import com.arpa.hndahesudintocctmsdriver.bean.ConfigRecordBean; +import com.arpa.hndahesudintocctmsdriver.parts.UserParts; +import com.arpa.hndahesudintocctmsdriver.weight.pop.CenterPop; +import com.google.gson.Gson; +import com.lxj.xpopup.XPopup; +import com.lxj.xpopup.interfaces.OnCancelListener; +import com.lxj.xpopup.interfaces.OnConfirmListener; +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.bean.BankCardListBean; +import com.arpa.hndahesudintocctmsdriver.bean.BaseBean; +import com.arpa.hndahesudintocctmsdriver.bean.ChangeRecordBean; +import com.arpa.hndahesudintocctmsdriver.bean.UserBean; +import com.arpa.hndahesudintocctmsdriver.request.WalletRequest; +import com.arpa.hndahesudintocctmsdriver.util.edit.CashierInputFilter; +import com.arpa.hndahesudintocctmsdriver.util.adapter.ManyBean; +import com.arpa.hndahesudintocctmsdriver.util.alert.CustomDialog; +import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; +import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants; +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StatusBarUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseRecyclerView; +import com.scwang.smart.refresh.layout.SmartRefreshLayout; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +public class WithdrawalActivity extends BaseActivity { + + private BaseRecyclerView rv, record_brv; + private SmartRefreshLayout srl; + private TextView tvFl; + String moneys = "0"; + String moneyOld = "0"; + private BankCardListBean bcb; + private int index = 0; + private int bid = 0; + private CustomDialog cd; + private ChangeRecordBean crb; + private ConfigRecordBean config; + private WalletRequest qr; + + @Override + public void msgMethod(Message m) { + super.msgMethod(m); + switch (m.what) { + case RequsetCodeConstants.SUCCESS: + if (CacheGroup.cacheList.get("tixian") != null) { + cd.dismiss(); + BaseBean bb = new Gson().fromJson(CacheGroup.cacheList.get("tixian"), BaseBean.class); + if (bb.getCode() == 200) { + Toast.makeText(con, "提现成功", Toast.LENGTH_SHORT).show(); + UserBean ub = UserParts.getUser(con); + UserBean.DataDTO data = ub.getData(); + //BigDecimal + String s = new BigDecimal(data.getAccount()).subtract(new BigDecimal(moneys)).toString(); + ub.getData().setAccount(s); + UserParts.setUser(con, ub); + finish(); + } else { + if (con != null) { + Toast.makeText(con, bb.getMsg(), Toast.LENGTH_SHORT).show(); + } + } + CacheGroup.cacheList.remove("tixian"); + } + if (CacheGroup.cacheList.get("change") != null) { + srl.finishRefresh(); + crb = new Gson().fromJson(CacheGroup.cacheList.get("change"), ChangeRecordBean.class); + if (crb.getCode() == 200) { + initRecored(); + } else { + Toast.makeText(con, crb.getMsg(), Toast.LENGTH_LONG).show(); + } + CacheGroup.cacheList.remove("change"); + } + if (CacheGroup.cacheList.get("charge") != null) { + ConfigRecordBean charge = new Gson().fromJson(CacheGroup.cacheList.get("charge"), ConfigRecordBean.class); + if (charge.getCode() == 200) { + charge.getData().setAmount(moneys); + new XPopup.Builder(act).asCustom(new CenterPop(act, charge.getData()).setOnOkListener(item -> { + cd = new CustomDialog(con, "提现中", true); + cd.show(); + qr.takeMoney(bid + "", moneys); + })).show(); + } else { + Toast.makeText(con, crb.getMsg(), Toast.LENGTH_LONG).show(); + } + CacheGroup.cacheList.remove("charge"); + } + + + if (CacheGroup.cacheList.get("config") != null) { + config = new Gson().fromJson(CacheGroup.cacheList.get("config"), ConfigRecordBean.class); + if (config.getCode() == 200) { + String minCharge = config.getData().getMinCharge(); + double v = Double.parseDouble(minCharge) / 100; + tvFl.setText(config.getData().getChargeRate() + "% (最低¥" + v + "0)"); + } else { + Toast.makeText(con, crb.getMsg(), Toast.LENGTH_LONG).show(); + } + CacheGroup.cacheList.remove("config"); + } + break; + default: + break; + } + } + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + StatusBarUtil.touming(getWindow()); + setContentView(R.layout.qianbao_tixian); + con = this; + act = this; + rv = findViewById(R.id.rv); + moneys = getIntent().getExtras().getString("money"); + moneyOld = moneys; + //BigDecimal + bcb = new Gson().fromJson(getIntent().getExtras().getString("bankList"), BankCardListBean.class); + bid = bcb.getData().getRecords().get(0).getId(); + qr = new WalletRequest(con, hd); + qr.changeRecord(); + qr.config(); + initView(null); + } + + @Override + public void initView(Object obj) { + super.initView(obj); + ImageButton return_btn = findViewById(R.id.return_btn); + record_brv = findViewById(R.id.record_brv); + + tvFl = findViewById(R.id.tvFl); + EditText money = findViewById(R.id.money); + InputFilter[] filters = {new CashierInputFilter()}; + money.setFilters(filters); + money.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + String str = String.valueOf(money.getText()); + if (str.indexOf(".") == 0) { + str = 0 + str; + money.setText(str); + } +// qr.charge(str); + } + + @Override + public void afterTextChanged(Editable s) { + + } + }); + TextView tx_name = findViewById(R.id.tx_name); + Button tx = findViewById(R.id.tx); + tx.setOnClickListener(v1 -> { + moneys = money.getText() + ""; + if (Double.parseDouble(moneys) > 0) { + if (Double.parseDouble(moneys) <= Double.parseDouble(moneyOld)) { + qr.charge(moneys); +// new XPopup.Builder(act) +// .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 +// .asConfirm("提现确认", "您确认将账户中的"+moneys+"元提现到当前银行卡中?", +// "取消", "确认", +// new OnConfirmListener() { +// @Override +// public void onConfirm() { +// cd=new CustomDialog(con,"提现中",true); +// cd.show(); +// qr.takeMoney(bid+"",moneys); +// } +// } +// , new OnCancelListener() { +// @Override +// public void onCancel() { +// +// } +// }, false, R.layout.alert_ok_cancel) //最后一个参数绑定已有布局 +// .show(); + } else { + Toast.makeText(con, "余额不足", Toast.LENGTH_SHORT).show(); + } + } else { + Toast.makeText(con, "提现金额必须大于0", Toast.LENGTH_SHORT).show(); + } + }); + return_btn.setOnClickListener(v12 -> { + finish(); + }); + money.setText(moneys + ""); + String ka = bcb.getData().getRecords().get(index).getCardNo(); + tx_name.setText("提现到\n" + bcb.getData().getRecords().get(index).getBankName() + ka.substring(ka.length() - 4)); + + initRefreshLoad(); +// List list=new ArrayList<>(); +// list.add(bcb.getData().getRecords().get(index)); +// rv.createV(con,list,R.layout.qianbao_tixian).setOnItemViewListener((position, o, v) -> { +// }); + } + + //加载和刷新 + public void initRefreshLoad(){ + srl=findViewById(R.id.srl); + srl.setOnRefreshListener(refreshLayout -> { + Log.e("下拉刷新","pps"); + qr.changeRecord(); + +// if("".equals(carId)){ +// initView(null); +// refreshLayout.finishRefresh(); +// }else{ +// ur.vehicleDel(carId); +// } + }); +// srl.autoRefresh(); + } + + public void initRecored() { + List list = new ArrayList<>(); + for (ChangeRecordBean.DataDTO datum : crb.getData()) { + list.add(new ManyBean(datum, R.layout.item_record)); + } + if (list.size() == 0) { + list.add(new ManyBean(new model(), R.layout.item_empty)); + } + record_brv.creates(con, list).setOnItemViewListener((position, o, v, layout) -> { + switch (layout) { + case R.layout.item_empty: + TextView que_text = v.findViewById(R.id.que_text); + que_text.setText("暂时没有提现记录哦"); + break; + case R.layout.item_record: + ChangeRecordBean.DataDTO item = (ChangeRecordBean.DataDTO)o; + TextView tvDzje = v.findViewById(R.id.tvDzje); + TextView tvFwf = v.findViewById(R.id.tvFwf); + + tvDzje.setText("到账金额: ¥"+item.getGldYldAmt()); + tvFwf.setText("服务费: ¥"+item.getCharges()); + + + break; + default: + break; + + } + }); + } + + class model { + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/web/WebActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/web/WebActivity.java new file mode 100644 index 0000000..d09b065 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/web/WebActivity.java @@ -0,0 +1,199 @@ +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.os.Bundle; +import android.util.Log; +import android.webkit.JavascriptInterface; +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.string.StringUtil; +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/6 16:48 + * @description:访问webview的activity + */ +public class WebActivity 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(android.os.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"); + 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 url) { + //返回值是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; + } + wv.loadUrl(url); + return true; + } + }); + 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而不是products,products是旧版本的参数,用错地址将不能成功提交 */ + 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 + 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 UserParts.getUser(con).getData().getToken(); + } + + @JavascriptInterface + public void isSuccess(){ + finish(); + } + + } + + +} + diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/web/WebKfActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/web/WebKfActivity.java new file mode 100644 index 0000000..e48ec21 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/web/WebKfActivity.java @@ -0,0 +1,178 @@ +package com.arpa.hndahesudintocctmsdriver.ui.web; + +import android.app.Activity; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.net.Uri; +import android.os.Bundle; +import android.os.Environment; +import android.os.Parcelable; +import android.provider.MediaStore; +import android.util.Log; +import android.webkit.ValueCallback; +import android.webkit.WebChromeClient; +import android.webkit.WebResourceRequest; +import android.webkit.WebSettings; +import android.webkit.WebView; +import android.webkit.WebViewClient; + +import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; + +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StateStyleUtil; +import com.arpa.hndahesudintocctmsdriver.util.statusbar.StatusBar; +import com.arpa.hndahesudintocctmsdriver.util.view.BaseActivity; + +import java.io.File; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/11/17 16:50 + * @description: + */ +public class WebKfActivity extends BaseActivity { + + private WebView wv; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); +// StateStyleUtil.stateTextColor(this); + StatusBar.setStatusBarColor(this, ContextCompat.getColor(this, R.color.tab_top_web), 0); + setContentView(R.layout.activity_kf); + con=this; + initHardwareAccelerate(); + wv = findViewById(R.id.wv); + initView(null); + } + + private void initHardwareAccelerate() { + try { + if (Integer.parseInt(android.os.Build.VERSION.SDK) >= 11) { + getWindow().setFlags( + android.view.WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED, + android.view.WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED); + } + } catch (Exception e) { + } + } + + private ValueCallback mUploadMessage; + + private Uri imageUri; + + @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); + + //WebView加载web资源 + wv.loadUrl("https://www.v5kf.com/public/chat/chat?sid=187123&entry=5&ref=link&accountid=2daf303016ed4"); + //覆盖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 url) { + 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; + } + wv.loadUrl(url); + return true; + } + }); + wv.setWebChromeClient(new WebChromeClient() { + // For Android 3.0+ + public void openFileChooser(ValueCallback uploadMsg) { + mUploadMessage = uploadMsg; + + File imageStorageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "TestApp"); + if (!imageStorageDir.exists()) { + imageStorageDir.mkdirs(); + } + File file = new File(imageStorageDir + File.separator + "IMG_" + String.valueOf(System.currentTimeMillis()) + ".jpg"); + imageUri = Uri.fromFile(file); // save to the private variable + + final Intent captureIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); + captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); + + Intent i = new Intent(Intent.ACTION_GET_CONTENT); + i.addCategory(Intent.CATEGORY_OPENABLE); + i.setType("image/*"); + + Intent Photo = new Intent(Intent.ACTION_PICK, + android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); + + Intent chooserIntent = Intent.createChooser(i, "Image Chooser"); + chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Parcelable[] { captureIntent, Photo }); + + startActivityForResult(chooserIntent, 11); + } + + // For Android 3.0+ + public void openFileChooser(ValueCallback uploadMsg, String acceptType) { + openFileChooser(uploadMsg); + } + + // For Android 4.1 + public void openFileChooser(ValueCallback uploadMsg, + String acceptType, String capture) { + openFileChooser(uploadMsg); + } + }); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent intent) { + if (requestCode == 11) { + if (null == this.mUploadMessage) { + return; + } + + Uri result; + if (resultCode != Activity.RESULT_OK) { + result = null; + } else { + result = intent == null ? this.imageUri : intent.getData(); // retrieve from the private variable if the intent is null + } + + this.mUploadMessage.onReceiveValue(result); + this.mUploadMessage = null; + } + } + + +// ** +// * 调用相机 +// */ + + + + + @Override + protected void onDestroy() { + super.onDestroy(); + } + + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/Base64Util.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/Base64Util.java new file mode 100644 index 0000000..d733ff0 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/Base64Util.java @@ -0,0 +1,37 @@ +package com.arpa.hndahesudintocctmsdriver.util; + +import android.os.Build; + +import androidx.annotation.RequiresApi; + +import java.util.Base64; + +/** + * @author hlh + * @version 1.0.0 + * @date 2022/1/25 17:22 + * @description: + */ +public class Base64Util { + + @RequiresApi(api = Build.VERSION_CODES.O) + public static void base64(String str) { + byte[] bytes = str.getBytes(); + + //Base64 加密 + String encoded = Base64.getEncoder().encodeToString(bytes); + System.out.println("Base 64 加密后:" + encoded); + + //Base64 解密 + byte[] decoded = Base64.getDecoder().decode(encoded); + + String decodeStr = new String(decoded); + System.out.println("Base 64 解密后:" + decodeStr); + + System.out.println(); + + + } + + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/BitmapUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/BitmapUtil.java new file mode 100644 index 0000000..43caee4 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/BitmapUtil.java @@ -0,0 +1,664 @@ +package com.arpa.hndahesudintocctmsdriver.util; + +import android.content.Context; +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Matrix; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; +import android.media.ExifInterface; +import android.text.TextUtils; +import android.util.Base64; +import android.webkit.WebView; +import android.widget.ImageView; +import android.widget.ScrollView; + +import androidx.annotation.DrawableRes; +import androidx.annotation.Nullable; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.DataSource; +import com.bumptech.glide.load.engine.DiskCacheStrategy; +import com.bumptech.glide.load.engine.GlideException; +import com.bumptech.glide.load.resource.bitmap.CenterCrop; +import com.bumptech.glide.load.resource.bitmap.RoundedCorners; +import com.bumptech.glide.request.RequestListener; +import com.bumptech.glide.request.RequestOptions; +import com.bumptech.glide.request.target.SimpleTarget; +import com.bumptech.glide.request.target.Target; + +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; + +/** + * @author hlh + * @version 1.0.0 + * @date 2022/3/7 17:55 + * @description: + */ +public class BitmapUtil { + + private static RequestOptions options; + + static { + initOptions(); + } + + private static void initOptions() { + options = new RequestOptions() +// .placeholder(R.drawable.ic_image_default) //加载成功之前占位图 +// .error(R.drawable.ic_image_default) //加载错误之后的错误图 + .dontAnimate() +// .override(400,400) //指定图片的尺寸 + //指定图片的缩放类型为fitCenter (等比例缩放图片,宽或者是高等于ImageView的宽或者是高。) +// .fitCenter() + //指定图片的缩放类型为centerCrop (等比例缩放图片,直到图片的狂高都大于等于ImageView的宽度,然后截取中间的显示。) +// .centerCrop()//指定图片的缩放类型为centerCrop +// .circleCrop()//指定图片为圆形 +// .skipMemoryCache(true) //跳过内存缓存 + .diskCacheStrategy(DiskCacheStrategy.ALL); //缓存所有版本的图像 +// .diskCacheStrategy(DiskCacheStrategy.NONE) //跳过磁盘缓存 +// .diskCacheStrategy(DiskCacheStrategy.DATA) //只缓存原来分辨率的图片 +// .diskCacheStrategy(DiskCacheStrategy.RESOURCE); //只缓存最终的图片 + } + + private static RequestOptions buildOptions(@DrawableRes int res) { + RequestOptions options = new RequestOptions() + .placeholder(res) //加载成功之前占位图 + .error(res) //加载错误之后的错误图 + .dontAnimate() + .diskCacheStrategy(DiskCacheStrategy.ALL); + return options; + } + + /** + * 显示gif + * + * @param context + * @param url + * @param imageView + */ + public static void showGIF(Context context, String url, ImageView imageView) { + Glide.with(context) + .asGif() + .load(url) + .apply(options) + .into(imageView); + } + + /** + * 显示gif,自定义默认图 + * + * @param context + * @param url + * @param res + * @param imageView + */ + public static void showGIF(Context context, String url, @DrawableRes int res, ImageView imageView) { + Glide.with(context) + .asGif() + .load(url) + .apply(buildOptions(res)) + .into(imageView); + } + + /** + * 显示图片,自定义option + * + * @param context + * @param url + * @param imageView + */ + public static void showImage(Context context, String url, RequestOptions options, ImageView imageView) { + Glide.with(context) + .load(url) + .apply(options) + .into(imageView); + } + + /** + * 显示图片,先显示默认图 + * + * @param context + * @param url + * @param imageView + */ + public static void showImage(Context context, String url, ImageView imageView) { + Glide.with(context) + .load(url) + .apply(options) + .into(imageView); + } + + /** + * 显示图片,先显示默认图 + * + * @param context + * @param url + * @param imageView + */ + public static void showImage(Context context, String url, ImageView imageView, RequestListener callback) { + Glide.with(context) + .load(url) + .apply(options) + .listener(callback) + .into(imageView); + } + + + /** + * 显示图片,先显示默认图 + * + * @param context + * @param url + * @param imageView + */ + public static void showRadiusImage(Context context, String url, int radius, ImageView imageView) { + + +// RequestOptions options = new RequestOptions().transform(new CenterCrop(), new RoundedCorners(DisplayUtil.dipToPixel(radius))); +// options +// .dontAnimate() +// .diskCacheStrategy(DiskCacheStrategy.ALL); +// +// Glide.with(context) +// .load(url) +// .apply(options) +// .into(imageView); + + } + + /** + * 显示图片,自己设定默认图 + * + * @param context + * @param url + * @param imageView + */ + public static void showImage(Context context, String url, @DrawableRes int placeholder, ImageView imageView) { + Glide.with(context) + .asBitmap().fitCenter() + .load(url) + .apply(buildOptions(placeholder)) + .into(imageView); + +// LogUtils.d(AppConstants.LOG_TAG_PIC, "图片url = " + (!TextUtils.isEmpty(url) ? url : "url为空")); + } + + /** + * 加载本地图片 + * + * @param url + * @return + */ + public static Bitmap getLocalBitmap(String url) { + try { + BitmapFactory.Options options = new BitmapFactory.Options(); + options.inJustDecodeBounds = true; + BitmapFactory.decodeFile(url, options); + //计算采样率 + options.inSampleSize = calculateInSampleSize(options, 768, 1024); + options.inJustDecodeBounds = false; + options.inPreferredConfig = Bitmap.Config.RGB_565; + Bitmap bitmap = BitmapFactory.decodeFile(url, options); + //旋转图片 + int d = getPictureDegree(url); + if (d != 0) { + bitmap = rotateBitmap(bitmap, d); + } + return bitmap; + } catch (OutOfMemoryError e) { + e.printStackTrace(); + return null; + } + } + + public static void getCacheImage(Context context, String imgUrl, SimpleTarget callback) { + Glide.with(context).asBitmap().load(imgUrl).into(callback); + } + + /** + * 将文件生成Drawable + * + * @param path + * @return + */ + public static Drawable getDrawable(String path) { + Drawable bd = BitmapDrawable.createFromPath(path); + return bd; + } + + /** + * 返回Bitmap显示像素所占位数 + * + * @param config + * @return + */ + public static int getBytesPerPixel(Bitmap.Config config) { + if (config == Bitmap.Config.ARGB_8888) { + return 4; + } else if (config == Bitmap.Config.RGB_565) { + return 2; + } else if (config == Bitmap.Config.ARGB_4444) { + return 2; + } else if (config == Bitmap.Config.ALPHA_8) { + return 1; + } + return 1; + } + + /** + * 获取图片旋转角度 + * + * @param path + * @return + */ + public static int getPictureDegree(String path) { + int degree = 0; + try { + ExifInterface exifInterface = new ExifInterface(path); + int orientation = exifInterface.getAttributeInt( + ExifInterface.TAG_ORIENTATION, + ExifInterface.ORIENTATION_NORMAL); + switch (orientation) { + case ExifInterface.ORIENTATION_ROTATE_90: + degree = 90; + break; + case ExifInterface.ORIENTATION_ROTATE_180: + degree = 180; + break; + case ExifInterface.ORIENTATION_ROTATE_270: + degree = 270; + break; + } + } catch (IOException e) { + e.printStackTrace(); + } + return degree; + } + + /** + * 计算图片的缩放值 + * + * @param options + * @param reqWidth + * @param reqHeight + * @return + */ + public static int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight) { + final int height = options.outHeight; + final int width = options.outWidth; + int inSampleSize = 1; + + if (height > reqHeight || width > reqWidth) { + final int heightRatio = Math.round((float) height / (float) reqHeight); + final int widthRatio = Math.round((float) width / (float) reqWidth); + inSampleSize = heightRatio < widthRatio ? heightRatio : widthRatio; + } + return inSampleSize; + } + + /** + * 旋转图片 + * + * @param bitmap + * @param degree + * @return + */ + public static Bitmap rotateBitmap(Bitmap bitmap, int degree) { + if (bitmap != null) { + Matrix m = new Matrix(); + m.postRotate(degree); + bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), m, true); + return bitmap; + } + return bitmap; + } + + /** + * 保存Bitmap为文件 + * + * @param bitmap + * @param path + * @param fileName + * @return + */ + public static File saveBitmap(Bitmap bitmap, String path, String fileName) { + FileOutputStream outputStream = null; + try { + File mFolder = new File(path); + if (!mFolder.exists()) { + mFolder.mkdirs(); + } + File file = new File(mFolder, fileName); + outputStream = new FileOutputStream(file); + bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream); + outputStream.flush(); + outputStream.close(); + bitmap.recycle(); + return file; + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + /** + * 给定宽高,根据宽高计算采样率压缩图片 并 旋转图片 + * + * @param photoPath 原图片路径 + * @param reqWidth 要求的宽 + * @param reqHeight 要求的高 + * @return + */ + public static Bitmap zipBitmapWithReq(String photoPath, int reqWidth, int reqHeight) { + // 压缩图片 + BitmapFactory.Options opts = new BitmapFactory.Options(); + opts.inJustDecodeBounds = true; + BitmapFactory.decodeFile(photoPath, opts); + opts.inSampleSize = BitmapUtil.calculateInSampleSize(opts, reqWidth, reqHeight); + opts.inJustDecodeBounds = false; + return BitmapFactory.decodeFile(photoPath, opts); + } + + /** + * 根据给定 质量百分比 压缩图片 + * + * @param bitmap + * @param quality 质量压缩比例(100为不压缩) + * @return + */ + public static Bitmap zipBitmapWithQuality(Bitmap bitmap, int quality) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + bitmap.compress(Bitmap.CompressFormat.JPEG, quality, baos); + byte[] bytes = baos.toByteArray(); + bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length); + return bitmap; + } + + /** + * 给定宽高,根据宽高计算采样率压缩图片并存为文件 + * + * @param photoPath 原图片路径 + * @param saveFilePath 压缩后图片保存路径 + * @param fileName 压缩后图片文件名 + * @param reqWidth 要求的宽 + * @param reqHeight 要求的高 + * @return + */ + public static File zipBitmapAndSave(String photoPath, String saveFilePath, String fileName, int reqWidth, int reqHeight) { + Bitmap bitmap = BitmapUtil.zipBitmapWithReq(photoPath, reqWidth, reqHeight); + // 旋转图片 + bitmap = BitmapUtil.rotateBitmap(bitmap, BitmapUtil.getPictureDegree(photoPath)); + return BitmapUtil.saveBitmap(bitmap, saveFilePath, fileName); + } + + /** + * 给定宽高,根据宽高计算采样率, + * 给定质量压缩比例 + * 多重压缩图片并存为文件 + * + * @param photoPath 原图片路径 + * @param saveFilePath 压缩后图片保存路径 + * @param fileName 压缩后图片文件名 + * @param reqWidth 要求的宽 + * @param reqHeight 要求的高 + * @param quality 质量压缩比例(100为不压缩) + * @return + */ + public static File zipBitmapMultiAndSave(String photoPath, String saveFilePath, String fileName, int reqWidth, int reqHeight, int quality) { + Bitmap bit = zipBitmapWithReq(photoPath, reqWidth, reqHeight); + bit = zipBitmapWithQuality(bit, quality); + // 旋转图片 + bit = BitmapUtil.rotateBitmap(bit, BitmapUtil.getPictureDegree(photoPath)); + return BitmapUtil.saveBitmap(bit, saveFilePath, fileName); + } + + /** + * 把Bitmap转Byte + */ + public static byte[] bitmap2Bytes(Bitmap bm) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + bm.compress(Bitmap.CompressFormat.PNG, 100, baos); + return baos.toByteArray(); + } + + /** + * 根据高度放大, 并显示中间部分 + * + * @param bitmap + * @param windowWidth + * @param windowHeight + * @return + */ + public static Bitmap compressBitmap(Bitmap bitmap, int windowWidth, int windowHeight) { + Matrix matrix = new Matrix(); + int bitmapWidth = bitmap.getWidth(); + int bitmapHeight = bitmap.getHeight(); + float scaleY = windowHeight > bitmapHeight ? Float.valueOf(windowHeight) / Float.valueOf(bitmapHeight) : 1.0f; + matrix.postScale(scaleY, scaleY); + int offsetX = scaleY > 1 ? (int) ((bitmapWidth * scaleY - bitmapWidth) / 2) : 0; + int showHeight = windowHeight > bitmapHeight ? windowHeight : bitmapHeight; + bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmapWidth, bitmapHeight, matrix, true); + try { + return Bitmap.createBitmap(bitmap, offsetX, 0, windowWidth, showHeight); + } catch (Exception e) { + + } + return bitmap; + } + + public static Bitmap getTransparentBitmap(Bitmap sourceImg, int number) { + int[] argb = new int[sourceImg.getWidth() * sourceImg.getHeight()]; + sourceImg.getPixels(argb, 0, sourceImg.getWidth(), 0, 0, sourceImg.getWidth(), sourceImg.getHeight());// 获得图片的ARGB值 + number = number * 255 / 100; + for (int i = 0; i < argb.length; i++) { + argb[i] = (number << 24) | (argb[i] & 0x00FFFFFF); + } + sourceImg = Bitmap.createBitmap(argb, sourceImg.getWidth(), sourceImg.getHeight(), Bitmap.Config.ARGB_8888); + return sourceImg; + } + + + /** + * 截取ScrollView显示内容 + * + * @param scrollView + * @return + */ + public static Bitmap getScrollViewBitmap(ScrollView scrollView) { + int h = 0; + Bitmap bitmap = null; + for (int i = 0; i < scrollView.getChildCount(); i++) { + h += scrollView.getChildAt(i).getHeight(); + scrollView.getChildAt(i).setBackgroundColor(Color.parseColor("#ffffff")); + } + bitmap = Bitmap.createBitmap(scrollView.getWidth(), h, Bitmap.Config.RGB_565); + final Canvas canvas = new Canvas(bitmap); + scrollView.draw(canvas); + return bitmap; + } + + + /** + * 截取WebView显示内容 + * + * @param webView + * @return + */ + public static Bitmap getWebViewBitmap(WebView webView) { + Bitmap bm = null; + try { + int height = (int) (webView.getContentHeight() * webView.getScale()); + int width = webView.getWidth(); + int pH = webView.getHeight(); + if(width <= 0){ + width = 100; + } + if(height <= 0){ + height = 100; + } + bm = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565); + Canvas canvas = new Canvas(bm); + int top = height; + while (top > 0) { + if (top < pH) { + top = 0; + } else { + top -= pH; + } + canvas.save(); + canvas.clipRect(0, top, width, top + pH); + webView.scrollTo(0, top); + webView.draw(canvas); + canvas.restore(); + } + } catch (OutOfMemoryError e) { + if (bm != null) { + bm.recycle(); + bm = null; + } + } + return bm; + } + + /** + * 通过drawable文件名获取Drawable + * + * @param context + * @param name + * @return + */ + public static Drawable getDrawableFromName(Context context, String name) { + try { + Resources resources = context.getResources(); + return resources.getDrawable(resources.getIdentifier(name, "drawable", context.getPackageName())); + } catch (Exception e) { + } + return null; + } + + /** + * base64字符串转换bitmap + * + * @param base64 + * @return + */ + public static Bitmap base64ToBitmap(String base64) { + Bitmap bitmap = null; + try { + byte[] bitmapArray = Base64.decode(base64.split(",")[1], Base64.DEFAULT); + bitmap = BitmapFactory.decodeByteArray(bitmapArray, 0, bitmapArray.length); + } catch (Exception e) { + e.printStackTrace(); + } + return bitmap; + } + + /** + * 下载图片 + * + * @param context + * @param url + * @param listener + */ + public static void downloadImage(Context context, String url, ImageDownloadListener listener) { + try { + listener.start(); + Glide.with(context) + .downloadOnly() + .load(url) + .addListener(new RequestListener() { + @Override + public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) { + listener.fail(e); + return false; + } + + @Override + public boolean onResourceReady(File resource, Object model, Target target, DataSource dataSource, boolean isFirstResource) { + listener.success(BitmapFactory.decodeFile(resource.getAbsolutePath()) , resource.getAbsolutePath()); + return false; + } + }).submit(); + } catch (Exception e) { + if (listener != null) listener.fail(new GlideException(e.getMessage())); + } finally { + if (listener != null) listener.finish(); + } + } + + public interface ImageDownloadListener { + /** + * 当前线程 + */ + void start(); + + /** + * 子线程 + * + * @param bitmap + */ + void success(Bitmap bitmap , String path); + + /** + * 子线程 + * + * @param e + */ + void fail(GlideException e); + + /** + * 当前线程 + */ + void finish(); + } + + + + /** + * 将图片转换成Base64编码的字符串 + */ + public static String imageToBase64(String path){ + if(TextUtils.isEmpty(path)){ + return null; + } + InputStream is = null; + byte[] data = null; + String result = null; + try{ + is = new FileInputStream(path); + //创建一个字符流大小的数组。 + data = new byte[is.available()]; + //写入数组 + is.read(data); + //用默认的编码格式进行编码 + result = Base64.encodeToString(data,Base64.DEFAULT); + }catch (Exception e){ + e.printStackTrace(); + }finally { + if(null !=is){ + try { + is.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + } + return result; + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/NfcUtils.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/NfcUtils.java new file mode 100644 index 0000000..e5e6b85 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/NfcUtils.java @@ -0,0 +1,145 @@ +package com.arpa.hndahesudintocctmsdriver.util; + +import android.app.Activity; +import android.app.PendingIntent; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.nfc.FormatException; +import android.nfc.NdefMessage; +import android.nfc.NdefRecord; +import android.nfc.NfcAdapter; +import android.nfc.NfcManager; +import android.nfc.Tag; +import android.nfc.tech.Ndef; +import android.os.Parcelable; +import android.provider.Settings; + +import java.io.IOException; +import java.io.UnsupportedEncodingException; + +/** + * @author hlh + * @version 1.0.0 + * @date 2022/2/15 17:04 + * @description: + */ +public class NfcUtils { + + //nfc + public static NfcAdapter mNfcAdapter; + public static IntentFilter[] mIntentFilter = null; + public static PendingIntent mPendingIntent = null; + public static String[][] mTechList = null; + + /** + * 构造函数,用于初始化nfc + */ + public NfcUtils(Activity activity) { + mNfcAdapter = NfcCheck(activity); + NfcInit(activity); + } + + /** + * 检查NFC是否打开 + */ + public static NfcAdapter NfcCheck(Activity activity) { + NfcAdapter mNfcAdapter = NfcAdapter.getDefaultAdapter(activity); + if (mNfcAdapter == null) { + return null; + } else { + if (!mNfcAdapter.isEnabled()) { + Intent setNfc = new Intent(Settings.ACTION_NFC_SETTINGS); + activity.startActivity(setNfc); + } + } + return mNfcAdapter; + } + + /** + * 初始化nfc设置 + */ + public static void NfcInit(Activity activity) { + mPendingIntent = PendingIntent.getActivity(activity, 0, new Intent(activity, activity.getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0); + IntentFilter filter = new IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED); + IntentFilter filter2 = new IntentFilter(NfcAdapter.ACTION_TAG_DISCOVERED); + try { + filter.addDataType("*/*"); + } catch (IntentFilter.MalformedMimeTypeException e) { + e.printStackTrace(); + } + mIntentFilter = new IntentFilter[]{filter, filter2}; + mTechList = null; + } + + /** + * 读取NFC的数据 + */ + public static String readNFCFromTag(Intent intent) throws UnsupportedEncodingException { + Parcelable[] rawArray = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES); + if (rawArray != null) { + NdefMessage mNdefMsg = (NdefMessage) rawArray[0]; + NdefRecord mNdefRecord = mNdefMsg.getRecords()[0]; + if (mNdefRecord != null) { + String readResult = new String(mNdefRecord.getPayload(), "UTF-8"); + return readResult; + } + } + return ""; + } + + + /** + * 往nfc写入数据 + */ + public static void writeNFCToTag(String data, Intent intent) throws IOException, FormatException { + Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); + Ndef ndef = Ndef.get(tag); + ndef.connect(); + NdefRecord ndefRecord = NdefRecord.createTextRecord(null, data); + NdefRecord[] records = {ndefRecord}; + NdefMessage ndefMessage = new NdefMessage(records); + ndef.writeNdefMessage(ndefMessage); + } + + /** + * 读取nfcID + */ + public static String readNFCId(Intent intent) throws UnsupportedEncodingException { + Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); + String id = ByteArrayToHexString(tag.getId()); + return id; + } + + /** + * 将字节数组转换为字符串 + */ + private static String ByteArrayToHexString(byte[] inarray) { + int i, j, in; + String[] hex = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"}; + String out = ""; + + for (j = 0; j < inarray.length; ++j) { + in = (int) inarray[j] & 0xff; + i = (in >> 4) & 0x0f; + out += hex[i]; + i = in & 0x0f; + out += hex[i]; + } + return out; + } + + public static boolean hasNfc(Context context){ + boolean bRet=false; + if(context==null) + return bRet; + NfcManager manager = (NfcManager) context.getSystemService(Context.NFC_SERVICE); + NfcAdapter adapter = manager.getDefaultAdapter(); + if (adapter != null && adapter.isEnabled()) { + // adapter存在,能启用 + bRet=true; + } + return bRet; + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/NotifyUtils.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/NotifyUtils.java new file mode 100644 index 0000000..c3702e1 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/NotifyUtils.java @@ -0,0 +1,86 @@ +package com.arpa.hndahesudintocctmsdriver.util; + +import android.app.NotificationManager; +import android.content.Context; +import android.content.Intent; +import android.net.Uri; +import android.os.Build; +import android.provider.Settings; + +import androidx.core.app.NotificationManagerCompat; + +/** + * 通知栏权限工具 + * + * @author xuexiang + * @since 2019-09-04 14:00 + */ +public final class NotifyUtils { + + private NotifyUtils() { + throw new UnsupportedOperationException("u can't instantiate me..."); + } + + /** + * 通知栏权限是否获取 + * + * @param context + * @return + */ + public static boolean isNotifyPermissionOpen(Context context) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + return NotificationManagerCompat.from(context).getImportance() != NotificationManager.IMPORTANCE_NONE; + } + return NotificationManagerCompat.from(context).areNotificationsEnabled(); + } + + /** + * 打开通知栏权限设置页面 + * + * @param context + */ + public static void openNotifyPermissionSetting(Context context) { + try { + Intent intent = new Intent(); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + //直接跳转到应用通知设置的代码: + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + intent.setAction(Settings.ACTION_APP_NOTIFICATION_SETTINGS); + intent.putExtra(Settings.EXTRA_APP_PACKAGE, context.getPackageName()); + intent.putExtra(Settings.EXTRA_CHANNEL_ID, context.getApplicationInfo().uid); + context.startActivity(intent); + return; + } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + intent.setAction("android.settings.APP_NOTIFICATION_SETTINGS"); + intent.putExtra("app_package", context.getPackageName()); + intent.putExtra("app_uid", context.getApplicationInfo().uid); + context.startActivity(intent); + return; + } + if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) { + intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); + intent.addCategory(Intent.CATEGORY_DEFAULT); + intent.setData(Uri.parse("package:" + context.getPackageName())); + context.startActivity(intent); + return; + } + + //4.4以下没有从app跳转到应用通知设置页面的Action,可考虑跳转到应用详情页面, + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) { + intent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS"); + intent.setData(Uri.fromParts("package", context.getPackageName(), null)); + context.startActivity(intent); + return; + } + + intent.setAction(Intent.ACTION_VIEW); + intent.setClassName("com.android.settings", "com.android.setting.InstalledAppDetails"); + intent.putExtra("com.android.settings.ApplicationPkgName", context.getPackageName()); + context.startActivity(intent); + + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/PaxWebChromeClient.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/PaxWebChromeClient.java new file mode 100644 index 0000000..aa23326 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/PaxWebChromeClient.java @@ -0,0 +1,137 @@ +package com.arpa.hndahesudintocctmsdriver.util; + +import android.annotation.TargetApi; +import android.app.Activity; +import android.content.Intent; +import android.net.Uri; +import android.os.Build; +import android.webkit.PermissionRequest; +import android.webkit.ValueCallback; +import android.webkit.WebChromeClient; +import android.webkit.WebView; +import android.widget.ProgressBar; +import android.widget.TextView; + +import androidx.annotation.NonNull; + +/** + * @author hlh + * @version 1.0.0 + * @date 2022/1/20 17:27 + * @description: + */ +public class PaxWebChromeClient extends WebChromeClient { + + private static final int CHOOSE_REQUEST_CODE = 0x9001; + private Activity mActivity; + private ValueCallback uploadFile;//定义接受返回值 + private ValueCallback uploadFiles; + private ProgressBar bar; + private TextView mTitle; + + public PaxWebChromeClient(@NonNull Activity mActivity, ProgressBar bar, TextView title) { + this.mActivity = mActivity; + this.bar=bar; + this.mTitle=title; + } + + @Override + public void onProgressChanged(WebView view, int newProgress) { + if (newProgress == 100) { + //bar.setVisibility(View.INVISIBLE); + } else { +// if (View.INVISIBLE == bar.getVisibility()) { +// bar.setVisibility(View.VISIBLE); +// } +// bar.setProgress(newProgress); + } + super.onProgressChanged(view, newProgress); + } + + @Override + + public void onReceivedTitle(WebView view, String title) { + + super.onReceivedTitle(view, title); + + // mTitle.setText(title); + + } + + @TargetApi(Build.VERSION_CODES.LOLLIPOP) + @Override + public void onPermissionRequest(PermissionRequest request) { + // super.onPermissionRequest(request);//必须要注视掉 + request.grant(request.getResources()); + } + + // For Android 3.0+ + public void openFileChooser(ValueCallback uploadMsg, String acceptType) { + this.uploadFile = uploadFile; + openFileChooseProcess(); + } + + // For Android < 3.0 + public void openFileChooser(ValueCallback uploadMsgs) { + this.uploadFile = uploadFile; + openFileChooseProcess(); + } + + // For Android > 4.1.1 +// @Override + public void openFileChooser(ValueCallback uploadMsg, String acceptType, String capture) { + this.uploadFile = uploadFile; + openFileChooseProcess(); + } + + // For Android >= 5.0 + @Override + public boolean onShowFileChooser(WebView webView, + ValueCallback filePathCallback, + WebChromeClient.FileChooserParams fileChooserParams) { + this.uploadFiles = filePathCallback; + openFileChooseProcess(); + return true; + } + + private void openFileChooseProcess() { + Intent i = new Intent(Intent.ACTION_GET_CONTENT); + i.addCategory(Intent.CATEGORY_OPENABLE); + i.setType("image/*"); + mActivity.startActivityForResult(Intent.createChooser(i, "Choose"), CHOOSE_REQUEST_CODE); + } + + public void onActivityResult(int requestCode, int resultCode, Intent data) { + //LogCat.d("requestCode===",requestCode+"===="); + if (resultCode == Activity.RESULT_OK) { + switch (requestCode) { + case CHOOSE_REQUEST_CODE: + if (null != uploadFile) { + Uri result = data == null || resultCode != Activity.RESULT_OK ? null + : data.getData(); + uploadFile.onReceiveValue(result); + uploadFile = null; + } + if (null != uploadFiles) { + Uri result = data == null || resultCode != Activity.RESULT_OK ? null + : data.getData(); + uploadFiles.onReceiveValue(new Uri[]{result}); + uploadFiles = null; + } + break; + default: + break; + } + } else if (resultCode == Activity.RESULT_CANCELED) { + if (null != uploadFile) { + uploadFile.onReceiveValue(null); + uploadFile = null; + } + if (null != uploadFiles) { + uploadFiles.onReceiveValue(null); + uploadFiles = null; + } + } + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/PickerUtils.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/PickerUtils.java new file mode 100644 index 0000000..90348f3 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/PickerUtils.java @@ -0,0 +1,46 @@ +package com.arpa.hndahesudintocctmsdriver.util; + +import android.app.Activity; +import android.content.Context; +import android.view.View; + +import com.arpa.hndahesudintocctmsdriver.R; +import com.github.gzuliyujiang.wheelpicker.OptionPicker; +import com.github.gzuliyujiang.wheelpicker.contract.OnOptionPickedListener; +import com.github.gzuliyujiang.wheelpicker.widget.OptionWheelLayout; +import com.github.gzuliyujiang.wheelview.contract.TextProvider; + +import java.util.ArrayList; + +/** + * @ClassName PickerUtils + * @Author 用户 + * @Date 2022/4/22 16:29 + * @Description TODO + */ +public class PickerUtils { + + private static class SingletonHolder { + private static final PickerUtils INSTANCE = new PickerUtils(); + } + + private PickerUtils() { + } + + public static final PickerUtils getInstance() { + return SingletonHolder.INSTANCE; + } + + public void pickSingle(Activity activity, String title, ArrayList data, OnOptionPickedListener listener){ + OptionPicker picker = new OptionPicker(activity); + picker.setTitle(title); +// picker.setBodyWidth(140); + picker.setData(data); +// picker.setDefaultPosition(2); + picker.setOnOptionPickedListener(listener); +// OptionWheelLayout wheelLayout = picker.getWheelLayout(); + +// picker.getWheelView().setStyle(R.style.WheelStyleDemo); + picker.show(); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/PicturlUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/PicturlUtil.java new file mode 100644 index 0000000..e5d3354 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/PicturlUtil.java @@ -0,0 +1,175 @@ +package com.arpa.hndahesudintocctmsdriver.util; + +import android.app.Activity; + +import androidx.fragment.app.Fragment; + +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.entity.LocalMedia; + +import java.util.List; + +public class PicturlUtil { + + public static void selectPicter(Activity activity, List imgs, int maxNum) { + //(Activity) ctx 图片选择器 + PictureSelector.create(activity) + .openGallery(PictureConfig.TYPE_IMAGE) + .maxSelectNum(maxNum) + .minSelectNum(1) + .imageSpanCount(4)// 每行显示个数 + .selectionMode(PictureConfig.MULTIPLE)//多选 + .previewImage(true)//预览图片 + .compress(true)//压缩 + .isCamera(true)// 是否显示拍照按钮 true or false + .minimumCompressSize(100)// 小于100kb的图片不压缩 + .selectionMedia(imgs) + .forResult(PictureConfig.CHOOSE_REQUEST);//回调请求码 + } + + public static void selectPicter(Fragment fragment, List imgs, int maxNum) { + //(Activity) ctx 图片选择器 + PictureSelector.create(fragment) + .openGallery(PictureConfig.TYPE_IMAGE) + .maxSelectNum(maxNum) + .minSelectNum(1) + .imageSpanCount(4)// 每行显示个数 + .selectionMode(PictureConfig.MULTIPLE)//多选 + .previewImage(true)//预览图片 + .compress(true)//压缩 + .isCamera(true)// 是否显示拍照按钮 true or false + .minimumCompressSize(100)// 小于100kb的图片不压缩 + .selectionMedia(imgs) + .forResult(PictureConfig.CHOOSE_REQUEST);//回调请求码 + } + + + public static void selectPicterAndVideo(Activity activity, List imgs, int maxNum) { + //(Activity) ctx 图片选择器 + PictureSelector.create(activity) + .openGallery(PictureConfig.TYPE_ALL) + .maxSelectNum(maxNum) + .minSelectNum(1) + .imageSpanCount(4)// 每行显示个数 + .selectionMode(PictureConfig.MULTIPLE)//多选 + .previewImage(true)//预览图片 + .compress(true)//压缩 + .isCamera(true)// 是否显示拍照按钮 true or false + .minimumCompressSize(100)// 小于100kb的图片不压缩 + .selectionMedia(imgs) + .forResult(PictureConfig.CHOOSE_REQUEST);//回调请求码 + } + + public static void selectVideo(Fragment activity, List imgs) { + //(Activity) ctx 图片选择器 + PictureSelector.create(activity) + .openGallery(PictureConfig.TYPE_VIDEO) + .maxSelectNum(1) + .minSelectNum(1) + .imageSpanCount(4)// 每行显示个数 + .selectionMode(PictureConfig.MULTIPLE)//多选 + .previewImage(true)//预览图片 + .compress(true)//压缩 + .isCamera(true)// 是否显示拍照按钮 true or false + .minimumCompressSize(100)// 小于100kb的图片不压缩 + .selectionMedia(imgs) + .forResult(PictureConfig.CHOOSE_REQUEST);//回调请求码 + } + + + public static void selectPicterCute(Activity activity, List imgs, int maxNum) { + //(Activity) ctx 图片选择器 + PictureSelector.create(activity) + .openGallery(PictureConfig.TYPE_IMAGE) + .maxSelectNum(maxNum) + .minSelectNum(1) + .imageSpanCount(4)// 每行显示个数 + .selectionMode(PictureConfig.MULTIPLE)//多选 + .previewImage(true)//预览图片 + .compress(true)//压缩 + .isCamera(true)// 是否显示拍照按钮 true or false + .minimumCompressSize(100)// 小于100kb的图片不压缩 + .selectionMedia(imgs) + .enableCrop(true)// 是否裁剪 + .sizeMultiplier(0.5f)// glide 加载图片大小 0~1之间 如设置 .glideOverride()无效 + .withAspectRatio(5, 1)// 裁剪比例 如16:9 3:2 3:4 1:1 可自定义 + .forResult(PictureConfig.CHOOSE_REQUEST);//回调请求码 + } + + public static void selectPicterCute(Activity activity, List imgs, int maxNum, int width, int height) { + //(Activity) ctx 图片选择器 + PictureSelector.create(activity) + .openGallery(PictureConfig.TYPE_IMAGE) + .maxSelectNum(maxNum) + .minSelectNum(1) + .imageSpanCount(4)// 每行显示个数 + .selectionMode(PictureConfig.MULTIPLE)//多选 + .previewImage(true)//预览图片 + .compress(true)//压缩 + .isCamera(true)// 是否显示拍照按钮 true or false + .minimumCompressSize(100)// 小于100kb的图片不压缩 + .selectionMedia(imgs) + .enableCrop(true)// 是否裁剪 + .sizeMultiplier(0.5f)// glide 加载图片大小 0~1之间 如设置 .glideOverride()无效 + .withAspectRatio(width, height)// 裁剪比例 如16:9 3:2 3:4 1:1 可自定义 + .forResult(PictureConfig.CHOOSE_REQUEST);//回调请求码 + } + + public static void selectCameraCute(Activity activity, List imgs, int maxNum, int width, int height) { + //(Activity) ctx 图片选择器 + PictureSelector.create(activity) + .openCamera(PictureConfig.TYPE_IMAGE) + .maxSelectNum(maxNum) + .minSelectNum(1) + .imageSpanCount(4)// 每行显示个数 + .selectionMode(PictureConfig.MULTIPLE)//多选 + .previewImage(true)//预览图片 + .compress(true)//压缩 + .isCamera(true)// 是否显示拍照按钮 true or false + .minimumCompressSize(100)// 小于100kb的图片不压缩 + .selectionMedia(imgs) + .enableCrop(true)// 是否裁剪 + .sizeMultiplier(0.5f)// glide 加载图片大小 0~1之间 如设置 .glideOverride()无效 + .withAspectRatio(width, height)// 裁剪比例 如16:9 3:2 3:4 1:1 可自定义 + .forResult(PictureConfig.CHOOSE_REQUEST);//回调请求码 + } + + public static void selectCamera(Activity activity, List imgs, int maxNum) { + //(Activity) ctx 图片选择器 + PictureSelector.create(activity) + .openCamera(PictureConfig.TYPE_IMAGE) + .maxSelectNum(maxNum) + .minSelectNum(1) + .imageSpanCount(4)// 每行显示个数 + .selectionMode(PictureConfig.MULTIPLE)//多选 + .previewImage(true)//预览图片 + .compress(true)//压缩 + .isCamera(true)// 是否显示拍照按钮 true or false + .minimumCompressSize(100)// 小于100kb的图片不压缩 + .selectionMedia(imgs) + .enableCrop(false)// 是否裁剪 + .sizeMultiplier(0.5f)// glide 加载图片大小 0~1之间 如设置 .glideOverride()无效 +// .withAspectRatio(width, height)// 裁剪比例 如16:9 3:2 3:4 1:1 可自定义 + .forResult(PictureConfig.CHOOSE_REQUEST);//回调请求码 + } + + public static void selectPicterHtml(Activity activity, List imgs, int maxNum) { + //(Activity) ctx 图片选择器 + PictureSelector.create(activity) + .openGallery(PictureConfig.TYPE_IMAGE) + .maxSelectNum(maxNum) + .minSelectNum(1) + .imageSpanCount(4)// 每行显示个数 + .selectionMode(PictureConfig.MULTIPLE)//多选 + .previewImage(true)//预览图片 + .compress(true)//压缩 + .isCamera(true)// 是否显示拍照按钮 true or false + .minimumCompressSize(100)// 小于100kb的图片不压缩 + .selectionMedia(imgs) + .enableCrop(true)// 是否裁剪 + .cropWH(340, 1000) + .sizeMultiplier(0.5f)// glide 加载图片大小 0~1之间 如设置 .glideOverride()无效 + .forResult(PictureConfig.CHOOSE_REQUEST);//回调请求码 + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/YinDaoFs.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/YinDaoFs.java new file mode 100644 index 0000000..dbb29b7 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/YinDaoFs.java @@ -0,0 +1,68 @@ +package com.arpa.hndahesudintocctmsdriver.util; + +import android.content.Context; + +import androidx.annotation.NonNull; + +import com.lxj.xpopup.animator.PopupAnimator; +import com.lxj.xpopup.core.CenterPopupView; +import com.arpa.hndahesudintocctmsdriver.R; + +import org.jetbrains.annotations.NotNull; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/20 8:57 + * @description: + */ +public class YinDaoFs extends CenterPopupView { + + + public YinDaoFs(@NonNull @NotNull Context context) { + super(context); + } + + @Override + protected int getImplLayoutId() { + return R.layout.my_there_popup; + } + // 执行初始化操作,比如:findView,设置点击,或者任何你弹窗内的业务逻辑 + @Override + protected void onCreate() { + super.onCreate(); + + } + // 设置最大宽度,看需要而定, + @Override + protected int getMaxWidth() { + return super.getMaxWidth(); + } + // 设置最大高度,看需要而定 + @Override + protected int getMaxHeight() { + return super.getMaxHeight(); + } + // 设置自定义动画器,看需要而定 + @Override + protected PopupAnimator getPopupAnimator() { + return super.getPopupAnimator(); + } + /** + * 弹窗的宽度,用来动态设定当前弹窗的宽度,受getMaxWidth()限制 + * + * @return + */ + protected int getPopupWidth() { + return getResources().getDimensionPixelOffset(R.dimen.dp_300); + } + + /** + * 弹窗的高度,用来动态设定当前弹窗的高度,受getMaxHeight()限制 + * + * @return + */ + protected int getPopupHeight() { + return getResources().getDimensionPixelOffset(R.dimen.dp_500); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/adapter/AdapterAll.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/adapter/AdapterAll.java new file mode 100644 index 0000000..1bae741 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/adapter/AdapterAll.java @@ -0,0 +1,94 @@ +package com.arpa.hndahesudintocctmsdriver.util.adapter; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + + +import com.arpa.hndahesudintocctmsdriver.util.bean.GetObjectName; + +import java.util.ArrayList; +import java.util.List; + +public class AdapterAll extends RecyclerView.Adapter { + + private Context context; + private List object; + private int layout; + + private onItemViewListenter listenterView; + public AdapterAll(Context context, List object, int layout){ + this.context = context; + this.object=object; + this.layout=layout; + + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = LayoutInflater.from(context).inflate(layout, parent, false); + return new ViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, int position) { + View v=holder.itemView; + ViewGroup vg=v.findViewById(v.getId()); + GetObjectName.ZIModel(vg,object.get(position),context); + if(listenterView!=null){ + listenterView.onItemView(position,object.get(position),v); + } + } + + public void updateItem(int position,Object o) { + //更新数据 + notifyItemChanged(position,o); + } + public void removeAll(){ + object=new ArrayList(); + notifyDataSetChanged(); + } + public void delItemV(int position) { + object.remove(position); + notifyItemRemoved(position); + notifyDataSetChanged(); + //android:editable="false" + } + + public void addItemV(Object o) { + //增加数据 + int position = object.size(); + object.add(o); + notifyItemInserted(position); + } + + public void removeItemV(int index) { + int position = object.size(); + object.remove(index); + notifyItemInserted(position); + } + + @Override + public int getItemCount() { + if(object==null){ + return 0; + } + return object.size(); + } + + public class ViewHolder extends RecyclerView.ViewHolder { + public ViewHolder(View view) { + super(view); + } + } + + //对内容的补充 + public void setOnItemViewListener(onItemViewListenter listenterView) { this.listenterView = listenterView; } + public interface onItemViewListenter { void onItemView(int position,Object o, View v);} + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/adapter/AdapterAlls.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/adapter/AdapterAlls.java new file mode 100644 index 0000000..57f77e2 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/adapter/AdapterAlls.java @@ -0,0 +1,76 @@ +package com.arpa.hndahesudintocctmsdriver.util.adapter; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.arpa.hndahesudintocctmsdriver.util.bean.GetObjectName; + +import java.util.List; + +public class AdapterAlls extends RecyclerView.Adapter { + + private Context context; + private List object; + public AdapterAlls(Context context, List object){ + this.context = context; + this.object=object; + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = LayoutInflater.from(context).inflate(object.get(viewType).getLayout(), parent, false); + return new ViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, int position) { + View v=holder.itemView; + ViewGroup vg=v.findViewById(v.getId()); + GetObjectName.ZIModel(vg,object.get(position).getBean(),context); + listenterView.onItemView(position,object.get(position).getBean(),v,object.get(position).getLayout()); + } + + + @Override + public int getItemViewType(int position) { + return position; + } + + @Override + public int getItemCount() { + if(object==null){ + return 0; + } + return object.size(); + } + + public void add(List addMessageList) { + //增加数据 + int position = object.size(); + object.addAll(position, addMessageList); + notifyItemInserted(position); + } + + public void addItem(ManyBean mb) { + //增加数据 + int position = object.size(); + object.add(mb); + notifyItemInserted(position); + } + + public class ViewHolder extends RecyclerView.ViewHolder { + public ViewHolder(View view) { + super(view); + } + } + //对内容的补充 + private onItemViewListenter listenterView; + public void setOnItemViewListener(onItemViewListenter listenterView) { this.listenterView = listenterView; } + public interface onItemViewListenter { void onItemView(int position, Object o, View v, int layout);} +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/adapter/ManyBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/adapter/ManyBean.java new file mode 100644 index 0000000..9e69477 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/adapter/ManyBean.java @@ -0,0 +1,27 @@ +package com.arpa.hndahesudintocctmsdriver.util.adapter; + +public class ManyBean { + private Object bean; + private int layout; + + public ManyBean(Object bean, int layout) { + this.bean = bean; + this.layout = layout; + } + + public Object getBean() { + return bean; + } + + public void setBean(Object bean) { + this.bean = bean; + } + + public int getLayout() { + return layout; + } + + public void setLayout(int layout) { + this.layout = layout; + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/adapter/TFList.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/adapter/TFList.java new file mode 100644 index 0000000..74e4698 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/adapter/TFList.java @@ -0,0 +1,17 @@ +package com.arpa.hndahesudintocctmsdriver.util.adapter; + +import java.util.ArrayList; +import java.util.List; + +public class TFList { + + public static List getList(List lists){ + List list=new ArrayList<>(); + for (Object o : lists) { + list.add(o); + } + return list; + } + + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/alert/CustomDialog.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/alert/CustomDialog.java new file mode 100644 index 0000000..8931472 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/alert/CustomDialog.java @@ -0,0 +1,50 @@ +package com.arpa.hndahesudintocctmsdriver.util.alert; + +import android.app.Dialog; +import android.content.Context; +import android.view.KeyEvent; +import android.view.WindowManager; +import android.widget.TextView; + +import com.arpa.hndahesudintocctmsdriver.R; + + +public class CustomDialog extends Dialog { + private String content; + private boolean key=false; + public CustomDialog(Context context, String content) { + super(context, R.style.CustomDialog); + this.content=content; + initView(); + } + public CustomDialog(Context context, String content,boolean key) { + super(context, R.style.CustomDialog); + this.content=content; + this.key=key; + initView(); + + } + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + switch (keyCode){ + case KeyEvent.KEYCODE_BACK: + if(CustomDialog.this.isShowing()) + if (!key){ + CustomDialog.this.dismiss(); + } + break; + } + return true; + } + + private void initView(){ + setContentView(R.layout.load); + ((TextView)findViewById(R.id.tvcontent)).setText(content); + setCanceledOnTouchOutside(true); + WindowManager.LayoutParams attributes = getWindow().getAttributes(); + attributes.alpha=0.8f; + getWindow().setAttributes(attributes); + setCancelable(false); + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/alert/ToastUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/alert/ToastUtil.java new file mode 100644 index 0000000..663771a --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/alert/ToastUtil.java @@ -0,0 +1,90 @@ +package com.arpa.hndahesudintocctmsdriver.util.alert; + +import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.widget.Toast; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/11/2 21:02 + * @description: + */ +public class ToastUtil { + + private Toast mToast; + private TimeCount timeCount; + private String message; + private int gravity; + private Context mContext; + private Handler mHandler = new Handler(); + private boolean canceled = true; + + public ToastUtil(Context context, int gravity, String msg) { + message = msg; + mContext = context; + this.gravity = gravity; + } + + /** + * 自定义时长、居中显示toast + * + * @param duration + */ + public void show(int duration) { + timeCount = new TimeCount(duration, 1000); + if (canceled) { + timeCount.start(); + canceled = false; + showUntilCancel(); + } + } + + /** + * 隐藏toast + */ + public void hide() { + if (mToast != null) { + mToast.cancel(); + } + if (timeCount != null) { + timeCount.cancel(); + } + canceled = true; + } + + private void showUntilCancel() { + if (canceled) { //如果已经取消显示,就直接return + return; + } + mToast = Toast.makeText(mContext,message,Toast.LENGTH_LONG); + mToast.setGravity(gravity, 0, 0); + mToast.show(); + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + showUntilCancel(); + } + }, 3500); + } + + /** + * 自定义计时器 + */ + private class TimeCount extends CountDownTimer { + + public TimeCount(long millisInFuture, long countDownInterval) { + super(millisInFuture, countDownInterval); //millisInFuture总计时长,countDownInterval时间间隔(一般为1000ms) + } + + @Override + public void onTick(long millisUntilFinished) { + } + + @Override + public void onFinish() { + hide(); + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/app/SystemUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/app/SystemUtil.java new file mode 100644 index 0000000..a7ea629 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/app/SystemUtil.java @@ -0,0 +1,58 @@ +package com.arpa.hndahesudintocctmsdriver.util.app; + +import java.util.Locale; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/18 11:49 + * @description: + */ +public class SystemUtil { + /** + * 获取当前手机系统语言。 + * + * @return 返回当前系统语言。例如:当前设置的是“中文-中国”,则返回“zh-CN” + */ + public static String getSystemLanguage() { + return Locale.getDefault().getLanguage(); + } + + /** + * 获取当前系统上的语言列表(Locale列表) + * + * @return 语言列表 + */ + public static Locale[] getSystemLanguageList() { + return Locale.getAvailableLocales(); + } + + /** + * 获取当前手机系统版本号 + * + * @return 系统版本号 + */ + public static String getSystemVersion() { + return android.os.Build.VERSION.RELEASE; + } + + /** + * 获取手机型号 + * + * @return 手机型号 + */ + public static String getSystemModel() { + return android.os.Build.MODEL; + } + + /** + * 获取手机厂商 + * + * @return 手机厂商 + */ + public static String getDeviceBrand() { + return android.os.Build.BRAND; + } + + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/app/VersionUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/app/VersionUtil.java new file mode 100644 index 0000000..35000c3 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/app/VersionUtil.java @@ -0,0 +1,23 @@ +package com.arpa.hndahesudintocctmsdriver.util.app; + +import android.content.Context; +import android.content.pm.PackageManager; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/9/14 11:17 + * @description: + */ +public class VersionUtil { + + public static String getVersion(Context con){ + String vs="1.0.0"; + try { + vs = con.getPackageManager().getPackageInfo(con.getPackageName(), 0).versionName; + } catch (PackageManager.NameNotFoundException e) { + e.printStackTrace(); + } + return vs; + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/bean/GetObjectName.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/bean/GetObjectName.java new file mode 100644 index 0000000..b79f3d1 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/bean/GetObjectName.java @@ -0,0 +1,132 @@ +package com.arpa.hndahesudintocctmsdriver.util.bean; + +import android.content.Context; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import com.bumptech.glide.Glide; +import com.arpa.hndahesudintocctmsdriver.util.string.StringUtil; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.List; + +public class GetObjectName { + + public static List GetName(Object o) { + List str = new ArrayList<>(); + Field[] fields = o.getClass().getDeclaredFields(); + for (int i = 0; i < fields.length; i++) { + fields[i].setAccessible(true); + str.add(fields[i].getName()); + } + return str; + } + + public static boolean isName(List list,String name){ + for (int i=0;i names = GetName(o); + List list = forData(vg); + for (int i = 0; i < list.size(); i++) { + if (list.get(i) != -1 && Integer.parseInt(String.valueOf(list.get(i))) > 100) { + String name = vg.getResources().getResourceName(list.get(i)); + String idName = name.substring(name.indexOf("/") + 1); + if (isName(names,idName)) { + switch (vg.findViewById(list.get(i)).getClass().getSimpleName()) { + case "TextView": + case "AppCompatTextView": + String str=StringUtil.isNull(getFieldValueByFieldName(idName, o)+"",""); + if (!str.equals("")){ + textView(vg, list.get(i), str); + } + break; + case "ImageView": + case "AppCompatImageView": + imgView(vg, list.get(i), getFieldValueByFieldName(idName, o)+"", con); + break; + } + } + } + } + } + + private static List forData(ViewGroup llRoot) { + List list = new ArrayList<>(); + int childCount = llRoot.getChildCount(); + for (int i = 0; i < childCount; i++) { + if (llRoot.getChildAt(i) instanceof ViewGroup) { + list.add(llRoot.getChildAt(i).getId()); + List list1 = forData((ViewGroup) llRoot.getChildAt(i)); + list.addAll(list1); + } else { + list.add(llRoot.getChildAt(i).getId()); + } + } + return list; + } + + public static void ZIBean(ViewGroup vg, Object o, Context con) { + //System.out.println("引入"+o.toString()); + List names = GetName(o); + for (int i = 0; i < vg.getChildCount(); i++) { + if (vg.getChildAt(i).getId() != -1) { + int id = vg.getChildAt(i).getId(); + String name = vg.getResources().getResourceName(id); + String idName = name.substring(name.indexOf("/") + 1); + for (int j = 0; j < names.size(); j++) { + if (names.get(j).equals(idName)) { + switch (vg.getChildAt(i).getClass().getSimpleName()) { + case "TextView": + case "AppCompatTextView": + String str=StringUtil.isNull(getFieldValueByFieldName(idName,o).toString()+"",""); + if(!str.equals("")){ + textView(vg, id, str); + } + names.remove(j); + break; + case "ImageView": + case "AppCompatImageView": + imgView(vg,id,getFieldValueByFieldName(idName,o).toString()+"",con); + names.remove(j); + break; + } + } + } + } + } + } + + private static void textView(ViewGroup vg, int id, String o) { + TextView t = vg.findViewById(id); + t.setText(o); + } + + + private static void imgView(ViewGroup vg, int id, String o,Context con) { + if(o.indexOf("http")!=-1){ + ImageView bv = vg.findViewById(id); + Glide.with(con).load(o).into(bv); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/cache/CacheGroup.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/cache/CacheGroup.java new file mode 100644 index 0000000..8f0a030 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/cache/CacheGroup.java @@ -0,0 +1,17 @@ +package com.arpa.hndahesudintocctmsdriver.util.cache; + +import android.view.View; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +public class CacheGroup { + public final static Map cacheList=new HashMap<>(); + public final static Map cacheListA=new HashMap<>(); + public final static Map cacheTimeList=new HashMap<>(); + public final static Map cacheDateList=new HashMap<>(); + public final static Map fragList=new HashMap<>(); + + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/edit/CashierInputFilter.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/edit/CashierInputFilter.java new file mode 100644 index 0000000..f482975 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/edit/CashierInputFilter.java @@ -0,0 +1,97 @@ +package com.arpa.hndahesudintocctmsdriver.util.edit; + +import android.text.InputFilter; +import android.text.Spanned; +import android.text.TextUtils; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/10/12 20:11 + * @description: + */ +public class CashierInputFilter implements InputFilter { + Pattern mPattern; + + //输入的最大金额 + private static final int MAX_VALUE = Integer.MAX_VALUE; + //小数点后的位数 + private static final int POINTER_LENGTH = 2; + + private static final int LENGTH=9; + private static final String POINTER = "."; + + private static final String ZERO = "0"; + + public CashierInputFilter() { + mPattern = Pattern.compile("([0-9]|\\.)*"); + } + + /** + * @param source 新输入的字符串 + * @param start 新输入的字符串起始下标,一般为0 + * @param end 新输入的字符串终点下标,一般为source长度-1 + * @param dest 输入之前文本框内容 + * @param dstart 原内容起始坐标,一般为0 + * @param dend 原内容终点坐标,一般为dest长度-1 + * @return 输入内容 + */ + @Override + public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { + String sourceText = source.toString(); + String destText = dest.toString(); + + //验证删除等按键 + if (TextUtils.isEmpty(sourceText)) { + return ""; + } + + Matcher matcher = mPattern.matcher(source); + //已经输入小数点的情况下,只能输入数字 + if(destText.contains(POINTER)) { + if (!matcher.matches()) { + return ""; + } else { + if (POINTER.equals(source.toString())) { //只能输入一个小数点 + return ""; + } + } + + //验证小数点精度,保证小数点后只能输入两位 + int index = destText.indexOf(POINTER); + int length = dend - index; + + if (length > POINTER_LENGTH) { + return dest.subSequence(dstart, dend); + } + } else { + /** + * 没有输入小数点的情况下,只能输入小数点和数字 + * 1. 首位不能输入小数点 + * 2. 如果首位输入0,则接下来只能输入小数点了 + */ + if (!matcher.matches()) { + return ""; + } else { + if ((POINTER.equals(source.toString())) && TextUtils.isEmpty(destText)) { //首位不能输入小数点 + return ""; + } else if (!POINTER.equals(source.toString()) && ZERO.equals(destText)) { //如果首位输入0,接下来只能输入小数点 + return ""; + } + } + } + + //验证输入金额的大小 + double sumText = Double.parseDouble(destText + sourceText); + if (sumText > MAX_VALUE) { + return dest.subSequence(dstart, dend); + } + + return dest.subSequence(dstart, dend) + sourceText; + } + + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/file/FileUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/file/FileUtil.java new file mode 100644 index 0000000..4040ab6 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/file/FileUtil.java @@ -0,0 +1,49 @@ +package com.arpa.hndahesudintocctmsdriver.util.file; + +import android.graphics.Bitmap; + +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/7/30 15:56 + * @description: + */ +public class FileUtil { + + public static File bitmapTurnFile(Bitmap bit, String path){ + File file=new File(path); + try { + BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file)); + bit.compress(Bitmap.CompressFormat.JPEG, 100, bos); + bos.flush(); + bos.close(); + } catch (IOException e) { + e.printStackTrace(); + } + return file; + } + + public static String lastName(File file){ + if(file==null) return null; + String filename = file.getName(); + if(filename.lastIndexOf(".")==-1){ + return "";//文件没有后缀名的情况 + } + //此时返回的是带有 . 的后缀名, + return filename.substring(filename.lastIndexOf(".")+1); + } + public static String fileName(File file){ + if(file==null) return null; + String filename = file.getName(); + if(filename.lastIndexOf(".")==-1){ + return "";//文件没有后缀名的情况 + } + //此时返回的是带有 . 的后缀名, + return filename.substring(0,filename.lastIndexOf(".")); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/file/ImageFileCompressUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/file/ImageFileCompressUtil.java new file mode 100644 index 0000000..06cd5c5 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/file/ImageFileCompressUtil.java @@ -0,0 +1,46 @@ +package com.arpa.hndahesudintocctmsdriver.util.file; + +import android.content.Context; +import android.os.Handler; +import com.arpa.hndahesudintocctmsdriver.util.msg.MsgUtil; + +import java.io.File; + +import top.zibin.luban.Luban; +import top.zibin.luban.OnCompressListener; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/7/30 16:19 + * @description:图片文件压缩 + */ +public class ImageFileCompressUtil { + + public final static int COMPRESS_START=32; + public final static int COMPRESS_SUCCESS=33; + public final static int COMPRESS_ONERROR=34; + + public static void imageFileCompress(Context con, File file, Handler hd){ + Luban.with(con) + .load(file) // 传人要压缩的图片列表 + .ignoreBy(100) // 忽略不压缩图片的大小 + .setTargetDir(file.getParent()) // 设置压缩后文件存储位置 + .setCompressListener(new OnCompressListener() { //设置回调 + @Override + public void onStart() { + MsgUtil.addHdMsgWat(hd,COMPRESS_START); + } + + @Override + public void onSuccess(File file) { + MsgUtil.addHdMsgWatBody(hd,COMPRESS_SUCCESS,file.getPath()); + } + + @Override + public void onError(Throwable e) { + MsgUtil.addHdMsgWatBody(hd,COMPRESS_ONERROR,e.toString()); + } + }).launch(); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/html/HtmlAutoUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/html/HtmlAutoUtil.java new file mode 100644 index 0000000..9906a28 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/html/HtmlAutoUtil.java @@ -0,0 +1,11 @@ +package com.arpa.hndahesudintocctmsdriver.util.html; + +public class HtmlAutoUtil { + public static String pinjie(String html) { + String head = "" + + " " + + "" + + ""; + return "" + head + "" + html + ""; + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/http/GetUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/http/GetUtil.java new file mode 100644 index 0000000..0567a80 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/http/GetUtil.java @@ -0,0 +1,42 @@ +package com.arpa.hndahesudintocctmsdriver.util.http; + +import android.content.Context; +import android.os.Build; +import android.provider.Settings; +import android.webkit.WebSettings; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/9/14 15:08 + * @description: + */ +public class GetUtil { + + public static String getUserAgent(Context con) { + String userAgent = ""; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { + try { + userAgent = WebSettings.getDefaultUserAgent(con); + } catch (Exception e) { + userAgent = System.getProperty("http.agent"); + } + } else { + userAgent = System.getProperty("http.agent"); + } + StringBuffer sb = new StringBuffer(); + for (int i = 0, length = userAgent.length(); i < length; i++) { + char c = userAgent.charAt(i); + if (c <= '\u001f' || c >= '\u007f') { + sb.append(String.format("\\u%04x", (int) c)); + } else { + sb.append(c); + } + } + return sb.toString(); + } + + public static String getDeviceId(Context con){ + return Settings.System.getString(con.getContentResolver(), Settings.Secure.ANDROID_ID); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/http/OkDate.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/http/OkDate.java new file mode 100644 index 0000000..3887a9a --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/http/OkDate.java @@ -0,0 +1,53 @@ +package com.arpa.hndahesudintocctmsdriver.util.http; + + +public class OkDate { + private String url; + private String type; + private String madiaType; + + public OkDate(String url, String type, String madiaType) { + this.url = url; + this.type = type; + this.madiaType = madiaType; + } + + public OkDate(String url, String madiaType) { + this.url = url; + this.madiaType = madiaType; + } + + public OkDate(String url) { + this.url = url; + } + + public OkDate() { + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getMadiaType() { + + return madiaType; + } + + public void setMadiaType(String madiaType) { + this.madiaType = madiaType; + } + + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/http/OkHttpUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/http/OkHttpUtil.java new file mode 100644 index 0000000..09261b0 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/http/OkHttpUtil.java @@ -0,0 +1,169 @@ +package com.arpa.hndahesudintocctmsdriver.util.http; + +import android.content.Context; + +import com.arpa.hndahesudintocctmsdriver.util.app.VersionUtil; + +import java.io.File; + +import okhttp3.Headers; +import okhttp3.MediaType; +import okhttp3.MultipartBody; +import okhttp3.Request; +import okhttp3.RequestBody; + +public class OkHttpUtil { + + private static String SIGN_PASSWORD="tEzOoHXXPkak*y(BfIH(YMSiV0ZHz1Ki"; + + public static Request post(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 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()) + .post(body) + .headers(hb.build()) + .addHeader("Version", VersionUtil.getVersion(con)) + //.addHeader("sign",sign) + .removeHeader("User-Agent") + .addHeader("User-Agent",GetUtil.getUserAgent(con)) + .build(); + return request; + } + public static Request posts(OkDate od, String token, 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 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()); + Request request = new Request.Builder() + .url(od.getUrl()) + .method("POST", body) + .addHeader("Authorization", token) + .addHeader("Content-Type", "application/json") + .addHeader("Version", VersionUtil.getVersion(con)) + //.addHeader("sign",sign) + .removeHeader("User-Agent") + .addHeader("User-Agent",GetUtil.getUserAgent(con)) + .build(); + return request; + } + + public static Request get(OkDate od){ + Headers.Builder hb=new Headers.Builder(); + hb.add("Content-Type","application/json"); + hb.add("Cache-Control","no-cache"); + Request request = new Request.Builder() + .url(od.getUrl()) + .get() + .headers(hb.build()) + .build(); + return request; + } + + public static Request get(OkDate od,String token){ + Headers.Builder hb=new Headers.Builder(); + hb.add("Content-Type","application/json"); + hb.add("Cache-Control","no-cache"); + hb.add("Authorization",token); + + Request request = new Request.Builder() + .url(od.getUrl()) + .addHeader("Authorization", token) + .get() + .headers(hb.build()) + .build(); + return request; + } + public static Request postWe(OkDate od){ + MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded"); + 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()) + .post(body) + .headers(hb.build()) + .build(); + return request; + } + + public static Request postFile(OkDate od,String token,File file) { + MediaType mediaType = MediaType.parse("text/plain"); + RequestBody body = new MultipartBody.Builder() + .setType(MultipartBody.FORM) + .addFormDataPart("file",file.getPath(), + RequestBody.create(MediaType.parse("application/octet-stream"), file)) + .build(); + Request request = new Request.Builder() + .url(od.getUrl()) + .method("POST", body) + .addHeader("Authorization", token) + .addHeader("Cookie", "JSESSIONID=NqpqKQstwceQurcNK5hjl4GnTgiF4eSzZSo5a1rz") + .build(); + return request; + } + + public static Request postFiles(OkDate od,File file,String token,String carId) { + MediaType mediaType = MediaType.parse("text/plain"); + RequestBody body = new MultipartBody.Builder() + .setType(MultipartBody.FORM) + .addFormDataPart("file",file.getPath(),RequestBody.create(MediaType.parse("application/octet-stream"), file)) + .addFormDataPart("carId",carId) + .build(); + Request request = new Request.Builder() + .url(od.getUrl()) + .method("POST", body) + .addHeader("Authorization", token) + .addHeader("Cookie", "JSESSIONID=NqpqKQstwceQurcNK5hjl4GnTgiF4eSzZSo5a1rz") + .build(); + return request; + } + + public static Request postFiles(OkDate od,File file,String token,String carId,String carNum) { + MediaType mediaType = MediaType.parse("text/plain"); + RequestBody body = new MultipartBody.Builder() + .setType(MultipartBody.FORM) + .addFormDataPart("file",file.getPath(),RequestBody.create(MediaType.parse("application/octet-stream"), file)) + .addFormDataPart("carId",carId) + .addFormDataPart("carNum",carNum) + .build(); + Request request = new Request.Builder() + .url(od.getUrl()) + .method("POST", body) + .addHeader("Authorization", token) + .addHeader("Cookie", "JSESSIONID=NqpqKQstwceQurcNK5hjl4GnTgiF4eSzZSo5a1rz") + .build(); + return request; + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/http/RequestUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/http/RequestUtil.java new file mode 100644 index 0000000..a969bc5 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/http/RequestUtil.java @@ -0,0 +1,259 @@ +package com.arpa.hndahesudintocctmsdriver.util.http; + +import android.content.Context; +import android.content.Intent; +import android.os.Handler; +import android.os.Message; +import android.util.Log; +import android.widget.Toast; + +import com.google.gson.Gson; +import com.arpa.hndahesudintocctmsdriver.bean.MsgBean; +import com.arpa.hndahesudintocctmsdriver.ui.MainActivity; +import com.arpa.hndahesudintocctmsdriver.ui.UiAuxiliary; +import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup; +import com.arpa.hndahesudintocctmsdriver.util.time.Timer; + +import java.io.IOException; +import java.util.Date; + +import okhttp3.Call; +import okhttp3.Callback; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; + +public class RequestUtil { + + public static final int FEEDBACK=-1; + public static final String FEEDBACK_TEXT="请求失败,请检查网络状况"; + private static Gson gson=new Gson(); + private static MsgBean mb; + //1执行重新请求,并更新缓存 + //2自动判断是否有缓存,如果有,不在请求 + //3自动判断是否有缓存,如果有,定时检测缓存,如果两次时间相隔超过规定时间,则也会再次请求 + public static void start(int code, final String name, Request re, Context con, final Handler hd){ + switch (code){ + case 1:a1(name,re,con,hd);break; + case 12:a1s(name,re,con,hd);break; + case 2:a2(name,re,con,hd);break; + case 11:a11(name,re,con,hd);break; + default:break; + } + } + + public static void start(final String name, Request re, Context con, final Handler hd, int s){ + a3(name,re,con,hd,s); + } + + public static void a1(final String name, Request re, Context con, final Handler hd){ + Log.e("请求开始","........"); + OkHttpClient client = new OkHttpClient().newBuilder() + .build(); + client.newCall(re).enqueue( new Callback() { + @Override + public void onFailure(Call call, IOException e) { + Log.e("请求错误","error:"+e.toString()); + Message message=new Message(); + message.obj=RequsetCodeConstants.FEEDBACK_TEXT; + message.what=RequsetCodeConstants.ERROR; + hd.sendMessage(message); + } + @Override + public void onResponse(Call call, Response response) throws IOException { + String body=response.body().string(); + final int code=response.code(); + Log.e("e",body+""); + //SecurityUtil.decrypt(body); + if(body.startsWith("04")){ + body=SecurityUtil.decrypt(body); + } + Log.e("es",body+""); + Message message=new Message(); + if(code==RequsetCodeConstants.SUCCESS){ + mb=gson.fromJson(body,MsgBean.class); + if(!body.equals("")){ + if(mb.getCode()==401){ + UiAuxiliary.delLogin(con); + Intent intent = new Intent(con, MainActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); + con.startActivity(intent); + }else{ + CacheGroup.cacheList.put(name,body); + message.obj=response.code(); + message.what=RequsetCodeConstants.SUCCESS; + } + } + }else{ + message.obj=response.code(); + message.what=code; + } + Log.e("请求响应",body); + hd.sendMessage(message); + //customDialog.dismiss(); + } + }); + } + public static void a1s(final String name, Request re, Context con, final Handler hd){ + Log.e("请求开始","........"); + OkHttpClient client = new OkHttpClient().newBuilder() + .build(); + client.newCall(re).enqueue( new Callback() { + @Override + public void onFailure(Call call, IOException e) { + Log.e("请求错误","error:"+e.toString()); + Message message=new Message(); + message.obj=RequsetCodeConstants.FEEDBACK_TEXT; + message.what=RequsetCodeConstants.ERROR; + hd.sendMessage(message); + } + @Override + public void onResponse(Call call, Response response) throws IOException { + final String body=response.body().string(); + final int code=response.code(); + Log.e("e",body+""); + //SecurityUtil.decrypt(body); + String bodys=body; + Log.e("es",bodys+""); + Message message=new Message(); + if(code==RequsetCodeConstants.SUCCESS){ + mb=gson.fromJson(bodys,MsgBean.class); + if(!bodys.equals("")){ + if(mb.getCode()==401){ + UiAuxiliary.delLogin(con); + final Intent intent = con.getPackageManager().getLaunchIntentForPackage(con.getPackageName()); + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + con.startActivity(intent); + android.os.Process.killProcess(android.os.Process.myPid()); + Toast.makeText(con,"登陆失效",Toast.LENGTH_SHORT).show(); + }else{ + CacheGroup.cacheList.put(name,bodys); + message.obj=response.code(); + message.what=RequsetCodeConstants.SUCCESS; + } + } + }else{ + message.obj=response.code(); + message.what=code; + } + Log.e("请求响应",body); + hd.sendMessage(message); + //customDialog.dismiss(); + } + }); + } + public static void a2(final String name, Request re, Context con, final Handler hd){ + //CustomDialog customDialog= new CustomDialog(con, "正在加载..."); + //customDialog.show();//显示,显示时页面不可点击,只能点击返回 + if(CacheGroup.cacheListA.get(name)==null){ + OkHttpClient client = new OkHttpClient(); + client.newCall(re).enqueue(new Callback() { + @Override + public void onFailure(Call call, IOException e) { + Message message=new Message(); + message.obj=e.toString(); + message.what=-1; + hd.sendMessage(message); + } + @Override + public void onResponse(Call call, Response response) throws IOException { + final String body=response.body().string(); + //System.out.println(body); + CacheGroup.cacheListA.put(name,body); + Message message=new Message(); + message.what=2; + hd.sendMessage(message); + } + }); + }else{ + System.out.println("已有缓存,不需要再次请求"); + Message message=new Message(); + message.what=2; + hd.sendMessage(message); + } + } + public static void a3(final String name, Request re, Context con, final Handler hd, long s){ + if(CacheGroup.cacheDateList.get(name)==null){ + //CustomDialog customDialog= new CustomDialog(con, "正在加载..."); + //customDialog.show();//显示,显示时页面不可点击,只能点击返回 + OkHttpClient client = new OkHttpClient(); + client.newCall(re).enqueue(new Callback() { + @Override + public void onFailure(Call call, IOException e) { + Message message=new Message(); + message.obj=FEEDBACK; + message.what=-1; + hd.sendMessage(message); + } + @Override + public void onResponse(Call call, Response response) throws IOException { + final String body=response.body().string(); + //System.out.println(body); + Date d=new Date(); + CacheGroup.cacheTimeList.put(name, d); + CacheGroup.cacheDateList.put(name, body); + Message message=new Message(); + message.what=3; + hd.sendMessage(message); + //customDialog.dismiss(); + } + }); + }else{ + Date ds=new Date(); + System.out.println("时间差:"+ Timer.TimeD(ds,CacheGroup.cacheTimeList.get(name))); + System.out.println("实时时间:"+s); + if(Timer.TimeD(ds,CacheGroup.cacheTimeList.get(name))>=s){ + //CustomDialog customDialog= new CustomDialog(con, "正在加载..."); + //customDialog.show();//显示,显示时页面不可点击,只能点击返回 + OkHttpClient client = new OkHttpClient(); + client.newCall(re).enqueue(new Callback() { + @Override + public void onFailure(Call call, IOException e) { + Message message=new Message(); + message.obj=FEEDBACK; + message.what=-1; + hd.sendMessage(message); + } + @Override + public void onResponse(Call call, Response response) throws IOException { + final String body=response.body().string(); + //System.out.println(body); + Date d=new Date(); + CacheGroup.cacheTimeList.put(name, d); + CacheGroup.cacheDateList.put(name, body); + Message message=new Message(); + message.what=3; + hd.sendMessage(message); + //customDialog.dismiss(); + } + }); + }else{ + System.out.println("没有超过实时缓存时间,不进行请求"); + Message message=new Message(); + message.what=3; + hd.sendMessage(message); + } + } + } + public static void a11(final String name,Request re,Context con,final Handler hd){ + OkHttpClient client = new OkHttpClient(); + client.newCall(re).enqueue(new Callback() { + @Override + public void onFailure(Call call, IOException e) { + Message message=new Message(); + message.obj=FEEDBACK; + message.what=-1; + hd.sendMessage(message); + } + @Override + public void onResponse(Call call, Response response) throws IOException { + final String body=response.body().string(); + System.out.println("存储空间"+name); + CacheGroup.cacheList.put(name,body); + Message message=new Message(); + message.what=1; + hd.sendMessage(message); + } + }); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/http/RequsetCodeConstants.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/http/RequsetCodeConstants.java new file mode 100644 index 0000000..c9657c0 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/http/RequsetCodeConstants.java @@ -0,0 +1,27 @@ +package com.arpa.hndahesudintocctmsdriver.util.http; + +public class RequsetCodeConstants { + + public static final int ERROR=-1; + + //响应码 + //登录失效 + public static final int NOT_LOGIN=401; + //返回成功 + public static final int SUCCESS=200; + //请求地址找不到 + public static final int UNKONWN=404; + //网关错误 + public static final int GATEWAY_ERROR=502; + //服务器错误 + public static final int SERVER_ERROR=500; + //请求的实体过大 + public static final int ENTITY_TOO_LARGE=413; + // + public static final String UNKONWN_TEXT="请求地址未找到"; + public static final String GATEWAY_ERROR_TEXT="网关错误"; + public static final String SERVER_ERROR_TEXT="服务器出现异常"; + public static final String ENTITY_TOO_LARGE_TEXT="上传的图片过大"; + public static final String FEEDBACK_TEXT="请求失败,请检查网络状况"; + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/http/SecurityUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/http/SecurityUtil.java new file mode 100644 index 0000000..be74747 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/http/SecurityUtil.java @@ -0,0 +1,57 @@ +package com.arpa.hndahesudintocctmsdriver.util.http; + + + + +import java.io.IOException; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/9/14 11:01 + * @description: + */ +public class SecurityUtil { + + /** + * 公钥 + */ + private static final String public_key = "04B16143229EF2DF546DE8AEC5E0242E9C7B564A7D6C3D982450DAC0E46606C5851AB710059E2BBCE6D86EE2215B18274EF2642626650F9774AB57F7ADE44DF0A3"; + /** + * 私钥 + */ + private static final String private_key = "4993A5ED6E3F865279481A96453E4907E5943F0086EAB9C3E3B24C8A36D7CBFD"; + + /** + * 加密 + * + * @param data 带加密数据 + * @return 加密后的结果 + */ + public static String encrypt(String data) { + String str=""; +// try { +// str=SM2Utils.encrypt132(data.getBytes(),Util.hexToByte(public_key)); +// } catch (IOException e) { +// e.printStackTrace(); +// } + return str; + } + + + /** + * 解密 + * + * @param data 带加密数据 + * @return 解密后的结果 + */ + public static String decrypt(String data) { + byte[] bs=null; +// try { +// bs=SM2Utils.decrypt132(Util.hexToByte(private_key), Util.hexToByte(data)); +// } catch (IOException e) { +// e.printStackTrace(); +// } + return new String(bs); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/img/GetCarImageAlert.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/img/GetCarImageAlert.java new file mode 100644 index 0000000..5a27706 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/img/GetCarImageAlert.java @@ -0,0 +1,107 @@ +package com.arpa.hndahesudintocctmsdriver.util.img; + +import android.Manifest; +import android.view.Gravity; +import android.view.View; +import android.view.WindowManager; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.PopupWindow; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.appcompat.app.AppCompatActivity; + +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.util.PicturlUtil; +import com.luck.picture.lib.permissions.RxPermissions; + +import java.io.File; +import java.util.ArrayList; + +/** + * @author hlh + * @version 1.0.0 + * @date 2022/1/4 16:13 + * @description: + */ +public class GetCarImageAlert { + + File file; + PopupWindow popupWindow; + ImageView img; + + public void showPopueWindow(AppCompatActivity act,boolean key){ + View popView = View.inflate(act, R.layout.choice_car_timg,null); + Button btn_xiangce =popView.findViewById(R.id.btn_xiangce); + Button btn_paizhao = popView.findViewById(R.id.btn_paizhao); + Button btn_quxiao = popView.findViewById(R.id.btn_quxiao); + View v_1=popView.findViewById(R.id.v_1); + TextView tv_ts=popView.findViewById(R.id.tv_ts); + img=popView.findViewById(R.id.img); + //获取屏幕宽高 + int weight =act.getResources().getDisplayMetrics().widthPixels; + int height = act.getResources().getDisplayMetrics().heightPixels*2/3; + popupWindow = new PopupWindow(popView,weight,height); + //popupWindow.setAnimationStyle(R.style.anim_popup_dir); + popupWindow.setFocusable(true); + //点击外部popueWindow消失 + popupWindow.setOutsideTouchable(true); + if(key){ + btn_xiangce.setVisibility(View.VISIBLE); + img.setImageResource(R.drawable.huidan); + tv_ts.setText("请按照如图所示拍摄回单照片,回单照片必须保持清晰完整,能看清具体吨数,便于结算运费时核查,感谢配合。"); + v_1.setVisibility(View.VISIBLE); + //请按照如图所示拍摄回单照片,回单照片必须保持清晰完整,能看清具体吨数,便于结算运费时核查,感谢配合。 + } + btn_xiangce.setOnClickListener(v -> { + RxPermissions rp=new RxPermissions(act); + rp.request( + Manifest.permission.READ_EXTERNAL_STORAGE + ).subscribe(b -> { + if (b) { + //ImageGetUtil.AlbumGetImage(act); + PicturlUtil.selectPicter(act, new ArrayList<>(), 1); + } else { + Toast.makeText(act.getBaseContext(),"开启权限失败,请手动开启权限",Toast.LENGTH_LONG).show(); + } + } + ); + }); + btn_paizhao.setOnClickListener(v -> { + RxPermissions rp=new RxPermissions(act); + rp.request( + Manifest.permission.CAMERA + ).subscribe(b -> { + if (b) { + file=ImageGetUtil.createImageFile(act); + ImageGetUtil.cameraAlbumGetImage(act,file); + } else { + Toast.makeText(act.getBaseContext(),"开启权限失败,请手动开启权限",Toast.LENGTH_LONG).show(); + } + } + ); + }); + btn_quxiao.setOnClickListener(v -> popupWindow.dismiss()); + //popupWindow消失屏幕变为不透明 + popupWindow.setOnDismissListener(() -> { + WindowManager.LayoutParams lp = act.getWindow().getAttributes(); + lp.alpha = 1.0f; + act.getWindow().setAttributes(lp); + }); + //popupWindow出现屏幕变为半透明 + WindowManager.LayoutParams lp = act.getWindow().getAttributes(); + lp.alpha = 0.5f; + act.getWindow().setAttributes(lp); + popupWindow.showAtLocation(popView, Gravity.BOTTOM,0,50); + } + + public File getFile() { + return file; + } + + public void dis(){ + popupWindow.dismiss(); + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/img/GetImageAlert.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/img/GetImageAlert.java new file mode 100644 index 0000000..7d84758 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/img/GetImageAlert.java @@ -0,0 +1,92 @@ +package com.arpa.hndahesudintocctmsdriver.util.img; + +import android.Manifest; +import android.view.Gravity; +import android.view.View; +import android.view.WindowManager; +import android.widget.Button; +import android.widget.PopupWindow; +import android.widget.Toast; + +import androidx.appcompat.app.AppCompatActivity; + +import com.arpa.hndahesudintocctmsdriver.util.PicturlUtil; +import com.luck.picture.lib.permissions.RxPermissions; +import com.arpa.hndahesudintocctmsdriver.R; + +import java.io.File; +import java.util.ArrayList; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/16 8:43 + * @description: + */ +public class GetImageAlert { + + File file; + PopupWindow popupWindow; + public void showPopueWindow(AppCompatActivity act){ + View popView = View.inflate(act, R.layout.choice_img,null); + Button btn_xiangce =popView.findViewById(R.id.btn_xiangce); + Button btn_paizhao = popView.findViewById(R.id.btn_paizhao); + Button btn_quxiao = popView.findViewById(R.id.btn_quxiao); + //获取屏幕宽高 + int weight =act.getResources().getDisplayMetrics().widthPixels; + int height = act.getResources().getDisplayMetrics().heightPixels*1/3; + popupWindow = new PopupWindow(popView,weight,height); + //popupWindow.setAnimationStyle(R.style.anim_popup_dir); + popupWindow.setFocusable(true); + //点击外部popueWindow消失 + popupWindow.setOutsideTouchable(true); + + btn_xiangce.setOnClickListener(v -> { + RxPermissions rp=new RxPermissions(act); + rp.request( + Manifest.permission.READ_EXTERNAL_STORAGE + ).subscribe(b -> { + if (b) { + PicturlUtil.selectPicter(act, new ArrayList<>(), 1); + } else { + Toast.makeText(act.getBaseContext(),"开启权限失败,请手动开启权限",Toast.LENGTH_LONG).show(); + } + } + ); + }); + btn_paizhao.setOnClickListener(v -> { + RxPermissions rp=new RxPermissions(act); + rp.request( + Manifest.permission.CAMERA + ).subscribe(b -> { + if (b) { + file=ImageGetUtil.createImageFile(act); + ImageGetUtil.cameraAlbumGetImage(act,file); + } else { + Toast.makeText(act.getBaseContext(),"开启权限失败,请手动开启权限",Toast.LENGTH_LONG).show(); + } + } + ); + }); + btn_quxiao.setOnClickListener(v -> popupWindow.dismiss()); + //popupWindow消失屏幕变为不透明 + popupWindow.setOnDismissListener(() -> { + WindowManager.LayoutParams lp = act.getWindow().getAttributes(); + lp.alpha = 1.0f; + act.getWindow().setAttributes(lp); + }); + //popupWindow出现屏幕变为半透明 + WindowManager.LayoutParams lp = act.getWindow().getAttributes(); + lp.alpha = 0.5f; + act.getWindow().setAttributes(lp); + popupWindow.showAtLocation(popView, Gravity.BOTTOM,0,50); + } + + public File getFile() { + return file; + } + + public void dis(){ + popupWindow.dismiss(); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/img/ImageGetUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/img/ImageGetUtil.java new file mode 100644 index 0000000..63f2e26 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/img/ImageGetUtil.java @@ -0,0 +1,71 @@ +package com.arpa.hndahesudintocctmsdriver.util.img; + +import android.app.Activity; +import android.content.Intent; +import android.net.Uri; +import android.os.Build; +import android.os.Environment; +import android.provider.MediaStore; + +import androidx.core.content.FileProvider; + +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/7/30 16:41 + * @description:图片获取工具 + */ +public class ImageGetUtil { + + public static final int ALBUM_CODE=11; + public static final int CAMERA_CODE=12; + + public static void AlbumGetImage(Activity act){ + Intent intent = new Intent( + Intent.ACTION_PICK, + android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); + act.startActivityForResult(intent,ALBUM_CODE); + } + + public static void cameraAlbumGetImage(Activity act,File imageFile){ + Uri uri; + Intent takePhotoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);//打开相机的Intent + if(takePhotoIntent.resolveActivity(act.getPackageManager())!=null){//这句作用是如果没有相机则该应用不会闪退,要是不加这句则当系统没有相机应用的时候该应用会闪退 + if(imageFile!=null){ + if(Build.VERSION.SDK_INT>= Build.VERSION_CODES.N){ + /*7.0以上要通过FileProvider将File转化为Uri*/ + uri = FileProvider.getUriForFile(act.getApplicationContext(),"com.arpa.hndahesudintocctmsdriver.fileprovider",imageFile); + }else { + /*7.0以下则直接使用Uri的fromFile方法将File转化为Uri*/ + uri = Uri.fromFile(imageFile); + } + takePhotoIntent.putExtra(MediaStore.EXTRA_OUTPUT,uri);//将用于输出的文件Uri传递给相机 + act.startActivityForResult(takePhotoIntent, CAMERA_CODE);//打开相机 + } + } + } + + /** + * 创建用来存储图片的文件,以时间来命名就不会产生命名冲突 + * @return 创建的图片文件 + */ + + public static File createImageFile(Activity act) { + String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); + String imageFileName = "JPEG_"+timeStamp+"_"; + File storageDir = act.getExternalFilesDir(Environment.DIRECTORY_PICTURES); + File imageFile = null; + try { + imageFile = File.createTempFile(imageFileName,".jpg",storageDir); + } catch (IOException e) { + e.printStackTrace(); + } + return imageFile; + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/img/ImageUriUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/img/ImageUriUtil.java new file mode 100644 index 0000000..40d8de4 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/img/ImageUriUtil.java @@ -0,0 +1,27 @@ +package com.arpa.hndahesudintocctmsdriver.util.img; + +import android.content.Context; +import android.database.Cursor; +import android.net.Uri; +import android.provider.MediaStore; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/7/30 17:21 + * @description:uri转化工具 + */ +public class ImageUriUtil { + + public static String uriTurnPath(Uri uri, Context con){ + String path=""; + String[] filePathColumn = {MediaStore.Images.Media.DATA}; + Cursor cursor = con.getContentResolver().query(uri, + filePathColumn, null, null, null); + cursor.moveToFirst(); + int columnIndex = cursor.getColumnIndex(filePathColumn[0]); + path = cursor.getString(columnIndex); + return path; + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/img/ImageViewGif.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/img/ImageViewGif.java new file mode 100644 index 0000000..37fbce2 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/img/ImageViewGif.java @@ -0,0 +1,35 @@ +package com.arpa.hndahesudintocctmsdriver.util.img; + +import android.content.Context; +import android.util.AttributeSet; + +import androidx.annotation.Nullable; + +import com.bumptech.glide.Glide; +import com.arpa.hndahesudintocctmsdriver.R; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/11/18 18:00 + * @description: + */ +public class ImageViewGif extends androidx.appcompat.widget.AppCompatImageView { + + public ImageViewGif(Context context) { + super(context); + Glide.with(context).load(R.drawable.kf).into(this); + } + + public ImageViewGif(Context context, @Nullable AttributeSet attrs) { + super(context, attrs); + Glide.with(context).load(R.drawable.kf).into(this); + } + + public ImageViewGif(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + Glide.with(context).load(R.drawable.kf).into(this); + } + + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/json/JsonUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/json/JsonUtil.java new file mode 100644 index 0000000..2175d6b --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/json/JsonUtil.java @@ -0,0 +1,22 @@ +package com.arpa.hndahesudintocctmsdriver.util.json; + +import org.json.JSONObject; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/10/11 14:45 + * @description: + */ +public class JsonUtil { + + public boolean isJson(String str){ + try { + JSONObject json=new JSONObject(str); + return true; + } catch (Exception e) { + return false; + } + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/location/LocationGDUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/location/LocationGDUtil.java new file mode 100644 index 0000000..71aada4 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/location/LocationGDUtil.java @@ -0,0 +1,150 @@ +package com.arpa.hndahesudintocctmsdriver.util.location; + +import android.content.Context; +import android.os.Handler; +import android.util.Log; + +import com.amap.api.location.AMapLocation; +import com.amap.api.location.AMapLocationClient; +import com.amap.api.location.AMapLocationClientOption; +import com.amap.api.location.AMapLocationListener; +import com.arpa.hndahesudintocctmsdriver.util.msg.MsgUtil; + +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/13 16:13 + * @description:高德地图定位 + */ +public class LocationGDUtil { + + public final static int RES=14; + private double latitude; + private double longitude; + private String address; + + public double getLatitude() { + return latitude; + } + + public double getLongitude() { + return longitude; + } + + public String getAddress() { + return address; + } + + private Context con; + private Handler hd; + //声明AMapLocationClient类对象 + public AMapLocationClient mLocationClient = null; + //声明AMapLocationClientOption对象 + public AMapLocationClientOption mLocationOption = null; + //声明定位回调监听器 + + public AMapLocationListener mLocationListener = new AMapLocationListener() { + @Override + public void onLocationChanged(AMapLocation aMapLocation) { + if (aMapLocation != null) { + if (aMapLocation.getErrorCode() == 0) { + //可在其中解析amapLocation获取相应内容。 + Log.e("x经纬度gd",aMapLocation.getLatitude()+"-----"); + aMapLocation.getLocationType();//获取当前定位结果来源,如网络定位结果,详见定位类型表 + latitude=aMapLocation.getLatitude();//获取纬度 + longitude=aMapLocation.getLongitude();//获取经度 + aMapLocation.getAccuracy();//获取精度信息 + address=aMapLocation.getAddress();//地址,如果option中设置isNeedAddress为false,则没有此结果,网络定位结果中会有地址信息,GPS定位不返回地址信息。 + aMapLocation.getCountry();//国家信息 + aMapLocation.getProvince();//省信息 + aMapLocation.getCity();//城市信息 + aMapLocation.getDistrict();//城区信息 + aMapLocation.getStreet();//街道信息 + aMapLocation.getStreetNum();//街道门牌号信息 + aMapLocation.getCityCode();//城市编码 + aMapLocation.getAdCode();//地区编码 + aMapLocation.getAoiName();//获取当前定位点的AOI信息 + aMapLocation.getBuildingId();//获取当前室内定位的建筑物Id + aMapLocation.getFloor();//获取当前室内定位的楼层 + aMapLocation.getGpsAccuracyStatus();//获取GPS的当前状态 + //获取定位时间 + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date date = new Date(aMapLocation.getTime()); + df.format(date); + MsgUtil.addHdMsgWat(hd,RES); + if (mLocationClient!=null) { + mLocationClient.onDestroy(); + } + }else { + MsgUtil.addHdMsgWat(hd,16); + //定位失败时,可通过ErrCode(错误码)信息来确定失败的原因,errInfo是错误信息,详见错误码表。 + Log.e("AmapError","location Error, ErrCode:" + + aMapLocation.getErrorCode() + ", errInfo:" + + aMapLocation.getErrorInfo()); + } + } + } + }; + + public LocationGDUtil(Context con,Handler hd) { + this.con = con; + this.hd=hd; + } + + public void onCreate(){ +// AMapLocationClient.updatePrivacyShow(con,true,true); +// AMapLocationClient.updatePrivacyAgree(con,true); + //初始化定位 + try { + mLocationClient = new AMapLocationClient(con.getApplicationContext()); + } catch (Exception e) { + e.printStackTrace(); + } + //设置定位回调监听 + mLocationClient.setLocationListener(mLocationListener); + //初始化AMapLocationClientOption对象 + mLocationOption = new AMapLocationClientOption(); + AMapLocationClientOption option = new AMapLocationClientOption(); + /** + * 设置定位场景,目前支持三种场景(签到、出行、运动,默认无场景) + */ + option.setLocationPurpose(AMapLocationClientOption.AMapLocationPurpose.SignIn); + if(null != mLocationClient){ + mLocationClient.setLocationOption(option); + //设置场景模式后最好调用一次stop,再调用start以保证场景模式生效 + mLocationClient.stopLocation(); + mLocationClient.startLocation(); + } + //设置定位模式为AMapLocationMode.Hight_Accuracy,高精度模式。 + //mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy); + //设置定位模式为AMapLocationMode.Battery_Saving,低功耗模式。 + mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy); + //设置定位模式为AMapLocationMode.Device_Sensors,仅设备模式。 + //mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Device_Sensors); + //获取一次定位结果: + //该方法默认为false。 + mLocationOption.setOnceLocation(true); + //获取最近3s内精度最高的一次定位结果: + //设置setOnceLocationLatest(boolean b)接口为true,启动定位时SDK会返回最近3s内精度最高的一次定位结果。如果设置其为true,setOnceLocation(boolean b)接口也会被设置为true,反之不会,默认为false。 + mLocationOption.setOnceLocationLatest(true); + //设置是否返回地址信息(默认返回地址信息) + mLocationOption.setNeedAddress(true); + //设置是否允许模拟位置,默认为true,允许模拟位置 + mLocationOption.setMockEnable(true); + //单位是毫秒,默认30000毫秒,建议超时时间不要低于8000毫秒。 + mLocationOption.setHttpTimeOut(20000); + //关闭缓存机制 + mLocationOption.setLocationCacheEnable(false); + //给定位客户端对象设置定位参数 + mLocationClient.setLocationOption(mLocationOption); + //启动定位 + mLocationClient.stopLocation(); + mLocationClient.startLocation(); + + } + + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/location/LocationUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/location/LocationUtil.java new file mode 100644 index 0000000..179549e --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/location/LocationUtil.java @@ -0,0 +1,129 @@ +package com.arpa.hndahesudintocctmsdriver.util.location; + +import android.content.Context; +import android.os.Handler; +import android.util.Log; + +import com.arpa.hndahesudintocctmsdriver.util.msg.MsgUtil; +import com.baidu.location.BDAbstractLocationListener; +import com.baidu.location.BDLocation; +import com.baidu.location.LocationClient; +import com.baidu.location.LocationClientOption; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/13 14:13 + * @description:定位工具类 + */ +public class LocationUtil{ + + private double latitude; + private double longitude; + private String address; + private Context con; + private Handler hd; + public LocationClient mLocationClient = null; + private MyLocationListener myListener = new MyLocationListener(); + + public LocationUtil(Context con,Handler hd){ + this.con=con; + this.hd=hd; + } + + public double getLatitude() { + return latitude; + } + + public double getLongitude() { + return longitude; + } + + public String getAddress() { + return address; + } + + public void close(){ + if(mLocationClient!=null){ + mLocationClient.stop(); + } + } + + //BDAbstractLocationListener为7.2版本新增的Abstract类型的监听接口 + //原有BDLocationListener接口暂时同步保留。具体介绍请参考后文第四步的说明 + public void onCreate() { + mLocationClient = new LocationClient(con.getApplicationContext()); + //声明LocationClient类 + mLocationClient.registerLocationListener(myListener); + //注册监听函数 + LocationClientOption option = new LocationClientOption(); + option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy); + //可选,设置定位模式,默认高精度 + //LocationMode.Hight_Accuracy:高精度; + //LocationMode. Battery_Saving:低功耗; + //LocationMode. Device_Sensors:仅使用设备; + option.setCoorType("GCJ02"); + //可选,设置返回经纬度坐标类型,默认GCJ02 + //GCJ02:国测局坐标; + //BD09ll:百度经纬度坐标; + //BD09:百度墨卡托坐标; + //海外地区定位,无需设置坐标类型,统一返回WGS84类型坐标 + option.setScanSpan(0); + //可选,设置发起定位请求的间隔,int类型,单位ms + //如果设置为0,则代表单次定位,即仅定位一次,默认为0 + //如果设置非0,需设置1000ms以上才有效 + option.setOpenGps(true); + //可选,设置是否使用gps,默认false + //使用高精度和仅用设备两种定位模式的,参数必须设置为true + option.setLocationNotify(true); + //可选,设置是否当GPS有效时按照1S/1次频率输出GPS结果,默认false + option.setIgnoreKillProcess(false); + //可选,定位SDK内部是一个service,并放到了独立进程。 + //设置是否在stop的时候杀死这个进程,默认(建议)不杀死,即setIgnoreKillProcess(true) + option.SetIgnoreCacheException(false); + //可选,设置是否收集Crash信息,默认收集,即参数为false + option.setWifiCacheTimeOut(5*60*1000); + //可选,V7.2版本新增能力 + //如果设置了该接口,首次启动定位时,会先判断当前Wi-Fi是否超出有效期,若超出有效期,会先重新扫描Wi-Fi,然后定位 + option.setEnableSimulateGps(false); + option.setIsNeedAddress(true); + //可选,是否需要地址信息,默认为不需要,即参数为false + //如果开发者需要获得当前点的地址信息,此处必须为true + //可选,设置是否需要最新版本的地址信息。默认需要,即参数为true + //可选,设置是否需要过滤GPS仿真结果,默认需要,即参数为false + // option.setNeedNewVersionRgc(true); + //可选,设置是否需要最新版本的地址信息。默认需要,即参数为true + mLocationClient.setLocOption(option); + //mLocationClient为第二步初始化过的LocationClient对象 + //需将配置好的LocationClientOption对象,通过setLocOption方法传递给LocationClient对象使用 + //更多LocationClientOption的配置,请参照类参考中LocationClientOption类的详细说明 + mLocationClient.start(); + } + + public class MyLocationListener extends BDAbstractLocationListener { + @Override + public void onReceiveLocation(BDLocation location){ + //此处的BDLocation为定位结果信息类,通过它的各种get方法可获取定位相关的全部结果 + //以下只列举部分获取经纬度相关(常用)的结果信息 + //更多结果信息获取说明,请参照类参考中BDLocation类中的说明 + address = location.getAddrStr(); //获取详细地址信息 + latitude = location.getLatitude(); //获取纬度信息 + longitude = location.getLongitude(); //获取经度信息 + float radius = location.getRadius(); //获取定位精度,默认值为0.0f + String coorType = location.getCoorType(); + //获取经纬度坐标类型,以LocationClientOption中设置过的坐标类型为准 + int errorCode = location.getLocType(); + //获取定位类型、定位错误返回码,具体信息可参照类参考中BDLocation类中的说明 + Log.e("定位位置address",address+""); + Log.e("定位坐标latitude",latitude+""); + Log.e("定位坐标longitude",longitude+""); + Log.e("返回码latitude",errorCode+""); +// if(location.is){ +// +// } + MsgUtil.addHdMsgWat(hd,15); + close(); + } + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/log/LogUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/log/LogUtil.java new file mode 100644 index 0000000..213ca86 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/log/LogUtil.java @@ -0,0 +1,40 @@ +package com.arpa.hndahesudintocctmsdriver.util.log; + +import android.util.Log; + +import java.security.SecureRandom; + +import javax.crypto.Cipher; +import javax.crypto.SecretKey; +import javax.crypto.SecretKeyFactory; +import javax.crypto.spec.DESKeySpec; + +/** + * @author hlh + * @version 1.0.0 + * @date 2022/1/10 16:55 + * @description:日志工具类 + */ +public class LogUtil{ + + public static void show(String title,String value){ + Log.e(title,value); + Log.d(title,value); + + } + + + public static byte[] desDecrypt(byte[] encryptText, String desKeyParameter) throws Exception { + SecureRandom sr = new SecureRandom(); + byte rawKeyData[] = desKeyParameter.getBytes(); + DESKeySpec dks = new DESKeySpec(rawKeyData); + SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); + SecretKey key = keyFactory.generateSecret(dks); + Cipher cipher = Cipher.getInstance("DES"); + cipher.init(Cipher.DECRYPT_MODE, key, sr); + byte encryptedData[] = encryptText; + byte decryptedData[] = cipher.doFinal(encryptedData); + return decryptedData; + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/map/MapUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/map/MapUtil.java new file mode 100644 index 0000000..bdc48de --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/map/MapUtil.java @@ -0,0 +1,19 @@ +package com.arpa.hndahesudintocctmsdriver.util.map; + +import org.json.JSONObject; + +import java.util.Map; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/9/13 14:29 + * @description: + */ +public class MapUtil { + + public static String mapJson(Map map){ + JSONObject json=new JSONObject(map); + return json.toString(); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/msg/MsgUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/msg/MsgUtil.java new file mode 100644 index 0000000..df297f8 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/msg/MsgUtil.java @@ -0,0 +1,25 @@ +package com.arpa.hndahesudintocctmsdriver.util.msg; + +import android.os.Handler; +import android.os.Message; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/7/30 16:29 + * @description: + */ +public class MsgUtil { + + public static void addHdMsgWat(Handler hd,int what){ + Message msg=new Message(); + msg.what=what; + hd.sendMessage(msg); + } + public static void addHdMsgWatBody(Handler hd,int what,String body){ + Message msg=new Message(); + msg.what=what; + msg.obj=body; + hd.sendMessage(msg); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/sp/SPUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/sp/SPUtil.java new file mode 100644 index 0000000..4766b64 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/sp/SPUtil.java @@ -0,0 +1,20 @@ +package com.arpa.hndahesudintocctmsdriver.util.sp; + +import android.content.Context; +import android.content.SharedPreferences; + +public class SPUtil { + + private static SharedPreferences sp=null; + public static String getSP(Context con, String dataname, String name){ + sp=con.getSharedPreferences(dataname,con.MODE_PRIVATE); + return sp.getString(name,""); + } + + public static void insSP(Context con, String dataname, String name, String body){ + SharedPreferences.Editor editor=con.getSharedPreferences(dataname,con.MODE_PRIVATE).edit(); + editor.putString(name,body); + editor.commit(); + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/statusbar/StateStyleUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/statusbar/StateStyleUtil.java new file mode 100644 index 0000000..6b7ba08 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/statusbar/StateStyleUtil.java @@ -0,0 +1,19 @@ +package com.arpa.hndahesudintocctmsdriver.util.statusbar; + +import android.app.Activity; +import android.graphics.Color; +import android.os.Build; +import android.view.View; + + +public class StateStyleUtil { + + public static void stateTextColor(Activity a){ + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + // a.getWindow().setBackgroundDrawableResource(R.color.Blue); + a.getWindow().getDecorView().setSystemUiVisibility( + View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN| View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); + a.getWindow().setStatusBarColor(Color.TRANSPARENT); + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/statusbar/StatusBar.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/statusbar/StatusBar.java new file mode 100644 index 0000000..f6c51f4 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/statusbar/StatusBar.java @@ -0,0 +1,111 @@ +package com.arpa.hndahesudintocctmsdriver.util.statusbar; + +import android.app.Activity; +import android.os.Build; +import android.view.View; +import android.view.Window; + +import androidx.annotation.ColorInt; +import androidx.annotation.NonNull; +import androidx.appcompat.widget.Toolbar; + +import com.google.android.material.appbar.AppBarLayout; +import com.google.android.material.appbar.CollapsingToolbarLayout; + + +/** + * Utils for status bar + * Created by qiu on 3/29/16. + */ +public class StatusBar { + + //Get alpha color + static int calculateStatusBarColor(int color, int alpha) { + float a = 1 - alpha / 255f; + int red = color >> 16 & 0xff; + int green = color >> 8 & 0xff; + int blue = color & 0xff; + red = (int) (red * a + 0.5); + green = (int) (green * a + 0.5); + blue = (int) (blue * a + 0.5); + return 0xff << 24 | red << 16 | green << 8 | blue; + } + + /** + * set statusBarColor + * @param statusColor color + * @param alpha 0 - 255 + */ + public static void setStatusBarColor(@NonNull Activity activity, @ColorInt int statusColor, int alpha) { + setStatusBarColor(activity, calculateStatusBarColor(statusColor, alpha)); + } + + public static void setStatusBarColor(@NonNull Activity activity, @ColorInt int statusColor) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + StatusBarCompatLollipop.setStatusBarColor(activity, statusColor); + } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + StatusBarCompatKitKat.setStatusBarColor(activity, statusColor); + } + } + + public static void translucentStatusBar(@NonNull Activity activity) { + translucentStatusBar(activity, false); + } + + /** + * change to full screen mode + * @param hideStatusBarBackground hide status bar alpha Background when SDK > 21, true if hide it + */ + public static void translucentStatusBar(@NonNull Activity activity, boolean hideStatusBarBackground) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + StatusBarCompatLollipop.translucentStatusBar(activity, hideStatusBarBackground); + } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + StatusBarCompatKitKat.translucentStatusBar(activity); + } + } + + public static void setStatusBarColorForCollapsingToolbar(@NonNull Activity activity, AppBarLayout appBarLayout, CollapsingToolbarLayout collapsingToolbarLayout, + Toolbar toolbar, @ColorInt int statusColor) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + StatusBarCompatLollipop.setStatusBarColorForCollapsingToolbar(activity, appBarLayout, collapsingToolbarLayout, toolbar, statusColor); + } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + StatusBarCompatKitKat.setStatusBarColorForCollapsingToolbar(activity, appBarLayout, collapsingToolbarLayout, toolbar, statusColor); + } + } + + public static void changeToLightStatusBar(@NonNull Activity activity) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { + return; + } + if (activity == null) { + return; + } + Window window = activity.getWindow(); + if (window == null) { + return; + } + View decorView = window.getDecorView(); + if (decorView == null) { + return; + } + decorView.setSystemUiVisibility(decorView.getSystemUiVisibility() | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); + } + + public static void cancelLightStatusBar(@NonNull Activity activity) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { + return; + } + if (activity == null) { + return; + } + Window window = activity.getWindow(); + if (window == null) { + return; + } + View decorView = window.getDecorView(); + if (decorView == null) { + return; + } + decorView.setSystemUiVisibility(decorView.getSystemUiVisibility() ^ View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/statusbar/StatusBarCompatKitKat.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/statusbar/StatusBarCompatKitKat.java new file mode 100644 index 0000000..8d0bf51 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/statusbar/StatusBarCompatKitKat.java @@ -0,0 +1,221 @@ +package com.arpa.hndahesudintocctmsdriver.util.statusbar; + +import android.annotation.TargetApi; +import android.app.Activity; +import android.content.Context; +import android.os.Build; +import android.view.Gravity; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; +import android.widget.FrameLayout; + +import androidx.appcompat.widget.Toolbar; +import androidx.coordinatorlayout.widget.CoordinatorLayout; +import androidx.core.view.ViewCompat; + +import com.google.android.material.appbar.AppBarLayout; +import com.google.android.material.appbar.CollapsingToolbarLayout; + + +/** + * After kitkat add fake status bar + * Created by qiu on 8/27/16. + */ +@TargetApi(Build.VERSION_CODES.KITKAT) +class StatusBarCompatKitKat { + + private static final String TAG_FAKE_STATUS_BAR_VIEW = "statusBarView"; + private static final String TAG_MARGIN_ADDED = "marginAdded"; + + /** + * node_return statusBar's Height in pixels + */ + private static int getStatusBarHeight(Context context) { + int result = 0; + int resId = context.getResources().getIdentifier("status_bar_height", "dimen", "android"); + if (resId > 0) { + result = context.getResources().getDimensionPixelOffset(resId); + } + return result; + } + + /** + * 1. Add fake statusBarView. + * 2. set tag to statusBarView. + */ + private static View addFakeStatusBarView(Activity activity, int statusBarColor, int statusBarHeight) { + Window window = activity.getWindow(); + ViewGroup mDecorView = (ViewGroup) window.getDecorView(); + + View mStatusBarView = new View(activity); + FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, statusBarHeight); + layoutParams.gravity = Gravity.TOP; + mStatusBarView.setLayoutParams(layoutParams); + mStatusBarView.setBackgroundColor(statusBarColor); + mStatusBarView.setTag(TAG_FAKE_STATUS_BAR_VIEW); + + mDecorView.addView(mStatusBarView); + return mStatusBarView; + } + + /** + * use reserved order to remove is more quickly. + */ + private static void removeFakeStatusBarViewIfExist(Activity activity) { + Window window = activity.getWindow(); + ViewGroup mDecorView = (ViewGroup) window.getDecorView(); + + View fakeView = mDecorView.findViewWithTag(TAG_FAKE_STATUS_BAR_VIEW); + if (fakeView != null) { + mDecorView.removeView(fakeView); + } + } + + /** + * add marginTop to simulate set FitsSystemWindow true + */ + private static void addMarginTopToContentChild(View mContentChild, int statusBarHeight) { + if (mContentChild == null) { + return; + } + if (!TAG_MARGIN_ADDED.equals(mContentChild.getTag())) { + FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) mContentChild.getLayoutParams(); + lp.topMargin += statusBarHeight; + mContentChild.setLayoutParams(lp); + mContentChild.setTag(TAG_MARGIN_ADDED); + } + } + + /** + * remove marginTop to simulate set FitsSystemWindow false + */ + private static void removeMarginTopOfContentChild(View mContentChild, int statusBarHeight) { + if (mContentChild == null) { + return; + } + if (TAG_MARGIN_ADDED.equals(mContentChild.getTag())) { + FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) mContentChild.getLayoutParams(); + lp.topMargin -= statusBarHeight; + mContentChild.setLayoutParams(lp); + mContentChild.setTag(null); + } + } + + /** + * set StatusBarColor + * + * 1. set Window Flag : WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS + * 2. removeFakeStatusBarViewIfExist + * 3. addFakeStatusBarView + * 4. addMarginTopToContentChild + * 5. cancel ContentChild's fitsSystemWindow + */ + static void setStatusBarColor(Activity activity, int statusColor) { + Window window = activity.getWindow(); + window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + + ViewGroup mContentView = (ViewGroup) window.findViewById(Window.ID_ANDROID_CONTENT); + View mContentChild = mContentView.getChildAt(0); + int statusBarHeight = getStatusBarHeight(activity); + + removeFakeStatusBarViewIfExist(activity); + addFakeStatusBarView(activity, statusColor, statusBarHeight); + addMarginTopToContentChild(mContentChild, statusBarHeight); + + if (mContentChild != null) { + ViewCompat.setFitsSystemWindows(mContentChild, false); + } + } + + /** + * translucentStatusBar + * + * 1. set Window Flag : WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS + * 2. removeFakeStatusBarViewIfExist + * 3. removeMarginTopOfContentChild + * 4. cancel ContentChild's fitsSystemWindow + */ + static void translucentStatusBar(Activity activity) { + Window window = activity.getWindow(); + window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + + ViewGroup mContentView = (ViewGroup) activity.findViewById(Window.ID_ANDROID_CONTENT); + View mContentChild = mContentView.getChildAt(0); + + removeFakeStatusBarViewIfExist(activity); + removeMarginTopOfContentChild(mContentChild, getStatusBarHeight(activity)); + if (mContentChild != null) { + ViewCompat.setFitsSystemWindows(mContentChild, false); + } + } + + /** + * compat for CollapsingToolbarLayout + * + * 1. set Window Flag : WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS + * 2. set FitsSystemWindows for views. + * 3. add Toolbar's height, let it layout from top, then add paddingTop to layout normal. + * 4. removeFakeStatusBarViewIfExist + * 5. removeMarginTopOfContentChild + * 6. add OnOffsetChangedListener to change statusBarView's alpha + */ + static void setStatusBarColorForCollapsingToolbar(Activity activity, final AppBarLayout appBarLayout, final CollapsingToolbarLayout collapsingToolbarLayout, + Toolbar toolbar, int statusColor) { + Window window = activity.getWindow(); + window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + ViewGroup mContentView = (ViewGroup) window.findViewById(Window.ID_ANDROID_CONTENT); + + View mContentChild = mContentView.getChildAt(0); + mContentChild.setFitsSystemWindows(false); + ((View) appBarLayout.getParent()).setFitsSystemWindows(false); + appBarLayout.setFitsSystemWindows(false); + collapsingToolbarLayout.setFitsSystemWindows(false); + collapsingToolbarLayout.getChildAt(0).setFitsSystemWindows(false); + + toolbar.setFitsSystemWindows(false); + if (toolbar.getTag() == null) { + CollapsingToolbarLayout.LayoutParams lp = (CollapsingToolbarLayout.LayoutParams) toolbar.getLayoutParams(); + int statusBarHeight = getStatusBarHeight(activity); + lp.height += statusBarHeight; + toolbar.setLayoutParams(lp); + toolbar.setPadding(toolbar.getPaddingLeft(), toolbar.getPaddingTop() + statusBarHeight, toolbar.getPaddingRight(), toolbar.getPaddingBottom()); + toolbar.setTag(true); + } + + int statusBarHeight = getStatusBarHeight(activity); + removeFakeStatusBarViewIfExist(activity); + removeMarginTopOfContentChild(mContentChild, statusBarHeight); + final View statusView = addFakeStatusBarView(activity, statusColor, statusBarHeight); + + CoordinatorLayout.Behavior behavior = ((CoordinatorLayout.LayoutParams) appBarLayout.getLayoutParams()).getBehavior(); + if (behavior != null && behavior instanceof AppBarLayout.Behavior) { + int verticalOffset = ((AppBarLayout.Behavior) behavior).getTopAndBottomOffset(); + if (Math.abs(verticalOffset) > appBarLayout.getHeight() - collapsingToolbarLayout.getScrimVisibleHeightTrigger()) { + statusView.setAlpha(1f); + } else { + statusView.setAlpha(0f); + } + } else { + statusView.setAlpha(0f); + } + + appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() { + @Override + public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { + if (Math.abs(verticalOffset) > appBarLayout.getHeight() - collapsingToolbarLayout.getScrimVisibleHeightTrigger()) { + if (statusView.getAlpha() == 0) { + statusView.animate().cancel(); + statusView.animate().alpha(1f).setDuration(collapsingToolbarLayout.getScrimAnimationDuration()).start(); + } + } else { + if (statusView.getAlpha() == 1) { + statusView.animate().cancel(); + statusView.animate().alpha(0f).setDuration(collapsingToolbarLayout.getScrimAnimationDuration()).start(); + } + } + } + }); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/statusbar/StatusBarCompatLollipop.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/statusbar/StatusBarCompatLollipop.java new file mode 100644 index 0000000..41e3aef --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/statusbar/StatusBarCompatLollipop.java @@ -0,0 +1,193 @@ +package com.arpa.hndahesudintocctmsdriver.util.statusbar; + +import android.animation.ValueAnimator; +import android.annotation.TargetApi; +import android.app.Activity; +import android.content.Context; +import android.graphics.Color; +import android.os.Build; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.view.WindowManager; + +import androidx.appcompat.widget.Toolbar; +import androidx.coordinatorlayout.widget.CoordinatorLayout; +import androidx.core.view.OnApplyWindowInsetsListener; +import androidx.core.view.ViewCompat; +import androidx.core.view.WindowInsetsCompat; + +import com.google.android.material.appbar.AppBarLayout; +import com.google.android.material.appbar.CollapsingToolbarLayout; + + +/** + * After Lollipop use system method. + * Created by qiu on 8/27/16. + */ +@TargetApi(Build.VERSION_CODES.LOLLIPOP) +class StatusBarCompatLollipop { + + /** + * node_return statusBar's Height in pixels + */ + private static int getStatusBarHeight(Context context) { + int result = 0; + int resId = context.getResources().getIdentifier("status_bar_height", "dimen", "android"); + if (resId > 0) { + result = context.getResources().getDimensionPixelOffset(resId); + } + return result; + } + + /** + * set StatusBarColor + * + * 1. set Flags to call setStatusBarColor + * 2. call setSystemUiVisibility to clear translucentStatusBar's Flag. + * 3. set FitsSystemWindows to false + */ + static void setStatusBarColor(Activity activity, int statusColor) { + Window window = activity.getWindow(); + + window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); + window.setStatusBarColor(statusColor); + window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); + + ViewGroup mContentView = (ViewGroup) window.findViewById(Window.ID_ANDROID_CONTENT); + View mChildView = mContentView.getChildAt(0); + if (mChildView != null) { + ViewCompat.setFitsSystemWindows(mChildView, false); + ViewCompat.requestApplyInsets(mChildView); + } + } + + /** + * translucentStatusBar(full-screen) + * + * 1. set Flags to full-screen + * 2. set FitsSystemWindows to false + * + * @param hideStatusBarBackground hide statusBar's shadow + */ + static void translucentStatusBar(Activity activity, boolean hideStatusBarBackground) { + Window window = activity.getWindow(); + + window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); + if (hideStatusBarBackground) { + window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + window.setStatusBarColor(Color.TRANSPARENT); + window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); + } else { + window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); + } + + ViewGroup mContentView = (ViewGroup) window.findViewById(Window.ID_ANDROID_CONTENT); + View mChildView = mContentView.getChildAt(0); + if (mChildView != null) { + ViewCompat.setFitsSystemWindows(mChildView, false); + ViewCompat.requestApplyInsets(mChildView); + } + } + + /** + * compat for CollapsingToolbarLayout + * + * 1. change to full-screen mode(like translucentStatusBar). + * 2. cancel CollapsingToolbarLayout's WindowInsets, let it layout as normal(now setStatusBarScrimColor is useless). + * 3. set View's FitsSystemWindow to false. + * 4. add Toolbar's height, let it layout from top, then add paddingTop to layout normal. + * 5. change statusBarColor by AppBarLayout's offset. + * 6. add Listener to change statusBarColor + */ + static void setStatusBarColorForCollapsingToolbar(Activity activity, final AppBarLayout appBarLayout, final CollapsingToolbarLayout collapsingToolbarLayout, + Toolbar toolbar, final int statusColor) { + final Window window = activity.getWindow(); + + window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); + window.setStatusBarColor(Color.TRANSPARENT); + window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); + + ViewCompat.setOnApplyWindowInsetsListener(collapsingToolbarLayout, new OnApplyWindowInsetsListener() { + @Override + public WindowInsetsCompat onApplyWindowInsets(View v, WindowInsetsCompat insets) { + return insets; + } + }); + + ViewGroup mContentView = (ViewGroup) window.findViewById(Window.ID_ANDROID_CONTENT); + View mChildView = mContentView.getChildAt(0); + if (mChildView != null) { + ViewCompat.setFitsSystemWindows(mChildView, false); + ViewCompat.requestApplyInsets(mChildView); + } + + ((View) appBarLayout.getParent()).setFitsSystemWindows(false); + appBarLayout.setFitsSystemWindows(false); + + toolbar.setFitsSystemWindows(false); + if (toolbar.getTag() == null) { + CollapsingToolbarLayout.LayoutParams lp = (CollapsingToolbarLayout.LayoutParams) toolbar.getLayoutParams(); + int statusBarHeight = getStatusBarHeight(activity); + lp.height += statusBarHeight; + toolbar.setLayoutParams(lp); + toolbar.setPadding(toolbar.getPaddingLeft(), toolbar.getPaddingTop() + statusBarHeight, toolbar.getPaddingRight(), toolbar.getPaddingBottom()); + toolbar.setTag(true); + } + + CoordinatorLayout.Behavior behavior = ((CoordinatorLayout.LayoutParams) appBarLayout.getLayoutParams()).getBehavior(); + if (behavior != null && behavior instanceof AppBarLayout.Behavior) { + int verticalOffset = ((AppBarLayout.Behavior) behavior).getTopAndBottomOffset(); + if (Math.abs(verticalOffset) > appBarLayout.getHeight() - collapsingToolbarLayout.getScrimVisibleHeightTrigger()) { + window.setStatusBarColor(statusColor); + } else { + window.setStatusBarColor(Color.TRANSPARENT); + } + } else { + window.setStatusBarColor(Color.TRANSPARENT); + } + + collapsingToolbarLayout.setFitsSystemWindows(false); + appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() { + @Override + public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { + if (Math.abs(verticalOffset) > appBarLayout.getHeight() - collapsingToolbarLayout.getScrimVisibleHeightTrigger()) { + if (window.getStatusBarColor() != statusColor) { + startColorAnimation(window.getStatusBarColor(), statusColor, collapsingToolbarLayout.getScrimAnimationDuration(), window); + } + } else { + if (window.getStatusBarColor() != Color.TRANSPARENT) { + startColorAnimation(window.getStatusBarColor(), Color.TRANSPARENT, collapsingToolbarLayout.getScrimAnimationDuration(), window); + } + } + } + }); + collapsingToolbarLayout.getChildAt(0).setFitsSystemWindows(false); + collapsingToolbarLayout.setStatusBarScrimColor(statusColor); + } + + /** + * use ValueAnimator to change statusBarColor when using collapsingToolbarLayout + */ + static void startColorAnimation(int startColor, int endColor, long duration, final Window window) { + if (sAnimator != null) { + sAnimator.cancel(); + } + sAnimator = ValueAnimator.ofArgb(startColor, endColor) + .setDuration(duration); + sAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(ValueAnimator valueAnimator) { + if (window != null) { + window.setStatusBarColor((Integer) valueAnimator.getAnimatedValue()); + } + } + }); + sAnimator.start(); + } + + private static ValueAnimator sAnimator; +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/statusbar/StatusBarUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/statusbar/StatusBarUtil.java new file mode 100644 index 0000000..d237f10 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/statusbar/StatusBarUtil.java @@ -0,0 +1,48 @@ +package com.arpa.hndahesudintocctmsdriver.util.statusbar; + +import android.app.Activity; +import android.app.Dialog; +import android.graphics.Color; +import android.os.Build; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; + +public class StatusBarUtil { + public static void setWindowStatusBarColor(Activity activity, int colorResId) { + try { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + Window window = activity.getWindow(); + window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); + window.setStatusBarColor(activity.getResources().getColor(colorResId)); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + public static void touming(Window w){ + w.requestFeature(Window.FEATURE_NO_TITLE); + if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + Window window = w; + window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS + | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); + window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN + //这里删除的话 可以解决华为虚拟按键的覆盖 + | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); + window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); + window.setStatusBarColor(Color.TRANSPARENT); + window.setNavigationBarColor(Color.TRANSPARENT);//这里删除的话 + } + } + public static void setWindowStatusBarColor(Dialog dialog, int colorResId) { + try { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + Window window = dialog.getWindow(); + window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); + window.setStatusBarColor(dialog.getContext().getResources().getColor(colorResId)); + } + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/string/StringUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/string/StringUtil.java new file mode 100644 index 0000000..46b794e --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/string/StringUtil.java @@ -0,0 +1,19 @@ +package com.arpa.hndahesudintocctmsdriver.util.string; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/7 17:54 + * @description:字符串工具类 + */ +public class StringUtil { + + public static String isNull(String in_str,String out_str){ + if(in_str==null || in_str.equals("null") || in_str.trim().equals("")){ + return out_str; + } + return in_str; + } + + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/string/UrlUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/string/UrlUtil.java new file mode 100644 index 0000000..e67b36d --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/string/UrlUtil.java @@ -0,0 +1,18 @@ +package com.arpa.hndahesudintocctmsdriver.util.string; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/10/9 11:08 + * @description: + */ +public class UrlUtil { + + public static String getParam(String url, String name) { + String params = url.substring(url.indexOf("?") + 1); + + //Map split = Splitter.on("&").withKeyValueSeparator("=").split(params); + return ""; + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/time/Timer.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/time/Timer.java new file mode 100644 index 0000000..5eab61c --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/time/Timer.java @@ -0,0 +1,50 @@ +package com.arpa.hndahesudintocctmsdriver.util.time; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; + +public class Timer { + + public static String formatChange(String time,String old,String news){ + SimpleDateFormat sdf = new SimpleDateFormat(old); + SimpleDateFormat sdf1 = new SimpleDateFormat(news); + try { + Date date=sdf.parse(time); + return sdf1.format(date); + } catch (ParseException e) { + e.printStackTrace(); + } + return "时间格式错误"; + } + public static long TimeD(Date d1, Date d2) { + long diff = d1.getTime() - d2.getTime();//这样得到的差值是微秒级别 + return diff; + } + + public static String getTimer() { + Date date = new Date(); + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + return df.format(date); + } + public static String getTimerT() { + return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").format(new Date()); + } + public static String getTimerData() { + Date date = new Date(); + SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd_HHmmss"); + return df.format(date); + } + + public static boolean compareTimer(String time){ + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date sd1=new Date(); + Date sd2=null; + try { + sd2=df.parse(time); + } catch (ParseException e) { + e.printStackTrace(); + } + return sd1.after(sd2); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/BaseActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/BaseActivity.java new file mode 100644 index 0000000..796f06f --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/BaseActivity.java @@ -0,0 +1,111 @@ +package com.arpa.hndahesudintocctmsdriver.util.view; + +import android.app.Activity; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.util.Log; +import android.view.View; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.Nullable; + +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants; +import com.scwang.smart.refresh.layout.SmartRefreshLayout; + +public abstract class BaseActivity extends Activity { + + public Context con; + public Activity act; + public static String dataName,dataName2,dataName3=""; + public View root; + private String title_text="空白标题"; + + public Handler hd=new Handler(msg -> { + msgMethod(msg); + return false; + }); + + public SmartRefreshLayout refreshLayout; + + public void msgMethod(Message m){ + switch (m.what){ + case RequsetCodeConstants.ERROR: + Toast.makeText(con,RequsetCodeConstants.FEEDBACK_TEXT,Toast.LENGTH_SHORT).show(); + if(refreshLayout!=null){ + refreshLayout.finishRefresh(); + } + break; + case RequsetCodeConstants.UNKONWN: + Toast.makeText(con,RequsetCodeConstants.UNKONWN_TEXT,Toast.LENGTH_SHORT).show(); + if(refreshLayout!=null){ + refreshLayout.finishRefresh(); + } + break; + case RequsetCodeConstants.SERVER_ERROR: + Toast.makeText(con,RequsetCodeConstants.SERVER_ERROR_TEXT,Toast.LENGTH_SHORT).show(); + if(refreshLayout!=null){ + refreshLayout.finishRefresh(); + } + break; + case RequsetCodeConstants.GATEWAY_ERROR: + Toast.makeText(con,RequsetCodeConstants.GATEWAY_ERROR_TEXT,Toast.LENGTH_SHORT).show(); + if(refreshLayout!=null){ + refreshLayout.finishRefresh(); + } + break; + } + } + + public void initView(Object obj){ + //ViewGroup vg=findViewById(layout); + //vg.findViewById(R) + if(findViewById(R.id.return_btn)!=null){ + findViewById(R.id.return_btn).setOnClickListener(v -> { + finish(); + }); + } + if(findViewById(R.id.title_view)!=null){ + TextView title_view=findViewById(R.id.title_view); + title_view.setText(title_text); + } + //GetObjectName.ZIModel(vg,obj,con); + } + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + MyReceiver receiver; + private void registerBroadcast() { + // 注册广播接收者 + receiver = new MyReceiver(); + IntentFilter filter = new IntentFilter(); + filter.addAction("exit_app"); + if(receiver!=null){ + Log.e("广播概况",receiver.toString()+"_"+this.toString()); + registerReceiver(receiver,filter); + } + } + class MyReceiver extends BroadcastReceiver { + + @Override + public void onReceive(Context context, Intent intent) { + context.unregisterReceiver(this); + if(intent.getAction().equals("exit_app")){ + finish(); + } + } + } + + public void setTitle(String title){ + this.title_text=title; + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/BaseAppCompatActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/BaseAppCompatActivity.java new file mode 100644 index 0000000..054e3f3 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/BaseAppCompatActivity.java @@ -0,0 +1,95 @@ +package com.arpa.hndahesudintocctmsdriver.util.view; + +import android.app.Activity; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.view.View; +import android.widget.Toast; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants; +import com.scwang.smart.refresh.layout.SmartRefreshLayout; + +public class BaseAppCompatActivity extends AppCompatActivity { + + public Context con; + public Activity act; + public static String dataName,dataName2,dataName3=""; + public View root; + public Handler hd=new Handler(msg -> { + msgMethod(msg); + return false; + }); + public SmartRefreshLayout refreshLayout; + public void msgMethod(Message m){ + switch (m.what){ + case RequsetCodeConstants.ERROR: + Toast.makeText(con,RequsetCodeConstants.FEEDBACK_TEXT,Toast.LENGTH_SHORT).show(); + if(refreshLayout!=null){ + refreshLayout.finishRefresh(); + } + break; + case RequsetCodeConstants.UNKONWN: + Toast.makeText(con,RequsetCodeConstants.UNKONWN_TEXT,Toast.LENGTH_SHORT).show(); + if(refreshLayout!=null){ + refreshLayout.finishRefresh(); + } + break; + case RequsetCodeConstants.SERVER_ERROR: + Toast.makeText(con,RequsetCodeConstants.SERVER_ERROR_TEXT,Toast.LENGTH_SHORT).show(); + if(refreshLayout!=null){ + refreshLayout.finishRefresh(); + } + break; + case RequsetCodeConstants.GATEWAY_ERROR: + Toast.makeText(con,RequsetCodeConstants.GATEWAY_ERROR_TEXT,Toast.LENGTH_SHORT).show(); + if(refreshLayout!=null){ + refreshLayout.finishRefresh(); + } + break; + } + } + + public void initView(Object obj){ + if(findViewById(R.id.return_btn)!=null){ + findViewById(R.id.return_btn).setOnClickListener(v -> { + finish(); + }); + } + //ViewGroup vg=root.findViewById(root.getId()); + //GetObjectName.ZIModel(vg,obj,con); + } + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + MyReceiver receiver; + private void registerBroadcast() { + // 注册广播接收者 + receiver = new MyReceiver(); + IntentFilter filter = new IntentFilter(); + filter.addAction("exit_app"); + registerReceiver(receiver,filter); + } + class MyReceiver extends BroadcastReceiver { + + @Override + public void onReceive(Context context, Intent intent) { + context.unregisterReceiver(this); + if(intent.getAction().equals("exit_app")){ + finish(); + } + } + + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/BaseBannerView.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/BaseBannerView.java new file mode 100644 index 0000000..a5c2329 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/BaseBannerView.java @@ -0,0 +1,49 @@ +package com.arpa.hndahesudintocctmsdriver.util.view; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.View; + +import androidx.lifecycle.Lifecycle; + +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.ui.wallet.BannerApdate; +import com.zhpan.bannerview.BannerViewPager; +import com.zhpan.bannerview.constants.PageStyle; + +import java.util.List; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/10/11 14:11 + * @description: + */ +public class BaseBannerView extends BannerViewPager { + + public BaseBannerView(Context context) { + super(context); + } + + public BaseBannerView(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public BaseBannerView(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } + + public BannerApdate init(Context con, Lifecycle li, List list,int layout){ + this.setPageStyle(PageStyle.MULTI_PAGE_SCALE); + BannerApdate ba=new BannerApdate(con,layout); + this.setLifecycleRegistry(li) + .setPageMargin(getResources().getDimensionPixelOffset(R.dimen.dp_20)) + .setRevealWidth(getResources().getDimensionPixelOffset(R.dimen.dp_20)) + .setAdapter(ba) + .create(); + this.refreshData(list); + this.setIndicatorVisibility(View.GONE); + return ba; + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/BaseFragment.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/BaseFragment.java new file mode 100644 index 0000000..ae0b4be --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/BaseFragment.java @@ -0,0 +1,108 @@ +package com.arpa.hndahesudintocctmsdriver.util.view; + +import android.app.Activity; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; + +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants; +import com.scwang.smart.refresh.layout.SmartRefreshLayout; + +import org.jetbrains.annotations.NotNull; + +public class BaseFragment extends Fragment { + + public SmartRefreshLayout refreshLayout; + public Context con=getContext(); + public Activity act=getActivity(); + public static String dataName,dataName2,dataName3=""; + public View root; + public Handler hd=new Handler(msg -> { + msgMethod(msg); + return false; + }); + + public void msgMethod(Message m){ + switch (m.what){ + case RequsetCodeConstants.ERROR: + Toast.makeText(con,RequsetCodeConstants.FEEDBACK_TEXT,Toast.LENGTH_SHORT).show(); + if(refreshLayout!=null){ + refreshLayout.finishRefresh(); + } + break; + case RequsetCodeConstants.UNKONWN: + Toast.makeText(con,RequsetCodeConstants.UNKONWN_TEXT,Toast.LENGTH_SHORT).show(); + if(refreshLayout!=null){ + refreshLayout.finishRefresh(); + } + break; + case RequsetCodeConstants.SERVER_ERROR: + Toast.makeText(con,RequsetCodeConstants.SERVER_ERROR_TEXT,Toast.LENGTH_SHORT).show(); + if(refreshLayout!=null){ + refreshLayout.finishRefresh(); + } + break; + case RequsetCodeConstants.GATEWAY_ERROR: + Toast.makeText(con,RequsetCodeConstants.GATEWAY_ERROR_TEXT,Toast.LENGTH_SHORT).show(); + if(refreshLayout!=null){ + refreshLayout.finishRefresh(); + } + break; + } + } + + public void initView(Object obj){ +// if(root.getId()!=-1){ +// ViewGroup vg=root.findViewById(root.getId()); +// GetObjectName.ZIModel(vg,obj,con); +// } + if(root.findViewById(R.id.return_btn)!=null){ + root.findViewById(R.id.return_btn).setOnClickListener(v -> { + getActivity().finish(); + }); + } + + } + + @Nullable + @org.jetbrains.annotations.Nullable + @Override + public View onCreateView(@NonNull @NotNull LayoutInflater inflater, @Nullable @org.jetbrains.annotations.Nullable ViewGroup container, @Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) { + //registerBroadcast(); + return super.onCreateView(inflater, container, savedInstanceState); + } + + MyReceiver receiver; + private void registerBroadcast() { + // 注册广播接收者 + receiver = new MyReceiver(); + IntentFilter filter = new IntentFilter(); + filter.addAction("exit_app"); + getActivity().registerReceiver(receiver,filter); + } + class MyReceiver extends BroadcastReceiver { + + @Override + public void onReceive(Context context, Intent intent) { + context.unregisterReceiver(this); + if(intent.getAction().equals("exit_app")){ + getActivity().finish(); + } + } + + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/BaseRecyclerView.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/BaseRecyclerView.java new file mode 100644 index 0000000..46f97d3 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/BaseRecyclerView.java @@ -0,0 +1,137 @@ +package com.arpa.hndahesudintocctmsdriver.util.view; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.TouchDelegate; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.arpa.hndahesudintocctmsdriver.util.adapter.AdapterAll; +import com.arpa.hndahesudintocctmsdriver.util.adapter.AdapterAlls; +import com.arpa.hndahesudintocctmsdriver.util.adapter.ManyBean; + +import java.util.List; + +public class BaseRecyclerView extends RecyclerView { + + @Override + public TouchDelegate getTouchDelegate() { + return super.getTouchDelegate(); + } + + public BaseRecyclerView(@NonNull Context context) { + super(context); + } + + public BaseRecyclerView(@NonNull Context context, @Nullable AttributeSet attrs) { + super(context, attrs); + } + + public BaseRecyclerView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + } + + private AdapterAlls ra; + private AdapterAll aa; + public AdapterAll createV(Context con,List list, int layout){ + LinearLayoutManager layoutManager = new LinearLayoutManager(con); + layoutManager.setOrientation(LinearLayoutManager.VERTICAL); + this.setLayoutManager(layoutManager); + aa=new AdapterAll(con,list,layout); + this.setAdapter(aa); + return aa; + } + + public AdapterAll createH(Context con, List list,int layout){ + LinearLayoutManager layoutManager = new LinearLayoutManager(con); + layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL); + this.setLayoutManager(layoutManager); + aa=new AdapterAll(con,list,layout); + this.setAdapter(aa); + return aa; + } + public AdapterAll createG(int ral,Context con, List list,int layout){ + GridLayoutManager gm=new GridLayoutManager(con,ral){ + @Override + public boolean canScrollVertically() { + return false; + } + }; + this.setLayoutManager(gm); + aa=new AdapterAll(con,list,layout); + this.setAdapter(aa); + return aa; + } + public AdapterAlls createGs(int ral,Context con, List list){ + this.setLayoutManager(new GridLayoutManager(con,ral)); + AdapterAlls ra=new AdapterAlls(con,list); + this.setAdapter(ra); + return ra; + } + + //多任务布局 + public AdapterAlls creates(Context con, List list){ + LinearLayoutManager layoutManager = new LinearLayoutManager(con); + layoutManager.setOrientation(LinearLayoutManager.VERTICAL); + this.setLayoutManager(layoutManager); + ra=new AdapterAlls(con,list); + this.setAdapter(ra); + return ra; + } + public void removeAll(){ + aa.removeAll(); + } + public void updateItemV(int position,Object o){ + aa.updateItem(position,o); + } + + public void addItemV(Object o){ + aa.addItemV(o); + } + public void delItemV(int p){ + aa.delItemV(p); + } + public void removeItemV(int index){ + aa.removeItemV(index); + } + public void addV(List list){ + + } + public void addItem(ManyBean mb){ + ra.addItem(mb); + } + public void adds(List list){ + ra.add(list); + } + public AdapterAlls createsH(Context con, List list){ + LinearLayoutManager layoutManager = new LinearLayoutManager(con); + layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL); + this.setLayoutManager(layoutManager); + AdapterAlls ra=new AdapterAlls(con,list); + this.setAdapter(ra); + return ra; + } + + + //下拉刷新 + public void insDropDown(){ + + } + //上拉加载更多 + public void pullUpLoading(){ + + } + //加载中状态 + public void Loading(){ + + } + //加载无数据状态 + public void loadFeedback(){ + + } + +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/BaseSlidingDrawer.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/BaseSlidingDrawer.java new file mode 100644 index 0000000..ba3e132 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/BaseSlidingDrawer.java @@ -0,0 +1,54 @@ +package com.arpa.hndahesudintocctmsdriver.util.view; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.View; +import android.widget.SlidingDrawer; + +public class BaseSlidingDrawer extends SlidingDrawer { + private boolean mVertical; + private int mTopOffset; + + public BaseSlidingDrawer(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + int orientation = attrs.getAttributeIntValue("android", "orientation", ORIENTATION_VERTICAL); + mTopOffset = attrs.getAttributeIntValue("android", "topOffset", 0); + mVertical = (orientation == SlidingDrawer.ORIENTATION_VERTICAL); + } + + public BaseSlidingDrawer(Context context, AttributeSet attrs) { + super(context, attrs); + int orientation = attrs.getAttributeIntValue("android", "orientation", ORIENTATION_VERTICAL); + mTopOffset = attrs.getAttributeIntValue("android", "topOffset", 0); + mVertical = (orientation == SlidingDrawer.ORIENTATION_VERTICAL); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + int widthSpecMode = MeasureSpec.getMode(widthMeasureSpec); + int widthSpecSize = MeasureSpec.getSize(widthMeasureSpec); + int heightSpecMode = MeasureSpec.getMode(heightMeasureSpec); + int heightSpecSize = MeasureSpec.getSize(heightMeasureSpec); + + final View handle = getHandle(); + final View content = getContent(); + measureChild(handle, widthMeasureSpec, heightMeasureSpec); + + if (mVertical) { + int height = heightSpecSize - handle.getMeasuredHeight() - mTopOffset; + content.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(height, heightSpecMode)); + heightSpecSize = handle.getMeasuredHeight() + mTopOffset + content.getMeasuredHeight(); + widthSpecSize = content.getMeasuredWidth(); + if (handle.getMeasuredWidth() > widthSpecSize) widthSpecSize = handle.getMeasuredWidth(); + } + else { + int width = widthSpecSize - handle.getMeasuredWidth() - mTopOffset; + getContent().measure(MeasureSpec.makeMeasureSpec(width, widthSpecMode), heightMeasureSpec); + widthSpecSize = handle.getMeasuredWidth() + mTopOffset + content.getMeasuredWidth(); + heightSpecSize = content.getMeasuredHeight(); + if (handle.getMeasuredHeight() > heightSpecSize) heightSpecSize = handle.getMeasuredHeight(); + } + + setMeasuredDimension(widthSpecSize, heightSpecSize); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/BaseTableView.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/BaseTableView.java new file mode 100644 index 0000000..0dea2df --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/BaseTableView.java @@ -0,0 +1,198 @@ +package com.arpa.hndahesudintocctmsdriver.util.view; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.Gravity; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.annotation.Nullable; + +import java.util.ArrayList; +import java.util.List; + +public class BaseTableView extends LinearLayout { + private List TextViewlist=new ArrayList<>(); + private List hang=new ArrayList<>(); + private int rol=0; + private int height=0; + public List getTextViewlist() { + return TextViewlist; + } + + public void setTextViewlist(List textViewlist) { + TextViewlist = textViewlist; + } + + + public BaseTableView(Context context) { + super(context); + } + + public BaseTableView(Context context, @Nullable AttributeSet attrs) { + super(context, attrs); + } + + public BaseTableView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } + + public void initView(List> lists){ + rol=lists.size(); +// LinearLayout.LayoutParams vlp = new LinearLayout.LayoutParams( +// LinearLayout.LayoutParams.MATCH_PARENT, +// LinearLayout.LayoutParams.WRAP_CONTENT); + this.setOrientation(LinearLayout.VERTICAL); + //this.setLayoutParams(vlp); + for(int i=0;i list){ + LinearLayout li=new LinearLayout(getContext()); + LayoutParams vlp = new LayoutParams( + LayoutParams.MATCH_PARENT, + LayoutParams.WRAP_CONTENT); + li.setLayoutParams(vlp); + li.setOrientation(LinearLayout.HORIZONTAL); + for(int i=0;i { + Log.e("點擊了","123456"); + new XPopup.Builder(getContext()) + .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 + //.offsetX(50) //偏移10 + // .offsetY(10) //往下偏移10 +// .popupPosition(PopupPosition.Right) //手动指定位置,有可能被遮盖 + .hasShadowBg(false) // 去掉半透明背景 + .atView(v) + .asCustom(new BaseTextAlertPopup(getContext(),this.getText()+"")) + .show(); + }); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/BottomTabUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/BottomTabUtil.java new file mode 100644 index 0000000..2f69c68 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/BottomTabUtil.java @@ -0,0 +1,48 @@ +package com.arpa.hndahesudintocctmsdriver.util.view; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentTransaction; + +public class BottomTabUtil { + private AppCompatActivity act; + private int layout; + private FragmentManager fm; + private Fragment[] fs; + private int index=0; + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + public BottomTabUtil(AppCompatActivity act, int layout, Fragment[] fs) { + this.act = act; + this.layout = layout; + this.fs = fs; + } + + public void selectItem(Fragment f){ + fm = act.getSupportFragmentManager(); + FragmentTransaction ft = fm.beginTransaction(); + //ft.replace(R.id.body,f); + ft.add(layout,f,"").commit(); + } + public void setDefaultFragment(Fragment f) { + fm =act.getSupportFragmentManager(); + FragmentTransaction ft = fm.beginTransaction(); + ft.hide(fs[index]); + ft.show(f); + ft.commit(); + } + public void hide(Fragment f) { + fm =act.getSupportFragmentManager(); + FragmentTransaction ft = fm.beginTransaction(); + ft.hide(f); + ft.commit(); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/CircularProgressView.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/CircularProgressView.java new file mode 100644 index 0000000..f6af912 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/CircularProgressView.java @@ -0,0 +1,204 @@ +package com.arpa.hndahesudintocctmsdriver.util.view; + +import android.animation.ValueAnimator; +import android.annotation.SuppressLint; +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.LinearGradient; +import android.graphics.Paint; +import android.graphics.RectF; +import android.graphics.Shader; +import android.util.AttributeSet; +import android.view.View; +import android.view.animation.OvershootInterpolator; + +import androidx.annotation.ColorRes; +import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; + +import com.arpa.hndahesudintocctmsdriver.R; + +public class CircularProgressView extends View { + + private Paint mBackPaint, mProgPaint; // 绘制画笔 + private RectF mRectF; // 绘制区域 + private int[] mColorArray; // 圆环渐变色 + private int mProgress; // 圆环进度(0-100) + + public CircularProgressView(Context context) { + this(context, null); + } + + public CircularProgressView(Context context, @Nullable AttributeSet attrs) { + this(context, attrs, 0); + } + + public CircularProgressView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + @SuppressLint("Recycle") + TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.CircularProgressView); + + // 初始化背景圆环画笔 + mBackPaint = new Paint(); + mBackPaint.setStyle(Paint.Style.STROKE); // 只描边,不填充 + mBackPaint.setStrokeCap(Paint.Cap.ROUND); // 设置圆角 + mBackPaint.setAntiAlias(true); // 设置抗锯齿 + mBackPaint.setDither(true); // 设置抖动 + mBackPaint.setStrokeWidth(typedArray.getDimension(R.styleable.CircularProgressView_backWidth, 5)); + mBackPaint.setColor(typedArray.getColor(R.styleable.CircularProgressView_backColor, Color.LTGRAY)); + + // 初始化进度圆环画笔 + mProgPaint = new Paint(); + mProgPaint.setStyle(Paint.Style.STROKE); // 只描边,不填充 + mProgPaint.setStrokeCap(Paint.Cap.ROUND); // 设置圆角 + mProgPaint.setAntiAlias(true); // 设置抗锯齿 + mProgPaint.setDither(true); // 设置抖动 + mProgPaint.setStrokeWidth(typedArray.getDimension(R.styleable.CircularProgressView_progWidth, 10)); + mProgPaint.setColor(typedArray.getColor(R.styleable.CircularProgressView_progColor, Color.BLUE)); + + // 初始化进度圆环渐变色 + int startColor = typedArray.getColor(R.styleable.CircularProgressView_progStartColor, -1); + int firstColor = typedArray.getColor(R.styleable.CircularProgressView_progFirstColor, -1); + if (startColor != -1 && firstColor != -1) mColorArray = new int[]{startColor, firstColor}; + else mColorArray = null; + + // 初始化进度 + mProgress = typedArray.getInteger(R.styleable.CircularProgressView_progress, 0); + typedArray.recycle(); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + int viewWide = getMeasuredWidth() - getPaddingLeft() - getPaddingRight(); + int viewHigh = getMeasuredHeight() - getPaddingTop() - getPaddingBottom(); + int mRectLength = (int) ((viewWide > viewHigh ? viewHigh : viewWide) - (mBackPaint.getStrokeWidth() > mProgPaint.getStrokeWidth() ? mBackPaint.getStrokeWidth() : mProgPaint.getStrokeWidth())); + int mRectL = getPaddingLeft() + (viewWide - mRectLength) / 2; + int mRectT = getPaddingTop() + (viewHigh - mRectLength) / 2; + mRectF = new RectF(mRectL, mRectT, mRectL + mRectLength, mRectT + mRectLength); + + // 设置进度圆环渐变色 + if (mColorArray != null && mColorArray.length > 1) + mProgPaint.setShader(new LinearGradient(0, 0, 0, getMeasuredWidth(), mColorArray, null, Shader.TileMode.MIRROR)); + } + + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + canvas.drawArc(mRectF, 0, 360, false, mBackPaint); + canvas.drawArc(mRectF, 275, 360 * mProgress / 100, false, mProgPaint); + } + + // --------------------------------------------------------------------------------------------- + + /** + * 获取当前进度 + * + * @return 当前进度(0-100) + */ + public int getProgress() { + return mProgress; + } + + /** + * 设置当前进度 + * + * @param progress 当前进度(0-100) + */ + public void setProgress(int progress) { + this.mProgress = progress; + invalidate(); + } + + /** + * 设置当前进度,并展示进度动画。如果动画时间小于等于0,则不展示动画 + * + * @param progress 当前进度(0-100) + * @param animTime 动画时间(毫秒) + */ + public void setProgress(int progress, long animTime) { + if (animTime <= 0) setProgress(progress); + else { + ValueAnimator animator = ValueAnimator.ofInt(mProgress, progress); + animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(ValueAnimator animation) { + mProgress = (int) animation.getAnimatedValue(); + invalidate(); + } + }); + animator.setInterpolator(new OvershootInterpolator()); + animator.setDuration(animTime); + animator.start(); + } + } + + /** + * 设置背景圆环宽度 + * + * @param width 背景圆环宽度 + */ + public void setBackWidth(int width) { + mBackPaint.setStrokeWidth(width); + invalidate(); + } + + /** + * 设置背景圆环颜色 + * + * @param color 背景圆环颜色 + */ + public void setBackColor(@ColorRes int color) { + mBackPaint.setColor(ContextCompat.getColor(getContext(), color)); + invalidate(); + } + + /** + * 设置进度圆环宽度 + * + * @param width 进度圆环宽度 + */ + public void setProgWidth(int width) { + mProgPaint.setStrokeWidth(width); + invalidate(); + } + + /** + * 设置进度圆环颜色 + * + * @param color 景圆环颜色 + */ + public void setProgColor(@ColorRes int color) { + mProgPaint.setColor(ContextCompat.getColor(getContext(), color)); + mProgPaint.setShader(null); + invalidate(); + } + + /** + * 设置进度圆环颜色(支持渐变色) + * + * @param startColor 进度圆环开始颜色 + * @param firstColor 进度圆环结束颜色 + */ + public void setProgColor(@ColorRes int startColor, @ColorRes int firstColor) { + mColorArray = new int[]{ContextCompat.getColor(getContext(), startColor), ContextCompat.getColor(getContext(), firstColor)}; + mProgPaint.setShader(new LinearGradient(0, 0, 0, getMeasuredWidth(), mColorArray, null, Shader.TileMode.MIRROR)); + invalidate(); + } + + /** + * 设置进度圆环颜色(支持渐变色) + * + * @param colorArray 渐变色集合 + */ + public void setProgColor(@ColorRes int[] colorArray) { + if (colorArray == null || colorArray.length < 2) return; + mColorArray = new int[colorArray.length]; + for (int index = 0; index < colorArray.length; index++) + mColorArray[index] = ContextCompat.getColor(getContext(), colorArray[index]); + mProgPaint.setShader(new LinearGradient(0, 0, 0, getMeasuredWidth(), mColorArray, null, Shader.TileMode.MIRROR)); + invalidate(); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/DensityUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/DensityUtil.java new file mode 100644 index 0000000..53027f0 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/DensityUtil.java @@ -0,0 +1,22 @@ +package com.arpa.hndahesudintocctmsdriver.util.view; + +import android.content.Context; + +public class DensityUtil { + + /** + * 根据手机的分辨率从 dp 的单位 转成为 px(像素) + */ + public static int dip2px(Context context, float dpValue) { + final float scale = context.getResources().getDisplayMetrics().density; + return (int) (dpValue * scale + 0.5f); + } + + /** + * 根据手机的分辨率从 px(像素) 的单位 转成为 dp + */ + public static int px2dip(Context context, float pxValue) { + final float scale = context.getResources().getDisplayMetrics().density; + return (int) (pxValue / scale + 0.5f); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/PX_DP.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/PX_DP.java new file mode 100644 index 0000000..d595d1a --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/PX_DP.java @@ -0,0 +1,11 @@ +package com.arpa.hndahesudintocctmsdriver.util.view; + +import android.content.Context; +import android.util.TypedValue; + +public class PX_DP { + + public static int getDp(int body,Context con){ + return ((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, body,con.getResources().getDisplayMetrics())); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/PanDuanUtil.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/PanDuanUtil.java new file mode 100644 index 0000000..14afcd7 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/PanDuanUtil.java @@ -0,0 +1,23 @@ +package com.arpa.hndahesudintocctmsdriver.util.view; + +import android.content.Context; + +import com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity; +import com.arpa.hndahesudintocctmsdriver.util.sp.SPUtil; + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/2 10:33 + * @description:判断事件的工具 + */ +public class PanDuanUtil { + + public static boolean isLogin(Context con){ + String token=SPUtil.getSP(con, LoginActivity.USER,LoginActivity.USER_TOKEN); + if(token.equals("")){ + return false; + } + return true; + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/ScoreView.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/ScoreView.java new file mode 100644 index 0000000..00765aa --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/ScoreView.java @@ -0,0 +1,120 @@ +package com.arpa.hndahesudintocctmsdriver.util.view; + +import android.content.Context; +import android.util.AttributeSet; +import android.util.Log; +import android.view.View; +import android.widget.ImageButton; +import android.widget.LinearLayout; + +import androidx.annotation.Nullable; + +import com.arpa.hndahesudintocctmsdriver.R; + + +/** + * @author hlh + * @version 1.0.0 + * @date 2021/8/7 15:46 + * @description:评分view + */ +public class ScoreView extends LinearLayout { + private ImageButton[] xings=new ImageButton[5]; + private int score=0; + private boolean upKey=true; + public ScoreView(Context context) { + super(context); + } + + public ScoreView(Context context, @Nullable AttributeSet attrs) { + super(context, attrs); + } + + public ScoreView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } + + public ScoreView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { + super(context, attrs, defStyleAttr, defStyleRes); + } + + public void initView(){ + this.setOrientation(LinearLayout.HORIZONTAL); + View v=inflate(getContext(),R.layout.item_view_score,null); + xings[0]=v.findViewById(R.id.xing1); + xings[1]=v.findViewById(R.id.xing2); + xings[2]=v.findViewById(R.id.xing3); + xings[3]=v.findViewById(R.id.xing4); + xings[4]=v.findViewById(R.id.xing5); + xings[0].setOnClickListener(v1 -> { + switchClick(0); + }); + xings[1].setOnClickListener(v1 -> { + switchClick(1); + }); + xings[2].setOnClickListener(v1 -> { + switchClick(2); + }); + xings[3].setOnClickListener(v1 -> { + switchClick(3); + }); + xings[4].setOnClickListener(v1 -> { + switchClick(4); + }); + this.addView(v); + } + + public void switchClick(int i){ + if (upKey) { + for(int j=0;j fs; + private List titles; + public TabUtil(FragmentManager fm, List fs, List titles){ + super(fm); + this.fs=fs; + this.titles=titles; + } + + @NonNull + @Override + public Fragment getItem(int position) { + return fs.get(position); + } + + @Override + public int getCount() { + return fs.size(); + } + + @Override + public CharSequence getPageTitle(int position) { + return titles.get(position); + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/Table.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/Table.java new file mode 100644 index 0000000..9cb4dff --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/view/Table.java @@ -0,0 +1,31 @@ +package com.arpa.hndahesudintocctmsdriver.util.view; + +public class Table { + + private String body; + private int weight; + + public String getBody() { + return body; + } + + public void setBody(String body) { + this.body = body; + } + + public int getWeight() { + return weight; + } + + public void setWeight(int weight) { + this.weight = weight; + } + + public Table(String body, int weight) { + this.body = body; + this.weight = weight; + } + + public Table() { + } +} diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/weight/pop/CenterPop.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/weight/pop/CenterPop.java new file mode 100644 index 0000000..d1d3c31 --- /dev/null +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/weight/pop/CenterPop.java @@ -0,0 +1,75 @@ +package com.arpa.hndahesudintocctmsdriver.weight.pop; + +import android.content.Context; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; + +import androidx.annotation.NonNull; + +import com.arpa.hndahesudintocctmsdriver.R; +import com.arpa.hndahesudintocctmsdriver.bean.ConfigRecordBean; +import com.lxj.xpopup.core.CenterPopupView; + +/** + * @ClassName CenterPop + * @Author 用户 + * @Date 2022/8/2 17:18 + * @Description TODO + */ +public class CenterPop extends CenterPopupView { + private Context ctx; + private ConfigRecordBean.DataDTO data; + + public CenterPop(@NonNull Context context, ConfigRecordBean.DataDTO data) { + super(context); + this.ctx = context; + this.data = data; + } + + @Override + protected int getImplLayoutId() { + return R.layout.pop_withdrawal; + } + + + @Override + protected void onCreate() { + super.onCreate(); + + TextView tvMoney = findViewById(R.id.tvMoney); + TextView tvFwf = findViewById(R.id.tvFwf); + TextView tvFl = findViewById(R.id.tvFl); + Button tvCancel = findViewById(R.id.tv_cancel); + Button tvConfirm = findViewById(R.id.tv_confirm); + + //初始化数据 + tvMoney.setText(data.getAmount()); + tvFwf.setText(data.getChargeNum()); + String minCharge = data.getMinCharge(); + double v1 = Double.parseDouble(minCharge) / 100; + tvFl.setText(data.getChargeRate() + "% (最低¥" + v1 + "0)"); + + tvCancel.setOnClickListener(v -> { + dismiss(); + }); + tvConfirm.setOnClickListener(v -> { + if (listener!=null){ + listener.okClick(""); + dismiss(); + } + }); + + } + + private OnOkListener listener; + + public CenterPop setOnOkListener(OnOkListener listener) { + this.listener = listener; + return this; + } + + public interface OnOkListener { + void okClick(String item); + } +} diff --git a/app/src/main/res/anim/left_enter.xml b/app/src/main/res/anim/left_enter.xml new file mode 100644 index 0000000..9d313ee --- /dev/null +++ b/app/src/main/res/anim/left_enter.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/anim/left_exit.xml b/app/src/main/res/anim/left_exit.xml new file mode 100644 index 0000000..8eb725f --- /dev/null +++ b/app/src/main/res/anim/left_exit.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/anim/rightln_enter.xml b/app/src/main/res/anim/rightln_enter.xml new file mode 100644 index 0000000..3f43c7e --- /dev/null +++ b/app/src/main/res/anim/rightln_enter.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/anim/rightln_exit.xml b/app/src/main/res/anim/rightln_exit.xml new file mode 100644 index 0000000..3deb42f --- /dev/null +++ b/app/src/main/res/anim/rightln_exit.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-xxhdpi/add_car_succ.png b/app/src/main/res/drawable-xxhdpi/add_car_succ.png new file mode 100644 index 0000000..fc48831 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/add_car_succ.png differ diff --git a/app/src/main/res/drawable-xxhdpi/card_ok.png b/app/src/main/res/drawable-xxhdpi/card_ok.png new file mode 100644 index 0000000..40ee88f Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/card_ok.png differ diff --git a/app/src/main/res/drawable-xxhdpi/def_pic.png b/app/src/main/res/drawable-xxhdpi/def_pic.png new file mode 100644 index 0000000..74dcfc0 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/def_pic.png differ diff --git a/app/src/main/res/drawable/bg_bai.xml b/app/src/main/res/drawable/bg_bai.xml new file mode 100644 index 0000000..dab80cd --- /dev/null +++ b/app/src/main/res/drawable/bg_bai.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_ban_bai.xml b/app/src/main/res/drawable/bg_ban_bai.xml new file mode 100644 index 0000000..774619d --- /dev/null +++ b/app/src/main/res/drawable/bg_ban_bai.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_ban_lv.xml b/app/src/main/res/drawable/bg_ban_lv.xml new file mode 100644 index 0000000..de56d19 --- /dev/null +++ b/app/src/main/res/drawable/bg_ban_lv.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_banner.png b/app/src/main/res/drawable/bg_banner.png new file mode 100644 index 0000000..5ef8134 Binary files /dev/null and b/app/src/main/res/drawable/bg_banner.png differ diff --git a/app/src/main/res/drawable/bg_btn.xml b/app/src/main/res/drawable/bg_btn.xml new file mode 100644 index 0000000..f23d45d --- /dev/null +++ b/app/src/main/res/drawable/bg_btn.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_btn_blue.xml b/app/src/main/res/drawable/bg_btn_blue.xml new file mode 100644 index 0000000..3d1dfa2 --- /dev/null +++ b/app/src/main/res/drawable/bg_btn_blue.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_btn_green.xml b/app/src/main/res/drawable/bg_btn_green.xml new file mode 100644 index 0000000..55b91d2 --- /dev/null +++ b/app/src/main/res/drawable/bg_btn_green.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_btn_grey.xml b/app/src/main/res/drawable/bg_btn_grey.xml new file mode 100644 index 0000000..728da76 --- /dev/null +++ b/app/src/main/res/drawable/bg_btn_grey.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_huoyuan.png b/app/src/main/res/drawable/bg_huoyuan.png new file mode 100644 index 0000000..d2dabca Binary files /dev/null and b/app/src/main/res/drawable/bg_huoyuan.png differ diff --git a/app/src/main/res/drawable/bg_jiedan.xml b/app/src/main/res/drawable/bg_jiedan.xml new file mode 100644 index 0000000..fb1d0b8 --- /dev/null +++ b/app/src/main/res/drawable/bg_jiedan.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_my_top.png b/app/src/main/res/drawable/bg_my_top.png new file mode 100644 index 0000000..eeec611 Binary files /dev/null and b/app/src/main/res/drawable/bg_my_top.png differ diff --git a/app/src/main/res/drawable/bg_qaingdan.xml b/app/src/main/res/drawable/bg_qaingdan.xml new file mode 100644 index 0000000..74b6719 --- /dev/null +++ b/app/src/main/res/drawable/bg_qaingdan.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_qianbao_data.xml b/app/src/main/res/drawable/bg_qianbao_data.xml new file mode 100644 index 0000000..84aabb4 --- /dev/null +++ b/app/src/main/res/drawable/bg_qianbao_data.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_round.xml b/app/src/main/res/drawable/bg_round.xml new file mode 100644 index 0000000..0c6db47 --- /dev/null +++ b/app/src/main/res/drawable/bg_round.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_theme.xml b/app/src/main/res/drawable/bg_theme.xml new file mode 100644 index 0000000..0c7812f --- /dev/null +++ b/app/src/main/res/drawable/bg_theme.xml @@ -0,0 +1,13 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_title.xml b/app/src/main/res/drawable/bg_title.xml new file mode 100644 index 0000000..4e3e174 --- /dev/null +++ b/app/src/main/res/drawable/bg_title.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_tixian_btn.xml b/app/src/main/res/drawable/bg_tixian_btn.xml new file mode 100644 index 0000000..5da70d0 --- /dev/null +++ b/app/src/main/res/drawable/bg_tixian_btn.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_top.xml b/app/src/main/res/drawable/bg_top.xml new file mode 100644 index 0000000..c4f9e71 --- /dev/null +++ b/app/src/main/res/drawable/bg_top.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bottom_xu.xml b/app/src/main/res/drawable/bottom_xu.xml new file mode 100644 index 0000000..9df07d0 --- /dev/null +++ b/app/src/main/res/drawable/bottom_xu.xml @@ -0,0 +1,15 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/car.png b/app/src/main/res/drawable/car.png new file mode 100644 index 0000000..03382ce Binary files /dev/null and b/app/src/main/res/drawable/car.png differ diff --git a/app/src/main/res/drawable/dang.png b/app/src/main/res/drawable/dang.png new file mode 100644 index 0000000..4a2cf3c Binary files /dev/null and b/app/src/main/res/drawable/dang.png differ diff --git a/app/src/main/res/drawable/dialog_bg.xml b/app/src/main/res/drawable/dialog_bg.xml new file mode 100644 index 0000000..1e7fcbe --- /dev/null +++ b/app/src/main/res/drawable/dialog_bg.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/dialog_custom_bg.xml b/app/src/main/res/drawable/dialog_custom_bg.xml new file mode 100644 index 0000000..e622317 --- /dev/null +++ b/app/src/main/res/drawable/dialog_custom_bg.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/diver_logo.png b/app/src/main/res/drawable/diver_logo.png new file mode 100644 index 0000000..5750205 Binary files /dev/null and b/app/src/main/res/drawable/diver_logo.png differ diff --git a/app/src/main/res/drawable/gd.png b/app/src/main/res/drawable/gd.png new file mode 100644 index 0000000..420afd7 Binary files /dev/null and b/app/src/main/res/drawable/gd.png differ diff --git a/app/src/main/res/drawable/goods_bg.xml b/app/src/main/res/drawable/goods_bg.xml new file mode 100644 index 0000000..17cbf2a --- /dev/null +++ b/app/src/main/res/drawable/goods_bg.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/huidan.jpg b/app/src/main/res/drawable/huidan.jpg new file mode 100644 index 0000000..ecd1316 Binary files /dev/null and b/app/src/main/res/drawable/huidan.jpg differ diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/icon_head_img_new.png b/app/src/main/res/drawable/icon_head_img_new.png new file mode 100644 index 0000000..d9adfd8 Binary files /dev/null and b/app/src/main/res/drawable/icon_head_img_new.png differ diff --git a/app/src/main/res/drawable/ins_che.png b/app/src/main/res/drawable/ins_che.png new file mode 100644 index 0000000..8cee724 Binary files /dev/null and b/app/src/main/res/drawable/ins_che.png differ diff --git a/app/src/main/res/drawable/jd_bg.xml b/app/src/main/res/drawable/jd_bg.xml new file mode 100644 index 0000000..499d76a --- /dev/null +++ b/app/src/main/res/drawable/jd_bg.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/kf.gif b/app/src/main/res/drawable/kf.gif new file mode 100644 index 0000000..106dd3b Binary files /dev/null and b/app/src/main/res/drawable/kf.gif differ diff --git a/app/src/main/res/drawable/load_logo.png b/app/src/main/res/drawable/load_logo.png new file mode 100644 index 0000000..9a9ae4a Binary files /dev/null and b/app/src/main/res/drawable/load_logo.png differ diff --git a/app/src/main/res/drawable/map_bg.png b/app/src/main/res/drawable/map_bg.png new file mode 100644 index 0000000..db604b1 Binary files /dev/null and b/app/src/main/res/drawable/map_bg.png differ diff --git a/app/src/main/res/drawable/no_img.png b/app/src/main/res/drawable/no_img.png new file mode 100644 index 0000000..8e7ef38 Binary files /dev/null and b/app/src/main/res/drawable/no_img.png differ diff --git a/app/src/main/res/drawable/no_news.png b/app/src/main/res/drawable/no_news.png new file mode 100644 index 0000000..58ffb65 Binary files /dev/null and b/app/src/main/res/drawable/no_news.png differ diff --git a/app/src/main/res/drawable/null_data.png b/app/src/main/res/drawable/null_data.png new file mode 100644 index 0000000..e524e46 Binary files /dev/null and b/app/src/main/res/drawable/null_data.png differ diff --git a/app/src/main/res/drawable/par_bg.xml b/app/src/main/res/drawable/par_bg.xml new file mode 100644 index 0000000..30b973f --- /dev/null +++ b/app/src/main/res/drawable/par_bg.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/qiang_bg.xml b/app/src/main/res/drawable/qiang_bg.xml new file mode 100644 index 0000000..0aa5cbf --- /dev/null +++ b/app/src/main/res/drawable/qiang_bg.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shangxia.png b/app/src/main/res/drawable/shangxia.png new file mode 100644 index 0000000..6b0769f Binary files /dev/null and b/app/src/main/res/drawable/shangxia.png differ diff --git a/app/src/main/res/drawable/shape_blue_bg16.xml b/app/src/main/res/drawable/shape_blue_bg16.xml new file mode 100644 index 0000000..0758586 --- /dev/null +++ b/app/src/main/res/drawable/shape_blue_bg16.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_red_bg4.xml b/app/src/main/res/drawable/shape_red_bg4.xml new file mode 100644 index 0000000..988b230 --- /dev/null +++ b/app/src/main/res/drawable/shape_red_bg4.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/text.jpg b/app/src/main/res/drawable/text.jpg new file mode 100644 index 0000000..844886c Binary files /dev/null and b/app/src/main/res/drawable/text.jpg differ diff --git a/app/src/main/res/drawable/type_bg.xml b/app/src/main/res/drawable/type_bg.xml new file mode 100644 index 0000000..440e4fb --- /dev/null +++ b/app/src/main/res/drawable/type_bg.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/up_img_1.png b/app/src/main/res/drawable/up_img_1.png new file mode 100644 index 0000000..64b5f58 Binary files /dev/null and b/app/src/main/res/drawable/up_img_1.png differ diff --git a/app/src/main/res/drawable/welcome_bg_default.png b/app/src/main/res/drawable/welcome_bg_default.png new file mode 100644 index 0000000..2de19c6 Binary files /dev/null and b/app/src/main/res/drawable/welcome_bg_default.png differ diff --git a/app/src/main/res/drawable/welcome_logo.png b/app/src/main/res/drawable/welcome_logo.png new file mode 100644 index 0000000..836d3ed Binary files /dev/null and b/app/src/main/res/drawable/welcome_logo.png differ diff --git a/app/src/main/res/drawable/wode_bg.xml b/app/src/main/res/drawable/wode_bg.xml new file mode 100644 index 0000000..5119e09 --- /dev/null +++ b/app/src/main/res/drawable/wode_bg.xml @@ -0,0 +1,12 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-sw533dp/activity_kf.xml b/app/src/main/res/layout-sw533dp/activity_kf.xml new file mode 100644 index 0000000..6ce9b2c --- /dev/null +++ b/app/src/main/res/layout-sw533dp/activity_kf.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout-sw533dp/activity_weclome.xml b/app/src/main/res/layout-sw533dp/activity_weclome.xml new file mode 100644 index 0000000..06b2891 --- /dev/null +++ b/app/src/main/res/layout-sw533dp/activity_weclome.xml @@ -0,0 +1,37 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_add_car_result.xml b/app/src/main/res/layout/activity_add_car_result.xml new file mode 100644 index 0000000..cbd5e8a --- /dev/null +++ b/app/src/main/res/layout/activity_add_car_result.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_auth_qualification.xml b/app/src/main/res/layout/activity_auth_qualification.xml new file mode 100644 index 0000000..f70dbda --- /dev/null +++ b/app/src/main/res/layout/activity_auth_qualification.xml @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +