diff --git a/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java b/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java index 925cdb8b..1dcdcaad 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java @@ -191,6 +191,7 @@ public class DetailActivity extends BaseActivity { getSupportFragmentManager().beginTransaction().show(playFragment).commitAllowingStateLoss(); tvPlay.setText("全屏"); } + llPlayerFragmentContainerBlock.setFocusable(showPreview); mSeriesGroupView = findViewById(R.id.mSeriesGroupView); tvSeriesGroup = findViewById(R.id.mSeriesGroupTv); @@ -353,6 +354,16 @@ public class DetailActivity extends BaseActivity { public void onItemClick(TvRecyclerView parent, View itemView, int position) { } }); + mGridView.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public void onFocusChange(View v, boolean hasFocus) { + if (hasFocus && vodInfo.playIndex != -1) { + // 当获得焦点且有目标位置时,执行滚动和聚焦 + LOG.i("echo-onFocusChange"); + mGridView.setSelection(vodInfo.playIndex); + } + } + }); mGridViewFlag.setOnItemListener(new TvRecyclerView.OnItemListener() { private void refresh(View itemView, int position) { String newFlag = seriesFlagAdapter.getData().get(position).name; @@ -374,6 +385,7 @@ public class DetailActivity extends BaseActivity { vodInfo.playFlag = newFlag; seriesFlagAdapter.notifyItemChanged(position); refreshList(); + mGridView.clearFocus(); } seriesFlagFocus = itemView; } @@ -475,7 +487,6 @@ public class DetailActivity extends BaseActivity { } }); - llPlayerFragmentContainerBlock.setFocusable(showPreview); if(showPreview){ llPlayerFragmentContainerBlock.requestFocus(); }else { diff --git a/app/src/main/java/com/github/tvbox/osc/ui/activity/HomeActivity.java b/app/src/main/java/com/github/tvbox/osc/ui/activity/HomeActivity.java index 2a6cfc69..0e375cb5 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/activity/HomeActivity.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/activity/HomeActivity.java @@ -346,7 +346,7 @@ public class HomeActivity extends BaseActivity { @Override public void run() { Toast.makeText(HomeActivity.this, msg+"; 尝试加载最近一次的jar", Toast.LENGTH_SHORT).show(); - initData(); + refreshHome(); } },50); } diff --git a/gradle.properties b/gradle.properties index 8b1a2183..e86424f0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,4 +17,4 @@ android.useAndroidX=true # Automatically convert third-party libraries to use AndroidX android.enableJetifier=true IsDebug=true -#org.gradle.jvmargs=-Xmx2048m --add-opens java.base/java.io=ALL-UNNAMED +org.gradle.jvmargs=-Xmx2048m --add-opens java.base/java.io=ALL-UNNAMED