From 86203d6800e2c60f57c1c1d4f98ab2b62dfac0a3 Mon Sep 17 00:00:00 2001 From: Thompson3142 Date: Fri, 20 Dec 2024 13:03:50 +0100 Subject: [PATCH] MainPlayer/PopupPlayer: Use system settings for subtitle size This will use the exact subtitle sizes the user requested, both for the main and the popup player. They will always be the same fraction of the video, even if the popup player is resized. --- .../org/schabi/newpipe/player/ui/MainPlayerUi.java | 10 +++------- .../org/schabi/newpipe/player/ui/PopupPlayerUi.java | 3 +-- .../org/schabi/newpipe/player/ui/VideoPlayerUi.java | 4 ++++ 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/player/ui/MainPlayerUi.java b/app/src/main/java/org/schabi/newpipe/player/ui/MainPlayerUi.java index 03f90a344..d8efb30df 100644 --- a/app/src/main/java/org/schabi/newpipe/player/ui/MainPlayerUi.java +++ b/app/src/main/java/org/schabi/newpipe/player/ui/MainPlayerUi.java @@ -25,9 +25,7 @@ import android.graphics.Color; import android.os.Handler; import android.os.Looper; import android.provider.Settings; -import android.util.DisplayMetrics; import android.util.Log; -import android.util.TypedValue; import android.view.KeyEvent; import android.view.View; import android.view.ViewGroup; @@ -44,6 +42,7 @@ import androidx.fragment.app.FragmentActivity; import androidx.recyclerview.widget.ItemTouchHelper; import androidx.recyclerview.widget.RecyclerView; +import com.google.android.exoplayer2.ui.SubtitleView; import com.google.android.exoplayer2.video.VideoSize; import org.schabi.newpipe.R; @@ -522,11 +521,8 @@ public final class MainPlayerUi extends VideoPlayerUi implements View.OnLayoutCh @Override protected void setupSubtitleView(final float captionScale) { - final DisplayMetrics metrics = context.getResources().getDisplayMetrics(); - final int minimumLength = Math.min(metrics.heightPixels, metrics.widthPixels); - final float captionRatioInverse = 20f + 4f * (1.0f - captionScale); - binding.subtitleView.setFixedTextSize( - TypedValue.COMPLEX_UNIT_PX, minimumLength / captionRatioInverse); + binding.subtitleView.setFractionalTextSize( + SubtitleView.DEFAULT_TEXT_SIZE_FRACTION * captionScale); } //endregion diff --git a/app/src/main/java/org/schabi/newpipe/player/ui/PopupPlayerUi.java b/app/src/main/java/org/schabi/newpipe/player/ui/PopupPlayerUi.java index 90c24c0c6..02f7c07b0 100644 --- a/app/src/main/java/org/schabi/newpipe/player/ui/PopupPlayerUi.java +++ b/app/src/main/java/org/schabi/newpipe/player/ui/PopupPlayerUi.java @@ -424,9 +424,8 @@ public final class PopupPlayerUi extends VideoPlayerUi { @Override protected void setupSubtitleView(final float captionScale) { - final float captionRatio = (captionScale - 1.0f) / 5.0f + 1.0f; binding.subtitleView.setFractionalTextSize( - SubtitleView.DEFAULT_TEXT_SIZE_FRACTION * captionRatio); + SubtitleView.DEFAULT_TEXT_SIZE_FRACTION * captionScale); } @Override diff --git a/app/src/main/java/org/schabi/newpipe/player/ui/VideoPlayerUi.java b/app/src/main/java/org/schabi/newpipe/player/ui/VideoPlayerUi.java index ec9d6783b..7157d6af2 100644 --- a/app/src/main/java/org/schabi/newpipe/player/ui/VideoPlayerUi.java +++ b/app/src/main/java/org/schabi/newpipe/player/ui/VideoPlayerUi.java @@ -1414,6 +1414,10 @@ public abstract class VideoPlayerUi extends PlayerUi implements SeekBar.OnSeekBa binding.subtitleView.setStyle(captionStyle); } + /** + * + * @param captionScale Value returned by {@link PlayerHelper#getCaptionScale}. + */ protected abstract void setupSubtitleView(float captionScale); //endregion