From 17e7c82bcaea49b14982fbeb607b7d5c9b486da6 Mon Sep 17 00:00:00 2001 From: okjack Date: Thu, 25 Jan 2024 20:29:04 +0800 Subject: [PATCH] Home --- .../java/com/fongmi/android/tv/bean/Func.java | 25 +++++++++++++++++++ .../android/tv/ui/activity/HomeActivity.java | 2 ++ .../tv/ui/presenter/FuncPresenter.java | 3 +++ 3 files changed, 30 insertions(+) diff --git a/app/src/leanback/java/com/fongmi/android/tv/bean/Func.java b/app/src/leanback/java/com/fongmi/android/tv/bean/Func.java index cfe00ebc7..bc7fa88fc 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/bean/Func.java +++ b/app/src/leanback/java/com/fongmi/android/tv/bean/Func.java @@ -1,6 +1,7 @@ package com.fongmi.android.tv.bean; import android.annotation.SuppressLint; +import android.view.View; import com.fongmi.android.tv.R; import com.fongmi.android.tv.utils.ResUtil; @@ -8,7 +9,10 @@ import com.fongmi.android.tv.utils.ResUtil; public class Func { private final int resId; + private final int id; private int drawable; + private int nextFocusLeft; + private int nextFocusRight; public static Func create(int resId) { return new Func(resId); @@ -16,6 +20,7 @@ public class Func { public Func(int resId) { this.resId = resId; + this.id = View.generateViewId(); this.setDrawable(); } @@ -23,10 +28,30 @@ public class Func { return resId; } + public int getId() { + return id; + } + public int getDrawable() { return drawable; } + public int getNextFocusLeft() { + return nextFocusLeft; + } + + public void setNextFocusLeft(int nextFocusLeft) { + this.nextFocusLeft = nextFocusLeft; + } + + public int getNextFocusRight() { + return nextFocusRight; + } + + public void setNextFocusRight(int nextFocusRight) { + this.nextFocusRight = nextFocusRight; + } + public String getText() { return ResUtil.getString(resId); } 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 32b9642db..288ec4ffd 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 @@ -238,6 +238,8 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen adapter.add(Func.create(R.string.home_keep)); adapter.add(Func.create(R.string.home_push)); adapter.add(Func.create(R.string.home_setting)); + ((Func) adapter.get(0)).setNextFocusLeft(((Func) adapter.get(adapter.size() - 1)).getId()); + ((Func) adapter.get(adapter.size() - 1)).setNextFocusRight(((Func) adapter.get(0)).getId()); return new ListRow(adapter); } diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/presenter/FuncPresenter.java b/app/src/leanback/java/com/fongmi/android/tv/ui/presenter/FuncPresenter.java index fedccc770..e8a2d44a2 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/presenter/FuncPresenter.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/presenter/FuncPresenter.java @@ -30,8 +30,11 @@ public class FuncPresenter extends Presenter { public void onBindViewHolder(Presenter.ViewHolder viewHolder, Object object) { Func item = (Func) object; ViewHolder holder = (ViewHolder) viewHolder; + holder.binding.getRoot().setId(item.getId()); holder.binding.text.setText(item.getText()); holder.binding.icon.setImageResource(item.getDrawable()); + if (item.getNextFocusLeft() > 0) holder.binding.getRoot().setNextFocusLeftId(item.getNextFocusLeft()); + if (item.getNextFocusRight() > 0) holder.binding.getRoot().setNextFocusRightId(item.getNextFocusRight()); setOnClickListener(holder, view -> mListener.onItemClick(item)); }