From d1baa893cc9450db5ccc8cd2c9d5ce3ab652aeb5 Mon Sep 17 00:00:00 2001 From: FongMi Date: Thu, 10 Nov 2022 11:08:08 +0800 Subject: [PATCH] Fix bug --- .../android/tv/ui/activity/HomeActivity.java | 23 ++++++++------- .../android/tv/ui/activity/LiveActivity.java | 2 ++ .../android/tv/ui/custom/CustomTitleView.java | 1 + .../tv/ui/presenter/ArrayPresenter.java | 3 +- app/src/leanback/res/layout/activity_home.xml | 29 ++++++++++++------- .../com/fongmi/android/tv/api/LiveConfig.java | 4 +++ 6 files changed, 40 insertions(+), 22 deletions(-) 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 0c3453fa9..ea3c0a712 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 @@ -58,7 +58,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen private ArrayObjectAdapter mHistoryAdapter; private HistoryPresenter mHistoryPresenter; private SiteViewModel mViewModel; - private boolean mConfirmExit; + private boolean confirm; @Override protected ViewBinding getBinding() { @@ -70,12 +70,12 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen WallConfig.get().init(); LiveConfig.get().init(); ApiConfig.get().init().load(getCallback()); + mBinding.progressLayout.showProgress(); Updater.create(this).start(); Server.get().start(); setRecyclerView(); setViewModel(); setAdapter(); - setFocus(); } @Override @@ -115,26 +115,29 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen mHistoryAdapter = new ArrayObjectAdapter(mHistoryPresenter = new HistoryPresenter(this)); } - private void setFocus() { - mBinding.recycler.requestFocus(); - App.post(() -> mBinding.title.setFocusable(true), 500); - } - private Callback getCallback() { return new Callback() { @Override public void success() { + mBinding.progressLayout.showContent(); getHistory(); getVideo(); + setFocus(); } @Override public void error(int resId) { + mBinding.progressLayout.showContent(); Notify.show(resId); + setFocus(); } }; } + private void setFocus() { + App.post(() -> mBinding.recycler.requestFocus(), 500); + } + private void getVideo() { int index = getRecommendIndex(); mViewModel.getResult().setValue(Result.empty()); @@ -316,10 +319,10 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen mHistoryAdapter.notifyArrayItemRangeChanged(0, mHistoryAdapter.size()); } else if (mBinding.recycler.getSelectedPosition() != 0) { mBinding.recycler.scrollToPosition(0); - } else if (!mConfirmExit) { - mConfirmExit = true; + } else if (!confirm) { + confirm = true; Notify.show(R.string.app_exit); - App.post(() -> mConfirmExit = false, 1000); + App.post(() -> confirm = false, 1000); } else { finish(); } diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index 20ece9848..7eb830dfa 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -165,6 +165,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick getPlayerView().setResizeMode(Prefers.getLiveScale()); getPlayerView().setOnClickListener(view -> onToggle()); getPlayerView().setOnLongClickListener(view -> onLongPress()); + mControl.home.setVisibility(LiveConfig.isOnly() ? View.GONE : View.VISIBLE); mControl.scale.setText(ResUtil.getStringArray(R.array.select_scale)[Prefers.getLiveScale()]); mControl.speed.setText(mPlayers.getSpeed()); } @@ -181,6 +182,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick private void setPosition(int[] position) { if (position[0] == -1) return; + if (mGroupAdapter.size() == 1) return; mGroup = (Group) mGroupAdapter.get(position[0]); mBinding.group.setSelectedPosition(position[0]); mGroup.setPosition(position[1]); diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomTitleView.java b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomTitleView.java index 61372f276..0ebb5c0ec 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomTitleView.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomTitleView.java @@ -35,6 +35,7 @@ public class CustomTitleView extends AppCompatTextView { public void setListener(Listener listener) { this.listener = listener; + setOnClickListener(v -> listener.showDialog()); } @Override diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/presenter/ArrayPresenter.java b/app/src/leanback/java/com/fongmi/android/tv/ui/presenter/ArrayPresenter.java index 950b9b5b9..86604c34e 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/presenter/ArrayPresenter.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/presenter/ArrayPresenter.java @@ -43,7 +43,8 @@ public class ArrayPresenter extends Presenter { String text = object.toString(); holder.binding.text.setText(text); if (text.equals(reverse)) setOnClickListener(holder, view -> mListener.onRevSort()); - if (text.equals(backward) || text.equals(forward)) setOnClickListener(holder, view -> mListener.onRevPlay(holder.binding.text)); + else if (text.equals(backward) || text.equals(forward)) setOnClickListener(holder, view -> mListener.onRevPlay(holder.binding.text)); + else setOnClickListener(holder, null); } @Override diff --git a/app/src/leanback/res/layout/activity_home.xml b/app/src/leanback/res/layout/activity_home.xml index a992ab94d..fcce1b518 100644 --- a/app/src/leanback/res/layout/activity_home.xml +++ b/app/src/leanback/res/layout/activity_home.xml @@ -21,6 +21,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="start" + android:focusable="true" android:text="@string/app_name" android:textColor="@color/white" android:textSize="24sp" /> @@ -36,17 +37,23 @@ - + android:layout_height="match_parent"> + + + \ No newline at end of file diff --git a/app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java b/app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java index 2e35eb3a1..d1fa907e7 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java +++ b/app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java @@ -41,6 +41,10 @@ public class LiveConfig { return get().getLives().indexOf(get().getHome()); } + public static boolean isOnly() { + return get().getLives().size() == 1; + } + public static boolean isEmpty() { return get().getHome() == null; }