Add adblock setting

pull/594/head
jhengazuki 6 months ago
parent ee1ff9af55
commit 6bc2c57dc3
  1. 4
      app/build.gradle
  2. 7
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingPlayerActivity.java
  3. 29
      app/src/leanback/res/layout/activity_setting_player.xml
  4. 8
      app/src/main/java/com/fongmi/android/tv/Setting.java
  5. 3
      app/src/main/java/com/fongmi/android/tv/player/exo/ExoUtil.java
  6. 4
      app/src/main/java/com/fongmi/android/tv/utils/Sniffer.java
  7. 1
      app/src/main/res/values-zh-rCN/strings.xml
  8. 1
      app/src/main/res/values-zh-rTW/strings.xml
  9. 1
      app/src/main/res/values/strings.xml
  10. 7
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingPlayerFragment.java
  11. 27
      app/src/mobile/res/layout/fragment_setting_player.xml

@ -13,8 +13,8 @@ android {
applicationId "com.fongmi.android.tv"
minSdk 24
targetSdk 36
versionCode 428
versionName "4.2.8"
versionCode 429
versionName "4.2.9"
javaCompileOptions {
annotationProcessorOptions {
arguments = ["room.schemaLocation": "$projectDir/schemas".toString(), "eventBusIndex": "com.fongmi.android.tv.event.EventIndex"]

@ -50,6 +50,7 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B
mBinding.uaText.setText(Setting.getUa());
mBinding.aacText.setText(getSwitch(Setting.isPreferAAC()));
mBinding.tunnelText.setText(getSwitch(Setting.isTunnel()));
mBinding.adblockText.setText(getSwitch(Setting.isAdblock()));
mBinding.speedText.setText(format.format(Setting.getSpeed()));
mBinding.bufferText.setText(String.valueOf(Setting.getBuffer()));
mBinding.backgroundText.setText(getSwitch(Setting.isBackgroundOn()));
@ -71,6 +72,7 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B
mBinding.render.setOnClickListener(this::setRender);
mBinding.tunnel.setOnClickListener(this::setTunnel);
mBinding.caption.setOnClickListener(this::setCaption);
mBinding.adblock.setOnClickListener(this::setAdblock);
mBinding.caption.setOnLongClickListener(this::onCaption);
mBinding.background.setOnClickListener(this::onBackground);
mBinding.audioDecode.setOnClickListener(this::setAudioDecode);
@ -142,6 +144,11 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B
mBinding.captionText.setText(caption[Setting.isCaption() ? 1 : 0]);
}
private void setAdblock(View view) {
Setting.putAdblock(!Setting.isAdblock());
mBinding.adblockText.setText(getSwitch(Setting.isAdblock()));
}
private boolean onCaption(View view) {
if (Setting.isCaption()) startActivity(new Intent(Settings.ACTION_CAPTIONING_SETTINGS));
return Setting.isCaption();

@ -320,6 +320,35 @@
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/adblock"
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">
<com.google.android.material.textview.MaterialTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:text="@string/player_adblock"
android:textColor="@color/white"
android:textSize="18sp" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/adblockText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:textColor="@color/white"
android:textSize="18sp"
tools:text="關" />
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/background"
android:layout_width="match_parent"

@ -235,6 +235,14 @@ public class Setting {
Prefers.put("danmaku_load", danmakuLoad);
}
public static boolean isAdblock() {
return Prefers.getBoolean("adblock");
}
public static void putAdblock(boolean adblock) {
Prefers.put("adblock", adblock);
}
public static boolean isDanmakuShow() {
return Prefers.getBoolean("danmaku_show");
}

@ -28,7 +28,6 @@ import com.fongmi.android.tv.BuildConfig;
import com.fongmi.android.tv.Setting;
import com.fongmi.android.tv.bean.Drm;
import com.fongmi.android.tv.bean.Sub;
import com.fongmi.android.tv.utils.Sniffer;
import java.util.ArrayList;
import java.util.List;
@ -120,7 +119,7 @@ public class ExoUtil {
builder.setSubtitleConfigurations(getSubtitleConfigs(subs));
if (drm != null) builder.setDrmConfiguration(drm.get());
if (mimeType != null) builder.setMimeType(mimeType);
builder.setAds(Sniffer.getRegex(uri));
builder.setAdblock(Setting.isAdblock());
builder.setMediaId(uri.toString());
builder.setImageDurationMs(15000);
builder.setDecode(decode);

@ -37,10 +37,6 @@ public class Sniffer {
return SNIFFER.matcher(url).find();
}
public static List<String> getRegex(Uri uri) {
return getRule(uri).getRegex();
}
public static List<String> getScript(Uri uri) {
return getRule(uri).getScript();
}

@ -98,6 +98,7 @@
<string name="player_video_decode">视频软解</string>
<string name="player_aac_track">AAC优先</string>
<string name="player_danmaku_load">弹幕加载</string>
<string name="player_adblock">智能去广</string>
<string name="player_tunnel">隧道模式</string>
<string name="player_buffer">缓冲时间</string>
<string name="player_speed">长按倍速</string>

@ -98,6 +98,7 @@
<string name="player_video_decode">視訊軟解</string>
<string name="player_aac_track">AAC優先</string>
<string name="player_danmaku_load">彈幕載入</string>
<string name="player_adblock">智慧去廣</string>
<string name="player_tunnel">隧道模式</string>
<string name="player_buffer">緩衝時間</string>
<string name="player_speed">長按倍速</string>

@ -99,6 +99,7 @@
<string name="player_video_decode">Video software decode</string>
<string name="player_aac_track">Prefer aac track</string>
<string name="player_danmaku_load">Danmaku load</string>
<string name="player_adblock">Remove ads</string>
<string name="player_tunnel">Tunnel mode</string>
<string name="player_buffer">Buffer time</string>
<string name="player_speed">Press speed</string>

@ -53,6 +53,7 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback, B
mBinding.uaText.setText(Setting.getUa());
mBinding.aacText.setText(getSwitch(Setting.isPreferAAC()));
mBinding.tunnelText.setText(getSwitch(Setting.isTunnel()));
mBinding.adblockText.setText(getSwitch(Setting.isAdblock()));
mBinding.speedText.setText(format.format(Setting.getSpeed()));
mBinding.bufferText.setText(String.valueOf(Setting.getBuffer()));
mBinding.audioDecodeText.setText(getSwitch(Setting.isAudioPrefer()));
@ -75,6 +76,7 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback, B
mBinding.render.setOnClickListener(this::setRender);
mBinding.tunnel.setOnClickListener(this::setTunnel);
mBinding.caption.setOnClickListener(this::setCaption);
mBinding.adblock.setOnClickListener(this::setAdblock);
mBinding.caption.setOnLongClickListener(this::onCaption);
mBinding.background.setOnClickListener(this::onBackground);
mBinding.audioDecode.setOnClickListener(this::setAudioDecode);
@ -148,6 +150,11 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback, B
return Setting.isCaption();
}
private void setAdblock(View view) {
Setting.putAdblock(!Setting.isAdblock());
mBinding.adblockText.setText(getSwitch(Setting.isAdblock()));
}
private void onBackground(View view) {
new MaterialAlertDialogBuilder(requireActivity()).setTitle(R.string.player_background).setNegativeButton(R.string.dialog_negative, null).setSingleChoiceItems(background, Setting.getBackground(), (dialog, which) -> {
mBinding.backgroundText.setText(background[which]);

@ -317,6 +317,33 @@
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/adblock"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@drawable/shape_item"
android:orientation="horizontal">
<com.google.android.material.textview.MaterialTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:text="@string/player_adblock"
android:textColor="@color/white"
android:textSize="16sp" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/adblockText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:textColor="@color/white"
android:textSize="16sp"
tools:text="開" />
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/background"
android:layout_width="match_parent"

Loading…
Cancel
Save