From 473db9b8439dde967ecd3d65f5ce22b6f2afab2f Mon Sep 17 00:00:00 2001 From: FongMi Date: Mon, 6 May 2024 12:06:44 +0800 Subject: [PATCH] Optimize logo --- .../android/tv/ui/activity/HomeActivity.java | 29 +++++++++++++++---- app/src/leanback/res/layout/activity_home.xml | 1 + .../com/fongmi/android/tv/utils/ImgUtil.java | 2 +- .../android/tv/ui/fragment/VodFragment.java | 2 +- .../mobile/res/drawable/ic_action_search.xml | 4 +-- app/src/mobile/res/layout/fragment_vod.xml | 4 +-- 6 files changed, 31 insertions(+), 11 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java index 1e592a088..e76424266 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java @@ -2,6 +2,7 @@ package com.fongmi.android.tv.ui.activity; import android.Manifest; import android.content.Intent; +import android.graphics.drawable.Drawable; import android.text.TextUtils; import android.view.KeyEvent; import android.view.View; @@ -18,6 +19,10 @@ import androidx.viewbinding.ViewBinding; import com.android.cast.dlna.dmr.DLNARendererService; import com.bumptech.glide.Glide; +import com.bumptech.glide.load.DataSource; +import com.bumptech.glide.load.engine.GlideException; +import com.bumptech.glide.request.RequestListener; +import com.bumptech.glide.request.target.Target; import com.fongmi.android.tv.App; import com.fongmi.android.tv.Product; import com.fongmi.android.tv.R; @@ -204,9 +209,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen } private void setLogo() { - String logo = VodConfig.get().getConfig().getLogo(); - mBinding.logo.setVisibility(TextUtils.isEmpty(logo) ? View.GONE : View.VISIBLE); - Glide.with(this).load(logo).error(R.drawable.ic_logo).circleCrop().into(mBinding.logo); + Glide.with(this).load(VodConfig.get().getConfig().getLogo()).circleCrop().listener(getListener()).into(mBinding.logo); } private void getVideo() { @@ -277,14 +280,30 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen return -1; } - public boolean isLoading() { + private boolean isLoading() { return loading; } - public void setLoading(boolean loading) { + private void setLoading(boolean loading) { this.loading = loading; } + private RequestListener getListener() { + return new RequestListener<>() { + @Override + public boolean onLoadFailed(@Nullable GlideException e, Object model, @NonNull Target target, boolean isFirstResource) { + mBinding.logo.setVisibility(View.GONE); + return true; + } + + @Override + public boolean onResourceReady(@NonNull Drawable resource, @NonNull Object model, Target target, @NonNull DataSource dataSource, boolean isFirstResource) { + mBinding.logo.setVisibility(View.VISIBLE); + return false; + } + }; + } + @Override public void onItemClick(Func item) { switch (item.getResId()) { diff --git a/app/src/leanback/res/layout/activity_home.xml b/app/src/leanback/res/layout/activity_home.xml index 706337016..d6a3dc6c1 100644 --- a/app/src/leanback/res/layout/activity_home.xml +++ b/app/src/leanback/res/layout/activity_home.xml @@ -19,6 +19,7 @@ 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 0c94f1a0d..3b55c513b 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 @@ -125,8 +125,8 @@ public class ImgUtil { return new RequestListener<>() { @Override public boolean onLoadFailed(@Nullable GlideException e, Object model, @NonNull Target target, boolean isFirstResource) { - view.setScaleType(scaleType); view.setImageResource(R.drawable.ic_img_error); + view.setScaleType(scaleType); return true; } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java index df1dd0500..56e06c6f9 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java @@ -246,7 +246,7 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal private void setLogo() { String logo = VodConfig.get().getConfig().getLogo(); if (TextUtils.isEmpty(logo)) mBinding.logo.setImageResource(R.drawable.ic_logo); - else Glide.with(this).load(logo).error(R.drawable.ic_logo).circleCrop().into(mBinding.logo); + else Glide.with(this).load(logo).placeholder(R.drawable.ic_logo).error(R.drawable.ic_logo).circleCrop().into(mBinding.logo); } public Result getResult() { diff --git a/app/src/mobile/res/drawable/ic_action_search.xml b/app/src/mobile/res/drawable/ic_action_search.xml index 2eba0128f..5023dc87e 100644 --- a/app/src/mobile/res/drawable/ic_action_search.xml +++ b/app/src/mobile/res/drawable/ic_action_search.xml @@ -1,6 +1,6 @@ diff --git a/app/src/mobile/res/layout/fragment_vod.xml b/app/src/mobile/res/layout/fragment_vod.xml index 2ce09d4c8..f759f4f3a 100644 --- a/app/src/mobile/res/layout/fragment_vod.xml +++ b/app/src/mobile/res/layout/fragment_vod.xml @@ -55,8 +55,8 @@