diff --git a/app/build.gradle b/app/build.gradle index ecb8f8a66..cdf217ff7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "com.fongmi.android.tv" minSdk 21 targetSdk 28 - versionCode 230 - versionName "0315" + versionCode 231 + versionName "2.3.1" javaCompileOptions { annotationProcessorOptions { arguments = ["room.schemaLocation": "$projectDir/schemas".toString()] 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 45a652f18..2cd3a33b2 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 @@ -82,6 +82,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen private View mOldView; private boolean confirm; private Clock mClock; + private View mFocus; private Site getHome() { return VodConfig.get().getHome(); @@ -197,6 +198,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen String title = getHome().getName(); mBinding.title.setText(title.isEmpty() ? ResUtil.getString(R.string.app_name) : title); if (getHome().getKey().isEmpty()) return; + mFocus = getCurrentFocus(); getHomeFragment().mBinding.progressLayout.showProgress(); mViewModel.homeContent(); } @@ -211,7 +213,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen mPageAdapter.notifyDataSetChanged(); getHomeFragment().addVideo(result); getHomeFragment().mBinding.progressLayout.showContent(); - setFocus(); + App.post(() -> setFocus(), 200); } private void setPager() { @@ -319,7 +321,8 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen @Override public void error(String msg) { if (TextUtils.isEmpty(msg) && AppDatabase.getBackup().exists()) onRestore(); - getHomeFragment().mBinding.progressLayout.showContent(); + else if (getHomeFragment().init) getHomeFragment().mBinding.progressLayout.showContent(); + else App.post(() -> getHomeFragment().mBinding.progressLayout.showContent(), 1000); mResult = Result.empty(); Notify.show(msg); } @@ -465,8 +468,8 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen private void setFocus() { setLoading(false); - App.post(() -> mBinding.title.setFocusable(true), 500); - if (!mBinding.title.hasFocus()) { + if (!mBinding.title.isFocusable()) App.post(() -> mBinding.title.setFocusable(true), 500); + if (mFocus != mBinding.title) { if (Setting.getHomeUI() == 0) getHomeFragment().mBinding.recycler.requestFocus(); else mBinding.recycler.requestFocus(); } @@ -511,11 +514,11 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen @Override protected void onBackPress() { - if (mBinding.recycler.getSelectedPosition() != 0) { + if (isVisible(mBinding.recycler) && mBinding.recycler.getSelectedPosition() != 0) { mBinding.recycler.scrollToPosition(0); - } else if (mPageAdapter != null && getHomeFragment().mBinding.progressLayout.isProgress()) { + } else if (mPageAdapter != null && getHomeFragment().init && getHomeFragment().mBinding.progressLayout.isProgress()) { getHomeFragment().mBinding.progressLayout.showContent(); - } else if (mPageAdapter != null && getHomeFragment().mPresenter != null && getHomeFragment().mPresenter.isDelete()) { + } else if (mPageAdapter != null && getHomeFragment().init && getHomeFragment().mPresenter != null && getHomeFragment().mPresenter.isDelete()) { getHomeFragment().setHistoryDelete(false); } else if (getHomeFragment().canBack()) { getHomeFragment().goBack(); diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/HomeFragment.java b/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/HomeFragment.java index 2dcdbbfad..325c0e6fc 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/HomeFragment.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/HomeFragment.java @@ -57,6 +57,7 @@ public class HomeFragment extends BaseFragment implements VodPresenter.OnClickLi private ArrayObjectAdapter mHistoryAdapter; public HistoryPresenter mPresenter; private ArrayObjectAdapter mAdapter; + public boolean init; private int homeUI; private String button; @@ -75,6 +76,7 @@ public class HomeFragment extends BaseFragment implements VodPresenter.OnClickLi setRecyclerView(); setAdapter(); initEvent(); + init = true; } @Override