pull/594/head
jhengazuki 8 months ago
parent 981a4b5de0
commit b3cc15fd29
  1. 3
      app/src/main/java/com/fongmi/android/tv/bean/Result.java
  2. 9
      app/src/main/java/com/fongmi/android/tv/bean/Vod.java
  3. 4
      app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java
  4. 8
      app/src/main/java/com/fongmi/android/tv/utils/Util.java
  5. 3
      app/src/main/res/values-zh-rCN/strings.xml
  6. 3
      app/src/main/res/values-zh-rTW/strings.xml
  7. 3
      app/src/main/res/values/strings.xml
  8. 5
      app/src/main/res/values/styles.xml
  9. 9
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  10. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/CollectAdapter.java
  11. 10
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/HistoryAdapter.java
  12. 5
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/KeepAdapter.java
  13. 4
      app/src/mobile/java/com/fongmi/android/tv/ui/holder/VodRectHolder.java
  14. 2
      app/src/mobile/res/drawable/shape_vod_name.xml
  15. 11
      app/src/mobile/res/layout/adapter_collect.xml
  16. 44
      app/src/mobile/res/layout/adapter_vod.xml
  17. 4
      app/src/mobile/res/layout/adapter_vod_list.xml
  18. 2
      app/src/mobile/res/layout/adapter_vod_one.xml
  19. 22
      app/src/mobile/res/layout/adapter_vod_rect.xml

@ -12,6 +12,7 @@ import com.fongmi.android.tv.gson.DanmakuAdapter;
import com.fongmi.android.tv.gson.FilterAdapter;
import com.fongmi.android.tv.gson.MsgAdapter;
import com.fongmi.android.tv.gson.UrlAdapter;
import com.fongmi.android.tv.utils.Util;
import com.github.catvod.utils.Json;
import com.github.catvod.utils.Trans;
import com.google.gson.JsonElement;
@ -231,7 +232,7 @@ public class Result implements Parcelable {
}
public String getDesc() {
return TextUtils.isEmpty(desc) ? "" : desc;
return TextUtils.isEmpty(desc) ? "" : Util.clean(desc);
}
public List<Danmaku> getDanmaku() {

@ -7,6 +7,7 @@ import android.view.View;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.utils.Sniffer;
import com.fongmi.android.tv.utils.Util;
import com.github.catvod.utils.Trans;
import com.google.gson.annotations.SerializedName;
import com.google.gson.reflect.TypeToken;
@ -118,7 +119,7 @@ public class Vod implements Parcelable {
}
public String getVodName() {
return TextUtils.isEmpty(vodName) ? "" : vodName.trim();
return TextUtils.isEmpty(vodName) ? "" : Util.clean(vodName);
}
public void setVodName(String vodName) {
@ -150,15 +151,15 @@ public class Vod implements Parcelable {
}
public String getVodDirector() {
return TextUtils.isEmpty(vodDirector) ? "" : vodDirector.trim();
return TextUtils.isEmpty(vodDirector) ? "" : Util.clean(vodDirector);
}
public String getVodActor() {
return TextUtils.isEmpty(vodActor) ? "" : vodActor.trim();
return TextUtils.isEmpty(vodActor) ? "" : Util.clean(vodActor);
}
public String getVodContent() {
return TextUtils.isEmpty(vodContent) ? "" : vodContent.trim().replace("\n", "<br>");
return TextUtils.isEmpty(vodContent) ? "" : Util.clean(vodContent);
}
public String getVodPlayFrom() {

@ -67,8 +67,8 @@ public class ImgUtil {
}
private static Drawable getTextDrawable(String text, boolean rect) {
TextDrawable.Builder builder = new TextDrawable.Builder().withBorder(ResUtil.dp2px(2), ColorGenerator.get700(text));
if (rect) return builder.buildRoundRect(text, ColorGenerator.get400(text), ResUtil.dp2px(8));
TextDrawable.Builder builder = new TextDrawable.Builder();
if (rect) return builder.buildRect(text, ColorGenerator.get400(text));
return builder.buildRound(text, ColorGenerator.get400(text));
}

@ -12,6 +12,7 @@ import android.os.Build;
import android.os.IBinder;
import android.os.Parcelable;
import android.provider.Settings;
import android.text.Html;
import android.text.TextUtils;
import android.view.View;
import android.view.Window;
@ -98,6 +99,13 @@ public class Util {
}
}
public static String clean(String text) {
text = text.replace("\u00A0", "");
text = text.replace("\u3000", "");
text = Html.fromHtml(text, Html.FROM_HTML_MODE_LEGACY).toString();
return text.trim();
}
public static String getAndroidId() {
try {
String id = Settings.Secure.getString(App.get().getContentResolver(), Settings.Secure.ANDROID_ID);

@ -3,9 +3,6 @@
<!-- App -->
<string name="app_name">影视</string>
<!-- Vod -->
<string name="vod_last">上次看到<xliff:g name="name">%s</xliff:g></string>
<!-- Live -->
<string name="live_pass">密码</string>
<string name="live_refresh">刷新</string>

@ -3,9 +3,6 @@
<!-- App -->
<string name="app_name">影視</string>
<!-- Vod -->
<string name="vod_last">上次看到<xliff:g name="name">%s</xliff:g></string>
<!-- Live -->
<string name="live_pass">密碼</string>
<string name="live_refresh">刷新</string>

@ -3,9 +3,6 @@
<!-- App -->
<string name="app_name">TV</string>
<!-- Vod -->
<string name="vod_last">Last seen <xliff:g name="name">%s</xliff:g></string>
<!-- Live -->
<string name="live_pass">Pass</string>
<string name="live_refresh">Refresh</string>

@ -5,6 +5,11 @@
</style>
<style name="Vod.Grid">
<item name="cornerSizeTopLeft">8dp</item>
<item name="cornerSizeTopRight">8dp</item>
</style>
<style name="Vod.Grid.Large">
<item name="cornerSize">8dp</item>
</style>

@ -11,7 +11,6 @@ import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Settings;
import android.text.Html;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.TextUtils;
@ -468,10 +467,10 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
mBinding.video.setTag(item.getVodPic(getPic()));
mBinding.name.setText(item.getVodName(getName()));
setText(mBinding.remark, 0, item.getVodRemarks());
setText(mBinding.content, 0, item.getVodContent());
setText(mBinding.site, R.string.detail_site, getSite().getName());
setText(mBinding.content, 0, Html.fromHtml(item.getVodContent()).toString());
setText(mBinding.actor, R.string.detail_actor, Html.fromHtml(item.getVodActor()).toString());
setText(mBinding.director, R.string.detail_director, Html.fromHtml(item.getVodDirector()).toString());
setText(mBinding.actor, R.string.detail_actor, item.getVodActor());
setText(mBinding.director, R.string.detail_director, item.getVodDirector());
mBinding.contentLayout.setVisibility(mBinding.content.getVisibility());
mFlagAdapter.addAll(item.getVodFlags());
setOther(mBinding.other, item);
@ -540,7 +539,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
private void setPlayer(Result result) {
result.getUrl().set(mQualityAdapter.getPosition());
if (!result.getDesc().isEmpty()) setText(mBinding.content, R.string.detail_content, Html.fromHtml(result.getDesc()).toString());
if (!result.getDesc().isEmpty()) setText(mBinding.content, R.string.detail_content, result.getDesc());
setUseParse(VodConfig.hasParse() && ((result.getPlayUrl().isEmpty() && VodConfig.get().getFlags().contains(result.getFlag())) || result.getJx() == 1));
if (mControlDialog != null && mControlDialog.isVisible()) mControlDialog.setParseVisible(isUseParse());
mBinding.control.parse.setVisibility(isFullscreen() && isUseParse() ? View.VISIBLE : View.GONE);

@ -54,7 +54,7 @@ public class CollectAdapter extends RecyclerView.Adapter<CollectAdapter.ViewHold
public void setActivated(int position) {
for (int i = 0; i < mItems.size(); i++) mItems.get(i).setActivated(i == position);
notifyDataSetChanged();
notifyItemRangeChanged(0, getItemCount());
}
@Override

@ -7,12 +7,10 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.api.config.VodConfig;
import com.fongmi.android.tv.bean.History;
import com.fongmi.android.tv.databinding.AdapterVodBinding;
import com.fongmi.android.tv.utils.ImgUtil;
import com.fongmi.android.tv.utils.ResUtil;
import java.util.ArrayList;
import java.util.List;
@ -81,8 +79,8 @@ public class HistoryAdapter extends RecyclerView.Adapter<HistoryAdapter.ViewHold
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
ViewHolder holder = new ViewHolder(AdapterVodBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
holder.binding.getRoot().getLayoutParams().width = width;
holder.binding.getRoot().getLayoutParams().height = height;
holder.binding.image.getLayoutParams().width = width;
holder.binding.image.getLayoutParams().height = height;
return holder;
}
@ -91,10 +89,12 @@ public class HistoryAdapter extends RecyclerView.Adapter<HistoryAdapter.ViewHold
History item = mItems.get(position);
holder.binding.name.setText(item.getVodName());
holder.binding.site.setText(item.getSiteName());
holder.binding.remark.setText(item.getVodRemarks());
holder.binding.site.setVisibility(item.getSiteVisible());
holder.binding.progress.setMax((int) item.getDuration());
holder.binding.progress.setProgress((int) item.getPosition(), true);
holder.binding.remark.setVisibility(delete ? View.GONE : View.VISIBLE);
holder.binding.delete.setVisibility(!delete ? View.GONE : View.VISIBLE);
holder.binding.remark.setText(ResUtil.getString(R.string.vod_last, item.getVodRemarks()));
ImgUtil.loadVod(item.getVodName(), item.getVodPic(), holder.binding.image);
setClickListener(holder.binding.getRoot(), item);
}

@ -78,8 +78,8 @@ public class KeepAdapter extends RecyclerView.Adapter<KeepAdapter.ViewHolder> {
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
ViewHolder holder = new ViewHolder(AdapterVodBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
holder.binding.getRoot().getLayoutParams().width = width;
holder.binding.getRoot().getLayoutParams().height = height;
holder.binding.image.getLayoutParams().width = width;
holder.binding.image.getLayoutParams().height = height;
return holder;
}
@ -90,6 +90,7 @@ public class KeepAdapter extends RecyclerView.Adapter<KeepAdapter.ViewHolder> {
holder.binding.remark.setVisibility(View.GONE);
holder.binding.site.setVisibility(View.VISIBLE);
holder.binding.site.setText(item.getSiteName());
holder.binding.progress.setVisibility(View.GONE);
holder.binding.delete.setVisibility(!delete ? View.GONE : View.VISIBLE);
ImgUtil.loadVod(item.getVodName(), item.getVodPic(), holder.binding.image);
setClickListener(holder.binding.getRoot(), item);

@ -20,8 +20,8 @@ public class VodRectHolder extends BaseVodHolder {
}
public VodRectHolder size(int[] size) {
binding.getRoot().getLayoutParams().width = size[0];
binding.getRoot().getLayoutParams().height = size[1];
binding.image.getLayoutParams().width = size[0];
binding.image.getLayoutParams().height = size[1];
return this;
}

@ -6,7 +6,7 @@
android:bottomLeftRadius="8dp"
android:bottomRightRadius="8dp" />
<solid android:color="@color/black_50" />
<solid android:color="@color/black_30" />
<padding
android:bottom="6dp"

@ -1,14 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.appcompat.widget.AppCompatTextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:background="@drawable/shape_item"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:padding="8dp"
android:singleLine="true"
android:textColor="@color/text"
android:textSize="14sp"
app:autoSizeMaxTextSize="14sp"
app:autoSizeMinTextSize="12sp"
app:autoSizeStepGranularity="1sp"
app:autoSizeTextType="uniform"
tools:text="泥巴" />

@ -2,15 +2,15 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:foreground="@drawable/shape_vod">
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_width="150dp"
android:layout_height="80dp"
android:background="@color/black_20"
android:scaleType="center"
app:shapeAppearanceOverlay="@style/Vod.Grid"
@ -18,13 +18,17 @@
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/delete"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/image"
android:layout_alignTop="@+id/image"
android:layout_alignEnd="@+id/image"
android:layout_alignBottom="@+id/name"
android:background="@color/black_50"
android:scaleType="center"
android:src="@drawable/ic_action_delete"
android:visibility="gone"
app:shapeAppearanceOverlay="@style/Vod.Grid"
app:shapeAppearanceOverlay="@style/Vod.Grid.Large"
tools:visibility="visible" />
<TextView
@ -43,23 +47,39 @@
android:id="@+id/remark"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/name"
android:layout_above="@+id/progress"
android:background="@drawable/shape_vod_remark"
android:singleLine="true"
android:textColor="@color/white"
android:textSize="12sp"
tools:text="1080p" />
<TextView
<com.google.android.material.progressindicator.LinearProgressIndicator
android:id="@+id/progress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/image"
android:layout_alignStart="@+id/image"
android:layout_alignEnd="@+id/image"
app:indicatorColor="@color/white"
app:trackColor="@color/grey_500" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_below="@+id/progress"
android:layout_alignStart="@+id/image"
android:layout_alignEnd="@+id/image"
android:background="@drawable/shape_vod_name"
android:ellipsize="end"
android:gravity="center"
android:singleLine="true"
android:maxLines="1"
android:textColor="@color/white"
android:textSize="14sp"
app:autoSizeMaxTextSize="14sp"
app:autoSizeMinTextSize="12sp"
app:autoSizeStepGranularity="1sp"
app:autoSizeTextType="uniform"
tools:text="蜘蛛人" />
</RelativeLayout>

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@ -11,13 +10,12 @@
android:orientation="horizontal"
android:padding="12dp">
<com.google.android.material.imageview.ShapeableImageView
<ImageView
android:id="@+id/image"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginEnd="12dp"
android:scaleType="fitCenter"
app:shapeAppearanceOverlay="@style/Vod.Grid"
tools:src="@drawable/ic_img_error" />
<LinearLayout

@ -14,7 +14,7 @@
android:layout_height="match_parent"
android:background="@color/black_10"
android:scaleType="center"
app:shapeAppearanceOverlay="@style/Vod.Grid"
app:shapeAppearanceOverlay="@style/Vod.Grid.Large"
tools:src="@drawable/ic_img_loading" />
<TextView

@ -2,15 +2,15 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:foreground="@drawable/shape_vod">
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_width="150dp"
android:layout_height="80dp"
android:background="@color/black_20"
android:scaleType="center"
app:shapeAppearanceOverlay="@style/Vod.Grid"
@ -51,16 +51,22 @@
android:textSize="12sp"
tools:text="1080p" />
<TextView
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_below="@+id/image"
android:layout_alignStart="@+id/image"
android:layout_alignEnd="@+id/image"
android:background="@drawable/shape_vod_name"
android:ellipsize="end"
android:gravity="center"
android:singleLine="true"
android:maxLines="1"
android:textColor="@color/white"
android:textSize="14sp"
app:autoSizeMaxTextSize="14sp"
app:autoSizeMinTextSize="12sp"
app:autoSizeStepGranularity="1sp"
app:autoSizeTextType="uniform"
tools:text="蜘蛛人" />
</RelativeLayout>
Loading…
Cancel
Save