pull/594/head
jhengazuki 4 months ago
parent 0014be31ab
commit b375b63d1d
  1. 9
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  2. 29
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomTitleView.java
  3. 4
      app/src/leanback/res/layout/activity_home.xml

@ -109,7 +109,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
@Override
protected void initEvent() {
mBinding.title.setListener(this);
mBinding.site.setListener(this);
mBinding.recycler.addOnChildViewHolderSelectedListener(new OnChildViewHolderSelectedListener() {
@Override
public void onChildViewHolderSelected(@NonNull RecyclerView parent, @Nullable RecyclerView.ViewHolder child, int position, int subposition) {
@ -203,15 +203,16 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
private void setFocus() {
setLoading(false);
App.post(() -> mBinding.title.setFocusable(true), 500);
if (!mBinding.title.hasFocus()) mBinding.recycler.requestFocus();
mBinding.site.setSelected(true);
App.post(() -> mBinding.site.setFocusable(true), 500);
if (!mBinding.site.hasFocus()) mBinding.recycler.requestFocus();
}
private void getVideo() {
mResult = Result.empty();
int index = getRecommendIndex();
String title = getHome().getName();
mBinding.title.setText(title.isEmpty() ? ResUtil.getString(R.string.app_name) : title);
mBinding.site.setText(title.isEmpty() ? getString(R.string.app_name) : title);
if (mAdapter.size() > index) mAdapter.removeItems(index, mAdapter.size() - index);
if (getHome().getKey().isEmpty()) return;
mViewModel.homeContent();

@ -42,7 +42,7 @@ public class CustomTitleView extends AppCompatTextView {
}
private boolean hasEvent(KeyEvent event) {
return !getSites().isEmpty() && (KeyUtil.isEnterKey(event) || KeyUtil.isLeftKey(event) || KeyUtil.isRightKey(event) || (KeyUtil.isUpKey(event) && !coolDown));
return !getSites().isEmpty() && (KeyUtil.isEnterKey(event) || (KeyUtil.isUpKey(event) && !coolDown));
}
@Override
@ -54,21 +54,14 @@ public class CustomTitleView extends AppCompatTextView {
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (hasEvent(event)) return onKeyDown(event);
else return super.dispatchKeyEvent(event);
if (!hasEvent(event)) return super.dispatchKeyEvent(event);
onKeyDown(event);
return true;
}
private boolean onKeyDown(KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_UP && KeyUtil.isEnterKey(event)) {
listener.showDialog();
} else if (event.getAction() == KeyEvent.ACTION_DOWN && KeyUtil.isLeftKey(event)) {
listener.setSite(getSite(true));
} else if (event.getAction() == KeyEvent.ACTION_DOWN && KeyUtil.isRightKey(event)) {
listener.setSite(getSite(false));
} else if (event.getAction() == KeyEvent.ACTION_DOWN && KeyUtil.isUpKey(event)) {
onKeyUp();
}
return true;
private void onKeyDown(KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_UP && KeyUtil.isEnterKey(event)) listener.showDialog();
else if (event.getAction() == KeyEvent.ACTION_DOWN && KeyUtil.isUpKey(event)) onKeyUp();
}
private void onKeyUp() {
@ -77,14 +70,6 @@ public class CustomTitleView extends AppCompatTextView {
coolDown = true;
}
private Site getSite(boolean next) {
List<Site> items = getSites();
int position = VodConfig.getHomeIndex();
if (next) position = position > 0 ? --position : items.size() - 1;
else position = position < items.size() - 1 ? ++position : 0;
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);

@ -33,11 +33,13 @@
tools:visibility="visible" />
<com.fongmi.android.tv.ui.custom.CustomTitleView
android:id="@+id/title"
android:id="@+id/site"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center|start"
android:ellipsize="marquee"
android:focusable="false"
android:singleLine="true"
android:text="@string/app_name"
android:textColor="@color/white"
android:textSize="24sp" />

Loading…
Cancel
Save