diff --git a/app/build.gradle b/app/build.gradle
index 7856802..ae9a4dc 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -38,8 +38,8 @@ android {
applicationId "com.arpa.hndahesudintocctmsdriver"
minSdkVersion 24
targetSdkVersion 30
- versionCode 75
- versionName "3.4.5"
+ versionCode 76
+ versionName "3.4.6"
flavorDimensions "CHANNEL_VALUE"
flavorDimensions "app_icon"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -231,4 +231,6 @@ dependencies {
implementation project(path: ':mylibrary')
+ implementation files('libs/mdp-release.aar')
+
}
\ No newline at end of file
diff --git a/app/libs/mdp-release.aar b/app/libs/mdp-release.aar
new file mode 100644
index 0000000..5a26d94
Binary files /dev/null and b/app/libs/mdp-release.aar differ
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index bfe2479..2df6430 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -254,6 +254,15 @@
android:name="com.alct.mdp.MDPLocationService"
android:exported="true"
android:process=":mdpLocation_v1" />
+
+
+
+
+
driverInvoices;
+
+ public String getTotalPage() {
+ return totalPage;
+ }
+
+ public void setTotalPage(String totalPage) {
+ this.totalPage = totalPage;
+ }
+
+ public String getTotalCount() {
+ return totalCount;
+ }
+
+ public void setTotalCount(String totalCount) {
+ this.totalCount = totalCount;
+ }
+
+ public String getPageSize() {
+ return pageSize;
+ }
+
+ public void setPageSize(String pageSize) {
+ this.pageSize = pageSize;
+ }
+
+ public String getCurrentPage() {
+ return currentPage;
+ }
+
+ public void setCurrentPage(String currentPage) {
+ this.currentPage = currentPage;
+ }
+
+ public String getSortField() {
+ return sortField;
+ }
+
+ public void setSortField(String sortField) {
+ this.sortField = sortField;
+ }
+
+ public String getSortDirection() {
+ return sortDirection;
+ }
+
+ public void setSortDirection(String sortDirection) {
+ this.sortDirection = sortDirection;
+ }
+
+ public List getDriverInvoices() {
+ return driverInvoices;
+ }
+
+ public void setDriverInvoices(List driverInvoices) {
+ this.driverInvoices = driverInvoices;
+ }
+
+ public static class DataDTO{
+
+ private String taxAmount;
+ private String totalAmount;
+ private String invoiceReceiverName;
+ private String totalAmountIncludeTax;
+ private String driverInvoiceCode;
+ private String taxRate;
+
+
+ public String getTaxAmount() {
+ return taxAmount;
+ }
+
+ public void setTaxAmount(String taxAmount) {
+ this.taxAmount = taxAmount;
+ }
+
+ public String getTotalAmount() {
+ return totalAmount;
+ }
+
+ public void setTotalAmount(String totalAmount) {
+ this.totalAmount = totalAmount;
+ }
+
+ public String getInvoiceReceiverName() {
+ return invoiceReceiverName;
+ }
+
+ public void setInvoiceReceiverName(String invoiceReceiverName) {
+ this.invoiceReceiverName = invoiceReceiverName;
+ }
+
+ public String getTotalAmountIncludeTax() {
+ return totalAmountIncludeTax;
+ }
+
+ public void setTotalAmountIncludeTax(String totalAmountIncludeTax) {
+ this.totalAmountIncludeTax = totalAmountIncludeTax;
+ }
+
+ public String getDriverInvoiceCode() {
+ return driverInvoiceCode;
+ }
+
+ public void setDriverInvoiceCode(String driverInvoiceCode) {
+ this.driverInvoiceCode = driverInvoiceCode;
+ }
+
+ public String getTaxRate() {
+ return taxRate;
+ }
+
+ public void setTaxRate(String taxRate) {
+ this.taxRate = taxRate;
+ }
+ }
+}
diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/newlj/LjTokenBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/newlj/LjTokenBean.java
new file mode 100644
index 0000000..2b644ac
--- /dev/null
+++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/newlj/LjTokenBean.java
@@ -0,0 +1,41 @@
+package com.arpa.hndahesudintocctmsdriver.request.bean.newlj;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName LjTokenBean
+ * @Author john
+ * @Date 2024/11/25 10:05
+ * @Description TODO
+ */
+public class LjTokenBean implements Serializable {
+
+
+ private String enterpriseCode;
+ private String enterpriseIdentity;
+ private String enterpriseKey;
+
+ public String getEnterpriseCode() {
+ return enterpriseCode;
+ }
+
+ public void setEnterpriseCode(String enterpriseCode) {
+ this.enterpriseCode = enterpriseCode;
+ }
+
+ public String getEnterpriseIdentity() {
+ return enterpriseIdentity;
+ }
+
+ public void setEnterpriseIdentity(String enterpriseIdentity) {
+ this.enterpriseIdentity = enterpriseIdentity;
+ }
+
+ public String getEnterpriseKey() {
+ return enterpriseKey;
+ }
+
+ public void setEnterpriseKey(String enterpriseKey) {
+ this.enterpriseKey = enterpriseKey;
+ }
+}
diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/newlj/PickupBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/newlj/PickupBean.java
new file mode 100644
index 0000000..69a6c73
--- /dev/null
+++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/newlj/PickupBean.java
@@ -0,0 +1,109 @@
+package com.arpa.hndahesudintocctmsdriver.request.bean.newlj;
+
+import com.alct.mdp.model.Location;
+import com.arpa.hndahesudintocctmsdriver.bean.GDLocation;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName PickupBean
+ * @Author john
+ * @Date 2024/11/25 10:19
+ * @Description TODO
+ */
+public class PickupBean implements Serializable {
+
+ private String shipmentCode;
+ private String enterpriseCode;
+ private GDLocation location;
+
+ public String getShipmentCode() {
+ return shipmentCode;
+ }
+
+ public void setShipmentCode(String shipmentCode) {
+ this.shipmentCode = shipmentCode;
+ }
+
+ public String getEnterpriseCode() {
+ return enterpriseCode;
+ }
+
+ public void setEnterpriseCode(String enterpriseCode) {
+ this.enterpriseCode = enterpriseCode;
+ }
+
+ public GDLocation getLocation() {
+ return location;
+ }
+
+ public void setLocation(GDLocation location) {
+ this.location = location;
+ }
+
+ public static class LocationDTO {
+ private String time;
+ private double baiduLatitude;
+ private double baiduLongitude;
+ private double altitude;
+ private double speed;
+ private double bearing;
+ private String location;
+
+ public String getTime() {
+ return time;
+ }
+
+ public void setTime(String time) {
+ this.time = time;
+ }
+
+ public double getBaiduLatitude() {
+ return baiduLatitude;
+ }
+
+ public void setBaiduLatitude(double baiduLatitude) {
+ this.baiduLatitude = baiduLatitude;
+ }
+
+ public double getBaiduLongitude() {
+ return baiduLongitude;
+ }
+
+ public void setBaiduLongitude(double baiduLongitude) {
+ this.baiduLongitude = baiduLongitude;
+ }
+
+ public double getAltitude() {
+ return altitude;
+ }
+
+ public void setAltitude(double altitude) {
+ this.altitude = altitude;
+ }
+
+ public double getSpeed() {
+ return speed;
+ }
+
+ public void setSpeed(double speed) {
+ this.speed = speed;
+ }
+
+ public double getBearing() {
+ return bearing;
+ }
+
+ public void setBearing(double bearing) {
+ this.bearing = bearing;
+ }
+
+ public String getLocation() {
+ return location;
+ }
+
+ public void setLocation(String location) {
+ this.location = location;
+ }
+ }
+}
diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/newlj/ShipmentStatusBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/newlj/ShipmentStatusBean.java
new file mode 100644
index 0000000..5c15b11
--- /dev/null
+++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/newlj/ShipmentStatusBean.java
@@ -0,0 +1,31 @@
+package com.arpa.hndahesudintocctmsdriver.request.bean.newlj;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName ShipmentStatusBean
+ * @Author john
+ * @Date 2024/11/25 17:16
+ * @Description TODO
+ */
+public class ShipmentStatusBean implements Serializable {
+ private String shipmentCode;
+ private String enterpriseCode;
+
+
+ public String getShipmentCode() {
+ return shipmentCode;
+ }
+
+ public void setShipmentCode(String shipmentCode) {
+ this.shipmentCode = shipmentCode;
+ }
+
+ public String getEnterpriseCode() {
+ return enterpriseCode;
+ }
+
+ public void setEnterpriseCode(String enterpriseCode) {
+ this.enterpriseCode = enterpriseCode;
+ }
+}
diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/newlj/UpimgBean.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/newlj/UpimgBean.java
new file mode 100644
index 0000000..d86355e
--- /dev/null
+++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/bean/newlj/UpimgBean.java
@@ -0,0 +1,118 @@
+package com.arpa.hndahesudintocctmsdriver.request.bean.newlj;
+
+import com.alct.mdp.model.Image;
+import com.arpa.hndahesudintocctmsdriver.bean.GDImage;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName UpimgBean
+ * @Author john
+ * @Date 2024/11/25 14:36
+ * @Description TODO
+ */
+public class UpimgBean implements Serializable {
+
+ private String shipmentCode;
+ private String enterpriseCode;
+ private GDImage image;
+
+ public String getShipmentCode() {
+ return shipmentCode;
+ }
+
+ public void setShipmentCode(String shipmentCode) {
+ this.shipmentCode = shipmentCode;
+ }
+
+ public String getEnterpriseCode() {
+ return enterpriseCode;
+ }
+
+ public void setEnterpriseCode(String enterpriseCode) {
+ this.enterpriseCode = enterpriseCode;
+ }
+
+ public GDImage getImage() {
+ return image;
+ }
+
+ public void setImage(GDImage image) {
+ this.image = image;
+ }
+
+ public static class ImageDTO {
+ private String fileName;
+ private String fileExt;
+ private double baiduLongitude;
+ private double baiduLatitude;
+ private String location;
+ private String imageTakenDate;
+ private String time;
+ private String fileData;
+
+ public String getFileName() {
+ return fileName;
+ }
+
+ public void setFileName(String fileName) {
+ this.fileName = fileName;
+ }
+
+ public String getFileExt() {
+ return fileExt;
+ }
+
+ public void setFileExt(String fileExt) {
+ this.fileExt = fileExt;
+ }
+
+ public double getBaiduLongitude() {
+ return baiduLongitude;
+ }
+
+ public void setBaiduLongitude(double baiduLongitude) {
+ this.baiduLongitude = baiduLongitude;
+ }
+
+ public double getBaiduLatitude() {
+ return baiduLatitude;
+ }
+
+ public void setBaiduLatitude(double baiduLatitude) {
+ this.baiduLatitude = baiduLatitude;
+ }
+
+ public String getLocation() {
+ return location;
+ }
+
+ public void setLocation(String location) {
+ this.location = location;
+ }
+
+ public String getImageTakenDate() {
+ return imageTakenDate;
+ }
+
+ public void setImageTakenDate(String imageTakenDate) {
+ this.imageTakenDate = imageTakenDate;
+ }
+
+ public String getTime() {
+ return time;
+ }
+
+ public void setTime(String time) {
+ this.time = time;
+ }
+
+ public String getFileData() {
+ return fileData;
+ }
+
+ public void setFileData(String fileData) {
+ this.fileData = fileData;
+ }
+ }
+}
diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/Api.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/Api.java
index 347df5b..44b6bdc 100644
--- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/Api.java
+++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/Api.java
@@ -4,11 +4,23 @@ package com.arpa.hndahesudintocctmsdriver.request.net;
import com.arpa.hndahesudintocctmsdriver.BuildConfig;
import com.arpa.hndahesudintocctmsdriver.bean.UserBean;
import com.arpa.hndahesudintocctmsdriver.request.bean.LoginRegInputBean;
+import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.InvoiceBean;
+import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.InvoicesBean;
+import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.LjTokenBean;
+import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.PickupBean;
+import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.ShipmentStatusBean;
+import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.UpimgBean;
import com.dahe.mylibrary.net.CommonResponseBean;
+import java.util.HashMap;
+
import io.reactivex.rxjava3.core.Observable;
+import retrofit2.Call;
import retrofit2.http.Body;
+import retrofit2.http.GET;
import retrofit2.http.POST;
+import retrofit2.http.PUT;
+import retrofit2.http.Path;
import retrofit2.http.Query;
/**
@@ -17,7 +29,7 @@ import retrofit2.http.Query;
public interface Api {
- String BASE_URL = BuildConfig.BASE_URL;
+ String BASE_URL = BuildConfig.isTest? "http://api.kehui56.cn/api/v1/":"https://api.kehui56.com/api/v1/";
//获取版本
@@ -26,5 +38,119 @@ public interface Api {
// @POST(BASE_URL+"/common/register")
// Observable log(@Body LoginRegInputBean bean);
+ @POST(BASE_URL+"openapi/enterprises/login")
+ Observable getToken(@Body LjTokenBean bean);
+
+ @POST(BASE_URL+"openapi/enterprises/login")
+ Call> getRefreshToken(@Body LjTokenBean bean);
+
+
+ /**
+ * 刷新token
+ * @return
+ */
+ @POST(BASE_URL+"openapi/enterprises/refresh-token/{refreshToken}")
+ Observable refreshToken(@Path("refreshToken") String refreshToken);
+
+ /**
+ * 运单提货
+ * @param bean
+ * @return
+ */
+ @POST(BASE_URL+"openapi/shipments/pickup")
+ Observable pickup(@Body PickupBean bean);
+
+
+ /**
+ * 运单卸货
+ * @param bean
+ * @return
+ */
+ @POST(BASE_URL+"openapi/shipments/unload")
+ Observable unload(@Body PickupBean bean);
+
+
+ /**
+ * 运单签收
+ * @param bean
+ * @return
+ */
+ @POST(BASE_URL+"openapi/shipments/sign")
+ Observable sign(@Body PickupBean bean);
+
+
+ /**
+ * 运单回单
+ * @param bean
+ * @return
+ */
+ @POST(BASE_URL+"openapi/shipments/pod")
+ Observable pod(@Body PickupBean bean);
+
+
+ /**
+ * 运单提货照片上传
+ * @param bean
+ * @return
+ */
+ @POST(BASE_URL+"openapi/shipments/uploadPickupImage")
+ Observable uploadPickupImage(@Body UpimgBean bean);
+
+
+ /**
+ * 运单卸货照片上传
+ * @param bean
+ * @return
+ */
+ @POST(BASE_URL+"openapi/shipments/uploadUnloadImage")
+ Observable uploadUnloadImage(@Body UpimgBean bean);
+
+
+ /**
+ * 运单回单照片上传
+ * @param bean
+ * @return
+ */
+ @POST(BASE_URL+"openapi/shipments/uploadPODImage")
+ Observable uploadPODImage(@Body UpimgBean bean);
+
+
+ /**
+ * 同意发票申请
+ * @param bean
+ * @return
+ */
+ @PUT(BASE_URL+"openapi/confirmInvoice")
+ Observable confirmInvoice(@Body InvoiceBean bean);
+
+ /**
+ * 待同意发票列表获取
+ * @param enterpriseCodeParam
+ * @param driverIdentification
+ * @param currentPage
+ * @param pageSize
+ * @return
+ */
+ @GET(BASE_URL+"openapi/getInvoices")
+ Observable> getInvoices(@Query("enterpriseCodeParam") String enterpriseCodeParam,
+ @Query("driverIdentification") String driverIdentification,
+ @Query("currentPage") int currentPage,
+ @Query("pageSize") int pageSize);
+
+
+ /**
+ * 获取运单状态
+ * @param bean
+ * @return
+ */
+ @POST(BASE_URL+"/openapi/getShipmentStatus")
+ Observable getShipmentStatus(@Body ShipmentStatusBean bean);
+
+ @POST(BASE_URL+"/openapi/shipments/getPODImageNames")
+ Observable getPODImageNames(@Body ShipmentStatusBean bean);
+
+
+ @GET(BASE_URL+"/openapi/drivers")
+ Observable searchDriver(@Query("identityNo") String identityNo);
}
diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/ApiInterceptor.kt b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/ApiInterceptor.kt
new file mode 100644
index 0000000..a6a7a47
--- /dev/null
+++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/ApiInterceptor.kt
@@ -0,0 +1,114 @@
+package com.arpa.hndahesudintocctmsdriver.request.net
+
+import okhttp3.Interceptor
+import okhttp3.Request
+import okio.IOException
+import retrofit2.Response
+import java.util.concurrent.atomic.AtomicBoolean
+
+/**
+ * @ClassName ApiInterceptor
+ * @Author john
+ * @Date 2024/11/29 17:05
+ * @Description TODO
+ */
+class ApiInterceptor : Interceptor {
+
+ // 需要验证token的接口的路径集合
+// private val checkTokenInterface = arrayListOf(
+// "/example/user/info,
+// "/example/user/info/edit"
+// )
+
+ // 是否正在刷新token
+ // 使用AtomicBoolean,确保多线程中获取的值一致
+// private var refreshingToken = AtomicBoolean(false)
+//
+// private val authHeaderKey = "token-key"
+//
+// // 当前token
+// private var currentToken = "tokenValue"
+
+ // override fun intercept(chain: Interceptor.Chain): Response {
+ // 根据接口路径判断是否需要验证token
+// val checkToken = checkTokenInterface.contains(chain.request().url.encodedPath)
+// // 需要验证token则添加请求头,不需要则保持原样
+// var request = if (checkToken) {
+// chain.request().newBuilder()
+// .addHeader(authHeaderKey, currentToken)
+// .build()
+// } else {
+// chain.request()
+// }
+// // 获取响应
+// var response = chain.proceed(request)
+// if (checkToken) {
+// // 需要验证token,处理响应,判断token是否过期
+// response.body?.let { responseBody ->
+// try {
+// if (判断token过期的条件) {
+// runBlocking {
+// // 请求头中的token与currentToken仍然一样则需要刷新token
+// // 确保多线程中不会重复刷新
+// if (request.header(authHeaderKey) == currentToken){
+// // 标记为正在刷新token
+// if (refreshingToken.compareAndSet(false, true)) {
+// refreshToken(chain).takeIf { it.isNotEmpty() && it.isNotBlank() }?.let { newToken ->
+// // 保存newToken
+// currentToken = newToken
+// }
+// // 标记为刷新token已结束
+// refreshingToken.set(false)
+// }
+// }
+// // async{}.await()会等待方法块内的代码执行完毕。
+// // 等到refreshingToken为false时才会执行后续代码。
+// if (async { stopRefreshingToken() }.await()) {
+// // 携带newToken执行原请求获取响应
+// response = chain.proceed(chain.request().newBuilder()
+// .addHeader(authHeaderKey, currentToken)
+// .build())
+// }
+// }
+// }
+// } catch (e: Exception) {
+// e.printStackTrace()
+// }
+// }
+// }
+// // 返回最终的响应结果。
+// // 刷新token也可能失败,此时返回原响应,可以让用户重新登录。
+// return response
+// }
+//
+// private fun refreshToken(chain: Interceptor.Chain): String {
+// // 创建刷新token的请求
+// val refreshTokenRequest = Request.Builder()
+// .url("refresh token url")
+// .addHeader(authHeaderKey, currentToken)
+// .get()
+// .build()
+// return try {
+// // 获取响应并解析获得新token
+// val refreshTokenResponse = chain.proceed(refreshTokenRequest)
+// refreshTokenResponse.token
+// } catch (e: IOException) {
+// // 失败时返回空字符串
+// ""
+// }
+// }
+//
+// private suspend fun stopRefreshingToken(): Boolean {
+// return if (refreshingToken.get()) {
+// // 仍在刷新token中,延迟1秒后再次执行此方法
+// delay(1000)
+// stopRefreshingToken()
+// } else {
+// true
+// }
+// }
+ override fun intercept(chain: Interceptor.Chain): okhttp3.Response {
+ TODO("Not yet implemented")
+ }
+}
+
diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/BaseObserver.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/BaseObserver.java
index 3b8c3db..2ae591a 100644
--- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/BaseObserver.java
+++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/BaseObserver.java
@@ -37,7 +37,7 @@ public class BaseObserver implements Observer> {
@Override
public void onNext(CommonResponseBean tCommonResponseBean) {
- if (200==tCommonResponseBean.getCode()) {
+ if ("0".equals(tCommonResponseBean.getCode())) {
mRxHttpCallBack.onSuccess(tCommonResponseBean);
} else {
mRxHttpCallBack.onCodeError(mContext, tCommonResponseBean);
diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/DataManager.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/DataManager.java
index d611fa5..0a53ea0 100644
--- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/DataManager.java
+++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/DataManager.java
@@ -2,7 +2,6 @@ package com.arpa.hndahesudintocctmsdriver.request.net;
import com.dahe.mylibrary.CommonBaseLibrary;
-import com.dahe.mylibrary.net.JsonInterceptor;
import java.util.concurrent.TimeUnit;
diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/JsonInterceptor.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/JsonInterceptor.java
new file mode 100644
index 0000000..273b137
--- /dev/null
+++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/JsonInterceptor.java
@@ -0,0 +1,119 @@
+package com.arpa.hndahesudintocctmsdriver.request.net;
+
+import static com.dahe.mylibrary.utils.BaseSPUtils.NEW_LJ_TOKEN;
+
+import android.text.TextUtils;
+import android.util.Log;
+import com.arpa.hndahesudintocctmsdriver.App;
+import com.arpa.hndahesudintocctmsdriver.constant.NewLJConstant;
+import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.LjTokenBean;
+import com.arpa.hndahesudintocctmsdriver.util.NewLJUtils;
+import com.arpa.hndahesudintocctmsdriver.util.SPUtils;
+import com.dahe.mylibrary.CommonBaseLibrary;
+import com.dahe.mylibrary.net.CommonResponseBean;
+import com.dahe.mylibrary.net.ResultException;
+
+import org.json.JSONObject;
+
+import java.io.IOException;
+import java.nio.charset.Charset;
+import java.util.HashMap;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import io.reactivex.rxjava3.core.Observable;
+import kotlin.jvm.Synchronized;
+import okhttp3.Interceptor;
+import okhttp3.MediaType;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.Response;
+import okhttp3.ResponseBody;
+import okio.Buffer;
+import okio.BufferedSource;
+
+/**
+ * json的Interceptor
+ */
+
+public class JsonInterceptor implements Interceptor {
+ private static final String TAG = "JsonInterceptor";
+
+ public JsonInterceptor() {
+ }
+
+ // 使用AtomicBoolean,确保多线程中获取的值一致
+ private AtomicBoolean refreshingToken = new AtomicBoolean(false);
+
+ @Override
+ public Response intercept(Chain chain) throws IOException {
+ Request request = chain.request();
+ Response response = chain.proceed(request);
+ ResponseBody responseBody = response.body();
+ //为了不消耗buffer,我们这里使用source先获得buffer对象,然后clone()后使用
+ BufferedSource source = responseBody.source();
+ source.request(Long.MAX_VALUE); // Buffer the entire body.
+ //获得返回的数据
+ Buffer buffer = source.buffer();
+ //使用前clone()下,避免直接消耗
+ String responseBodyStr = buffer.clone().readString(Charset.forName("UTF-8"));
+ Log.i(TAG, "result-body= " + responseBodyStr);
+ try {
+
+ JSONObject jsonObject = new JSONObject(responseBodyStr);
+ String str = jsonObject.optString("data");
+ int code = jsonObject.optInt("code");
+ if (401 == code) {
+ refreshToken();
+// if (execute.body() != null) {
+// String refreshToken = execute.body().get("token");
+// SPUtils.put(App.getApp(), NEW_LJ_TOKEN, refreshToken);
+// }
+ response.close();
+ try {
+ return chain.proceed(request);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ if (-1 == code) {
+ jsonObject.put("data", new JSONObject());
+ throw new ResultException();
+ } else {
+ if (TextUtils.isEmpty(str)) {
+ jsonObject.put("data", new JSONObject());
+ }
+ }
+
+ String data = jsonObject.toString();
+ responseBody = ResponseBody.create(MediaType.parse("application/json; charset=utf-8"), data);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ response = response.newBuilder().body(responseBody).build();
+ return response;
+ }
+
+ @Synchronized
+ private void refreshToken() throws IOException {
+ Api api = CommonBaseLibrary.getRetrofit().newBuilder()
+ .client(new OkHttpClient.Builder()
+ .connectTimeout(30, TimeUnit.SECONDS)
+ .readTimeout(30, TimeUnit.SECONDS)
+ .writeTimeout(30, TimeUnit.SECONDS)
+ .build())
+// .addNetworkInterceptor(new TokenInterceptor())
+ .build().create(Api.class);
+ LjTokenBean ljTokenBean = new LjTokenBean();
+ ljTokenBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
+ ljTokenBean.setEnterpriseIdentity(NewLJConstant.ENTER_PRISE_IDENTITY);
+ ljTokenBean.setEnterpriseKey(NewLJConstant.ENTER_PRISE_KEY);
+ retrofit2.Response> execute = api.getRefreshToken(ljTokenBean).execute();
+ if (execute.body() != null) {
+ String refreshToken = execute.body().get("token");
+ SPUtils.put(App.getApp(), NEW_LJ_TOKEN, refreshToken);
+ }
+ }
+}
diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/RequestHeadInterceptor.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/RequestHeadInterceptor.java
index 29d6e3f..6b2d228 100644
--- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/RequestHeadInterceptor.java
+++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/RequestHeadInterceptor.java
@@ -1,5 +1,7 @@
package com.arpa.hndahesudintocctmsdriver.request.net;
+import static com.dahe.mylibrary.utils.BaseSPUtils.NEW_LJ_TOKEN;
+
import android.text.TextUtils;
import android.util.Log;
@@ -27,9 +29,10 @@ public class RequestHeadInterceptor implements Interceptor {
@Override
public Response intercept(Chain chain) throws IOException {
Request.Builder builder = chain.request().newBuilder();
- if (!TextUtils.isEmpty(SPUtil.getSP(App.getApp(), LoginActivity.USER,LoginActivity.USER_TOKEN))) {
+ String token = SPUtils.get(App.getApp(), NEW_LJ_TOKEN, "").toString();
+ if (!TextUtils.isEmpty(token)) {
// builder.addHeader("Authorization", SPUtils.getUserInfo(App.getApp()).getToken());
- builder.addHeader("Authorization", SPUtil.getSP(App.getApp(), LoginActivity.USER,LoginActivity.USER_TOKEN));
+ builder.addHeader("token", token);
}
Request request = builder
.addHeader("versionCode", AppUtils.getAppVersionCode() + "")
diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/RxHttpCallBack.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/RxHttpCallBack.java
index d126c97..024c9aa 100644
--- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/RxHttpCallBack.java
+++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/request/net/RxHttpCallBack.java
@@ -11,6 +11,7 @@ import android.view.Window;
import com.arpa.hndahesudintocctmsdriver.ui.MainActivity;
import com.arpa.hndahesudintocctmsdriver.ui.UiAuxiliary;
import com.arpa.hndahesudintocctmsdriver.ui.login.LoginActivity;
+import com.arpa.hndahesudintocctmsdriver.util.NewLJUtils;
import com.dahe.mylibrary.net.CommonResponseBean;
import com.dahe.mylibrary.net.ResultException;
import com.dahe.mylibrary.utils.ToastUtils;
@@ -86,14 +87,15 @@ public abstract class RxHttpCallBack {
dialog.dismiss();
}
- if (t.getCode() == 401) {
- UiAuxiliary.delLogin(mContext);
- Intent intent = new Intent(mContext, MainActivity.class);
- intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
- mContext.startActivity(intent);
- ToastUtils.showToast(mContext,"您的账号再异地登录,请重新登录");
+ if ("401".equals(t.getCode())) {
+// NewLJUtils.getInstance().refreshToken(mContext);
+// UiAuxiliary.delLogin(mContext);
+// Intent intent = new Intent(mContext, MainActivity.class);
+// intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
+// mContext.startActivity(intent);
+// ToastUtils.showToast(mContext,"您的账号再异地登录,请重新登录");
}else{
- ToastUtils.showToast(mContext,t.getMsg());
+// ToastUtils.showToast(mContext,t.getMessage());
}
// if (t.getMessage().getMsg_code() == 100 && SPUtils.hasUserInfo(mContext)) {
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
index 417b067..24ddba3 100644
--- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/HomeFragment.java
+++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/HomeFragment.java
@@ -460,6 +460,7 @@ public class HomeFragment extends BaseFragment {
});
btn_update.setOnClickListener(v -> {
getRequest();
+ refreshWaybills();
});
home_top.setOnClickListener(v -> {
if (!UiAuxiliary.isLogin(con)) {
@@ -520,6 +521,7 @@ public class HomeFragment extends BaseFragment {
Log.e("下拉刷新", "pps");
keys = true;
getRequest();
+ refreshWaybills();
});
}
@@ -784,6 +786,7 @@ public class HomeFragment extends BaseFragment {
*/
public void initMap() {
getRequest();
+ refreshWaybills();
}
private CustomDialog customDialog;
@@ -796,18 +799,18 @@ public class HomeFragment extends BaseFragment {
// customDialog=new CustomDialog(con,"加载中...");
// customDialog.show();
ur.upApp();
- hyr.getHuoYuan(1, 100);
+// hyr.getHuoYuan(1, 100);
ur.getImage(1);
WalletRequest qr = new WalletRequest(con, hd);
if (UiAuxiliary.isLogin(con)) {
- int curWaybillId = (int) SPUtils.get(con, "curWaybillId", -1);
+// int curWaybillId = (int) SPUtils.get(con, "curWaybillId", -1);
ur.User();
// if (!OneDayShowUtils.getInstance().todayIsShow(con)) {
// qr.getBankCardList();
// }
ur.getDriverExpire();
- hyr.startOrder(curWaybillId == -1 ? 0 : curWaybillId);
+// hyr.startOrder(curWaybillId == -1 ? 0 : curWaybillId);
// hyr.startOrder(0);
//获取权限 应用市场审核不通过
ur.driverAuthData();
@@ -1177,6 +1180,7 @@ public class HomeFragment extends BaseFragment {
.permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.ACCESS_FINE_LOCATION,
+ Manifest.permission.ACCESS_BACKGROUND_LOCATION,
Manifest.permission.CAMERA,
Manifest.permission.ACCESS_COARSE_LOCATION)
.request((allGranted, grantedList, deniedList) -> {
@@ -1300,26 +1304,29 @@ public class HomeFragment extends BaseFragment {
@Override
public void onStart() {
super.onStart();
+// ToastUtils.showToast(con,"onstart");
+// refreshLayout.autoRefresh();
refreshWaybills();
}
private void refreshWaybills() {
-// if (UiAuxiliary.isLogin(con)) {
-// int curWaybillId = (int) SPUtils.get(con, "curWaybillId", -1);
-// hyr.startOrder(curWaybillId == -1 ? 0 : curWaybillId);
-// }
+ hyr.getHuoYuan(1, 100);
+ if (UiAuxiliary.isLogin(con)) {
+ int curWaybillId = (int) SPUtils.get(con, "curWaybillId", -1);
+ hyr.startOrder(curWaybillId == -1 ? 0 : curWaybillId);
+ }
}
@Subscribe
public void processResult(HomeWaybillEvent home) {
- if (home.getMessage() == 1) {
- int curWaybillId = (int) SPUtils.get(con, "curWaybillId", -1);
- hyr.startOrder(curWaybillId == -1 ? 0 : curWaybillId);
- hyr.getHuoYuan(1, 100);
- } else {
- int curWaybillId = (int) SPUtils.get(con, "curWaybillId", -1);
- hyr.startOrder(curWaybillId == -1 ? 0 : curWaybillId);
- }
+// if (home.getMessage() == 1) {
+// int curWaybillId = (int) SPUtils.get(con, "curWaybillId", -1);
+// hyr.startOrder(curWaybillId == -1 ? 0 : curWaybillId);
+// hyr.getHuoYuan(1, 100);
+// } else {
+// int curWaybillId = (int) SPUtils.get(con, "curWaybillId", -1);
+// hyr.startOrder(curWaybillId == -1 ? 0 : curWaybillId);
+// }
}
diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/shangchuan/ShangChuangImgActivity.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/shangchuan/ShangChuangImgActivity.java
index a4f7a90..387513c 100644
--- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/shangchuan/ShangChuangImgActivity.java
+++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/home/shangchuan/ShangChuangImgActivity.java
@@ -27,6 +27,8 @@ import com.alct.mdp.model.Location;
import com.alct.mdp.model.ShipmentStatusEnum;
import com.arpa.hndahesudintocctmsdriver.BuildConfig;
import com.arpa.hndahesudintocctmsdriver.bean.CarInfoBean;
+import com.arpa.hndahesudintocctmsdriver.bean.GDImage;
+import com.arpa.hndahesudintocctmsdriver.bean.GDLocation;
import com.arpa.hndahesudintocctmsdriver.bean.WaybillStatusBean;
import com.arpa.hndahesudintocctmsdriver.event.HomeWaybillEvent;
import com.arpa.hndahesudintocctmsdriver.report.JTTProcess;
@@ -35,6 +37,7 @@ import com.arpa.hndahesudintocctmsdriver.request.bean.TrackInputBean;
import com.arpa.hndahesudintocctmsdriver.ui.MainActivity;
import com.arpa.hndahesudintocctmsdriver.util.BitmapUtil;
import com.arpa.hndahesudintocctmsdriver.util.MessageUtils;
+import com.arpa.hndahesudintocctmsdriver.util.NewLJUtils;
import com.arpa.hndahesudintocctmsdriver.util.NfcUtils;
import com.arpa.hndahesudintocctmsdriver.util.SPUtils;
import com.arpa.hndahesudintocctmsdriver.util.alert.ToastUtil;
@@ -43,6 +46,8 @@ import com.arpa.hndahesudintocctmsdriver.util.location.LocationUtil;
import com.baidu.mapapi.model.LatLng;
import com.baidu.mapapi.utils.CoordinateConverter;
import com.bumptech.glide.Glide;
+import com.dahe.mylibrary.callback.OnGDDownloadResultListener;
+import com.dahe.mylibrary.callback.OnGDResultListener;
import com.dahe.mylibrary.utils.ActivityUtils;
import com.dahe.mylibrary.utils.ImageLoader;
import com.dahe.mylibrary.utils.ToastUtils;
@@ -134,6 +139,7 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
}
CacheGroup.cacheList.remove("upload");
}
+
if (CacheGroup.cacheList.get("genzong") != null) {
BaseBean bb = gson.fromJson(CacheGroup.cacheList.get("genzong"), BaseBean.class);
if (bb.getCode() == 200) {
@@ -143,6 +149,7 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
}
CacheGroup.cacheList.remove("genzong");
}
+
if (CacheGroup.cacheList.get("waybillStatus") != null) {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
@@ -474,30 +481,54 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
Log.e("--装货信息", gson.toJson(lub));
if (locationKey) {//高德定位
if (keys) {
- MDPLocationCollectionManager.getShipmentStatus(con, sob.getData().getShippingNoteNumber(), new OnDownloadResultListener() {
- @Override
- public void onSuccess(Object o) {
- String string = o.toString();
- if (string.equals("PICKUPED")) {//安联装货,单平台未装货
+ NewLJUtils.getInstance().getShipmentStatus(con, sob.getData().getShippingNoteNumber(), new OnGDDownloadResultListener() {
+ @Override
+ public void onSuccess(String var1) {
+ String string = var1;
+ if (string.equals("30")) {//安联装货,单平台未装货
isFinish = true;
//平台确认装货
hyr.loading(lub);
} else {
- nfc();
+// nfc();
loadInfo();
}
- upLocation(lgdu.getLatitude()+"",lgdu.getLongitude()+"",sob.getData().getShippingNoteNumber());
+ upLocation(lgdu.getLatitude() + "", lgdu.getLongitude() + "",sob.getData().getShippingNoteNumber());
+// NewLJUtils.getInstance().startLocationService(ShangChuangImgActivity.this);
}
@Override
- public void onFailure(String s, String s1) {
+ public void onFailure(String var1, String var2) {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
- ToastUtils.showToast(con, s1);
+ ToastUtils.showToast(con, var2);
}
});
+// MDPLocationCollectionManager.getShipmentStatus(con, sob.getData().getShippingNoteNumber(), new OnDownloadResultListener() {
+// @Override
+// public void onSuccess(Object o) {
+//
+// String string = o.toString();
+// if (string.equals("PICKUPED")) {//安联装货,单平台未装货
+// isFinish = true;
+// //平台确认装货
+// hyr.loading(lub);
+// } else {
+// nfc();
+// loadInfo();
+// }
+// }
+//
+// @Override
+// public void onFailure(String s, String s1) {
+// if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
+// customDialog.dismiss();
+// }
+// ToastUtils.showToast(con, s1);
+// }
+// });
// nfc();
@@ -530,10 +561,11 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
Log.e("--卸货信息", gson.toJson(lub));
if (locationKey) {
if (keys) {
- MDPLocationCollectionManager.getShipmentStatus(con, sob.getData().getShippingNoteNumber(), new OnDownloadResultListener() {
+
+ NewLJUtils.getInstance().getShipmentStatus(con, sob.getData().getShippingNoteNumber(), new OnGDDownloadResultListener() {
@Override
- public void onSuccess(Object o) {
- if (o.toString().equals("UNLOADED")) {//安联装货,单平台未装货
+ public void onSuccess(String var1) {
+ if (var1.equals("40")) {//安联装货,单平台未装货
//卸货状态-平台
isFinish = true;
hyr.dischargeCargo(lub);
@@ -541,18 +573,41 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
nfc();
uploadInfo();
}
- upLocation(lgdu.getLatitude()+"",lgdu.getLongitude()+"",sob.getData().getShippingNoteNumber());
+ upLocation(lgdu.getLatitude() + "", lgdu.getLongitude() + "",sob.getData().getShippingNoteNumber());
+// NewLJUtils.getInstance().stopLocationService();
}
@Override
- public void onFailure(String s, String s1) {
+ public void onFailure(String var1, String var2) {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
- ToastUtils.showToast(con, s1);
+ ToastUtils.showToast(con, var2);
}
});
+// MDPLocationCollectionManager.getShipmentStatus(con, sob.getData().getShippingNoteNumber(), new OnDownloadResultListener() {
+// @Override
+// public void onSuccess(Object o) {
+// if (o.toString().equals("UNLOADED")) {//安联装货,单平台未装货
+// //卸货状态-平台
+// isFinish = true;
+// hyr.dischargeCargo(lub);
+// } else {
+// nfc();
+// uploadInfo();
+// }
+// }
+//
+// @Override
+// public void onFailure(String s, String s1) {
+// if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
+// customDialog.dismiss();
+// }
+// ToastUtils.showToast(con, s1);
+// }
+// });
+
// nfc();
// uploadInfo();
@@ -589,8 +644,8 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
if (locationKey) {
if (index == 2 && keys) {
up_trafficSign();
- up_trafficReceipt();
- receipt_image();
+// up_trafficReceipt();
+// receipt_image();
}
hyr.receipt(urib);
} else {
@@ -637,7 +692,7 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
//上传安联-签收
public void up_trafficSign() {
//安联
- Location l = new Location();
+ GDLocation l = new GDLocation();
l.setBaiduLongitude(latLng.longitude);
l.setBaiduLatitude(latLng.latitude);
l.setLocation(lgdu.getAddress());
@@ -661,56 +716,86 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
}
}
}
- MDPLocationCollectionManager.sign(con, sob.getData().getShippingNoteNumber(), l, gs, new com.alct.mdp.callback.OnResultListener() {
+
+ NewLJUtils.getInstance().sign(con, sob.getData().getShippingNoteNumber(), l, new OnGDResultListener() {
@Override
public void onSuccess() {
+ NewLJUtils.getInstance().stopLocationService();
+ up_trafficReceipt();
+ receipt_image();
Log.e("上报安联", "签收成功");
}
@Override
- public void onFailure(String s, String s1) {
- Log.e("上报安联失败(签收):", s + s1);
+ public void onFailure(String var1, String var2) {
+ Log.e("上报安联失败(签收):", var1 + var2);
}
});
+// MDPLocationCollectionManager.sign(con, sob.getData().getShippingNoteNumber(), l, gs, new com.alct.mdp.callback.OnResultListener() {
+// @Override
+// public void onSuccess() {
+// Log.e("上报安联", "签收成功");
+// }
+//
+// @Override
+// public void onFailure(String s, String s1) {
+// Log.e("上报安联失败(签收):", s + s1);
+// }
+// });
}
//上传安联-回单
public void up_trafficReceipt() {
//安联
- Location l = new Location();
+ GDLocation l = new GDLocation();
l.setBaiduLongitude(latLng.longitude);
l.setBaiduLatitude(latLng.latitude);
l.setLocation(lgdu.getAddress());
l.setTime(Timer.getTimerT());
- MDPLocationCollectionManager.pod(con, sob.getData().getShippingNoteNumber(), l, new com.alct.mdp.callback.OnResultListener() {
+ NewLJUtils.getInstance().pod(con, sob.getData().getShippingNoteNumber(), l, new OnGDResultListener() {
@Override
public void onSuccess() {
Log.e("上报安联", "回单上传成功");
}
@Override
- public void onFailure(String s, String s1) {
- Log.e("上报安联失败(回单):", s + s1);
+ public void onFailure(String var1, String var2) {
+ Log.e("上报安联失败(回单):", var1 + var2);
}
-
});
+// MDPLocationCollectionManager.pod(con, sob.getData().getShippingNoteNumber(), l, new com.alct.mdp.callback.OnResultListener() {
+//
+// @Override
+// public void onSuccess() {
+// Log.e("上报安联", "回单上传成功");
+// }
+//
+// @Override
+// public void onFailure(String s, String s1) {
+// Log.e("上报安联失败(回单):", s + s1);
+// }
+//
+// });
}
public void up_image_z() {
///storage/emulated/0/Android/data/com.oneclouds.wangluohuoyun/files/Pictures/163124593063154.jpg
File file = new File(path);
- Image image = new Image();
+ GDImage image = new GDImage();
String base = BitmapUtil.imageToBase64(path);
image.setFileData("data:image/" + FileUtil.lastName(file) + ";base64," + base);
image.setFileExt(FileUtil.lastName(file));
image.setFileName(FileUtil.fileName(file));
image.setImageTakenDate(Timer.getTimerT());
+ image.setTime(Timer.getTimerT());
image.setBaiduLongitude(latLng.longitude);
image.setBaiduLatitude(latLng.latitude);
image.setLocation(lgdu.getAddress());
- MDPLocationCollectionManager.uploadPickupImage(con, sob.getData().getShippingNoteNumber(), image, new com.alct.mdp.callback.OnResultListener() {
+ String json = new Gson().toJson(image);
+
+ NewLJUtils.getInstance().uploadPickupImage(con, sob.getData().getShippingNoteNumber(), image, new OnGDResultListener() {
@Override
public void onSuccess() {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
@@ -723,30 +808,50 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
}
@Override
- public void onFailure(String s, String s1) {
- Log.e("上报安联失败(装货照片):", s + s1);
-// SPUtil.insSP(con,"make","装货",sob.getData().getShippingNoteNumber());
-// SPUtil.insSP(con,"make","装货-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
-// Intent serviceIn=new Intent(con, MakeUpAlService.class);
-// startService(serviceIn);
+ public void onFailure(String var1, String var2) {
+ Log.e("上报安联失败(装货照片):", var1 + var2);
}
-
});
+
+// MDPLocationCollectionManager.uploadPickupImage(con, sob.getData().getShippingNoteNumber(), image, new com.alct.mdp.callback.OnResultListener() {
+//
+// @Override
+// public void onSuccess() {
+// if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
+// customDialog.dismiss();
+// }
+// EventBus.getDefault().post(new HomeWaybillEvent());
+// Log.e("上报安联", "装货照片上传成功");
+// Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
+// finish();
+// }
+//
+// @Override
+// public void onFailure(String s, String s1) {
+// Log.e("上报安联失败(装货照片):", s + s1);
+//// SPUtil.insSP(con,"make","装货",sob.getData().getShippingNoteNumber());
+//// SPUtil.insSP(con,"make","装货-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
+//// Intent serviceIn=new Intent(con, MakeUpAlService.class);
+//// startService(serviceIn);
+// }
+//
+// });
}
public void up_image() {
File file = new File(path);
- Image image = new Image();
+ GDImage image = new GDImage();
String base = BitmapUtil.imageToBase64(path);
image.setFileData("data:image/" + FileUtil.lastName(file) + ";base64," + base);
image.setFileExt(FileUtil.lastName(file));
image.setFileName(FileUtil.fileName(file));
image.setImageTakenDate(Timer.getTimerT());
+ image.setTime(Timer.getTimerT());
image.setBaiduLongitude(latLng.longitude);
image.setBaiduLatitude(latLng.latitude);
image.setLocation(lgdu.getAddress());
- MDPLocationCollectionManager.uploadUnloadImage(con, sob.getData().getShippingNoteNumber(), image, new com.alct.mdp.callback.OnResultListener() {
+ NewLJUtils.getInstance().uploadUnloadImage(con, sob.getData().getShippingNoteNumber(), image, new OnGDResultListener() {
@Override
public void onSuccess() {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
@@ -759,34 +864,56 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
}
@Override
- public void onFailure(String s, String s1) {
- Log.e("上报安联失败(卸货照片):", s + s1);
+ public void onFailure(String var1, String var2) {
+ Log.e("上报安联失败(卸货照片):", var1 + var2);
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
-// SPUtil.insSP(con,"make","卸货",sob.getData().getShippingNoteNumber());
-// SPUtil.insSP(con,"make","卸货-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
-// Intent serviceIn=new Intent(con, MakeUpAlService.class);
-// startService(serviceIn);
}
-
});
+// MDPLocationCollectionManager.uploadUnloadImage(con, sob.getData().getShippingNoteNumber(), image, new com.alct.mdp.callback.OnResultListener() {
+//
+// @Override
+// public void onSuccess() {
+// if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
+// customDialog.dismiss();
+// }
+// EventBus.getDefault().post(new HomeWaybillEvent());
+// Log.e("上报安联", "卸货照片上传成功");
+// Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
+// finish();
+// }
+//
+// @Override
+// public void onFailure(String s, String s1) {
+// Log.e("上报安联失败(卸货照片):", s + s1);
+// if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
+// customDialog.dismiss();
+// }
+//// SPUtil.insSP(con,"make","卸货",sob.getData().getShippingNoteNumber());
+//// SPUtil.insSP(con,"make","卸货-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
+//// Intent serviceIn=new Intent(con, MakeUpAlService.class);
+//// startService(serviceIn);
+// }
+//
+// });
}
public void receipt_image() {
///storage/emulated/0/Android/data/com.oneclouds.wangluohuoyun/files/Pictures/163124593063154.jpg
File file = new File(path);
- Image image = new Image();
+ GDImage image = new GDImage();
String base = BitmapUtil.imageToBase64(path);
image.setFileData("data:image/" + FileUtil.lastName(file) + ";base64," + base);
image.setFileExt(FileUtil.lastName(file));
image.setFileName(FileUtil.fileName(file));
image.setImageTakenDate(Timer.getTimerT());
+ image.setTime(Timer.getTimerT());
image.setBaiduLongitude(latLng.longitude);
image.setBaiduLatitude(latLng.latitude);
image.setLocation(lgdu.getAddress());
- MDPLocationCollectionManager.uploadPODImage(con, sob.getData().getShippingNoteNumber(), image, new com.alct.mdp.callback.OnResultListener() {
+ NewLJUtils.getInstance().uploadPODImage(con, sob.getData().getShippingNoteNumber(), image, new OnGDResultListener() {
@Override
public void onSuccess() {
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
@@ -800,15 +927,34 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
}
@Override
- public void onFailure(String s, String s1) {
- Log.e("上报安联失败(回单照片):", s + s1);
-// SPUtil.insSP(con,"make","回单",sob.getData().getShippingNoteNumber());
-//// SPUtil.insSP(con,"make","回单-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
-//// Intent serviceIn=new Intent(con, MakeUpAlService.class);
-//// startService(serviceIn);
+ public void onFailure(String var1, String var2) {
+ Log.e("上报安联失败(回单照片):", var1 + var2);
}
-
});
+// MDPLocationCollectionManager.uploadPODImage(con, sob.getData().getShippingNoteNumber(), image, new com.alct.mdp.callback.OnResultListener() {
+//
+// @Override
+// public void onSuccess() {
+// if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
+// customDialog.dismiss();
+// }
+// SPUtils.remove(con, "curWaybillId");
+// EventBus.getDefault().post(new HomeWaybillEvent());
+// Log.e("上报安联", "回单照片上传成功");
+// Toast.makeText(con, "上传成功", Toast.LENGTH_SHORT).show();
+// finish();
+// }
+//
+// @Override
+// public void onFailure(String s, String s1) {
+// Log.e("上报安联失败(回单照片):", s + s1);
+//// SPUtil.insSP(con,"make","回单",sob.getData().getShippingNoteNumber());
+////// SPUtil.insSP(con,"make","回单-"+sob.getData().getShippingNoteNumber(),gson.toJson(image));
+////// Intent serviceIn=new Intent(con, MakeUpAlService.class);
+////// startService(serviceIn);
+// }
+//
+// });
}
@Override
@@ -847,12 +993,13 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
private void loadInfo() {
//安联
if (sob.getData().getReportAlct() == 1) {
- Location l = new Location();
+ GDLocation l = new GDLocation();
l.setBaiduLongitude(latLng.longitude);
l.setBaiduLatitude(latLng.latitude);
l.setLocation(lgdu.getAddress());
l.setTime(Timer.getTimerT());
- MDPLocationCollectionManager.pickup(con, sob.getData().getShippingNoteNumber(), l, new com.alct.mdp.callback.OnResultListener() {
+
+ NewLJUtils.getInstance().pickUp(con, sob.getData().getShippingNoteNumber(), l, new OnGDResultListener() {
@Override
public void onSuccess() {
Log.e("上报安联", "装货上传成功");
@@ -860,6 +1007,7 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
if (sob.getData().getReport() == 1) {
JTTProcess.start(con, sob, "");
}
+ NewLJUtils.getInstance().startLocationService(ShangChuangImgActivity.this);
//装货状态
hyr.loading(lub);
//装货照片
@@ -867,14 +1015,39 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
}
@Override
- public void onFailure(String s, String s1) {
- Log.e("上报安联失败(装货):", s + s1);
+ public void onFailure(String var1, String var2) {
+ Log.e("上报安联失败(装货):", var1 + var2);
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
- new MessageUtils().showCenMessage(con, s1);
+ new MessageUtils().showCenMessage(con, var2);
}
});
+
+
+// MDPLocationCollectionManager.pickup(con, sob.getData().getShippingNoteNumber(), l, new com.alct.mdp.callback.OnResultListener() {
+// @Override
+// public void onSuccess() {
+// Log.e("上报安联", "装货上传成功");
+// //交通厅
+// if (sob.getData().getReport() == 1) {
+// JTTProcess.start(con, sob, "");
+// }
+// //装货状态
+// hyr.loading(lub);
+// //装货照片
+// up_image_z();
+// }
+//
+// @Override
+// public void onFailure(String s, String s1) {
+// Log.e("上报安联失败(装货):", s + s1);
+// if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
+// customDialog.dismiss();
+// }
+// new MessageUtils().showCenMessage(con, s1);
+// }
+// });
}
}
@@ -886,13 +1059,14 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
//安联
if (sob.getData().getReportAlct() == 1) {
- Location l = new Location();
+ GDLocation l = new GDLocation();
l.setBaiduLongitude(latLng.longitude);
l.setBaiduLatitude(latLng.latitude);
l.setLocation(lgdu.getAddress());
l.setTime(Timer.getTimerT());
Log.e("-安联卸货信息-", gson.toJson(l));
- MDPLocationCollectionManager.unload(con, sob.getData().getShippingNoteNumber(), l, new com.alct.mdp.callback.OnResultListener() {
+
+ NewLJUtils.getInstance().unload(con, sob.getData().getShippingNoteNumber(), l, new OnGDResultListener() {
@Override
public void onSuccess() {
Log.e("上报安联", "卸货上传成功");
@@ -900,6 +1074,7 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
if (sob.getData().getReport() == 1) {
JTTProcess.stop(con, sob, "");
}
+
//卸货状态-平台
hyr.dischargeCargo(lub);
//卸货照片-安联
@@ -907,14 +1082,37 @@ public class ShangChuangImgActivity extends BaseAppCompatActivity {
}
@Override
- public void onFailure(String s, String s1) {
- Log.e("上报安联失败(卸货):", s + s1);
+ public void onFailure(String var1, String var2) {
+ Log.e("上报安联失败(卸货):", var1 + var2);
if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
customDialog.dismiss();
}
- new MessageUtils().showCenMessage(con, s1);
+ new MessageUtils().showCenMessage(con, var2);
}
});
+// MDPLocationCollectionManager.unload(con, sob.getData().getShippingNoteNumber(), l, new com.alct.mdp.callback.OnResultListener() {
+// @Override
+// public void onSuccess() {
+// Log.e("上报安联", "卸货上传成功");
+// //交通厅
+// if (sob.getData().getReport() == 1) {
+// JTTProcess.stop(con, sob, "");
+// }
+// //卸货状态-平台
+// hyr.dischargeCargo(lub);
+// //卸货照片-安联
+// up_image();
+// }
+//
+// @Override
+// public void onFailure(String s, String s1) {
+// Log.e("上报安联失败(卸货):", s + s1);
+// if (!isFinishing() && customDialog != null && customDialog.isShowing()) {
+// customDialog.dismiss();
+// }
+// new MessageUtils().showCenMessage(con, s1);
+// }
+// });
}
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
index 1ebd42d..e35b971 100644
--- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/login/LoginActivity.java
+++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/login/LoginActivity.java
@@ -32,6 +32,7 @@ import com.arpa.hndahesudintocctmsdriver.request.net.BaseObserver;
import com.arpa.hndahesudintocctmsdriver.request.net.DataManager;
import com.arpa.hndahesudintocctmsdriver.request.net.RxHttpCallBack;
import com.arpa.hndahesudintocctmsdriver.ui.web.WebOnlyOneActivity;
+import com.arpa.hndahesudintocctmsdriver.util.NewLJUtils;
import com.arpa.hndahesudintocctmsdriver.util.alert.CustomDialog;
import com.arpa.hndahesudintocctmsdriver.weight.OnLimitClickHelper;
import com.dahe.mylibrary.net.CommonResponseBean;
@@ -108,6 +109,8 @@ public class LoginActivity extends BaseActivity {
Log.e("--登录信息--", new Gson().toJson(loginBean));
AppInfoBean appInfoBean = new AppInfoBean();
if (loginBean.getCode() == 200) {
+ //获取新路交token
+ NewLJUtils.getInstance().getToken(con);
SPUtil.insSP(con, USER, USER_TOKEN, loginBean.getData().getToken());
SPUtil.insSP(con, USER, USER_UNAME, loginBean.getData().getUname());
SPUtil.insSP(con, USER, USER_RNAME, loginBean.getData().getRname());
diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/NewLJUtils.java b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/NewLJUtils.java
new file mode 100644
index 0000000..a18b076
--- /dev/null
+++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/util/NewLJUtils.java
@@ -0,0 +1,764 @@
+package com.arpa.hndahesudintocctmsdriver.util;
+
+import static com.dahe.mylibrary.utils.BaseSPUtils.NEW_LJ_TOKEN;
+
+import android.content.Context;
+import android.os.Handler;
+import android.text.TextUtils;
+import android.util.Log;
+import android.widget.Toast;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import com.arpa.hndahesudintocctmsdriver.App;
+import com.arpa.hndahesudintocctmsdriver.BuildConfig;
+import com.arpa.hndahesudintocctmsdriver.bean.DriverAuthDataBean;
+import com.arpa.hndahesudintocctmsdriver.bean.GDImage;
+import com.arpa.hndahesudintocctmsdriver.bean.GDLocation;
+import com.arpa.hndahesudintocctmsdriver.bean.IsAuthCardBean;
+import com.arpa.hndahesudintocctmsdriver.constant.NewLJConstant;
+import com.arpa.hndahesudintocctmsdriver.parts.AuthParts;
+import com.arpa.hndahesudintocctmsdriver.request.AuthRequest;
+import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.InvoiceBean;
+import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.InvoicesBean;
+import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.LjTokenBean;
+import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.PickupBean;
+import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.ShipmentStatusBean;
+import com.arpa.hndahesudintocctmsdriver.request.bean.newlj.UpimgBean;
+import com.arpa.hndahesudintocctmsdriver.request.net.BaseObserver;
+import com.arpa.hndahesudintocctmsdriver.request.net.DataManager;
+import com.arpa.hndahesudintocctmsdriver.request.net.RxHttpCallBack;
+import com.arpa.hndahesudintocctmsdriver.ui.auth.CertificatesActivity;
+import com.arpa.hndahesudintocctmsdriver.util.cache.CacheGroup;
+import com.arpa.hndahesudintocctmsdriver.util.http.RequestUtil;
+import com.arpa.hndahesudintocctmsdriver.util.http.RequsetCodeConstants;
+import com.dahe.mylibrary.bean.DriverBean;
+import com.dahe.mylibrary.callback.OnGDDownloadResultListener;
+import com.dahe.mylibrary.callback.OnGDResultListener;
+import com.dahe.mylibrary.net.CommonResponseBean;
+import com.dahe.mylibrary.utils.ToastUtils;
+import com.express.mdp.Api;
+import com.express.mdp.Callback;
+import com.google.gson.Gson;
+
+
+import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
+import io.reactivex.rxjava3.schedulers.Schedulers;
+
+/**
+ * @ClassName NewLJUtils
+ * @Author john
+ * @Date 2024/11/25 09:53
+ * @Description TODO
+ */
+public class NewLJUtils {
+
+
+ private static class SingletonHolder {
+ private static final NewLJUtils INSTANCE = new NewLJUtils();
+ }
+
+ private NewLJUtils() {
+ }
+
+ public static final NewLJUtils getInstance() {
+ return SingletonHolder.INSTANCE;
+ }
+
+ public void getToken(Context ctx) {
+ LjTokenBean ljTokenBean = new LjTokenBean();
+ ljTokenBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
+ ljTokenBean.setEnterpriseIdentity(NewLJConstant.ENTER_PRISE_IDENTITY);
+ ljTokenBean.setEnterpriseKey(NewLJConstant.ENTER_PRISE_KEY);
+
+ DataManager.getInstance().getToken(ljTokenBean)
+ .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new BaseObserver(ctx, new RxHttpCallBack() {
+ @Override
+ public void onSuccess(CommonResponseBean t) {
+ super.onSuccess(t);
+ SPUtils.put(ctx, NEW_LJ_TOKEN, t.getToken());
+ }
+ }));
+ }
+
+
+ /**
+ * 刷新token
+ *
+ * @param ctx
+ */
+ public void refreshToken(Context ctx) {
+ String token = SPUtils.get(ctx, NEW_LJ_TOKEN, "").toString();
+ DataManager.getInstance().refreshToken(token)
+ .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new BaseObserver(ctx, new RxHttpCallBack() {
+ @Override
+ public void onSuccess(CommonResponseBean t) {
+ super.onSuccess(t);
+ SPUtils.put(ctx, NEW_LJ_TOKEN, t.getToken());
+ }
+ }));
+ }
+
+ public void getToken(Context ctx, OnGDResultListener listener) {
+ LjTokenBean ljTokenBean = new LjTokenBean();
+ ljTokenBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
+ ljTokenBean.setEnterpriseIdentity(NewLJConstant.ENTER_PRISE_IDENTITY);
+ ljTokenBean.setEnterpriseKey(NewLJConstant.ENTER_PRISE_KEY);
+
+ DataManager.getInstance().getToken(ljTokenBean)
+ .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new BaseObserver(ctx, new RxHttpCallBack() {
+ @Override
+ public void onSuccess(CommonResponseBean t) {
+ super.onSuccess(t);
+ SPUtils.put(ctx, NEW_LJ_TOKEN, t.getToken());
+ if (listener != null)
+ listener.onSuccess();
+ }
+ }));
+ }
+
+
+ /**
+ * 运单提货
+ *
+ * @param ctx
+ * @param shipmentCode
+ * @param location
+ */
+ public void pickUp(Context ctx, String shipmentCode, GDLocation location, OnGDResultListener listener) {
+ if (TextUtils.isEmpty(shipmentCode)) {
+ ToastUtils.showToast(ctx, "运单号不能为空");
+ return;
+ }
+
+ if (Double.isNaN(location.getBaiduLatitude()) || Double.isNaN(location.getBaiduLongitude())) {
+ ToastUtils.showToast(ctx, "经纬度不能为空");
+ return;
+ }
+ PickupBean pickupBean = new PickupBean();
+ pickupBean.setShipmentCode(shipmentCode);
+ pickupBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
+ pickupBean.setLocation(location);
+ DataManager.getInstance().pickup(pickupBean)
+ .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new BaseObserver(ctx, new RxHttpCallBack() {
+ @Override
+ public void onSuccess(CommonResponseBean t) {
+ super.onSuccess(t);
+ if (listener != null) {
+ listener.onSuccess();
+ }
+ }
+
+ @Override
+ public void onCodeError(Context mContext, CommonResponseBean t) {
+ super.onCodeError(mContext, t);
+ if (listener != null) {
+ listener.onFailure(t.getCode() + "", TextUtils.isEmpty(t.getMessage()) ? "运单提货操作异常" : t.getMessage());
+ }
+ }
+ }));
+ }
+
+
+ /**
+ * 运单卸货
+ *
+ * @param ctx
+ * @param shipmentCode
+ * @param location
+ */
+ public void unload(Context ctx, String shipmentCode, GDLocation location, OnGDResultListener listener) {
+ if (TextUtils.isEmpty(shipmentCode)) {
+ ToastUtils.showToast(ctx, "运单号不能为空");
+ return;
+ }
+
+ if (Double.isNaN(location.getBaiduLatitude()) || Double.isNaN(location.getBaiduLongitude())) {
+ ToastUtils.showToast(ctx, "经纬度不能为空");
+ return;
+ }
+
+ PickupBean pickupBean = new PickupBean();
+ pickupBean.setShipmentCode(shipmentCode);
+ pickupBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
+ pickupBean.setLocation(location);
+ DataManager.getInstance().unload(pickupBean)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new BaseObserver(ctx, new RxHttpCallBack() {
+ @Override
+ public void onSuccess(CommonResponseBean t) {
+ super.onSuccess(t);
+ if (listener != null) {
+ listener.onSuccess();
+ }
+ }
+
+ @Override
+ public void onCodeError(Context mContext, CommonResponseBean t) {
+ super.onCodeError(mContext, t);
+ if (listener != null) {
+ listener.onFailure(t.getCode() + "", TextUtils.isEmpty(t.getMessage()) ? "运单卸货操作异常" : t.getMessage());
+ }
+ }
+ }));
+ }
+
+
+ /**
+ * 运单签收
+ *
+ * @param ctx
+ * @param shipmentCode
+ * @param location
+ */
+ public void sign(Context ctx, String shipmentCode, GDLocation location, OnGDResultListener listener) {
+ if (TextUtils.isEmpty(shipmentCode)) {
+ ToastUtils.showToast(ctx, "运单号不能为空");
+ return;
+ }
+
+ if (Double.isNaN(location.getBaiduLatitude()) || Double.isNaN(location.getBaiduLongitude())) {
+ ToastUtils.showToast(ctx, "经纬度不能为空");
+ return;
+ }
+
+ PickupBean pickupBean = new PickupBean();
+ pickupBean.setShipmentCode(shipmentCode);
+ pickupBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
+ pickupBean.setLocation(location);
+ DataManager.getInstance().sign(pickupBean)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new BaseObserver(ctx, new RxHttpCallBack() {
+ @Override
+ public void onSuccess(CommonResponseBean t) {
+ super.onSuccess(t);
+ if (listener != null) {
+ listener.onSuccess();
+ }
+ }
+
+ @Override
+ public void onCodeError(Context mContext, CommonResponseBean t) {
+ super.onCodeError(mContext, t);
+ if (listener != null) {
+ listener.onFailure(t.getCode() + "", TextUtils.isEmpty(t.getMessage()) ? "运单签收操作异常" : t.getMessage());
+ }
+ }
+ }));
+ }
+
+
+ /**
+ * 运单回单
+ *
+ * @param ctx
+ * @param shipmentCode
+ * @param location
+ */
+ public void pod(Context ctx, String shipmentCode, GDLocation location, OnGDResultListener listener) {
+ if (TextUtils.isEmpty(shipmentCode)) {
+ ToastUtils.showToast(ctx, "运单号不能为空");
+ return;
+ }
+
+ if (Double.isNaN(location.getBaiduLatitude()) || Double.isNaN(location.getBaiduLongitude())) {
+ ToastUtils.showToast(ctx, "经纬度不能为空");
+ return;
+ }
+
+ PickupBean pickupBean = new PickupBean();
+ pickupBean.setShipmentCode(shipmentCode);
+ pickupBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
+ pickupBean.setLocation(location);
+ DataManager.getInstance().pod(pickupBean)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new BaseObserver(ctx, new RxHttpCallBack() {
+ @Override
+ public void onSuccess(CommonResponseBean t) {
+ super.onSuccess(t);
+ if (listener != null) {
+ listener.onSuccess();
+ }
+ }
+
+ @Override
+ public void onCodeError(Context mContext, CommonResponseBean t) {
+ super.onCodeError(mContext, t);
+ if (listener != null) {
+ listener.onFailure(t.getCode() + "", TextUtils.isEmpty(t.getMessage()) ? "运单回单操作异常" : t.getMessage());
+ }
+ }
+ }));
+ }
+
+
+ /**
+ * 运单提货照片上传
+ *
+ * @param ctx
+ * @param shipmentCode
+ * @param imageDTO
+ */
+ public void uploadPickupImage(Context ctx, String shipmentCode, GDImage imageDTO, OnGDResultListener listener) {
+ if (TextUtils.isEmpty(shipmentCode)) {
+ ToastUtils.showToast(ctx, "运单号不能为空");
+ return;
+ }
+
+ if (TextUtils.isEmpty(imageDTO.getFileName())) {
+ ToastUtils.showToast(ctx, "照片不能为空");
+ return;
+ }
+
+ UpimgBean pickupBean = new UpimgBean();
+ pickupBean.setShipmentCode(shipmentCode);
+ pickupBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
+ pickupBean.setImage(imageDTO);
+ DataManager.getInstance().uploadPickupImage(pickupBean)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new BaseObserver(ctx, new RxHttpCallBack() {
+ @Override
+ public void onSuccess(CommonResponseBean t) {
+ super.onSuccess(t);
+ if (listener != null) {
+ listener.onSuccess();
+ }
+ }
+
+ @Override
+ public void onCodeError(Context mContext, CommonResponseBean t) {
+ super.onCodeError(mContext, t);
+ if (listener != null) {
+ listener.onFailure(t.getCode() + "", TextUtils.isEmpty(t.getMessage()) ? "运单提货照片操作异常" : t.getMessage());
+ }
+ }
+ }));
+ }
+
+
+ /**
+ * 运单卸货照片上传
+ *
+ * @param ctx
+ * @param shipmentCode
+ * @param imageDTO
+ */
+ public void uploadUnloadImage(Context ctx, String shipmentCode, GDImage imageDTO, OnGDResultListener listener) {
+ if (TextUtils.isEmpty(shipmentCode)) {
+ ToastUtils.showToast(ctx, "运单号不能为空");
+ return;
+ }
+
+ if (TextUtils.isEmpty(imageDTO.getFileName())) {
+ ToastUtils.showToast(ctx, "照片不能为空");
+ return;
+ }
+
+ UpimgBean pickupBean = new UpimgBean();
+ pickupBean.setShipmentCode(shipmentCode);
+ pickupBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
+ pickupBean.setImage(imageDTO);
+ DataManager.getInstance().uploadUnloadImage(pickupBean)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new BaseObserver(ctx, new RxHttpCallBack() {
+ @Override
+ public void onSuccess(CommonResponseBean t) {
+ super.onSuccess(t);
+ if (listener != null) {
+ listener.onSuccess();
+ }
+ }
+
+ @Override
+ public void onCodeError(Context mContext, CommonResponseBean t) {
+ super.onCodeError(mContext, t);
+ if (listener != null) {
+ listener.onFailure(t.getCode() + "", TextUtils.isEmpty(t.getMessage()) ? "运单卸货照片操作异常" : t.getMessage());
+ }
+ }
+ }));
+ }
+
+
+ /**
+ * 运单回单照片上传
+ *
+ * @param ctx
+ * @param shipmentCode
+ * @param imageDTO
+ */
+ public void uploadPODImage(Context ctx, String shipmentCode, GDImage imageDTO, OnGDResultListener listener) {
+ if (TextUtils.isEmpty(shipmentCode)) {
+ ToastUtils.showToast(ctx, "运单号不能为空");
+ return;
+ }
+
+ if (TextUtils.isEmpty(imageDTO.getFileName())) {
+ ToastUtils.showToast(ctx, "照片不能为空");
+ return;
+ }
+
+ UpimgBean pickupBean = new UpimgBean();
+ pickupBean.setShipmentCode(shipmentCode);
+ pickupBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
+ pickupBean.setImage(imageDTO);
+ DataManager.getInstance().uploadPODImage(pickupBean)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new BaseObserver(ctx, new RxHttpCallBack() {
+ @Override
+ public void onSuccess(CommonResponseBean t) {
+ super.onSuccess(t);
+ if (listener != null) {
+ listener.onSuccess();
+ }
+ }
+
+ @Override
+ public void onCodeError(Context mContext, CommonResponseBean t) {
+ super.onCodeError(mContext, t);
+ if (listener != null) {
+ listener.onFailure(t.getCode() + "", TextUtils.isEmpty(t.getMessage()) ? "运单回单照片操作异常" : t.getMessage());
+ }
+ }
+ }));
+ }
+
+
+ /**
+ * 获取发票列表
+ *
+ * @param ctx
+ * @param listener
+ */
+ public void getInvoices(Context ctx, OnGDResultListener listener) {
+ DriverAuthDataBean auth = AuthParts.getAuth(ctx);
+ if (auth == null) {
+ return;
+ }
+
+ DataManager.getInstance().getInvoices(NewLJConstant.ENTER_PRISE_CODE, auth.getData().getIdcard(), 1, 100)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new BaseObserver(ctx, new RxHttpCallBack>() {
+ @Override
+ public void onSuccess(CommonResponseBean> t) {
+ super.onSuccess(t);
+ if (t.getData().getData().getDriverInvoices().size() > 0) {
+ confirmInvoice(ctx, new OnGDResultListener() {
+ @Override
+ public void onSuccess() {
+
+ }
+
+ @Override
+ public void onFailure(String var1, String var2) {
+ Log.e("NewLJUtils", var1 + var2);
+ }
+ });
+ }
+
+ }
+
+ @Override
+ public void onCodeError(Context mContext, CommonResponseBean> t) {
+ super.onCodeError(mContext, t);
+// Log.e("NewLJUtils", t.getMsg().toString());
+ }
+ }));
+ }
+
+
+ /**
+ * 同意发票申请
+ *
+ * @param ctx
+ */
+ public void confirmInvoice(Context ctx, OnGDResultListener listener) {
+ DriverAuthDataBean auth = AuthParts.getAuth(ctx);
+ if (auth == null) {
+ return;
+ }
+ searchDriver(ctx, auth.getData().getIdcard(), new OnGDDownloadResultListener() {
+ @Override
+ public void onSuccess(String var1) {
+ InvoiceBean invoiceBean = new InvoiceBean();
+ invoiceBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
+ invoiceBean.setDriverInvoiceCode(var1);
+ invoiceBean.setDriverIdentification(auth.getData().getIdcard());
+ DataManager.getInstance().confirmInvoice(invoiceBean)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new BaseObserver(ctx, new RxHttpCallBack() {
+ @Override
+ public void onSuccess(CommonResponseBean t) {
+ super.onSuccess(t);
+ if (listener != null) {
+ listener.onSuccess();
+ }
+ }
+
+ @Override
+ public void onCodeError(Context mContext, CommonResponseBean t) {
+ super.onCodeError(mContext, t);
+ if (listener != null) {
+ listener.onFailure(t.getCode() + "", TextUtils.isEmpty(t.getMessage()) ? "同意发票异常" : t.getMessage());
+ }
+ }
+ }));
+ }
+
+ @Override
+ public void onFailure(String var1, String var2) {
+
+ }
+ });
+
+
+ //查询身份证信息
+// new AuthRequest().getCard(ctx, new Handler(msg -> {
+// switch (msg.what) {
+// case RequsetCodeConstants.ERROR:
+// Toast.makeText(ctx, RequsetCodeConstants.FEEDBACK_TEXT, Toast.LENGTH_SHORT).show();
+// break;
+// case RequsetCodeConstants.UNKONWN:
+// Toast.makeText(ctx, RequsetCodeConstants.UNKONWN_TEXT, Toast.LENGTH_SHORT).show();
+// break;
+// case RequsetCodeConstants.SERVER_ERROR:
+// Toast.makeText(ctx, RequsetCodeConstants.SERVER_ERROR_TEXT, Toast.LENGTH_SHORT).show();
+// break;
+// case RequsetCodeConstants.GATEWAY_ERROR:
+// Toast.makeText(ctx, RequsetCodeConstants.GATEWAY_ERROR_TEXT, Toast.LENGTH_SHORT).show();
+// break;
+// case RequsetCodeConstants.SUCCESS:
+// IsAuthCardBean iacb = new Gson().fromJson(CacheGroup.cacheList.get(CertificatesActivity.ISAUTH), IsAuthCardBean.class);
+// if (iacb != null || iacb.getData() != null || !TextUtils.isEmpty(iacb.getData().getIdcard())) {
+// //根据身份证号查询路交司机信息
+// searchDriver(ctx, iacb.getData().getIdcard(), new OnGDDownloadResultListener() {
+// @Override
+// public void onSuccess(String var1) {
+// InvoiceBean invoiceBean = new InvoiceBean();
+// invoiceBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
+// invoiceBean.setDriverInvoiceCode(var1);
+// invoiceBean.setDriverIdentification(iacb.getData().getIdcard());
+// DataManager.getInstance().confirmInvoice(invoiceBean)
+// .subscribeOn(Schedulers.io())
+// .observeOn(AndroidSchedulers.mainThread())
+// .subscribe(new BaseObserver(ctx, new RxHttpCallBack() {
+// @Override
+// public void onSuccess(CommonResponseBean t) {
+// super.onSuccess(t);
+// if (listener != null) {
+// listener.onSuccess();
+// }
+// }
+//
+// @Override
+// public void onCodeError(Context mContext, CommonResponseBean t) {
+// super.onCodeError(mContext, t);
+// if (listener != null) {
+// listener.onFailure(t.getCode() + "", t.getMessage());
+// }
+// }
+// }));
+// }
+//
+// @Override
+// public void onFailure(String var1, String var2) {
+//
+// }
+// });
+// } else {
+// Toast.makeText(ctx, "缺少身份证信息", Toast.LENGTH_SHORT).show();
+// }
+// break;
+// }
+// return false;
+// }));
+
+
+ }
+
+
+ /**
+ * 运单状态查询
+ *
+ * @param ctx
+ * @param shipmentCode
+ */
+ public void getShipmentStatus(Context ctx, String shipmentCode, OnGDDownloadResultListener listener) {
+ ShipmentStatusBean shipmentStatusBean = new ShipmentStatusBean();
+ shipmentStatusBean.setShipmentCode(shipmentCode);
+ shipmentStatusBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
+ DataManager.getInstance().getShipmentStatus(shipmentStatusBean)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new BaseObserver(ctx, new RxHttpCallBack() {
+ @Override
+ public void onSuccess(CommonResponseBean t) {
+ super.onSuccess(t);
+ if (listener != null) {
+ listener.onSuccess(t.getStatusCode());
+ }
+ }
+
+ @Override
+ public void onCodeError(Context mContext, CommonResponseBean t) {
+ super.onCodeError(mContext, t);
+ if (listener != null) {
+ listener.onFailure(t.getCode() + "", TextUtils.isEmpty(t.getMessage()) ? "运单状态查询异常" : t.getMessage());
+ }
+ }
+ }));
+ }
+
+ public void getPODImageNames(Context ctx, String shipmentCode) {
+ ShipmentStatusBean shipmentStatusBean = new ShipmentStatusBean();
+ shipmentStatusBean.setShipmentCode(shipmentCode);
+ shipmentStatusBean.setEnterpriseCode(NewLJConstant.ENTER_PRISE_CODE);
+ DataManager.getInstance().getPODImageNames(shipmentStatusBean)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new BaseObserver(ctx, new RxHttpCallBack() {
+ @Override
+ public void onSuccess(CommonResponseBean t) {
+ super.onSuccess(t);
+ System.out.println("sadf");
+ }
+
+ @Override
+ public void onCodeError(Context mContext, CommonResponseBean t) {
+ super.onCodeError(mContext, t);
+ System.out.println("sadf");
+ }
+ }));
+ }
+
+ /**
+ * 开启位置上传
+ *
+ * @param act
+ */
+ public void startLocationService(AppCompatActivity act) {
+ DriverAuthDataBean auth = AuthParts.getAuth(act);
+ if (auth == null) {
+ return;
+ }
+ searchDriver(act, auth.getData().getIdcard(), new OnGDDownloadResultListener() {
+ @Override
+ public void onSuccess(String var1) {
+ try {
+ //开启定位服务
+ if (BuildConfig.isTest) {
+ Api.setBaseUrl("https://kehui56.cn/api", "https://api.kehui56.cn/api");
+ }
+ String result = Api.startLocationService(act, var1, s -> {
+ Log.e("位置上报", s);
+ });
+ System.out.println(result);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ @Override
+ public void onFailure(String var1, String var2) {
+
+ }
+ });
+
+
+ //查询身份证信息
+// new AuthRequest().getCard(act, new Handler(msg -> {
+// switch (msg.what) {
+// case RequsetCodeConstants.ERROR:
+// Toast.makeText(act, RequsetCodeConstants.FEEDBACK_TEXT, Toast.LENGTH_SHORT).show();
+// break;
+// case RequsetCodeConstants.UNKONWN:
+// Toast.makeText(act, RequsetCodeConstants.UNKONWN_TEXT, Toast.LENGTH_SHORT).show();
+// break;
+// case RequsetCodeConstants.SERVER_ERROR:
+// Toast.makeText(act, RequsetCodeConstants.SERVER_ERROR_TEXT, Toast.LENGTH_SHORT).show();
+// break;
+// case RequsetCodeConstants.GATEWAY_ERROR:
+// Toast.makeText(act, RequsetCodeConstants.GATEWAY_ERROR_TEXT, Toast.LENGTH_SHORT).show();
+// break;
+// case RequsetCodeConstants.SUCCESS:
+// IsAuthCardBean iacb = new Gson().fromJson(CacheGroup.cacheList.get(CertificatesActivity.ISAUTH), IsAuthCardBean.class);
+// if (iacb != null || iacb.getData() != null || !TextUtils.isEmpty(iacb.getData().getIdcard())) {
+// //根据身份证号查询路交司机信息
+// searchDriver(act,iacb.getData().getIdcard(), new OnGDDownloadResultListener() {
+// @Override
+// public void onSuccess(String var1) {
+// try {
+// //开启定位服务
+// Api.setBaseUrl("https://kehui56.cn/api", "https://api.kehui56.cn/api");
+// String result = Api.startLocationService(act, var1, s -> {
+// Log.e("位置上报", s);
+// });
+// } catch (Exception e) {
+// throw new RuntimeException(e);
+// }
+// }
+//
+// @Override
+// public void onFailure(String var1, String var2) {
+//
+// }
+// });
+// } else {
+// Toast.makeText(act, "缺少身份证信息", Toast.LENGTH_SHORT).show();
+// }
+// break;
+// }
+// return false;
+// }));
+
+
+ }
+
+ /**
+ * 关闭定位服务
+ */
+ public void stopLocationService() {
+ Api.stopLocationService();
+ }
+
+
+ /**
+ * 查询司机
+ */
+ public void searchDriver(Context ctx, String idCard, OnGDDownloadResultListener listener) {
+ DataManager.getInstance().searchDriver(idCard)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new BaseObserver(ctx, new RxHttpCallBack() {
+ @Override
+ public void onSuccess(CommonResponseBean t) {
+ super.onSuccess(t);
+ DriverBean driver = t.getDriver();
+ if (driver != null && !TextUtils.isEmpty(driver.getDriverCode())) {
+ if (listener != null)
+ listener.onSuccess(driver.getDriverCode());
+ }
+ }
+
+ @Override
+ public void onCodeError(Context mContext, CommonResponseBean t) {
+ super.onCodeError(mContext, t);
+ if (listener != null)
+ listener.onFailure(t.getCode(), TextUtils.isEmpty(t.getMessage()) ? "运单操作异常" : t.getMessage());
+ }
+ }));
+ }
+
+}
diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/bean/DriverBean.java b/mylibrary/src/main/java/com/dahe/mylibrary/bean/DriverBean.java
new file mode 100644
index 0000000..ce59221
--- /dev/null
+++ b/mylibrary/src/main/java/com/dahe/mylibrary/bean/DriverBean.java
@@ -0,0 +1,49 @@
+package com.dahe.mylibrary.bean;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName DriverBean
+ * @Author john
+ * @Date 2024/11/28 12:24
+ * @Description TODO
+ */
+public class DriverBean implements Serializable {
+
+ private String driverCode;
+ private String isTaxRegistered;
+ private String taxRegisterStatus;
+ private String taxRegisterStatusDescription;
+
+ public String getDriverCode() {
+ return driverCode;
+ }
+
+ public void setDriverCode(String driverCode) {
+ this.driverCode = driverCode;
+ }
+
+ public String getIsTaxRegistered() {
+ return isTaxRegistered;
+ }
+
+ public void setIsTaxRegistered(String isTaxRegistered) {
+ this.isTaxRegistered = isTaxRegistered;
+ }
+
+ public String getTaxRegisterStatus() {
+ return taxRegisterStatus;
+ }
+
+ public void setTaxRegisterStatus(String taxRegisterStatus) {
+ this.taxRegisterStatus = taxRegisterStatus;
+ }
+
+ public String getTaxRegisterStatusDescription() {
+ return taxRegisterStatusDescription;
+ }
+
+ public void setTaxRegisterStatusDescription(String taxRegisterStatusDescription) {
+ this.taxRegisterStatusDescription = taxRegisterStatusDescription;
+ }
+}
diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/callback/OnGDDownloadResultListener.java b/mylibrary/src/main/java/com/dahe/mylibrary/callback/OnGDDownloadResultListener.java
new file mode 100644
index 0000000..2b5ba43
--- /dev/null
+++ b/mylibrary/src/main/java/com/dahe/mylibrary/callback/OnGDDownloadResultListener.java
@@ -0,0 +1,13 @@
+package com.dahe.mylibrary.callback;
+
+/**
+ * @ClassName OnGDDownloadResultListener
+ * @Author john
+ * @Date 2024/11/25 18:22
+ * @Description TODO
+ */
+public interface OnGDDownloadResultListener {
+ void onSuccess(String var1);
+
+ void onFailure(String var1, String var2);
+}
diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/callback/OnGDResultListener.java b/mylibrary/src/main/java/com/dahe/mylibrary/callback/OnGDResultListener.java
new file mode 100644
index 0000000..f27b7aa
--- /dev/null
+++ b/mylibrary/src/main/java/com/dahe/mylibrary/callback/OnGDResultListener.java
@@ -0,0 +1,14 @@
+package com.dahe.mylibrary.callback;
+
+/**
+ * @ClassName OnGDResultListener
+ * @Author john
+ * @Date 2024/11/25 17:48
+ * @Description TODO
+ */
+public interface OnGDResultListener {
+
+ void onSuccess();
+
+ void onFailure(String var1, String var2);
+}
diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/net/CommonResponseBean.java b/mylibrary/src/main/java/com/dahe/mylibrary/net/CommonResponseBean.java
index d6ac17a..eea6610 100644
--- a/mylibrary/src/main/java/com/dahe/mylibrary/net/CommonResponseBean.java
+++ b/mylibrary/src/main/java/com/dahe/mylibrary/net/CommonResponseBean.java
@@ -1,5 +1,7 @@
package com.dahe.mylibrary.net;
+import com.dahe.mylibrary.bean.DriverBean;
+
import java.io.Serializable;
/**
@@ -8,13 +10,59 @@ import java.io.Serializable;
public class CommonResponseBean implements Serializable {
private T data;
- private int code;
+ private String code;
private String info;
private String msg;
+ private String message;
private String url;
private String fileName;
+ private String token;
+ private String expiryIn;
+ private String statusCode;
private boolean success;
+ private DriverBean driver;
+
+ public DriverBean getDriver() {
+ return driver;
+ }
+
+ public void setDriver(DriverBean driver) {
+ this.driver = driver;
+ }
+
+ public String getStatusCode() {
+ return statusCode;
+ }
+
+ public void setStatusCode(String statusCode) {
+ this.statusCode = statusCode;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public String getToken() {
+ return token;
+ }
+
+ public void setToken(String token) {
+ this.token = token;
+ }
+
+ public String getExpiryIn() {
+ return expiryIn;
+ }
+
+ public void setExpiryIn(String expiryIn) {
+ this.expiryIn = expiryIn;
+ }
+
public T getData() {
return data;
}
@@ -23,11 +71,11 @@ public class CommonResponseBean implements Serializable {
this.data = data;
}
- public int getCode() {
+ public String getCode() {
return code;
}
- public void setCode(int code) {
+ public void setCode(String code) {
this.code = code;
}
diff --git a/mylibrary/src/main/java/com/dahe/mylibrary/utils/BaseSPUtils.java b/mylibrary/src/main/java/com/dahe/mylibrary/utils/BaseSPUtils.java
index 9450e59..c252a86 100644
--- a/mylibrary/src/main/java/com/dahe/mylibrary/utils/BaseSPUtils.java
+++ b/mylibrary/src/main/java/com/dahe/mylibrary/utils/BaseSPUtils.java
@@ -20,6 +20,7 @@ public class BaseSPUtils {
public static final String USER_INFO_KEY = "user_info_key";
public static final String NET_SERVICE_TEST = "net_service_test";
public static final String SEARRH_CACHE = "search_cache";
+ public static final String NEW_LJ_TOKEN = "NEW_LJ_TOKEN";
public static final String NAVI_PH_EDIT_CACHE = "navi_ph_edit_cache";
public static final String FIRST_OPEN = "first_open";
public static final String KEY_PRIVACY_AGREEMENT = "privacy_agreement";