Optimize logo

release
FongMi 2 years ago
parent 695effe748
commit 9c446c6559
  1. 134
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  2. 33
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.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<Drawable> getListener() {
return new RequestListener<>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, @NonNull Target<Drawable> 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();

@ -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<Drawable> getListener() {
return new RequestListener<>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, @NonNull Target<Drawable> 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<Drawable> 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)

Loading…
Cancel
Save