diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Vod.java b/app/src/main/java/com/fongmi/android/tv/bean/Vod.java index d09f020c4..4a0ab312a 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Vod.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Vod.java @@ -104,7 +104,7 @@ public class Vod { } public String getVodRemarks() { - return TextUtils.isEmpty(vodRemarks) ? "" : vodRemarks; + return TextUtils.isEmpty(vodRemarks) ? "" : vodRemarks.trim(); } public String getVodYear() { diff --git a/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java b/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java index 52b6417d5..a68526141 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/ImgUtil.java @@ -25,9 +25,13 @@ import java.io.ByteArrayOutputStream; public class ImgUtil { public static void load(String url, ImageView view) { - view.setScaleType(ImageView.ScaleType.CENTER); + load(url, view, ImageView.ScaleType.CENTER); + } + + public static void load(String url, ImageView view, ImageView.ScaleType scaleType) { + view.setScaleType(scaleType); if (TextUtils.isEmpty(url)) view.setImageResource(R.drawable.ic_img_error); - else Glide.with(App.get()).asBitmap().load(getUrl(Utils.checkProxy(url))).skipMemoryCache(true).dontAnimate().sizeMultiplier(Prefers.getThumbnail()).signature(new ObjectKey(url + "_" + Prefers.getQuality())).placeholder(R.drawable.ic_img_loading).listener(getListener(view)).into(view); + else Glide.with(App.get()).asBitmap().load(getUrl(Utils.checkProxy(url))).skipMemoryCache(true).dontAnimate().sizeMultiplier(Prefers.getThumbnail()).signature(new ObjectKey(url + "_" + Prefers.getQuality())).placeholder(R.drawable.ic_img_loading).listener(getListener(view, scaleType)).into(view); } public static void loadKeep(String url, ImageView view) { @@ -56,10 +60,14 @@ public class ImgUtil { } private static RequestListener getListener(ImageView view) { + return getListener(view, ImageView.ScaleType.CENTER); + } + + private static RequestListener getListener(ImageView view, ImageView.ScaleType scaleType) { return new RequestListener<>() { @Override public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) { - view.setScaleType(ImageView.ScaleType.CENTER); + view.setScaleType(scaleType); view.setImageResource(R.drawable.ic_img_error); return true; } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/VodAdapter.java b/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/VodAdapter.java index afad3baea..82868f192 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/VodAdapter.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/VodAdapter.java @@ -7,9 +7,11 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.fongmi.android.tv.bean.Vod; +import com.fongmi.android.tv.databinding.AdapterVodFolderBinding; import com.fongmi.android.tv.databinding.AdapterVodGridBinding; import com.fongmi.android.tv.databinding.AdapterVodListBinding; import com.fongmi.android.tv.ui.custom.ViewType; +import com.fongmi.android.tv.ui.holder.VodFolderHolder; import com.fongmi.android.tv.ui.holder.VodGridHolder; import com.fongmi.android.tv.ui.holder.VodListHolder; @@ -78,6 +80,7 @@ public class VodAdapter extends RecyclerView.Adapter { @NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + if (viewType == ViewType.FOLDER) return new VodFolderHolder(AdapterVodFolderBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false), mListener); if (viewType == ViewType.LIST) return new VodListHolder(AdapterVodListBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false), mListener); VodGridHolder holder = new VodGridHolder(AdapterVodGridBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false), mListener); holder.itemView.getLayoutParams().width = width; @@ -89,12 +92,13 @@ public class VodAdapter extends RecyclerView.Adapter { public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { switch (viewType) { case ViewType.GRID: - VodGridHolder gridHolder = (VodGridHolder) holder; - gridHolder.initView(mItems.get(position)); + ((VodGridHolder) holder).initView(mItems.get(position)); break; case ViewType.LIST: - VodListHolder listHolder = (VodListHolder) holder; - listHolder.initView(mItems.get(position)); + ((VodListHolder) holder).initView(mItems.get(position)); + break; + case ViewType.FOLDER: + ((VodFolderHolder) holder).initView(mItems.get(position)); break; } } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/custom/ViewType.java b/app/src/mobile/java/com/fongmi/android/tv/ui/custom/ViewType.java index 3b611066d..fb23d3a87 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/custom/ViewType.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/custom/ViewType.java @@ -4,4 +4,5 @@ public class ViewType { public static final int GRID = 0; public static final int LIST = 1; + public static final int FOLDER = 2; } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/TypeFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/TypeFragment.java index 81477e311..83a5dec84 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/TypeFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/TypeFragment.java @@ -8,6 +8,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.LinearLayoutManager; import androidx.viewbinding.ViewBinding; import com.fongmi.android.tv.Product; @@ -21,6 +22,7 @@ import com.fongmi.android.tv.ui.activity.DetailActivity; import com.fongmi.android.tv.ui.adapter.VodAdapter; import com.fongmi.android.tv.ui.base.BaseFragment; import com.fongmi.android.tv.ui.custom.CustomScroller; +import com.fongmi.android.tv.ui.custom.ViewType; import java.util.ArrayList; import java.util.HashMap; @@ -81,7 +83,8 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac private void setRecyclerView() { mBinding.recycler.setHasFixedSize(true); mBinding.recycler.setAdapter(mAdapter = new VodAdapter(this)); - mBinding.recycler.setLayoutManager(new GridLayoutManager(getContext(), Product.getColumn())); + mBinding.recycler.setLayoutManager(isFolder() ? new LinearLayoutManager(getActivity()) : new GridLayoutManager(getContext(), Product.getColumn())); + mAdapter.setViewType(isFolder() ? ViewType.FOLDER : ViewType.GRID); mAdapter.setSize(Product.getSpec(getActivity())); } diff --git a/app/src/mobile/res/drawable/ic_view_grid.xml b/app/src/mobile/res/drawable/ic_view_grid.xml index ecfe8213d..329dc7b26 100644 --- a/app/src/mobile/res/drawable/ic_view_grid.xml +++ b/app/src/mobile/res/drawable/ic_view_grid.xml @@ -1,11 +1,10 @@ + android:tint="@color/white" + android:viewportWidth="960" + android:viewportHeight="960"> + android:pathData="M180,450Q155.25,450 137.63,432.38Q120,414.75 120,390L120,180Q120,155.25 137.63,137.63Q155.25,120 180,120L390,120Q414.75,120 432.38,137.63Q450,155.25 450,180L450,390Q450,414.75 432.38,432.38Q414.75,450 390,450L180,450ZM180,840Q155.25,840 137.63,822.38Q120,804.75 120,780L120,570Q120,545.25 137.63,527.63Q155.25,510 180,510L390,510Q414.75,510 432.38,527.63Q450,545.25 450,570L450,780Q450,804.75 432.38,822.38Q414.75,840 390,840L180,840ZM570,450Q545.25,450 527.63,432.38Q510,414.75 510,390L510,180Q510,155.25 527.63,137.63Q545.25,120 570,120L780,120Q804.75,120 822.38,137.63Q840,155.25 840,180L840,390Q840,414.75 822.38,432.38Q804.75,450 780,450L570,450ZM570,840Q545.25,840 527.63,822.38Q510,804.75 510,780L510,570Q510,545.25 527.63,527.63Q545.25,510 570,510L780,510Q804.75,510 822.38,527.63Q840,545.25 840,570L840,780Q840,804.75 822.38,822.38Q804.75,840 780,840L570,840ZM180,390L390,390L390,180L180,180L180,390ZM570,390L780,390L780,180L570,180L570,390ZM570,780L780,780L780,570L570,570L570,780ZM180,780L390,780L390,570L180,570L180,780ZM570,390L570,390L570,390L570,390L570,390ZM570,570L570,570L570,570L570,570L570,570ZM390,570L390,570L390,570L390,570L390,570ZM390,390L390,390L390,390L390,390L390,390Z" /> diff --git a/app/src/mobile/res/drawable/ic_view_list.xml b/app/src/mobile/res/drawable/ic_view_list.xml index 4012c345b..c4ddc21d9 100644 --- a/app/src/mobile/res/drawable/ic_view_list.xml +++ b/app/src/mobile/res/drawable/ic_view_list.xml @@ -1,10 +1,10 @@ + android:tint="@color/white" + android:viewportWidth="960" + android:viewportHeight="960"> + android:pathData="M320,340Q307.25,340 298.63,331.33Q290,322.65 290,309.83Q290,297 298.63,288.5Q307.25,280 320,280L810,280Q822.75,280 831.38,288.67Q840,297.35 840,310.17Q840,323 831.38,331.5Q822.75,340 810,340L320,340ZM320,510Q307.25,510 298.63,501.33Q290,492.65 290,479.83Q290,467 298.63,458.5Q307.25,450 320,450L810,450Q822.75,450 831.38,458.67Q840,467.35 840,480.17Q840,493 831.38,501.5Q822.75,510 810,510L320,510ZM320,680Q307.25,680 298.63,671.33Q290,662.65 290,649.83Q290,637 298.63,628.5Q307.25,620 320,620L810,620Q822.75,620 831.38,628.67Q840,637.35 840,650.17Q840,663 831.38,671.5Q822.75,680 810,680L320,680ZM149.82,340Q137,340 128.5,331.33Q120,322.65 120,309.83Q120,297 128.68,288.5Q137.35,280 150.18,280Q163,280 171.5,288.67Q180,297.35 180,310.17Q180,323 171.32,331.5Q162.65,340 149.82,340ZM149.82,510Q137,510 128.5,501.33Q120,492.65 120,479.83Q120,467 128.68,458.5Q137.35,450 150.18,450Q163,450 171.5,458.67Q180,467.35 180,480.17Q180,493 171.32,501.5Q162.65,510 149.82,510ZM149.82,680Q137,680 128.5,671.33Q120,662.65 120,649.83Q120,637 128.68,628.5Q137.35,620 150.18,620Q163,620 171.5,628.67Q180,637.35 180,650.17Q180,663 171.32,671.5Q162.65,680 149.82,680Z" /> diff --git a/app/src/mobile/res/layout/adapter_vod_grid.xml b/app/src/mobile/res/layout/adapter_vod_grid.xml index 9b27a36ef..36d17bbf1 100644 --- a/app/src/mobile/res/layout/adapter_vod_grid.xml +++ b/app/src/mobile/res/layout/adapter_vod_grid.xml @@ -22,7 +22,6 @@ android:layout_height="wrap_content" android:layout_marginTop="8dp" android:background="#CC2196F3" - android:ellipsize="end" android:padding="4dp" android:singleLine="true" android:textColor="@color/white" @@ -37,7 +36,6 @@ android:layout_height="wrap_content" android:layout_marginTop="8dp" android:background="#CCF44336" - android:ellipsize="end" android:padding="4dp" android:singleLine="true" android:textColor="@color/white" @@ -52,7 +50,6 @@ android:layout_height="wrap_content" android:layout_above="@+id/name" android:background="#CC177535" - android:ellipsize="end" android:padding="4dp" android:singleLine="true" android:textColor="@color/white" diff --git a/app/src/mobile/res/layout/adapter_vod_list.xml b/app/src/mobile/res/layout/adapter_vod_list.xml index 7f047aaa5..0f2d0f937 100644 --- a/app/src/mobile/res/layout/adapter_vod_list.xml +++ b/app/src/mobile/res/layout/adapter_vod_list.xml @@ -71,7 +71,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="4dp" - android:ellipsize="end" android:singleLine="true" android:textColor="@color/white" android:textSize="12sp"