Browse Source

fix: ci

master
高志龙 7 months ago
parent
commit
b0e8ce7104
  1. 2
      app/build.gradle
  2. 174
      app/src/main/java/qianmu/container/activity/H5/H5Data.java
  3. 13
      app/src/main/java/qianmu/container/activity/H5/UpdateFileActivity.java
  4. 7
      app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java
  5. 1
      app/src/main/java/qianmu/container/activity/program/ViewScreenSaver.java
  6. 88
      app/src/main/java/qianmu/container/data/DeviceData.java
  7. 2
      app/src/main/java/qianmu/container/data/PowerData.java

2
app/build.gradle

@ -12,7 +12,7 @@ android {
minSdkVersion 22
targetSdkVersion 30
versionCode 6
versionName "V2.0.8.1"
versionName "V2.0.8.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles 'consumer-rules.pro'

174
app/src/main/java/qianmu/container/activity/H5/H5Data.java

@ -11,8 +11,10 @@ import com.google.gson.reflect.TypeToken;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.http.RequestParams;
import cz.msebera.android.httpclient.protocol.HTTP;
import com.lzy.okgo.OkGo;
import com.lzy.okgo.callback.FileCallback;
import com.lzy.okgo.callback.StringCallback;
import org.greenrobot.eventbus.EventBus;
@ -301,16 +303,8 @@ public class H5Data extends BaseData {
}
//GET方式获取离线数据
public static void queryOfflineDataByInterfaceToGet(String url, String jsonData, String fileName, Map<String, String> bigFiles , QueryPreparedListener preparedListener, QueryFinishListener finishListener) {
public static void queryOfflineDataByInterfaceToGet(Context context, String url, String jsonData, String fileName, Map<String, String> bigFiles , QueryPreparedListener preparedListener, QueryFinishListener finishListener) {
if (preparedListener != null) preparedListener.onPrepared();
AsyncHttpClient client;
if(url.contains("https")){
client = new AsyncHttpClient(true, 80, 443);
}else {
client = new AsyncHttpClient();
}
client.setTimeout(30000);
client.setMaxRetriesAndTimeout(0, 20000);
if(url.contains("?")){
url = url +"&projectCode="+FloorData.getMallCode();
}else {
@ -321,94 +315,25 @@ public class H5Data extends BaseData {
url = url +"&"+"code="+deviceCode;
}
String finalUrl = url;
client.get(url, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
try {
String response = new String(responseBody).replace("\\\\", "/");
// Log.d("url", finalUrl);
// Log.d("response", response);
//获取数据成功时 才解析解析素材url并更新离线文件
Resp resp = new Gson().fromJson(response, new TypeToken<Resp>() {}.getType());
if (resp.getCode() == 200) {
String filePath = StringUtil.strSplice(Constant.CACHE_PATH, "dist/static/offline/JSON/", fileName, ".json");
String decryptDataJson =AesUtil.decrypt((String.valueOf(resp.getData())));
if(decryptDataJson.equals("解密失败")|| decryptDataJson.isEmpty()){
FileUtil.writeDataToFile(response, filePath, false);
if(fileName.equals("getDevCoordinateByIP")){
LoggerUtil.e("getDevCoordinateByIP()",response);
//保存科大讯飞地址
saveKDXFData(response);
}
}else {
try {
JSONObject entries = JSONUtil.parseObj(decryptDataJson);
resp.setData(entries);
}catch (Exception e){
JSONArray entries = JSONUtil.parseArray(decryptDataJson);
resp.setData(entries);
}
String s = GsonUtil.getGson().toJson(resp);
FileUtil.writeDataToFile(s, filePath, false);
if(fileName.equals("getDevCoordinateByIP")){
LoggerUtil.e("getDevCoordinateByIP()",response);
//保存科大讯飞地址
saveKDXFData(s);
}
}
}else {
LoggerUtil.e("导视接口报错:"+finalUrl, response);
}
} catch (Throwable t) {
LoggerUtil.e("queryOfflineDataByInterface", StringUtil.getThrowableStr(t));
}
if (finishListener != null) finishListener.onFinish();
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
LoggerUtil.e("请求失败:"+finalUrl, StringUtil.getThrowableStr(error));
if (finishListener != null) finishListener.onFinish();
}
});
}
//POST方式获取离线数据 多添加一个JSON请求体(参数必须是JSON格式)
public static void queryOfflineDataByInterface(String url, String jsonData, String fileName, Map<String, String> bigFiles, QueryPreparedListener preparedListener, QueryFinishListener finishListener) {
if (preparedListener != null) preparedListener.onPrepared();
try {
AsyncHttpClient client;
if(url.contains("https")){
client = new AsyncHttpClient(true, 80, 443);
}else {
client = new AsyncHttpClient();
}
client.setTimeout(30000);
client.setMaxRetriesAndTimeout(0, 20000);
StringEntity entity = new StringEntity(jsonData);
client.post(MyApplication.getInstance().getApplicationContext(), url, entity, RequestParams.APPLICATION_JSON, new AsyncHttpResponseHandler() {
OkGo.<String>get(url) // 使用泛型指定响应数据类型为 String
.tag(context) // 设置请求的 tag,用于取消请求
.execute(new StringCallback() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
public void onSuccess(com.lzy.okgo.model.Response<String> response) {
try {
String response = new String(responseBody).replace("\\\\", "/");
// Log.d("url", url);
// Log.d("response", response);
//获取数据成功时 才解析解析素材url并更新离线文件
Resp resp = new Gson().fromJson(response, new TypeToken<Resp>() {}.getType());
String responseData = response.body(); // 获取字符串响应
String responseStr = responseData.replace("\\\\", "/");
Resp resp = new Gson().fromJson(responseStr, new TypeToken<Resp>() {}.getType());
if (resp.getCode() == 200) {
//解析离线数据中的大后台图片
// analysisUrlByStr(response, "/Files/", "dist", bigFiles);
//将离线数据保存为json文件格式
String filePath = StringUtil.strSplice(Constant.CACHE_PATH, "dist/static/offline/JSON/", fileName, ".json");
String decryptDataJson =AesUtil.decrypt((String.valueOf(resp.getData())));
String filePath = StringUtil.strSplice(Constant.CACHE_PATH, "dist", "/static/offline/JSON/", fileName, ".json");
if(decryptDataJson.equals("解密失败")|| decryptDataJson.isEmpty()) {
FileUtil.writeDataToFile(response, filePath, false);
if(decryptDataJson.equals("解密失败")|| decryptDataJson.isEmpty()){
FileUtil.writeDataToFile(responseStr, filePath, false);
if(fileName.equals("getDevCoordinateByIP")){
LoggerUtil.e("getDevCoordinateByIP()",responseStr);
//保存科大讯飞地址
saveKDXFData(responseStr);
}
}else {
try {
JSONObject entries = JSONUtil.parseObj(decryptDataJson);
@ -419,23 +344,76 @@ public class H5Data extends BaseData {
}
String s = GsonUtil.getGson().toJson(resp);
FileUtil.writeDataToFile(s, filePath, false);
if(fileName.equals("getDevCoordinateByIP")){
LoggerUtil.e("getDevCoordinateByIP()",responseStr);
//保存科大讯飞地址
saveKDXFData(s);
}
}
}else {
LoggerUtil.e("导视接口报错:"+url, response);
LoggerUtil.e("导视接口报错:"+finalUrl, responseStr);
}
} catch (Throwable t) {
LoggerUtil.e("queryOfflineDataByInterface", StringUtil.getThrowableStr(t));
}
if (finishListener != null) finishListener.onFinish();
}
// 请求失败
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
Log.d("error", StringUtil.getThrowableStr(error));
public void onError(com.lzy.okgo.model.Response<String> response) {
Throwable error = response.getException(); // 获取错误信息
LoggerUtil.e("请求失败:"+finalUrl, error.getMessage());
if (finishListener != null) finishListener.onFinish();
}
});
}
//POST方式获取离线数据 多添加一个JSON请求体(参数必须是JSON格式)
public static void queryOfflineDataByInterface(Context context,String url, String jsonData, String fileName, Map<String, String> bigFiles, QueryPreparedListener preparedListener, QueryFinishListener finishListener) {
if (preparedListener != null) preparedListener.onPrepared();
try {
OkGo.<String>post(url)
.tag(context)
.upJson(jsonData) // 将 JSON 字符串作为请求体发送
.execute(new StringCallback() {
@Override
public void onSuccess(com.lzy.okgo.model.Response<String> response) {
try {
String responseData = response.body().replace("\\\\", "/");
Resp resp = new Gson().fromJson(responseData, new TypeToken<Resp>() {}.getType());
if (resp.getCode() == 200) {
//将离线数据保存为json文件格式
String decryptDataJson =AesUtil.decrypt((String.valueOf(resp.getData())));
String filePath = StringUtil.strSplice(Constant.CACHE_PATH, "dist", "/static/offline/JSON/", fileName, ".json");
if(decryptDataJson.equals("解密失败")|| decryptDataJson.isEmpty()) {
FileUtil.writeDataToFile(responseData, filePath, false);
}else {
try {
JSONObject entries = JSONUtil.parseObj(decryptDataJson);
resp.setData(entries);
}catch (Exception e){
JSONArray entries = JSONUtil.parseArray(decryptDataJson);
resp.setData(entries);
}
String s = GsonUtil.getGson().toJson(resp);
FileUtil.writeDataToFile(s, filePath, false);
}
}else {
LoggerUtil.e("导视接口报错:"+url, responseData);
}
} catch (Throwable t) {
LoggerUtil.e("queryOfflineDataByInterface", StringUtil.getThrowableStr(t));
}
if (finishListener != null) finishListener.onFinish();
}
@Override
public void onError(com.lzy.okgo.model.Response<String> response) {
Log.e("OkGoExample", response.getException().getMessage());
if (finishListener != null) finishListener.onFinish();
}
});
} catch (Throwable t) {
if (finishListener != null) finishListener.onFinish();
LoggerUtil.e("queryOfflineDataByInterface", StringUtil.getThrowableStr(t));

13
app/src/main/java/qianmu/container/activity/H5/UpdateFileActivity.java

@ -305,11 +305,10 @@ public class UpdateFileActivity extends BaseActivity {
currRoute = Constant.ROUTE_UPDATE_FILE;
LoggerUtil.e("UpdateFileActivity","onResume()");
//设备迁移使用
// DeviceData.saveDeviceInfo(DeviceData.HINT_SERVER_IP, "http://192.168.10.215");
// DeviceData.saveDeviceInfo(DeviceData.HINT_REG_KEY, "qNMWiv");
// String deviceCode = DeviceData.getDeviceInfo(DeviceData.HINT_DEVICE_CODE);
// MqttData.getMQTTToken(deviceCode,null,null);
// DeviceData.addDevice(this, null, null);
DeviceData.saveDeviceInfo(DeviceData.HINT_SERVER_IP, "http://192.168.2.1");
String deviceCode = DeviceData.getDeviceInfo(DeviceData.HINT_DEVICE_CODE);
MqttData.getMQTTToken(deviceCode,null,null);
DeviceData.addDevice(this, null, null);
handler.removeMessages(TYPE_DOWNLOAD_H5);
handler.sendEmptyMessageDelayed(TYPE_DOWNLOAD_H5, 30000);
@ -363,9 +362,9 @@ public class UpdateFileActivity extends BaseActivity {
String method = StringUtil.getString(anInterface.getMethod());
String params = StringUtil.getString(anInterface.getParameter());
if (method.toLowerCase().equals("get")) {
H5Data.queryOfflineDataByInterfaceToGet(url, params,fileName, bigFiles, () -> totalQueryCount++, () -> queryResponseCount++);
H5Data.queryOfflineDataByInterfaceToGet(this,url, params,fileName, bigFiles, () -> totalQueryCount++, () -> queryResponseCount++);
} else {
H5Data.queryOfflineDataByInterface(url, params, fileName, bigFiles, () -> totalQueryCount++, () -> queryResponseCount++);
H5Data.queryOfflineDataByInterface(this, url, params, fileName, bigFiles, () -> totalQueryCount++, () -> queryResponseCount++);
}
}
}

7
app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java

@ -442,7 +442,7 @@ public class WebViewActivity extends BaseActivity {
// h5调用android:接口请求post
@JavascriptInterface
public void interfaceRequest(String url , String map , boolean state) {
DeviceData.queryOfflineDataByInterfaceToPost(url, map, new QueryFinishListener() {
DeviceData.queryOfflineDataByInterfaceToPost(WebViewActivity.this, url, map, new QueryFinishListener() {
@Override
public void onFinish() {
if(state){
@ -451,16 +451,13 @@ public class WebViewActivity extends BaseActivity {
}
}
});
// LoggerUtil.e(TAG,"JS调用了Android的方法:interfaceRequest1():"+url+","+map);
}
// h5调用android:接口请求get
@JavascriptInterface
public void interfaceRequest(String url , boolean state) {
DeviceData.queryOfflineDataByInterfaceToGet(url, new QueryFinishListener() {
DeviceData.queryOfflineDataByInterfaceToGet(WebViewActivity.this, url, new QueryFinishListener() {
@Override
public void onFinish() {
if(state){

1
app/src/main/java/qianmu/container/activity/program/ViewScreenSaver.java

@ -622,7 +622,6 @@ public class ViewScreenSaver extends ViewBase<ViewScreenSaverBinding> {
break;
case TYPE_UPDATE_VIDEO0:
// Log.e("TAG","视频播放");
if(videoComponents0==null){
return;
}

88
app/src/main/java/qianmu/container/data/DeviceData.java

@ -1,6 +1,7 @@
package qianmu.container.data;
import android.app.Activity;
import android.content.Context;
import android.util.Log;
import com.google.gson.Gson;
@ -10,6 +11,8 @@ import com.google.gson.reflect.TypeToken;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.http.RequestParams;
import com.lzy.okgo.OkGo;
import com.lzy.okgo.callback.StringCallback;
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
@ -20,12 +23,16 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import cz.msebera.android.httpclient.Header;
import cz.msebera.android.httpclient.entity.StringEntity;
import cz.msebera.android.httpclient.protocol.HTTP;
import okhttp3.MediaType;
import okhttp3.RequestBody;
import qianmu.container.activity.H5.H5Data;
import qianmu.container.app.Constant;
import qianmu.container.app.MyApplication;
import qianmu.container.entity.AppVersionBean;
import qianmu.container.entity.Device;
@ -45,6 +52,7 @@ import qianmu.container.mqtt.CloseMqttBean;
import qianmu.container.mqtt.MqttDataBean;
import qianmu.container.util.AesUtil;
import qianmu.container.util.DeviceUtil;
import qianmu.container.util.FileUtil;
import qianmu.container.util.GsonUtil;
import qianmu.container.util.LoggerUtil;
import qianmu.container.util.MusicUtil;
@ -683,7 +691,7 @@ public class DeviceData extends BaseData {
}
//GET方式获取离线数据
public static void queryOfflineDataByInterfaceToGet(String url,QueryFinishListener finishListener) {
public static void queryOfflineDataByInterfaceToGet(Context context, String url, QueryFinishListener finishListener) {
AsyncHttpClient client;
if(url.contains("https")){
client = new AsyncHttpClient(true, 80, 443);
@ -692,58 +700,54 @@ public class DeviceData extends BaseData {
}
client.setTimeout(20000);
client.setMaxRetriesAndTimeout(0, 20000);
client.get(url, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
try {
String response = new String(responseBody).replace("\\\\", "/");
saveInterfaceRequest(response);
} catch (Throwable t) {
// LoggerUtil.e("queryOfflineDataByInterface", StringUtil.getThrowableStr(t));
}
if (finishListener != null) finishListener.onFinish();
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
if (finishListener != null) finishListener.onFinish();
}
});
}
//POST方式获取离线数据 多添加一个JSON请求体(参数必须是JSON格式)
public static void queryOfflineDataByInterfaceToPost(String url, String jsonData, QueryFinishListener finishListener) {
try {
AsyncHttpClient client;
if(url.contains("https")){
client = new AsyncHttpClient(true, 80, 443);
}else {
client = new AsyncHttpClient();
}
client.setTimeout(20000);
client.setMaxRetriesAndTimeout(0, 20000);
// StringEntity entity = new StringEntity(jsonData);
StringEntity entity = new StringEntity(jsonData, HTTP.UTF_8);
client.post(MyApplication.getInstance().getApplicationContext(), url, entity, RequestParams.APPLICATION_JSON, new AsyncHttpResponseHandler() {
OkGo.<String>get(url) // 使用泛型指定响应数据类型为 String
.tag(context) // 设置请求的 tag,用于取消请求
.execute(new StringCallback() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
public void onSuccess(com.lzy.okgo.model.Response<String> response) {
try {
String response = new String(responseBody).replace("\\\\", "/");
// Log.d("response", response);
saveInterfaceRequest(response);
String responseData = response.body().replace("\\\\", "/");
saveInterfaceRequest(responseData);
} catch (Throwable t) {
// LoggerUtil.e("queryOfflineDataByInterface", StringUtil.getThrowableStr(t));
// LoggerUtil.e("queryOfflineDataByInterface", StringUtil.getThrowableStr(t));
}
if (finishListener != null) finishListener.onFinish();
}
// 请求失败
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
public void onError(com.lzy.okgo.model.Response<String> response) {
Throwable error = response.getException(); // 获取错误信息
LoggerUtil.e("请求失败:"+url, error.getMessage());
if (finishListener != null) finishListener.onFinish();
}
});
}
//POST方式获取离线数据 多添加一个JSON请求体(参数必须是JSON格式)
public static void queryOfflineDataByInterfaceToPost(Context context, String url, String jsonData, QueryFinishListener finishListener) {
try {
OkGo.<String>post(url)
.tag(context)
.upJson(jsonData) // 将 JSON 字符串作为请求体发送
.execute(new StringCallback() {
@Override
public void onSuccess(com.lzy.okgo.model.Response<String> response) {
try {
String responseData = response.body().replace("\\\\", "/");
saveInterfaceRequest(responseData);
} catch (Throwable t) {
// LoggerUtil.e("queryOfflineDataByInterface", StringUtil.getThrowableStr(t));
}
if (finishListener != null) finishListener.onFinish();
}
@Override
public void onError(com.lzy.okgo.model.Response<String> response) {
Log.e("OkGoExample", response.getException().getMessage());
if (finishListener != null) finishListener.onFinish();
}
});
} catch (Throwable t) {
if (finishListener != null) finishListener.onFinish();
// LoggerUtil.e("queryOfflineDataByInterface", StringUtil.getThrowableStr(t));

2
app/src/main/java/qianmu/container/data/PowerData.java

@ -140,7 +140,7 @@ public class PowerData extends BaseData {
String dataJson = getDataJson(NAME, POWER_INFO, "{}");
if(newTimeInfo.equals(dataJson)){
if(Constant.androidBoardType.equals("ys") && "".equals(isSetOver)){ // 亿盛有时候设置开机时间不成功
if(Constant.androidBoardType.equals("ys") && "".equals(isSetOver) && !StringUtil.isEmpty(parameter)){ // 亿盛有时候设置开机时间不成功
MyManager manager = MyManager.getInstance(MyApplication.getInstance());
String onTime = manager.getPowerOnTime();
long currentLong = System.currentTimeMillis();//当前时间

Loading…
Cancel
Save