UpdateService.java 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. package com.emato.ich.update;
  2. import com.emato.ich.utils.Log;
  3. import androidx.annotation.NonNull;
  4. import com.emato.ich.api.ICSPClient;
  5. import com.emato.ich.utils.BaseUtils;
  6. import com.xuexiang.xupdate.XUpdate;
  7. import com.xuexiang.xupdate.proxy.IUpdateHttpService;
  8. import com.zhy.http.okhttp.OkHttpUtils;
  9. import com.zhy.http.okhttp.callback.FileCallBack;
  10. import com.zhy.http.okhttp.callback.StringCallback;
  11. import org.jetbrains.annotations.NotNull;
  12. import java.io.File;
  13. import java.io.IOException;
  14. import java.util.HashMap;
  15. import java.util.Map;
  16. import java.util.Objects;
  17. import java.util.concurrent.TimeUnit;
  18. import okhttp3.Call;
  19. import okhttp3.Callback;
  20. import okhttp3.OkHttpClient;
  21. import okhttp3.Request;
  22. import okhttp3.Response;
  23. public class UpdateService implements IUpdateHttpService {
  24. private static final String TAG = UpdateService.class.getName();
  25. private static final OkHttpClient client = new OkHttpClient.Builder().callTimeout(10, TimeUnit.MINUTES).readTimeout(10, TimeUnit.MINUTES).build();
  26. @Override
  27. public void asyncGet(@NonNull @NotNull String url, @NonNull @NotNull Map<String, Object> params, @NonNull @NotNull Callback callBack) {
  28. OkHttpUtils.get()
  29. .url(url)
  30. .addParams("clientId", BaseUtils.getClientId())
  31. .build()
  32. .execute(new StringCallback() {
  33. @Override
  34. public void onError(Call call, Exception e, int id) {
  35. callBack.onError(e);
  36. }
  37. @Override
  38. public void onResponse(String response, int id) {
  39. callBack.onSuccess(response);
  40. }
  41. });
  42. }
  43. private Map<String, String> transform(Map<String, Object> params) {
  44. Map<String, String> map = new HashMap<>();
  45. params.keySet().forEach(key -> {
  46. map.put(key, String.valueOf(params.get(key)));
  47. });
  48. map.put("clientId", BaseUtils.getClientId());
  49. return map;
  50. }
  51. @Override
  52. public void asyncPost(@NonNull @NotNull String url, @NonNull @NotNull Map<String, Object> params, @NonNull @NotNull Callback callBack) {
  53. OkHttpUtils.post()
  54. // .params(transform(params))
  55. .url(url)
  56. .addParams("clientId", BaseUtils.getClientId())
  57. // .addParams("clientId", "285F18D92D0B6568")
  58. .build()
  59. .execute(new StringCallback() {
  60. @Override
  61. public void onError(Call call, Exception e, int id) {
  62. callBack.onError(e);
  63. }
  64. @Override
  65. public void onResponse(String response, int id) {
  66. //response = "{\"Code\":0,\"Msg\":\"\",\"UpdateStatus\":2,\"VersionCode\":3,\"VersionName\":\"1.0.2\",\"ModifyContent\":\"1、优化api接口。\\r\\n2、添加使用demo演示。\\r\\n3、新增自定义更新服务API接口。\\r\\n4、优化更新提示界面。\",\"DownloadUrl\":\"http://icsp-api.ds-bay.com/profile/app-release.apk\",\"ApkSize\":10759906,\"ApkMd5\":\"3452dfgdg\"}";
  67. callBack.onSuccess(response);
  68. }
  69. });
  70. }
  71. @Override
  72. public void download(@NonNull @NotNull String url, @NonNull @NotNull String path, @NonNull @NotNull String fileName, @NonNull @NotNull DownloadCallback callback) {
  73. OkHttpUtils.initClient(client);
  74. OkHttpUtils.get()
  75. .url(url)
  76. .tag(url)
  77. .build()
  78. .execute(new FileCallBack(path, fileName) {
  79. @Override
  80. public void inProgress(float progress, long total, int id) {
  81. callback.onProgress(progress, total);
  82. Log.i(TAG, "inProgress: ====================================>progress完成! ===>" + progress);
  83. }
  84. @Override
  85. public void onBefore(Request request, int id) {
  86. callback.onStart();
  87. Log.i(TAG, "onBefore: ====================================>Before 完成! ");
  88. }
  89. @Override
  90. public void onError(Call call, Exception e, int id) {
  91. callback.onError(e);
  92. Log.e(TAG, "onError: ====================================>下载出现异常! ", e);
  93. }
  94. @Override
  95. public void onResponse(File response, int id) {
  96. callback.onSuccess(response);
  97. Log.i(TAG, "onResponse: ====================================>下载完成! 等待安装....");
  98. }
  99. });
  100. }
  101. @Override
  102. public void cancelDownload(@NonNull @NotNull String url) {
  103. }
  104. }