Add text drawable for no pic vod

pull/5/head
FongMi 4 years ago
parent 6ac9eb9b9d
commit 9b564ce884
  1. 1
      app/build.gradle
  2. 17
      app/src/main/java/com/fongmi/bear/bean/Vod.java
  3. 16
      app/src/main/java/com/fongmi/bear/model/SiteViewModel.java
  4. 3
      app/src/main/java/com/fongmi/bear/ui/presenter/VodPresenter.java
  5. 4
      app/src/main/java/com/fongmi/bear/utils/Utils.java
  6. 4
      app/src/main/java/com/github/catvod/crawler/SpiderDebug.java

@ -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'

@ -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<Flag> 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("\\$\\$\\$");

@ -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;

@ -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));
}

@ -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 <T> 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() {

@ -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);
}
}

Loading…
Cancel
Save