Add danmakuLoad switch

pull/589/head
FongMi 10 months ago
parent 7947ce4a21
commit 1d426eddad
  1. 7
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingPlayerActivity.java
  2. 29
      app/src/leanback/res/layout/activity_setting_player.xml
  3. 8
      app/src/main/java/com/fongmi/android/tv/Setting.java
  4. 3
      app/src/main/java/com/fongmi/android/tv/bean/Result.java
  5. 1
      app/src/main/res/values-zh-rCN/strings.xml
  6. 1
      app/src/main/res/values-zh-rTW/strings.xml
  7. 1
      app/src/main/res/values/strings.xml
  8. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  9. 7
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingPlayerFragment.java
  10. 4
      app/src/mobile/java/com/fongmi/android/tv/utils/PiP.java
  11. 27
      app/src/mobile/res/layout/fragment_setting_player.xml

@ -54,6 +54,7 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B
mBinding.bufferText.setText(String.valueOf(Setting.getBuffer()));
mBinding.backgroundText.setText(getSwitch(Setting.isBackgroundOn()));
mBinding.audioDecodeText.setText(getSwitch(Setting.isAudioPrefer()));
mBinding.danmakuLoadText.setText(getSwitch(Setting.isDanmakuLoad()));
mBinding.rtspText.setText((rtsp = ResUtil.getStringArray(R.array.select_rtsp))[Setting.getRtsp()]);
mBinding.scaleText.setText((scale = ResUtil.getStringArray(R.array.select_scale))[Setting.getScale()]);
mBinding.renderText.setText((render = ResUtil.getStringArray(R.array.select_render))[Setting.getRender()]);
@ -73,6 +74,7 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B
mBinding.caption.setOnLongClickListener(this::onCaption);
mBinding.background.setOnClickListener(this::onBackground);
mBinding.audioDecode.setOnClickListener(this::setAudioDecode);
mBinding.danmakuLoad.setOnClickListener(this::setDanmakuLoad);
}
private void setVisible() {
@ -150,6 +152,11 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B
mBinding.audioDecodeText.setText(getSwitch(Setting.isAudioPrefer()));
}
private void setDanmakuLoad(View view) {
Setting.putDanmakuLoad(!Setting.isDanmakuLoad());
mBinding.danmakuLoadText.setText(getSwitch(Setting.isDanmakuLoad()));
}
private void onBackground(View view) {
Setting.putBackground(Setting.isBackgroundOn() ? 0 : 1);
mBinding.backgroundText.setText(getSwitch(Setting.isBackgroundOn()));

@ -234,6 +234,35 @@
</LinearLayout>
<LinearLayout
android:id="@+id/danmakuLoad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@drawable/selector_item"
android:focusable="true"
android:focusableInTouchMode="true"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:text="@string/player_danmaku_load"
android:textColor="@color/white"
android:textSize="18sp" />
<TextView
android:id="@+id/danmakuLoadText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:textColor="@color/white"
android:textSize="18sp"
tools:text="關" />
</LinearLayout>
<LinearLayout
android:id="@+id/background"
android:layout_width="match_parent"

@ -233,6 +233,14 @@ public class Setting {
Prefers.put("audio_prefer", audioPrefer);
}
public static boolean isDanmakuLoad() {
return Prefers.getBoolean("danmaku_load");
}
public static void putDanmakuLoad(boolean danmakuLoad) {
Prefers.put("danmaku_load", danmakuLoad);
}
public static boolean isZhuyin() {
return Prefers.getBoolean("zhuyin");
}

@ -7,6 +7,7 @@ import android.text.TextUtils;
import androidx.annotation.NonNull;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.Setting;
import com.fongmi.android.tv.gson.FilterAdapter;
import com.fongmi.android.tv.gson.MsgAdapter;
import com.fongmi.android.tv.gson.UrlAdapter;
@ -231,7 +232,7 @@ public class Result implements Parcelable {
}
public String getDanmaku() {
return TextUtils.isEmpty(danmaku) ? "" : danmaku;
return !Setting.isDanmakuLoad() || TextUtils.isEmpty(danmaku) ? "" : danmaku;
}
public String getFormat() {

@ -92,6 +92,7 @@
<string name="player_caption">字幕样式</string>
<string name="player_background">后台播放</string>
<string name="player_audio_decode">音频软解</string>
<string name="player_danmaku_load">弹幕加载</string>
<string name="player_tunnel">隧道模式</string>
<string name="player_buffer">缓冲时间</string>
<string name="player_speed">长按倍速</string>

@ -92,6 +92,7 @@
<string name="player_caption">字幕樣式</string>
<string name="player_background">背景播放</string>
<string name="player_audio_decode">音訊軟解</string>
<string name="player_danmaku_load">彈幕載入</string>
<string name="player_tunnel">隧道模式</string>
<string name="player_buffer">緩衝時間</string>
<string name="player_speed">長按倍速</string>

@ -93,6 +93,7 @@
<string name="player_caption">Caption style</string>
<string name="player_background">Background play</string>
<string name="player_audio_decode">Audio software decode</string>
<string name="player_danmaku_load">Danmaku load</string>
<string name="player_tunnel">Tunnel mode</string>
<string name="player_buffer">Buffer time</string>
<string name="player_speed">Press speed</string>

@ -558,7 +558,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
private void checkDanmaku(String url) {
mBinding.danmaku.release();
mBinding.danmaku.setVisibility(url.isEmpty() ? View.GONE : View.VISIBLE);
mBinding.danmaku.setVisibility(mPiP.isInMode(this) || url.isEmpty() ? View.GONE : View.VISIBLE);
if (!url.isEmpty()) App.execute(() -> mBinding.danmaku.prepare(new Parser(url), mDanmakuContext));
}

@ -56,6 +56,7 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback, B
mBinding.speedText.setText(format.format(Setting.getSpeed()));
mBinding.bufferText.setText(String.valueOf(Setting.getBuffer()));
mBinding.audioDecodeText.setText(getSwitch(Setting.isAudioPrefer()));
mBinding.danmakuLoadText.setText(getSwitch(Setting.isDanmakuLoad()));
mBinding.caption.setVisibility(Setting.hasCaption() ? View.VISIBLE : View.GONE);
mBinding.rtspText.setText((rtsp = ResUtil.getStringArray(R.array.select_rtsp))[Setting.getRtsp()]);
mBinding.scaleText.setText((scale = ResUtil.getStringArray(R.array.select_scale))[Setting.getScale()]);
@ -77,6 +78,7 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback, B
mBinding.caption.setOnLongClickListener(this::onCaption);
mBinding.background.setOnClickListener(this::onBackground);
mBinding.audioDecode.setOnClickListener(this::setAudioDecode);
mBinding.danmakuLoad.setOnClickListener(this::setDanmakuLoad);
}
private void onUa(View view) {
@ -159,6 +161,11 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback, B
mBinding.audioDecodeText.setText(getSwitch(Setting.isAudioPrefer()));
}
private void setDanmakuLoad(View view) {
Setting.putDanmakuLoad(!Setting.isDanmakuLoad());
mBinding.danmakuLoadText.setText(getSwitch(Setting.isDanmakuLoad()));
}
@Override
public void onHiddenChanged(boolean hidden) {
if (!hidden) initView();

@ -46,6 +46,10 @@ public class PiP {
this.builder = new PictureInPictureParams.Builder();
}
public boolean isInMode(Activity activity) {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && activity.isInPictureInPictureMode();
}
public void update(Activity activity, View view) {
if (noPiP()) return;
Rect sourceRectHint = new Rect();

@ -249,6 +249,33 @@
</LinearLayout>
<LinearLayout
android:id="@+id/danmakuLoad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@drawable/shape_item"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:text="@string/player_danmaku_load"
android:textColor="@color/white"
android:textSize="16sp" />
<TextView
android:id="@+id/danmakuLoadText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:textColor="@color/white"
android:textSize="16sp"
tools:text="開" />
</LinearLayout>
<LinearLayout
android:id="@+id/background"
android:layout_width="match_parent"

Loading…
Cancel
Save