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 e76424266..ac1e9c6bd 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 @@ -208,10 +208,6 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen if (!mBinding.title.hasFocus()) mBinding.recycler.requestFocus(); } - private void setLogo() { - Glide.with(this).load(VodConfig.get().getConfig().getLogo()).circleCrop().listener(getListener()).into(mBinding.logo); - } - private void getVideo() { mResult = Result.empty(); int index = getRecommendIndex(); @@ -288,12 +284,16 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen this.loading = loading; } + private void setLogo() { + Glide.with(this).load(VodConfig.get().getConfig().getLogo()).circleCrop().listener(getListener()).into(mBinding.logo); + } + 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; + return false; } @Override @@ -304,6 +304,68 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen }; } + @Subscribe(threadMode = ThreadMode.MAIN) + public void onRefreshEvent(RefreshEvent event) { + super.onRefreshEvent(event); + switch (event.getType()) { + case CONFIG: + setLogo(); + break; + case VIDEO: + getVideo(); + break; + case IMAGE: + int index = getRecommendIndex(); + mAdapter.notifyArrayItemRangeChanged(index, mAdapter.size() - index); + break; + case HISTORY: + getHistory(); + break; + case SIZE: + getVideo(); + getHistory(true); + break; + } + } + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onServerEvent(ServerEvent event) { + switch (event.getType()) { + case SEARCH: + CollectActivity.start(this, event.getText(), true); + break; + case PUSH: + VideoActivity.push(this, event.getText()); + break; + } + } + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onCastEvent(CastEvent event) { + if (VodConfig.get().getConfig().equals(event.getConfig())) { + VideoActivity.cast(this, event.getHistory().update(VodConfig.getCid())); + } else { + VodConfig.load(event.getConfig(), getCallback(event)); + } + } + + private Callback getCallback(CastEvent event) { + return new Callback() { + @Override + public void success() { + RefreshEvent.history(); + RefreshEvent.config(); + RefreshEvent.video(); + onCastEvent(event); + } + + @Override + public void error(String msg) { + Notify.show(msg); + } + }; + } + @Override public void onItemClick(Func item) { switch (item.getResId()) { @@ -391,68 +453,6 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen public void onChanged() { } - @Subscribe(threadMode = ThreadMode.MAIN) - public void onRefreshEvent(RefreshEvent event) { - super.onRefreshEvent(event); - switch (event.getType()) { - case CONFIG: - setLogo(); - break; - case VIDEO: - getVideo(); - break; - case IMAGE: - int index = getRecommendIndex(); - mAdapter.notifyArrayItemRangeChanged(index, mAdapter.size() - index); - break; - case HISTORY: - getHistory(); - break; - case SIZE: - getVideo(); - getHistory(true); - break; - } - } - - @Subscribe(threadMode = ThreadMode.MAIN) - public void onServerEvent(ServerEvent event) { - switch (event.getType()) { - case SEARCH: - CollectActivity.start(this, event.getText(), true); - break; - case PUSH: - VideoActivity.push(this, event.getText()); - break; - } - } - - @Subscribe(threadMode = ThreadMode.MAIN) - public void onCastEvent(CastEvent event) { - if (VodConfig.get().getConfig().equals(event.getConfig())) { - VideoActivity.cast(this, event.getHistory().update(VodConfig.getCid())); - } else { - VodConfig.load(event.getConfig(), getCallback(event)); - } - } - - private Callback getCallback(CastEvent event) { - return new Callback() { - @Override - public void success() { - RefreshEvent.history(); - RefreshEvent.config(); - RefreshEvent.video(); - onCastEvent(event); - } - - @Override - public void error(String msg) { - Notify.show(msg); - } - }; - } - @Override public boolean dispatchKeyEvent(KeyEvent event) { if (KeyUtil.isMenuKey(event)) showDialog(); 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 56e06c6f9..ad0d55158 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 @@ -2,7 +2,7 @@ package com.fongmi.android.tv.ui.fragment; import android.app.Activity; import android.content.Intent; -import android.text.TextUtils; +import android.graphics.drawable.Drawable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -17,6 +17,10 @@ import androidx.viewbinding.ViewBinding; import androidx.viewpager.widget.ViewPager; 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.R; import com.fongmi.android.tv.Setting; @@ -45,6 +49,7 @@ import com.fongmi.android.tv.ui.dialog.LinkDialog; import com.fongmi.android.tv.ui.dialog.ReceiveDialog; import com.fongmi.android.tv.ui.dialog.SiteDialog; import com.fongmi.android.tv.utils.FileChooser; +import com.fongmi.android.tv.utils.ResUtil; import com.github.catvod.net.OkHttp; import com.github.catvod.utils.Trans; import com.google.common.net.HttpHeaders; @@ -243,14 +248,30 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal mBinding.pager.setAdapter(new PageAdapter(getChildFragmentManager())); } + public Result getResult() { + return mResult == null ? new Result() : mResult; + } + 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).placeholder(R.drawable.ic_logo).error(R.drawable.ic_logo).circleCrop().into(mBinding.logo); + Glide.with(this).load(VodConfig.get().getConfig().getLogo()).circleCrop().placeholder(R.drawable.ic_logo).error(R.drawable.ic_logo).listener(getListener()).into(mBinding.logo); } - public Result getResult() { - return mResult == null ? new Result() : mResult; + private RequestListener getListener() { + return new RequestListener<>() { + @Override + public boolean onLoadFailed(@Nullable GlideException e, Object model, @NonNull Target target, boolean isFirstResource) { + mBinding.logo.getLayoutParams().height = ResUtil.dp2px(24); + mBinding.logo.getLayoutParams().width = ResUtil.dp2px(24); + return false; + } + + @Override + public boolean onResourceReady(@NonNull Drawable resource, @NonNull Object model, Target target, @NonNull DataSource dataSource, boolean isFirstResource) { + mBinding.logo.getLayoutParams().height = ResUtil.dp2px(36); + mBinding.logo.getLayoutParams().width = ResUtil.dp2px(36); + return false; + } + }; } @Subscribe(threadMode = ThreadMode.MAIN)