diff --git a/app/build.gradle b/app/build.gradle index f87e299d8..573bcdcbf 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -41,6 +41,7 @@ dependencies { implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' implementation 'androidx.recyclerview:recyclerview:1.2.1' implementation 'androidx.room:room-runtime:2.4.2' + implementation 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1' implementation 'com.github.bassaer:materialdesigncolors:1.0.0' implementation 'com.github.bumptech.glide:glide:4.13.2' implementation 'com.google.android.material:material:1.6.1' diff --git a/app/src/main/java/com/fongmi/bear/bean/Vod.java b/app/src/main/java/com/fongmi/bear/bean/Vod.java index 1df07e519..478eb9b46 100644 --- a/app/src/main/java/com/fongmi/bear/bean/Vod.java +++ b/app/src/main/java/com/fongmi/bear/bean/Vod.java @@ -2,9 +2,13 @@ package com.fongmi.bear.bean; import android.text.TextUtils; import android.view.View; +import android.widget.ImageView; import androidx.annotation.NonNull; +import com.amulyakhare.textdrawable.TextDrawable; +import com.amulyakhare.textdrawable.util.ColorGenerator; +import com.fongmi.bear.utils.Utils; import com.google.gson.Gson; import com.google.gson.annotations.SerializedName; @@ -96,14 +100,19 @@ public class Vod { return vodFlags = vodFlags == null ? new ArrayList<>() : vodFlags; } - public void setVodFlags(List vodFlags) { - this.vodFlags = vodFlags; - } - public int getRemarkVisible() { return getVodRemarks().isEmpty() ? View.GONE : View.VISIBLE; } + public void loadImg(ImageView view) { + if (TextUtils.isEmpty(getVodPic())) { + String text = getVodName().isEmpty() ? "" : getVodName().substring(0, 1); + view.setImageDrawable(TextDrawable.builder().buildRect(text, ColorGenerator.MATERIAL.getColor(text))); + } else { + Utils.loadImage(getVodPic(), view); + } + } + public void setVodFlags() { String[] playFlags = getVodPlayFrom().split("\\$\\$\\$"); String[] playUrls = getVodPlayUrl().split("\\$\\$\\$"); diff --git a/app/src/main/java/com/fongmi/bear/model/SiteViewModel.java b/app/src/main/java/com/fongmi/bear/model/SiteViewModel.java index 7e992e15e..bfaa5ee7f 100644 --- a/app/src/main/java/com/fongmi/bear/model/SiteViewModel.java +++ b/app/src/main/java/com/fongmi/bear/model/SiteViewModel.java @@ -44,18 +44,18 @@ public class SiteViewModel extends ViewModel { if (home.getType() == 3) { Spider spider = ApiConfig.get().getCSP(home); String homeContent = spider.homeContent(false); - SpiderDebug.json(homeContent); + SpiderDebug.log(homeContent); Result result = Result.objectFrom(homeContent); if (result.getList().size() > 0) return result; String homeVideoContent = spider.homeVideoContent(); - SpiderDebug.json(homeVideoContent); + SpiderDebug.log(homeVideoContent); result.setList(Result.objectFrom(homeVideoContent).getList()); return result; } else { Response response = OKHttp.newCall(home.getApi()).execute(); if (home.getType() == 1) { String homeContent = response.body().string(); - SpiderDebug.json(homeContent); + SpiderDebug.log(homeContent); return Result.objectFrom(homeContent); } return new Result(); @@ -69,14 +69,14 @@ public class SiteViewModel extends ViewModel { if (home.getType() == 3) { Spider spider = ApiConfig.get().getCSP(home); String categoryContent = spider.categoryContent(tid, page, filter, extend); - SpiderDebug.json(categoryContent); + SpiderDebug.log(categoryContent); return Result.objectFrom(categoryContent); } else { HttpUrl url = HttpUrl.parse(home.getApi()).newBuilder().addQueryParameter("ac", home.getType() == 0 ? "videolist" : "detail").addQueryParameter("t", tid).addQueryParameter("pg", page).build(); Response response = OKHttp.newCall(url).execute(); if (home.getType() == 1) { String categoryContent = response.body().string(); - SpiderDebug.json(categoryContent); + SpiderDebug.log(categoryContent); return Result.objectFrom(categoryContent); } return new Result(); @@ -90,7 +90,7 @@ public class SiteViewModel extends ViewModel { if (home.getType() == 3) { Spider spider = ApiConfig.get().getCSP(home); String detailContent = spider.detailContent(List.of(id)); - SpiderDebug.json(detailContent); + SpiderDebug.log(detailContent); Result result = Result.objectFrom(detailContent); if (!result.getList().isEmpty()) result.getList().get(0).setVodFlags(); return result; @@ -99,7 +99,7 @@ public class SiteViewModel extends ViewModel { Response response = OKHttp.newCall(url).execute(); if (home.getType() == 1) { String detailContent = response.body().string(); - SpiderDebug.json(detailContent); + SpiderDebug.log(detailContent); Result result = Result.objectFrom(detailContent); if (!result.getList().isEmpty()) result.getList().get(0).setVodFlags(); return result; @@ -115,7 +115,7 @@ public class SiteViewModel extends ViewModel { if (home.getType() == 3) { Spider spider = ApiConfig.get().getCSP(home); String playerContent = spider.playerContent(flag, id, ApiConfig.get().getFlags()); - SpiderDebug.json(playerContent); + SpiderDebug.log(playerContent); JsonObject object = JsonParser.parseString(playerContent).getAsJsonObject(); if (!object.has("flag")) object.addProperty("flag", flag); return object; diff --git a/app/src/main/java/com/fongmi/bear/ui/presenter/VodPresenter.java b/app/src/main/java/com/fongmi/bear/ui/presenter/VodPresenter.java index 9909e1057..95917f111 100644 --- a/app/src/main/java/com/fongmi/bear/ui/presenter/VodPresenter.java +++ b/app/src/main/java/com/fongmi/bear/ui/presenter/VodPresenter.java @@ -9,7 +9,6 @@ import androidx.leanback.widget.Presenter; import com.fongmi.bear.bean.Vod; import com.fongmi.bear.databinding.AdapterVodBinding; import com.fongmi.bear.utils.ResUtil; -import com.fongmi.bear.utils.Utils; public class VodPresenter extends Presenter { @@ -40,10 +39,10 @@ public class VodPresenter extends Presenter { public void onBindViewHolder(Presenter.ViewHolder viewHolder, Object object) { Vod item = (Vod) object; ViewHolder holder = (ViewHolder) viewHolder; + item.loadImg(holder.binding.image); holder.binding.name.setText(item.getVodName()); holder.binding.remark.setText(item.getVodRemarks()); holder.binding.remark.setVisibility(item.getRemarkVisible()); - Utils.loadImage(item.getVodPic(), holder.binding.image); setOnClickListener(holder, view -> mListener.onItemClick(item)); } diff --git a/app/src/main/java/com/fongmi/bear/utils/Utils.java b/app/src/main/java/com/fongmi/bear/utils/Utils.java index ffe663d4c..c108bc2af 100644 --- a/app/src/main/java/com/fongmi/bear/utils/Utils.java +++ b/app/src/main/java/com/fongmi/bear/utils/Utils.java @@ -60,8 +60,8 @@ public class Utils { return event.getKeyCode() == KeyEvent.KEYCODE_DPAD_RIGHT; } - public static void loadImage(String url, ImageView view) { - Glide.with(App.get()).load(url).placeholder(R.drawable.ic_img_loading).error(R.drawable.ic_img_error).into(view); + public static void loadImage(T model, ImageView view) { + Glide.with(App.get()).load(model).placeholder(R.drawable.ic_img_loading).error(R.drawable.ic_img_error).into(view); } public static boolean hasPIP() { diff --git a/app/src/main/java/com/github/catvod/crawler/SpiderDebug.java b/app/src/main/java/com/github/catvod/crawler/SpiderDebug.java index e7bf0e808..a81d4ae71 100644 --- a/app/src/main/java/com/github/catvod/crawler/SpiderDebug.java +++ b/app/src/main/java/com/github/catvod/crawler/SpiderDebug.java @@ -13,8 +13,4 @@ public class SpiderDebug { public static void log(String msg) { Logger.t(TAG).d(msg); } - - public static void json(String msg) { - Logger.t(TAG).json(msg); - } }