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 03f90a3446d..d8efb30df7d 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.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.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 @@ private void showHideKodiButton() { @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 90c24c0c6cf..02f7c07b0db 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 void onCompleted() { @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 ec9d6783b48..7157d6af22f 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 @@ private void setupSubtitleView() { binding.subtitleView.setStyle(captionStyle); } + /** + * + * @param captionScale Value returned by {@link PlayerHelper#getCaptionScale}. + */ protected abstract void setupSubtitleView(float captionScale); //endregion