| | |
| | | public static String replaceCar = "api/driver/replaceCar"; //api/driver/replaceCar 更换车辆 |
| | | public static String queryPhoneAll = "api/driver/queryPhone"; //api/driver/queryPhone 获取客服电话 |
| | | public static String queryByType = "base/agreement/queryByType"; //base/agreement/queryByType 获取各种协议及H5页面 |
| | | public static String queryNewData = "api/version/queryNewData"; //api/version/queryNewData 获取最新版本数据 |
| | | public static String queryNewData = "base/version/queryNewData"; //api/version/queryNewData 获取最新版本数据 |
| | | public static String updatePhone = "api/driver/updatePhone"; //api/driver/updatePhone 修改手机号码 |
| | | |
| | | public static String updatePhone1 = "api/driver/updatePhone1"; //api/driver/updatePhone1 修改手机号码 |
| | |
| | | |
| | | import android.util.Log; |
| | | |
| | | import androidx.annotation.NonNull; |
| | | import androidx.annotation.Nullable; |
| | | |
| | | import com.driver.igotrip.BuildConfig; |
| | | import com.driver.igotrip.R; |
| | | import com.driver.igotrip.base.Const; |
| | |
| | | import java.io.InputStream; |
| | | import java.lang.reflect.Type; |
| | | import java.security.KeyStore; |
| | | import java.security.cert.CertificateException; |
| | | import java.security.cert.CertificateFactory; |
| | | import java.security.cert.X509Certificate; |
| | | import java.util.HashMap; |
| | |
| | | */ |
| | | |
| | | public class HttpManager { |
| | | private final ApiServics service = initBaseData().create(ApiServics.class); |
| | | //只信任指定证书的服务 安全级别高 |
| | | private final ApiServics service = initBaseData(true, false).create(ApiServics.class); |
| | | //信任所有证书的服务 安全级别低 |
| | | private final ApiServics allTrustService = initBaseData(false, true).create(ApiServics.class); |
| | | private Gson gson; |
| | | private final Map<String, String> headerParams = new HashMap<>(); |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | @Nullable |
| | | private SSLSocketFactory getSSLSocketFactory(X509TrustManager trustManager) { |
| | | try { |
| | | SSLContext tls = SSLContext.getInstance("TLS"); |
| | |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * 创建特定证书信任管理器 |
| | | */ |
| | | @Nullable |
| | | private X509TrustManager createTrustManager(int certificateResId) { |
| | | try { |
| | | CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509"); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 创建所有证书信任管理器 |
| | | */ |
| | | @NonNull |
| | | private X509TrustManager createAllTrustManager() { |
| | | return new X509TrustManager() { |
| | | @Override |
| | | public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public X509Certificate[] getAcceptedIssuers() { |
| | | return new X509Certificate[0]; |
| | | } |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * 初始化数据 |
| | | * |
| | | */ |
| | | private Retrofit initBaseData() { |
| | | private Retrofit initBaseData(boolean isUseCert, boolean isTrustAll) { |
| | | // 监听请求条件 |
| | | OkHttpClient.Builder builder = new OkHttpClient.Builder(); |
| | | builder.connectTimeout(3, TimeUnit.MINUTES); |
| | | builder.readTimeout(3, TimeUnit.MINUTES); |
| | | builder.writeTimeout(3, TimeUnit.MINUTES); |
| | | if (isUseCert) { |
| | | X509TrustManager trustManager = createTrustManager(R.raw.star_gopost_ci); |
| | | if (trustManager != null) { |
| | | SSLSocketFactory sslSocketFactory = getSSLSocketFactory(trustManager); |
| | | if (sslSocketFactory != null) { |
| | | builder.sslSocketFactory(sslSocketFactory, trustManager); |
| | | } |
| | | } |
| | | } else { |
| | | if (isTrustAll) { |
| | | X509TrustManager trustManager = createAllTrustManager(); |
| | | SSLSocketFactory sslSocketFactory = getSSLSocketFactory(trustManager); |
| | | if (sslSocketFactory != null) { |
| | | builder.sslSocketFactory(sslSocketFactory, trustManager); |
| | | } |
| | | } |
| | | } |
| | | // builder.addInterceptor(new Interceptor() { |
| | |
| | | // public <T extends BaseBean> void post(final String action, Map<String, Object> params, |
| | | public void post(final String action, Map<String, Object> params, |
| | | Observer<ResponseBody> observer) { |
| | | post(action, params) |
| | | post(false, action, params, observer); |
| | | } |
| | | |
| | | /** |
| | | * Post请求 |
| | | * |
| | | * @param isUseAllTrustService 是否使用信任所有证书服务 |
| | | * @param action 请求接口的尾址 |
| | | * @param params 请求参数 |
| | | */ |
| | | // public <T extends BaseBean> void post(final String action, Map<String, Object> params, |
| | | public void post(boolean isUseAllTrustService, final String action, Map<String, Object> params, |
| | | Observer<ResponseBody> observer) { |
| | | post(isUseAllTrustService, action, params) |
| | | .subscribeOn(Schedulers.io()) |
| | | .observeOn(AndroidSchedulers.mainThread()) |
| | | .subscribe(observer); |
| | |
| | | * @param params 请求参数 |
| | | */ |
| | | public Observable<ResponseBody> post(final String action, Map<String, Object> params) { |
| | | return post(false, action, params); |
| | | } |
| | | |
| | | /** |
| | | * Post请求 |
| | | * |
| | | * @param action 请求接口的尾址 |
| | | * @param params 请求参数 |
| | | */ |
| | | public Observable<ResponseBody> post(boolean isUseAllTrustService, final String action, Map<String, Object> params) { |
| | | if (params == null) { |
| | | params = new HashMap<>(); |
| | | } |
| | |
| | | params.put(Const.language, type); // 1 中文 2 英文 3 法文 |
| | | LogUtils.d("post", params.toString()); |
| | | headerParams.put("Authorization", "Bearer " + getToken()); |
| | | return service.postResult(action, headerParams, params); |
| | | return (isUseAllTrustService ? allTrustService : service).postResult(action, headerParams, params); |
| | | } |
| | | |
| | | /** |
| | |
| | | clickAction: (responseString: String?) -> Unit, |
| | | clickActionError: (code: Int, errorString: String?) -> Unit |
| | | ) { |
| | | callNet(false, showDialog, api, map, clickAction, clickActionError) |
| | | } |
| | | |
| | | fun BaseActivity.callNet( |
| | | isUseAllTrustService: Boolean, |
| | | showDialog: Boolean, |
| | | api: String, |
| | | map: HashMap<String?, Any?>, |
| | | clickAction: (responseString: String?) -> Unit, |
| | | clickActionError: (code: Int, errorString: String?) -> Unit |
| | | ) { |
| | | if (showDialog) |
| | | showDialog() |
| | | if (api.startsWith("api")) { |
| | | map["appid"] = getAppId() |
| | | var sign = DES.getSign(map) |
| | | val sign = DES.getSign(map) |
| | | map["sign"] = sign |
| | | } |
| | | HttpManager.getInstance().post(api, map, object : MyObserver(this) { |
| | | HttpManager.getInstance().post(isUseAllTrustService, api, map, object : MyObserver(this) { |
| | | override fun success(responseString: String?) { |
| | | if (showDialog) |
| | | dismissDialog() |
| | |
| | | fun getAppId(): String { |
| | | var appid = CacheKey.getKeyStr("appid") |
| | | if (appid.isEmpty()) { |
| | | return "" |
| | | return "0" |
| | | } else { |
| | | return appid |
| | | } |
| | |
| | | } |
| | | |
| | | private fun callVersion() { |
| | | var map = getMapByAny() |
| | | val map = getMapByAny() |
| | | // map["id"] = CacheKey.getUserId() |
| | | callNet(Api.queryNewData, map) { |
| | | var data = gson.fromJson<VersionBean>(it, VersionBean::class.java) |
| | | callNet(isUseAllTrustService = true, showDialog = true, api = Api.queryNewData, map = map, clickAction = { |
| | | val data = gson.fromJson<VersionBean>(it, VersionBean::class.java) |
| | | if (data.data.version != "" && data.data.version != getVersionName()) { |
| | | if (data.data.mandatory == 2) { |
| | | when (data.data.mandatory) { |
| | | 2 -> { |
| | | DialogUtil.getDelAndSureDialog( |
| | | this, |
| | | getString(R.string.新版本更新), |
| | |
| | | { |
| | | browse(data.data.url) |
| | | }) |
| | | } else if (data.data.mandatory == 1) { |
| | | } |
| | | |
| | | 1 -> { |
| | | DialogUtil.getDelAndSureDialog( |
| | | this, |
| | | getString(R.string.新版本更新), |
| | |
| | | { |
| | | browse(data.data.url) |
| | | }) |
| | | } else { |
| | | } |
| | | |
| | | else -> { |
| | | // toast("已经是最新版本") |
| | | } |
| | | } |
| | | } else { |
| | | // toast("已经是最新版本") |
| | | } |
| | | }) { _, _ -> |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | import android.view.View |
| | | import android.widget.TextView |
| | | import cn.sinata.xldutils.utils.Utils |
| | | import cn.sinata.xldutils.utils.clickDelay |
| | | import cn.sinata.xldutils.utils.getVersionName |
| | | import com.driver.emanagercar.ui.base.BaseWebActivity |
| | |
| | | } |
| | | |
| | | private fun callVersion() { |
| | | var map = getMapByAny() |
| | | val map = getMapByAny() |
| | | // map["id"] = CacheKey.getUserId() |
| | | callNet(Api.queryNewData, map) { |
| | | var data = gson.fromJson<VersionBean>(it, VersionBean::class.java) |
| | | callNet(isUseAllTrustService = true, showDialog = true, api = Api.queryNewData, map = map, clickAction = { |
| | | val data = gson.fromJson<VersionBean>(it, VersionBean::class.java) |
| | | if (data.data.version != "" && data.data.version != getVersionName()) { |
| | | if (data.data.mandatory == 2) { |
| | | when (data.data.mandatory) { |
| | | 2 -> { |
| | | DialogUtil.getDelAndSureDialog(this, getString(R.string.新版本更新),data.data.content, {}, { |
| | | browse(data.data.url) |
| | | }) |
| | | } else if (data.data.mandatory == 1) { |
| | | } |
| | | |
| | | 1 -> { |
| | | DialogUtil.getDelAndSureDialog(this, getString(R.string.新版本更新),data.data.content, { |
| | | EventBus.getDefault().post(BaseEvent(BaseEvent.OUT_APP)) |
| | | }, { |
| | | browse(data.data.url) |
| | | }) |
| | | }else{ |
| | | } |
| | | |
| | | else -> { |
| | | // toast("已经是最新版本") |
| | | } |
| | | } else { |
| | | // toast("已经是最新版本") |
| | | } |
| | | } else { |
| | | toast(getString(R.string.已经是最新版)) |
| | | } |
| | | }) { _, _ -> |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | import android.widget.Toast |
| | | import cn.sinata.xldutils.utils.getAreaCode |
| | | import cn.sinata.xldutils.utils.getString |
| | | import com.driver.igotrip.base.local.BaseLoginActivity |
| | | import cn.sinata.xldutils.utils.getVersionName |
| | | import com.driver.igotrip.R |
| | | import com.driver.igotrip.base.BaseEvent |
| | | import com.driver.igotrip.base.MyApplication |
| | | import com.driver.igotrip.base.local.BaseLoginActivity |
| | | import com.driver.igotrip.bean.AgreeBean |
| | | import com.driver.igotrip.bean.LoginBean |
| | | import com.driver.igotrip.bean.VersionBean |
| | | import com.driver.igotrip.netUtls.Api |
| | | import com.driver.igotrip.netUtls.callNet |
| | | import com.driver.igotrip.netUtls.getMapByAny |
| | | import com.driver.igotrip.ui.DialogUtil |
| | | import com.driver.igotrip.ui.main.MainActivity |
| | | import com.driver.igotrip.utils.Cache.CacheKey |
| | | import com.driver.igotrip.utils.PhoneCheckUtil |
| | |
| | | import com.lzf.easyfloat.enums.ShowPattern |
| | | import com.lzf.easyfloat.enums.SidePattern |
| | | import com.lzf.easyfloat.interfaces.OnInvokeView |
| | | import org.greenrobot.eventbus.EventBus |
| | | import org.jetbrains.anko.browse |
| | | import org.jetbrains.anko.dip |
| | | import org.jetbrains.anko.find |
| | | import org.jetbrains.anko.startActivity |
| | |
| | | LanguageUtil.reApp(this) |
| | | } |
| | | }*/ |
| | | callVersion() |
| | | } |
| | | |
| | | fun callHtml(click: (s: String) -> Unit) { |
| | |
| | | } |
| | | } |
| | | |
| | | private fun callVersion() { |
| | | val map = getMapByAny() |
| | | callNet(isUseAllTrustService = true, showDialog = false, api = Api.queryNewData, map = map, clickAction = { |
| | | val data = gson.fromJson<VersionBean>(it, VersionBean::class.java) |
| | | if (data.data.version != "" && data.data.version != getVersionName()) { |
| | | when (data.data.mandatory) { |
| | | 2 -> { |
| | | DialogUtil.getDelAndSureDialog( |
| | | this, |
| | | getString(R.string.新版本更新), |
| | | data.data.content, |
| | | {}, |
| | | { |
| | | browse(data.data.url) |
| | | }) |
| | | } |
| | | |
| | | 1 -> { |
| | | DialogUtil.getDelAndSureDialog( |
| | | this, |
| | | getString(R.string.新版本更新), |
| | | data.data.content, |
| | | { |
| | | EventBus.getDefault().post(BaseEvent(BaseEvent.OUT_APP)) |
| | | }, |
| | | { |
| | | browse(data.data.url) |
| | | }) |
| | | } |
| | | |
| | | else -> { |
| | | // toast("已经是最新版本") |
| | | } |
| | | } |
| | | } else { |
| | | // toast("已经是最新版本") |
| | | } |
| | | }) { _, _ -> |
| | | |
| | | } |
| | | } |
| | | } |
| | |
| | | <string name="优惠券">Coupon</string> |
| | | <string name="收款金额">Payment Amount</string> |
| | | <string name="订单收款金额">Order payment amount</string> |
| | | <string name="已经是最新版">当前已经是最新版本了</string> |
| | | |
| | | </resources> |
| | |
| | | <string name="优惠券">Coupon</string> |
| | | <string name="收款金额">Montant de recette</string> |
| | | <string name="订单收款金额">Montant perçu de la commande</string> |
| | | <string name="已经是最新版">Vous utilisez déjà la dernière version.</string> |
| | | |
| | | </resources> |
| | |
| | | <string name="优惠券">优惠券</string> |
| | | <string name="收款金额">收款金额</string> |
| | | <string name="订单收款金额">订单收款金额</string> |
| | | <string name="已经是最新版">当前已经是最新版本了</string> |
| | | |
| | | </resources> |