diff --git a/app/src/main/java/com/fongmi/android/tv/model/SiteViewModel.java b/app/src/main/java/com/fongmi/android/tv/model/SiteViewModel.java index 2fd0b198f..919ed3da7 100644 --- a/app/src/main/java/com/fongmi/android/tv/model/SiteViewModel.java +++ b/app/src/main/java/com/fongmi/android/tv/model/SiteViewModel.java @@ -267,16 +267,16 @@ public class SiteViewModel extends ViewModel { private Result fetchPic(Site site, Result result) throws Exception { if (site.getType() > 2 || result.getList().isEmpty() || !result.getList().get(0).getVodPic().isEmpty()) return result; ArrayList ids = new ArrayList<>(); - if (site.getCategories().isEmpty()) for (Vod item : result.getList()) ids.add(item.getVodId()); - else for (Vod item : result.getList()) if (site.getCategories().contains(item.getTypeName())) ids.add(item.getVodId()); + boolean empty = site.getCategories().isEmpty(); + for (Vod item : result.getList()) if (empty || site.getCategories().contains(item.getTypeName())) ids.add(item.getVodId()); if (ids.isEmpty()) return result.clear(); ArrayMap params = new ArrayMap<>(); params.put("ac", site.getType() == 0 ? "videolist" : "detail"); params.put("ids", TextUtils.join(",", ids)); - Response response = OkHttp.newCall(site.getApi(), site.getHeaders(), params).execute(); - result.setList(Result.fromType(site.getType(), response.body().string()).getList()); - response.close(); - return result; + try (Response response = OkHttp.newCall(site.getApi(), site.getHeaders(), params).execute()) { + result.setList(Result.fromType(site.getType(), response.body().string()).getList()); + return result; + } } private void post(Site site, Result result) { diff --git a/app/src/main/java/com/fongmi/android/tv/player/ParseJob.java b/app/src/main/java/com/fongmi/android/tv/player/ParseJob.java index 3eddd892d..f1539e7a0 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/ParseJob.java +++ b/app/src/main/java/com/fongmi/android/tv/player/ParseJob.java @@ -113,13 +113,13 @@ public class ParseJob implements ParseCallback { } private void jsonParse(Parse item, String webUrl, boolean error) throws Exception { - Response res = OkHttp.newCall(item.getUrl() + webUrl, Headers.of(item.getHeaders())).execute(); - JsonObject object = Json.parse(res.body().string()).getAsJsonObject(); - String url = Json.safeString(object, "url"); - JsonObject data = object.getAsJsonObject("data"); - if (url.isEmpty()) url = Json.safeString(data, "url"); - checkResult(getHeader(object), url, item.getName(), error); - res.close(); + try (Response res = OkHttp.newCall(item.getUrl() + webUrl, Headers.of(item.getHeaders())).execute()) { + JsonObject object = Json.parse(res.body().string()).getAsJsonObject(); + String url = Json.safeString(object, "url"); + JsonObject data = object.getAsJsonObject("data"); + if (url.isEmpty()) url = Json.safeString(data, "url"); + checkResult(getHeader(object), url, item.getName(), error); + } } private void jsonExtend(String webUrl) throws Throwable {