Optimize danmaku setting

fongmi
FongMi 2 weeks ago
parent 226e8792a9
commit 4aaf943fd5
  1. 2
      app/src/leanback/res/layout/dialog_danmaku_setting.xml
  2. 14
      app/src/main/java/com/fongmi/android/tv/setting/DanmakuSetting.java
  3. 31
      app/src/main/java/com/fongmi/android/tv/ui/dialog/DanmakuSettingPanel.java
  4. 2
      app/src/mobile/res/layout/dialog_danmaku_setting.xml

@ -12,7 +12,7 @@
android:orientation="horizontal"
android:paddingStart="24dp"
android:paddingTop="16dp"
android:paddingEnd="16dp"
android:paddingEnd="24dp"
android:paddingBottom="8dp">
<com.google.android.material.textview.MaterialTextView

@ -230,7 +230,7 @@ public class DanmakuSetting {
Prefers.put("danmaku_show_special", value);
}
public static void reset() {
public static void resetAppearance() {
DanmakuConfig config = DanmakuConfig.DEFAULT;
putTextScale(config.textScale);
putTransparency(config.transparency);
@ -242,15 +242,27 @@ public class DanmakuSetting {
putProjectionOffsetY(config.projectionOffsetYMultiplier);
putProjectionTransparency(config.projectionTransparency);
putColorMode(config.colorMode);
}
public static void resetTiming() {
DanmakuConfig config = DanmakuConfig.DEFAULT;
putDurationMs(config.durationMs);
putFixedDurationMs(config.fixedDurationMs);
putTimeOffsetMs(config.timeOffsetMs);
}
public static void resetDensity() {
DanmakuConfig config = DanmakuConfig.DEFAULT;
putMaxOnScreen(config.maxOnScreen);
putScrollAreaRatio(config.scrollAreaRatio);
putMaxScrollLines(config.maxScrollLines);
putMaxTopLines(config.maxTopLines);
putMaxBottomLines(config.maxBottomLines);
putLineSpacing(config.lineSpacing);
}
public static void resetDisplay() {
DanmakuConfig config = DanmakuConfig.DEFAULT;
putShowScroll(config.showScroll);
putShowTop(config.showTop);
putShowBottom(config.showBottom);

@ -26,6 +26,7 @@ final class DanmakuSettingPanel {
private final DialogDanmakuSettingBinding binding;
private final PlayerManager player;
private int currentTab;
DanmakuSettingPanel(DialogDanmakuSettingBinding binding, PlayerManager player) {
this.binding = binding;
@ -39,7 +40,6 @@ final class DanmakuSettingPanel {
bindDisplay();
bindTabs();
showTab(0);
updateDependentControls();
binding.tabAppearance.requestFocus();
binding.reset.setOnClickListener(this::onReset);
binding.tabGroup.check(binding.tabAppearance.getId());
@ -76,6 +76,7 @@ final class DanmakuSettingPanel {
setupInt(density.maxScrollLinesSlider, density.maxScrollLinesValue, DanmakuSetting.getMaxScrollLines(), this::linesText, DanmakuSetting::putMaxScrollLines);
setupInt(density.maxTopLinesSlider, density.maxTopLinesValue, DanmakuSetting.getMaxTopLines(), this::linesText, DanmakuSetting::putMaxTopLines);
setupInt(density.maxBottomLinesSlider, density.maxBottomLinesValue, DanmakuSetting.getMaxBottomLines(), this::linesText, DanmakuSetting::putMaxBottomLines);
updateDependentControls();
}
private void bindDisplay() {
@ -105,16 +106,36 @@ final class DanmakuSettingPanel {
}
private void onReset(View view) {
DanmakuSetting.reset();
bind();
applyConfig();
switch (currentTab) {
case 0:
DanmakuSetting.resetAppearance();
bindAppearance();
applyConfig();
break;
case 1:
DanmakuSetting.resetTiming();
bindTiming();
applyConfig();
break;
case 2:
DanmakuSetting.resetDensity();
bindDensity();
applyConfig();
break;
case 3:
DanmakuSetting.resetDisplay();
bindDisplay();
updateDependentControls();
applyConfig();
break;
}
}
private void showTab(int index) {
View[] roots = {binding.appearance.getRoot(), binding.timing.getRoot(), binding.density.getRoot(), binding.display.getRoot()};
MaterialButton[] tabs = {binding.tabAppearance, binding.tabTiming, binding.tabDensity, binding.tabDisplay};
for (int i = 0; i < roots.length; i++) roots[i].setVisibility(visibleIf(index == i));
binding.reset.setNextFocusDownId(tabs[index].getId());
binding.reset.setNextFocusDownId(tabs[currentTab = index].getId());
}
private void updateStyleSubSettings(int mode) {

@ -12,7 +12,7 @@
android:orientation="horizontal"
android:paddingStart="24dp"
android:paddingTop="16dp"
android:paddingEnd="16dp"
android:paddingEnd="24dp"
android:paddingBottom="8dp">
<com.google.android.material.textview.MaterialTextView

Loading…
Cancel
Save