diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
index ed29ed300..ba98affc5 100644
--- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
+++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
@@ -43,6 +43,7 @@ import com.fongmi.android.tv.utils.Notify;
import com.fongmi.android.tv.utils.Prefers;
import com.fongmi.android.tv.utils.ResUtil;
import com.google.android.exoplayer2.Player;
+import com.google.android.exoplayer2.ui.StyledPlayerView;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
@@ -89,6 +90,10 @@ public class DetailActivity extends BaseActivity implements CustomKeyDown.Listen
return 0;
}
+ private StyledPlayerView getPlayerView() {
+ return Prefers.getRender() == 0 ? mBinding.surface : mBinding.texture;
+ }
+
public static void start(Activity activity, String id) {
start(activity, ApiConfig.get().getHome().getKey(), id);
}
@@ -104,7 +109,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDown.Listen
@Override
protected ViewBinding getBinding() {
mBinding = ActivityDetailBinding.inflate(getLayoutInflater());
- mControl = ViewControllerBottomBinding.bind(mBinding.video.findViewById(com.google.android.exoplayer2.ui.R.id.exo_controller));
+ mControl = ViewControllerBottomBinding.bind(getPlayerView().findViewById(com.google.android.exoplayer2.ui.R.id.exo_controller));
return mBinding;
}
@@ -175,9 +180,10 @@ public class DetailActivity extends BaseActivity implements CustomKeyDown.Listen
}
private void setVideoView() {
- mBinding.video.setPlayer(Players.get().exo());
- mBinding.video.setResizeMode(Prefers.getScale());
- mBinding.video.getSubtitleView().setStyle(ExoUtil.getCaptionStyle());
+ getPlayerView().setVisibility(View.VISIBLE);
+ getPlayerView().setPlayer(Players.get().exo());
+ getPlayerView().setResizeMode(Prefers.getScale());
+ getPlayerView().getSubtitleView().setStyle(ExoUtil.getCaptionStyle());
mControl.speed.setText(Players.get().getSpeed());
mControl.scale.setText(ResUtil.getStringArray(R.array.select_scale)[Prefers.getScale()]);
mControl.interval.setText(ResUtil.getString(R.string.second, Prefers.getInterval()));
@@ -309,7 +315,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDown.Listen
private void enterFullscreen() {
mBinding.video.setForeground(null);
mBinding.video.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT));
- mHandler.postDelayed(() -> mBinding.video.setUseController(true), 250);
+ mHandler.postDelayed(() -> getPlayerView().setUseController(true), 250);
mBinding.flag.setSelectedPosition(mCurrent);
mFullscreen = true;
}
@@ -317,7 +323,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDown.Listen
private void exitFullscreen() {
mBinding.video.setForeground(ResUtil.getDrawable(R.drawable.selector_video));
mBinding.video.setLayoutParams(mFrameParams);
- mBinding.video.setUseController(false);
+ getPlayerView().setUseController(false);
mFullscreen = false;
}
@@ -349,8 +355,8 @@ public class DetailActivity extends BaseActivity implements CustomKeyDown.Listen
}
private void onScale() {
- int scale = mBinding.video.getResizeMode();
- mBinding.video.setResizeMode(scale = scale >= 4 ? 0 : scale + 1);
+ int scale = getPlayerView().getResizeMode();
+ getPlayerView().setResizeMode(scale = scale >= 4 ? 0 : scale + 1);
mControl.scale.setText(ResUtil.getStringArray(R.array.select_scale)[scale]);
Prefers.putScale(scale);
}
@@ -530,7 +536,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDown.Listen
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
- if (mFullscreen && !mBinding.video.isControllerFullyVisible() && mKeyDown.hasEvent(event)) return mKeyDown.onKeyDown(event);
+ if (mFullscreen && !getPlayerView().isControllerFullyVisible() && mKeyDown.hasEvent(event)) return mKeyDown.onKeyDown(event);
else return super.dispatchKeyEvent(event);
}
@@ -552,7 +558,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDown.Listen
@Override
public void onKeyDown() {
- mBinding.video.showController();
+ getPlayerView().showController();
mControl.next.requestFocus();
}
@@ -583,8 +589,8 @@ public class DetailActivity extends BaseActivity implements CustomKeyDown.Listen
@Override
public void onBackPressed() {
- if (mBinding.video.isControllerFullyVisible()) {
- mBinding.video.hideController();
+ if (getPlayerView().isControllerFullyVisible()) {
+ getPlayerView().hideController();
} else if (mFullscreen) {
exitFullscreen();
} else {
diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java
index 6f135ea2e..9706f7e3f 100644
--- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java
+++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java
@@ -53,6 +53,7 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
protected void initView() {
mBinding.url.setText(Prefers.getUrl());
mBinding.home.setText(ApiConfig.getHomeName());
+ mBinding.type.setText(ResUtil.getStringArray(R.array.select_render)[Prefers.getRender()]);
mBinding.compress.setText(ResUtil.getStringArray(R.array.select_thumbnail)[Prefers.getThumbnail()]);
}
@@ -62,6 +63,7 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
mBinding.config.setOnClickListener(view -> ConfigDialog.show(this));
mBinding.history.setOnClickListener(view -> HistoryDialog.show(this));
mBinding.thumbnail.setOnClickListener(this::setThumbnail);
+ mBinding.render.setOnClickListener(this::setRender);
}
@Override
@@ -129,4 +131,12 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
mBinding.compress.setText(array[index]);
RefreshEvent.image();
}
+
+ public void setRender(View view) {
+ CharSequence[] array = ResUtil.getStringArray(R.array.select_render);
+ int index = Prefers.getRender();
+ index = index == 1 ? 0 : ++index;
+ Prefers.putRender(index);
+ mBinding.type.setText(array[index]);
+ }
}
diff --git a/app/src/leanback/res/layout/activity_detail.xml b/app/src/leanback/res/layout/activity_detail.xml
index 1175af221..31bcf9665 100644
--- a/app/src/leanback/res/layout/activity_detail.xml
+++ b/app/src/leanback/res/layout/activity_detail.xml
@@ -7,7 +7,7 @@
android:layout_height="match_parent"
android:keepScreenOn="true">
-
+ android:foreground="@drawable/selector_video">
+
+
+
+
-
+
-
+ android:background="@drawable/selector_item"
+ android:focusable="true"
+ android:focusableInTouchMode="true"
+ android:orientation="horizontal">
-
+
+
+
+
+
+
+ android:layout_weight="1"
+ android:background="@drawable/selector_item"
+ android:focusable="true"
+ android:focusableInTouchMode="true"
+ android:orientation="horizontal">
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/fongmi/android/tv/utils/Prefers.java b/app/src/main/java/com/fongmi/android/tv/utils/Prefers.java
index 82d27c10e..3352a9d49 100644
--- a/app/src/main/java/com/fongmi/android/tv/utils/Prefers.java
+++ b/app/src/main/java/com/fongmi/android/tv/utils/Prefers.java
@@ -91,6 +91,14 @@ public class Prefers {
Prefers.put("thumbnail", thumbnail);
}
+ public static int getRender() {
+ return Prefers.getInt("render", 0);
+ }
+
+ public static void putRender(int render) {
+ Prefers.put("render", render);
+ }
+
public static int getInterval() {
return Prefers.getInt("interval", 15);
}
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index d82aed1a4..bdd0a31bf 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -40,6 +40,7 @@
首页
配置
+ 渲染
缩图
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 41d5d61b1..3705590f6 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -40,6 +40,7 @@
首頁
配置
+ 渲染
縮圖
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index ce52c0dff..2ed8aa68c 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,4 +1,4 @@
-
+
TV
@@ -40,6 +40,7 @@
Home site
Configuration
+ Render
Thumbnail
@@ -68,6 +69,11 @@
%s s
+
+ - Surface
+ - Texture
+
+
- Low
- Medium
diff --git a/settings.gradle b/settings.gradle
index 987a6017c..3ff3ae720 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -14,8 +14,8 @@ dependencyResolutionManagement {
google()
}
}
+include ':app'
+include ':catvod'
gradle.ext.exoplayerModulePrefix = 'exoplayer-'
apply from: file("/exo/core_settings.gradle")
rootProject.name = "TV"
-include ':app'
-include ':catvod'