临时解决TV端全屏黑屏问题 临时恢复点击当前集和全屏功能一致 ps:小窗BUG很多 默认改为关闭 想尝鲜自己打开;很多人反馈更新频繁 后面更新放缓

pull/29/merge
21561 3 years ago
parent 226ca9ca1c
commit 529aad3b55
  1. 14
      app/src/main/java/com/github/tvbox/osc/player/controller/VodController.java
  2. 61
      app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java

@ -260,8 +260,8 @@ public class VodController extends BaseController {
mPlayerBtn.setOnClickListener(new OnClickListener() { mPlayerBtn.setOnClickListener(new OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
myHandle.removeCallbacks(myRunnable); // myHandle.removeCallbacks(myRunnable);
myHandle.postDelayed(myRunnable, myHandleSeconds); // myHandle.postDelayed(myRunnable, myHandleSeconds);
try { try {
int playerType = mPlayerConfig.getInt("pl"); int playerType = mPlayerConfig.getInt("pl");
boolean playerVail = false; boolean playerVail = false;
@ -282,8 +282,7 @@ public class VodController extends BaseController {
updatePlayerCfgView(); updatePlayerCfgView();
listener.updatePlayerCfg(); listener.updatePlayerCfg();
listener.replay(false); listener.replay(false);
view.requestFocus(); hideBottom();
// hideBottom();
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); e.printStackTrace();
} }
@ -292,8 +291,8 @@ public class VodController extends BaseController {
mPlayerIJKBtn.setOnClickListener(new OnClickListener() { mPlayerIJKBtn.setOnClickListener(new OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
myHandle.removeCallbacks(myRunnable); // myHandle.removeCallbacks(myRunnable);
myHandle.postDelayed(myRunnable, myHandleSeconds); // myHandle.postDelayed(myRunnable, myHandleSeconds);
try { try {
String ijk = mPlayerConfig.getString("ijk"); String ijk = mPlayerConfig.getString("ijk");
List<IJKCode> codecs = ApiConfig.get().getIjkCodes(); List<IJKCode> codecs = ApiConfig.get().getIjkCodes();
@ -311,8 +310,7 @@ public class VodController extends BaseController {
updatePlayerCfgView(); updatePlayerCfgView();
listener.updatePlayerCfg(); listener.updatePlayerCfg();
listener.replay(false); listener.replay(false);
view.requestFocus(); hideBottom();
// hideBottom();
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); e.printStackTrace();
} }

@ -1,5 +1,6 @@
package com.github.tvbox.osc.ui.activity; package com.github.tvbox.osc.ui.activity;
import android.annotation.SuppressLint;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.graphics.Rect; import android.graphics.Rect;
@ -61,6 +62,7 @@ import org.json.JSONObject;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
@ -71,6 +73,7 @@ import me.jessyan.autosize.utils.AutoSizeUtils;
* @date :2020/12/22 * @date :2020/12/22
* @description: * @description:
*/ */
public class DetailActivity extends BaseActivity { public class DetailActivity extends BaseActivity {
private LinearLayout llLayout; private LinearLayout llLayout;
private FragmentContainerView llPlayerFragmentContainer; private FragmentContainerView llPlayerFragmentContainer;
@ -156,6 +159,7 @@ public class DetailActivity extends BaseActivity {
tvPlay.setText("全屏"); tvPlay.setText("全屏");
} }
tvSort.setOnClickListener(new View.OnClickListener() { tvSort.setOnClickListener(new View.OnClickListener() {
@SuppressLint("NotifyDataSetChanged")
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (vodInfo != null && vodInfo.seriesMap.size() > 0) { if (vodInfo != null && vodInfo.seriesMap.size() > 0) {
@ -254,7 +258,7 @@ public class DetailActivity extends BaseActivity {
@Override @Override
public void onItemPreSelected(TvRecyclerView parent, View itemView, int position) { public void onItemPreSelected(TvRecyclerView parent, View itemView, int position) {
seriesSelect = false;
} }
@Override @Override
@ -272,21 +276,20 @@ public class DetailActivity extends BaseActivity {
public void onItemClick(BaseQuickAdapter adapter, View view, int position) { public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
FastClickCheckUtil.check(view); FastClickCheckUtil.check(view);
if (vodInfo != null && vodInfo.seriesMap.get(vodInfo.playFlag).size() > 0) { if (vodInfo != null && vodInfo.seriesMap.get(vodInfo.playFlag).size() > 0) {
// boolean reload = false; boolean reload = false;
if (vodInfo.playIndex != position) { if (vodInfo.playIndex != position) {
seriesAdapter.getData().get(vodInfo.playIndex).selected = false; seriesAdapter.getData().get(vodInfo.playIndex).selected = false;
seriesAdapter.notifyItemChanged(vodInfo.playIndex); seriesAdapter.notifyItemChanged(vodInfo.playIndex);
seriesAdapter.getData().get(position).selected = true; seriesAdapter.getData().get(position).selected = true;
seriesAdapter.notifyItemChanged(position); seriesAdapter.notifyItemChanged(position);
vodInfo.playIndex = position; vodInfo.playIndex = position;
// reload = true; reload=true;
} }
seriesAdapter.getData().get(vodInfo.playIndex).selected = true; seriesAdapter.getData().get(vodInfo.playIndex).selected = true;
seriesAdapter.notifyItemChanged(vodInfo.playIndex); seriesAdapter.notifyItemChanged(vodInfo.playIndex);
//选集全屏 想选集不全屏的注释下面一行 //选集全屏 想选集不全屏的注释下面一行
if (showPreview && !fullWindows) toggleFullPreview(); if (showPreview && !fullWindows) toggleFullPreview();
// if (!showPreview || reload) jumpToPlay(); if (!showPreview || reload) jumpToPlay();
jumpToPlay();
} }
} }
}); });
@ -508,8 +511,8 @@ public class DetailActivity extends BaseActivity {
private String searchTitle = ""; private String searchTitle = "";
private boolean hadQuickStart = false; private boolean hadQuickStart = false;
private List<Movie.Video> quickSearchData = new ArrayList<>(); private final List<Movie.Video> quickSearchData = new ArrayList<>();
private List<String> quickSearchWord = new ArrayList<>(); private final List<String> quickSearchWord = new ArrayList<>();
private ExecutorService searchExecutorService = null; private ExecutorService searchExecutorService = null;
private void switchSearchWord(String word) { private void switchSearchWord(String word) {
@ -684,9 +687,9 @@ public class DetailActivity extends BaseActivity {
boolean fullWindows = false; boolean fullWindows = false;
ViewGroup.LayoutParams windowsPreview = null; ViewGroup.LayoutParams windowsPreview = null;
ViewGroup.LayoutParams windowsFull = null; ViewGroup.LayoutParams windowsFull = null;
ViewGroup playerParent = null; // ViewGroup playerParent = null;
View playerRoot = null; // View playerRoot = null;
ViewGroup llLayoutParent = null; // ViewGroup llLayoutParent = null;
void toggleFullPreview() { void toggleFullPreview() {
if (windowsPreview == null) { if (windowsPreview == null) {
@ -695,26 +698,26 @@ public class DetailActivity extends BaseActivity {
if (windowsFull == null) { if (windowsFull == null) {
windowsFull = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); windowsFull = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
} }
if (playerRoot == null)
playerRoot = (View) llPlayerFragmentContainer.findViewById(R.id.mVideoView).getParent();
if (playerParent == null) {
playerParent = (ViewGroup) playerRoot.getParent();
}
if (llLayoutParent == null)
llLayoutParent = (ViewGroup) llLayout.getParent();
fullWindows = !fullWindows; fullWindows = !fullWindows;
// llPlayerFragmentContainer.setLayoutParams(fullWindows ? windowsFull : windowsPreview); // if (playerRoot == null)
if (fullWindows) { // playerRoot = (View) llPlayerFragmentContainer.findViewById(R.id.mVideoView).getParent();
playerParent.removeView(playerRoot); //
((ViewGroup) getWindow().getDecorView()).addView(playerRoot); // if (playerParent == null) {
llLayoutParent.removeView(llLayout); // playerParent = (ViewGroup) playerRoot.getParent();
} else { // }
((ViewGroup) getWindow().getDecorView()).removeView(playerRoot); // if (llLayoutParent == null)
playerParent.addView(playerRoot); // llLayoutParent = (ViewGroup) llLayout.getParent();
llLayoutParent.addView(llLayout);
} // if (fullWindows) {
// playerParent.removeView(playerRoot);
// ((ViewGroup) getWindow().getDecorView()).addView(playerRoot);
// llLayoutParent.removeView(llLayout);
// } else {
// ((ViewGroup) getWindow().getDecorView()).removeView(playerRoot);
// playerParent.addView(playerRoot);
// llLayoutParent.addView(llLayout);
// }
llPlayerFragmentContainerBlock.setVisibility(fullWindows ? View.GONE : View.VISIBLE); llPlayerFragmentContainerBlock.setVisibility(fullWindows ? View.GONE : View.VISIBLE);
llPlayerFragmentContainer.setLayoutParams(fullWindows ? windowsFull : windowsPreview);
} }
} }

Loading…
Cancel
Save