pull/605/head
jhengazuji 5 months ago
parent 45507d8034
commit 813953d375
  1. 31
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  2. 27
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomTitleView.java

@ -82,7 +82,6 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
private ArrayObjectAdapter mAdapter;
private HistoryPresenter mPresenter;
private SiteViewModel mViewModel;
private boolean loading;
private Result mResult;
private Clock mClock;
@ -188,11 +187,9 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
}
private void initConfig() {
if (isLoading()) return;
WallConfig.get().init();
LiveConfig.get().init().load();
VodConfig.get().init().load(getCallback());
setLoading(true);
}
private Callback getCallback() {
@ -204,26 +201,27 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
@Override
public void success() {
mBinding.progressLayout.showContent();
checkAction(getIntent());
showContent();
getHistory();
getVideo();
setFocus();
setFunc();
setLogo();
}
@Override
public void error(String msg) {
mBinding.progressLayout.showContent();
checkAction(getIntent());
Notify.show(msg);
setFocus();
setFunc();
showContent();
}
};
}
private void showContent() {
mBinding.progressLayout.showContent();
checkAction(getIntent());
setFocus();
setFunc();
}
private void loadLive(String url) {
LiveConfig.load(Config.find(url, 1), new Callback() {
@Override
@ -234,7 +232,6 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
}
private void setFocus() {
setLoading(false);
mBinding.title.setSelected(true);
App.post(() -> mBinding.title.setFocusable(true), 500);
if (!mBinding.title.hasFocus()) mBinding.recycler.requestFocus();
@ -312,14 +309,6 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
return mAdapter.indexOf(R.string.home_recommend) + 1;
}
private boolean isLoading() {
return loading;
}
private void setLoading(boolean loading) {
this.loading = loading;
}
private void setLogo() {
ImgUtil.logo(mBinding.logo);
}
@ -481,7 +470,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
@Override
protected void onBackInvoked() {
if (mBinding.progressLayout.isProgress()) {
mBinding.progressLayout.showContent();
showContent();
} else if (mPresenter.isDelete()) {
setHistoryDelete(false);
} else if (mBinding.recycler.getSelectedPosition() != 0) {

@ -18,8 +18,8 @@ import com.fongmi.android.tv.impl.SiteCallback;
import com.fongmi.android.tv.utils.KeyUtil;
import com.fongmi.android.tv.utils.ResUtil;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class CustomTitleView extends AppCompatTextView {
@ -27,6 +27,10 @@ public class CustomTitleView extends AppCompatTextView {
private Animation flicker;
private boolean coolDown;
private Site getHome() {
return VodConfig.get().getHome();
}
public CustomTitleView(@NonNull Context context) {
super(context);
}
@ -42,7 +46,7 @@ public class CustomTitleView extends AppCompatTextView {
}
private boolean hasEvent(KeyEvent event) {
return !getSites().isEmpty() && (KeyUtil.isEnterKey(event) || (KeyUtil.isUpKey(event) && !coolDown));
return !getHome().isEmpty() && (KeyUtil.isLeftKey(event) || KeyUtil.isRightKey(event) || (KeyUtil.isUpKey(event) && !coolDown));
}
@Override
@ -60,8 +64,9 @@ public class CustomTitleView extends AppCompatTextView {
}
private void onKeyDown(KeyEvent event) {
if (KeyUtil.isActionUp(event) && KeyUtil.isEnterKey(event)) listener.showDialog();
else if (KeyUtil.isActionDown(event) && KeyUtil.isUpKey(event)) onKeyUp();
if (KeyUtil.isActionDown(event) && KeyUtil.isUpKey(event)) onKeyUp();
else if (KeyUtil.isActionDown(event) && KeyUtil.isLeftKey(event)) listener.setSite(getSite(false));
else if (KeyUtil.isActionDown(event) && KeyUtil.isRightKey(event)) listener.setSite(getSite(true));
}
private void onKeyUp() {
@ -70,10 +75,18 @@ public class CustomTitleView extends AppCompatTextView {
coolDown = true;
}
private Site getSite(boolean next) {
List<Site> items = getSites();
if (items.isEmpty()) return new Site();
int position = items.indexOf(getHome());
if (position < 0) position = 0;
if (next) position = (position + 1) % items.size();
else position = (position - 1 + items.size()) % items.size();
return items.get(position);
}
private List<Site> getSites() {
List<Site> items = new ArrayList<>();
for (Site site : VodConfig.get().getSites()) if (!site.isHide()) items.add(site);
return items;
return VodConfig.get().getSites().stream().filter(site -> !site.isHide()).collect(Collectors.toList());
}
public interface Listener extends SiteCallback {

Loading…
Cancel
Save