package com.hdl.photovoltaic.other;
|
|
import android.text.TextUtils;
|
|
import com.google.gson.Gson;
|
import com.google.gson.JsonObject;
|
import com.google.gson.reflect.TypeToken;
|
import com.hdl.linkpm.sdk.core.exception.HDLException;
|
import com.hdl.linkpm.sdk.user.bean.NewVersionBean;
|
import com.hdl.photovoltaic.HDLApp;
|
import com.hdl.photovoltaic.config.AppConfigManage;
|
import com.hdl.photovoltaic.config.UserConfigManage;
|
import com.hdl.photovoltaic.internet.HttpClient;
|
import com.hdl.photovoltaic.internet.api.HttpApi;
|
import com.hdl.photovoltaic.listener.CloudCallBeak;
|
|
import java.lang.reflect.Type;
|
|
|
/**
|
* App升级逻辑
|
*/
|
public class HdlAppUpdateLogic {
|
|
/**
|
* 在iot平台创建新app时自动生成的(测试环境)
|
*/
|
private final String appCodeTest = "1728976668552863746";
|
/**
|
* 在iot平台创建新app时自动生成的(正式环境)
|
*/
|
private final String appCodeRelease = "1763139117625831426";
|
private static volatile HdlAppUpdateLogic sHdlAppUpdateLogic;
|
|
/**
|
* 获取当前对象
|
*
|
* @return HdlAppUpgradeLogic
|
*/
|
public static synchronized HdlAppUpdateLogic getInstance() {
|
if (sHdlAppUpdateLogic == null) {
|
synchronized (HdlAppUpdateLogic.class) {
|
if (sHdlAppUpdateLogic == null) {
|
sHdlAppUpdateLogic = new HdlAppUpdateLogic();
|
}
|
}
|
|
}
|
return sHdlAppUpdateLogic;
|
}
|
|
/**
|
* @return 返回包名
|
*/
|
public String getApkFileName() {
|
return HDLApp.getInstance().getPackageName() + ".apk";
|
}
|
|
/**
|
* app版本检测更新
|
* 支持Android、iOS、wgt检测
|
*
|
* @param version 版本号
|
* @param cloudCallBeak 如果onSuccess 回调的bean为空,代表当前版本已经是最新版本,没有新版本
|
*/
|
public void checkAppVersion(String version, CloudCallBeak<NewVersionBean> cloudCallBeak) {
|
JsonObject json = new JsonObject();
|
if (AppConfigManage.getOnlineServer()) {
|
json.addProperty("appCode", appCodeRelease);
|
} else {
|
json.addProperty("appCode", appCodeTest);
|
}
|
json.addProperty("version", version);
|
json.addProperty("releaseSystem", "Android");//发布系统,IOS、Android, wgt
|
String requestUrl = HttpApi.POST_APP_VERSION_CHECK;
|
HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
|
@Override
|
public void onSuccess(String jsonStr) {
|
if (TextUtils.isEmpty(jsonStr)) {
|
if (cloudCallBeak != null) {
|
cloudCallBeak.onSuccess(null);
|
}
|
}
|
Type type = new TypeToken<NewVersionBean>() {
|
}.getType();
|
NewVersionBean newVersionBean = new Gson().fromJson(jsonStr, type);
|
if (cloudCallBeak != null) {
|
cloudCallBeak.onSuccess(newVersionBean);
|
}
|
|
}
|
|
@Override
|
public void onFailure(HDLException e) {
|
if (cloudCallBeak != null) {
|
cloudCallBeak.onFailure(e);
|
}
|
}
|
});
|
|
}
|
}
|