Restore checkstyle and solve its errors
This commit is contained in:
parent
1b39b5376f
commit
a19073ec01
10 changed files with 41 additions and 36 deletions
|
@ -166,7 +166,7 @@ afterEvaluate {
|
||||||
if (!System.properties.containsKey('skipFormatKtlint')) {
|
if (!System.properties.containsKey('skipFormatKtlint')) {
|
||||||
preDebugBuild.dependsOn formatKtlint
|
preDebugBuild.dependsOn formatKtlint
|
||||||
}
|
}
|
||||||
//preDebugBuild.dependsOn runCheckstyle, runKtlint
|
preDebugBuild.dependsOn runCheckstyle, runKtlint
|
||||||
}
|
}
|
||||||
|
|
||||||
sonarqube {
|
sonarqube {
|
||||||
|
|
|
@ -1,5 +1,16 @@
|
||||||
package org.schabi.newpipe.fragments.detail;
|
package org.schabi.newpipe.fragments.detail;
|
||||||
|
|
||||||
|
import static android.text.TextUtils.isEmpty;
|
||||||
|
import static org.schabi.newpipe.extractor.StreamingService.ServiceInfo.MediaCapability.COMMENTS;
|
||||||
|
import static org.schabi.newpipe.extractor.stream.StreamExtractor.NO_AGE_LIMIT;
|
||||||
|
import static org.schabi.newpipe.ktx.ViewUtils.animate;
|
||||||
|
import static org.schabi.newpipe.ktx.ViewUtils.animateRotation;
|
||||||
|
import static org.schabi.newpipe.player.helper.PlayerHelper.globalScreenOrientationLocked;
|
||||||
|
import static org.schabi.newpipe.player.helper.PlayerHelper.isClearingQueueConfirmationRequired;
|
||||||
|
import static org.schabi.newpipe.player.playqueue.PlayQueueItem.RECOVERY_UNSET;
|
||||||
|
import static org.schabi.newpipe.util.ExtractorHelper.showMetaInfoInTextView;
|
||||||
|
import static org.schabi.newpipe.util.ListHelper.getUrlAndNonTorrentStreams;
|
||||||
|
|
||||||
import android.animation.ValueAnimator;
|
import android.animation.ValueAnimator;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
|
@ -43,7 +54,6 @@ import androidx.appcompat.widget.Toolbar;
|
||||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||||
import androidx.core.content.ContextCompat;
|
import androidx.core.content.ContextCompat;
|
||||||
import androidx.preference.PreferenceManager;
|
import androidx.preference.PreferenceManager;
|
||||||
import androidx.viewbinding.ViewBinding;
|
|
||||||
|
|
||||||
import com.google.android.exoplayer2.PlaybackException;
|
import com.google.android.exoplayer2.PlaybackException;
|
||||||
import com.google.android.exoplayer2.PlaybackParameters;
|
import com.google.android.exoplayer2.PlaybackParameters;
|
||||||
|
@ -78,9 +88,9 @@ import org.schabi.newpipe.fragments.list.videos.RelatedItemsFragment;
|
||||||
import org.schabi.newpipe.ktx.AnimationType;
|
import org.schabi.newpipe.ktx.AnimationType;
|
||||||
import org.schabi.newpipe.local.dialog.PlaylistDialog;
|
import org.schabi.newpipe.local.dialog.PlaylistDialog;
|
||||||
import org.schabi.newpipe.local.history.HistoryRecordManager;
|
import org.schabi.newpipe.local.history.HistoryRecordManager;
|
||||||
|
import org.schabi.newpipe.player.Player;
|
||||||
import org.schabi.newpipe.player.PlayerService;
|
import org.schabi.newpipe.player.PlayerService;
|
||||||
import org.schabi.newpipe.player.PlayerService.PlayerType;
|
import org.schabi.newpipe.player.PlayerService.PlayerType;
|
||||||
import org.schabi.newpipe.player.Player;
|
|
||||||
import org.schabi.newpipe.player.event.OnKeyDownListener;
|
import org.schabi.newpipe.player.event.OnKeyDownListener;
|
||||||
import org.schabi.newpipe.player.event.PlayerServiceExtendedEventListener;
|
import org.schabi.newpipe.player.event.PlayerServiceExtendedEventListener;
|
||||||
import org.schabi.newpipe.player.helper.PlayerHelper;
|
import org.schabi.newpipe.player.helper.PlayerHelper;
|
||||||
|
@ -118,17 +128,6 @@ import io.reactivex.rxjava3.disposables.CompositeDisposable;
|
||||||
import io.reactivex.rxjava3.disposables.Disposable;
|
import io.reactivex.rxjava3.disposables.Disposable;
|
||||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||||
|
|
||||||
import static android.text.TextUtils.isEmpty;
|
|
||||||
import static org.schabi.newpipe.extractor.StreamingService.ServiceInfo.MediaCapability.COMMENTS;
|
|
||||||
import static org.schabi.newpipe.extractor.stream.StreamExtractor.NO_AGE_LIMIT;
|
|
||||||
import static org.schabi.newpipe.ktx.ViewUtils.animate;
|
|
||||||
import static org.schabi.newpipe.ktx.ViewUtils.animateRotation;
|
|
||||||
import static org.schabi.newpipe.player.helper.PlayerHelper.globalScreenOrientationLocked;
|
|
||||||
import static org.schabi.newpipe.player.helper.PlayerHelper.isClearingQueueConfirmationRequired;
|
|
||||||
import static org.schabi.newpipe.player.playqueue.PlayQueueItem.RECOVERY_UNSET;
|
|
||||||
import static org.schabi.newpipe.util.ExtractorHelper.showMetaInfoInTextView;
|
|
||||||
import static org.schabi.newpipe.util.ListHelper.getUrlAndNonTorrentStreams;
|
|
||||||
|
|
||||||
public final class VideoDetailFragment
|
public final class VideoDetailFragment
|
||||||
extends BaseStateFragment<StreamInfo>
|
extends BaseStateFragment<StreamInfo>
|
||||||
implements BackPressable,
|
implements BackPressable,
|
||||||
|
|
|
@ -239,6 +239,7 @@ public final class Player implements PlaybackListener, Listener {
|
||||||
// UIs, listeners and disposables
|
// UIs, listeners and disposables
|
||||||
//////////////////////////////////////////////////////////////////////////*/
|
//////////////////////////////////////////////////////////////////////////*/
|
||||||
|
|
||||||
|
@SuppressWarnings("MemberName") // keep the unusual member name
|
||||||
private final PlayerUiList UIs = new PlayerUiList();
|
private final PlayerUiList UIs = new PlayerUiList();
|
||||||
|
|
||||||
private BroadcastReceiver broadcastReceiver;
|
private BroadcastReceiver broadcastReceiver;
|
||||||
|
@ -1148,7 +1149,7 @@ public final class Player implements PlaybackListener, Listener {
|
||||||
simpleExoPlayer.setRepeatMode(repeatMode);
|
simpleExoPlayer.setRepeatMode(repeatMode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void cycleNextRepeatMode() {
|
public void cycleNextRepeatMode() {
|
||||||
setRepeatMode(nextRepeatMode(getRepeatMode()));
|
setRepeatMode(nextRepeatMode(getRepeatMode()));
|
||||||
}
|
}
|
||||||
|
@ -1181,7 +1182,7 @@ public final class Player implements PlaybackListener, Listener {
|
||||||
UIs.call(playerUi -> playerUi.onShuffleModeEnabledChanged(shuffleModeEnabled));
|
UIs.call(playerUi -> playerUi.onShuffleModeEnabledChanged(shuffleModeEnabled));
|
||||||
notifyPlaybackUpdateToListeners();
|
notifyPlaybackUpdateToListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void toggleShuffleModeEnabled() {
|
public void toggleShuffleModeEnabled() {
|
||||||
if (!exoPlayerIsNull()) {
|
if (!exoPlayerIsNull()) {
|
||||||
simpleExoPlayer.setShuffleModeEnabled(!simpleExoPlayer.getShuffleModeEnabled());
|
simpleExoPlayer.setShuffleModeEnabled(!simpleExoPlayer.getShuffleModeEnabled());
|
||||||
|
@ -2301,6 +2302,7 @@ public final class Player implements PlaybackListener, Listener {
|
||||||
/**
|
/**
|
||||||
* @return the user interfaces connected with the player
|
* @return the user interfaces connected with the player
|
||||||
*/
|
*/
|
||||||
|
@SuppressWarnings("MethodName") // keep the unusual method name
|
||||||
public PlayerUiList UIs() {
|
public PlayerUiList UIs() {
|
||||||
return UIs;
|
return UIs;
|
||||||
}
|
}
|
||||||
|
|
|
@ -132,7 +132,7 @@ public final class NotificationUtil {
|
||||||
|
|
||||||
// also update content intent, in case the user switched players
|
// also update content intent, in case the user switched players
|
||||||
notificationBuilder.setContentIntent(PendingIntent.getActivity(player.getContext(),
|
notificationBuilder.setContentIntent(PendingIntent.getActivity(player.getContext(),
|
||||||
NOTIFICATION_ID, getIntentForNotification(player), FLAG_UPDATE_CURRENT));
|
NOTIFICATION_ID, getIntentForNotification(), FLAG_UPDATE_CURRENT));
|
||||||
notificationBuilder.setContentTitle(player.getVideoTitle());
|
notificationBuilder.setContentTitle(player.getVideoTitle());
|
||||||
notificationBuilder.setContentText(player.getUploaderName());
|
notificationBuilder.setContentText(player.getUploaderName());
|
||||||
notificationBuilder.setTicker(player.getVideoTitle());
|
notificationBuilder.setTicker(player.getVideoTitle());
|
||||||
|
@ -321,7 +321,7 @@ public final class NotificationUtil {
|
||||||
new Intent(intentAction), FLAG_UPDATE_CURRENT));
|
new Intent(intentAction), FLAG_UPDATE_CURRENT));
|
||||||
}
|
}
|
||||||
|
|
||||||
private Intent getIntentForNotification(final Player player) {
|
private Intent getIntentForNotification() {
|
||||||
if (player.audioPlayerSelected() || player.popupPlayerSelected()) {
|
if (player.audioPlayerSelected() || player.popupPlayerSelected()) {
|
||||||
// Means we play in popup or audio only. Let's show the play queue
|
// Means we play in popup or audio only. Let's show the play queue
|
||||||
return NavigationHelper.getPlayQueueActivityIntent(player.getContext());
|
return NavigationHelper.getPlayQueueActivityIntent(player.getContext());
|
||||||
|
|
|
@ -10,8 +10,6 @@ import org.schabi.newpipe.player.mediasession.MediaSessionCallback;
|
||||||
import org.schabi.newpipe.player.playqueue.PlayQueueItem;
|
import org.schabi.newpipe.player.playqueue.PlayQueueItem;
|
||||||
import org.schabi.newpipe.player.ui.VideoPlayerUi;
|
import org.schabi.newpipe.player.ui.VideoPlayerUi;
|
||||||
|
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
public class PlayerMediaSession implements MediaSessionCallback {
|
public class PlayerMediaSession implements MediaSessionCallback {
|
||||||
private final Player player;
|
private final Player player;
|
||||||
|
|
||||||
|
|
|
@ -497,7 +497,7 @@ public final class MainPlayerUi extends VideoPlayerUi implements View.OnLayoutCh
|
||||||
//region Captions (text tracks)
|
//region Captions (text tracks)
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void setupSubtitleView(float captionScale) {
|
protected void setupSubtitleView(final float captionScale) {
|
||||||
final DisplayMetrics metrics = context.getResources().getDisplayMetrics();
|
final DisplayMetrics metrics = context.getResources().getDisplayMetrics();
|
||||||
final int minimumLength = Math.min(metrics.heightPixels, metrics.widthPixels);
|
final int minimumLength = Math.min(metrics.heightPixels, metrics.widthPixels);
|
||||||
final float captionRatioInverse = 20f + 4f * (1.0f - captionScale);
|
final float captionRatioInverse = 20f + 4f * (1.0f - captionScale);
|
||||||
|
|
|
@ -46,7 +46,7 @@ public abstract class PlayerUi {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called after the player received an intent and processed it
|
* Called after the player received an intent and processed it.
|
||||||
*/
|
*/
|
||||||
public void setupAfterIntent() {
|
public void setupAfterIntent() {
|
||||||
}
|
}
|
||||||
|
@ -80,7 +80,7 @@ public abstract class PlayerUi {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when this UI is being discarded, either because the player is switching to a different
|
* Called when this UI is being discarded, either because the player is switching to a different
|
||||||
* UI or because the player is shutting down completely
|
* UI or because the player is shutting down completely.
|
||||||
*/
|
*/
|
||||||
public void destroy() {
|
public void destroy() {
|
||||||
}
|
}
|
||||||
|
@ -88,14 +88,14 @@ public abstract class PlayerUi {
|
||||||
/**
|
/**
|
||||||
* Called when the player is smooth-stopping, that is, transitioning smoothly to a new play
|
* Called when the player is smooth-stopping, that is, transitioning smoothly to a new play
|
||||||
* queue after the user tapped on a new video stream while a stream was playing in the video
|
* queue after the user tapped on a new video stream while a stream was playing in the video
|
||||||
* detail fragment
|
* detail fragment.
|
||||||
*/
|
*/
|
||||||
public void smoothStopForImmediateReusing() {
|
public void smoothStopForImmediateReusing() {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when the video detail fragment listener is connected with the player, or right after
|
* Called when the video detail fragment listener is connected with the player, or right after
|
||||||
* this UI is constructed if the listener is already connected then
|
* this UI is constructed if the listener is already connected then.
|
||||||
*/
|
*/
|
||||||
public void onFragmentListenerSet() {
|
public void onFragmentListenerSet() {
|
||||||
}
|
}
|
||||||
|
@ -104,6 +104,7 @@ public abstract class PlayerUi {
|
||||||
* Broadcasts that the player receives will also be notified to UIs here. If you want to
|
* Broadcasts that the player receives will also be notified to UIs here. If you want to
|
||||||
* register new broadcast actions to receive here, add them to {@link
|
* register new broadcast actions to receive here, add them to {@link
|
||||||
* Player#setupBroadcastReceiver()}.
|
* Player#setupBroadcastReceiver()}.
|
||||||
|
* @param intent the broadcast intent received by the player
|
||||||
*/
|
*/
|
||||||
public void onBroadcastReceived(final Intent intent) {
|
public void onBroadcastReceived(final Intent intent) {
|
||||||
}
|
}
|
||||||
|
@ -154,12 +155,14 @@ public abstract class PlayerUi {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see com.google.android.exoplayer2.Player.Listener#onTracksChanged(Tracks)
|
* @see com.google.android.exoplayer2.Player.Listener#onTracksChanged(Tracks)
|
||||||
|
* @param currentTracks the available tracks information
|
||||||
*/
|
*/
|
||||||
public void onTextTracksChanged(@NonNull final Tracks currentTracks) {
|
public void onTextTracksChanged(@NonNull final Tracks currentTracks) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see com.google.android.exoplayer2.Player.Listener#onPlaybackParametersChanged
|
* @see com.google.android.exoplayer2.Player.Listener#onPlaybackParametersChanged
|
||||||
|
* @param playbackParameters the new playback parameters
|
||||||
*/
|
*/
|
||||||
public void onPlaybackParametersChanged(@NonNull final PlaybackParameters playbackParameters) {
|
public void onPlaybackParametersChanged(@NonNull final PlaybackParameters playbackParameters) {
|
||||||
}
|
}
|
||||||
|
@ -172,12 +175,13 @@ public abstract class PlayerUi {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see com.google.android.exoplayer2.text.TextOutput#onCues
|
* @see com.google.android.exoplayer2.text.TextOutput#onCues
|
||||||
|
* @param cues the cues to pass to the subtitle view
|
||||||
*/
|
*/
|
||||||
public void onCues(@NonNull final List<Cue> cues) {
|
public void onCues(@NonNull final List<Cue> cues) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when the stream being played changes
|
* Called when the stream being played changes.
|
||||||
* @param info the {@link StreamInfo} metadata object, along with data about the selected and
|
* @param info the {@link StreamInfo} metadata object, along with data about the selected and
|
||||||
* available video streams (to be used to build the resolution menus, for example)
|
* available video streams (to be used to build the resolution menus, for example)
|
||||||
*/
|
*/
|
||||||
|
@ -185,7 +189,7 @@ public abstract class PlayerUi {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when the thumbnail for the current metadata was loaded
|
* Called when the thumbnail for the current metadata was loaded.
|
||||||
* @param bitmap the thumbnail to process, or null if there is no thumbnail or there was an
|
* @param bitmap the thumbnail to process, or null if there is no thumbnail or there was an
|
||||||
* error when loading the thumbnail
|
* error when loading the thumbnail
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -35,7 +35,7 @@ public final class PlayerUiList {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Destroys all matching player UIs and removes them from the list
|
* Destroys all matching player UIs and removes them from the list.
|
||||||
* @param playerUiType the class of the player UI to destroy; the {@link
|
* @param playerUiType the class of the player UI to destroy; the {@link
|
||||||
* Class#isInstance(Object)} method will be used, so even subclasses will be
|
* Class#isInstance(Object)} method will be used, so even subclasses will be
|
||||||
* destroyed and removed
|
* destroyed and removed
|
||||||
|
@ -67,7 +67,7 @@ public final class PlayerUiList {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Calls the provided consumer on all player UIs in the list
|
* Calls the provided consumer on all player UIs in the list.
|
||||||
* @param consumer the consumer to call with player UIs
|
* @param consumer the consumer to call with player UIs
|
||||||
*/
|
*/
|
||||||
public void call(final Consumer<PlayerUi> consumer) {
|
public void call(final Consumer<PlayerUi> consumer) {
|
||||||
|
|
|
@ -86,7 +86,8 @@ import java.util.Optional;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public abstract class VideoPlayerUi extends PlayerUi
|
public abstract class VideoPlayerUi extends PlayerUi
|
||||||
implements SeekBar.OnSeekBarChangeListener, View.OnClickListener, View.OnLongClickListener, PopupMenu.OnMenuItemClickListener, PopupMenu.OnDismissListener {
|
implements SeekBar.OnSeekBarChangeListener, View.OnClickListener, View.OnLongClickListener,
|
||||||
|
PopupMenu.OnMenuItemClickListener, PopupMenu.OnDismissListener {
|
||||||
private static final String TAG = VideoPlayerUi.class.getSimpleName();
|
private static final String TAG = VideoPlayerUi.class.getSimpleName();
|
||||||
|
|
||||||
// time constants
|
// time constants
|
||||||
|
@ -476,7 +477,7 @@ public abstract class VideoPlayerUi extends PlayerUi
|
||||||
binding.endScreen.setImageBitmap(endScreenBitmap);
|
binding.endScreen.setImageBitmap(endScreenBitmap);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract float calculateMaxEndScreenThumbnailHeight(@NonNull final Bitmap bitmap);
|
protected abstract float calculateMaxEndScreenThumbnailHeight(@NonNull Bitmap bitmap);
|
||||||
//endregion
|
//endregion
|
||||||
|
|
||||||
|
|
||||||
|
@ -511,6 +512,7 @@ public abstract class VideoPlayerUi extends PlayerUi
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the current duration into the corresponding elements.
|
* Sets the current duration into the corresponding elements.
|
||||||
|
* @param currentProgress the current progress, in milliseconds
|
||||||
*/
|
*/
|
||||||
private void updatePlayBackElementsCurrentDuration(final int currentProgress) {
|
private void updatePlayBackElementsCurrentDuration(final int currentProgress) {
|
||||||
// Don't set seekbar progress while user is seeking
|
// Don't set seekbar progress while user is seeking
|
||||||
|
@ -522,6 +524,7 @@ public abstract class VideoPlayerUi extends PlayerUi
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the video duration time into all control components (e.g. seekbar).
|
* Sets the video duration time into all control components (e.g. seekbar).
|
||||||
|
* @param duration the video duration, in milliseconds
|
||||||
*/
|
*/
|
||||||
private void setVideoDurationToControls(final int duration) {
|
private void setVideoDurationToControls(final int duration) {
|
||||||
binding.playbackEndTime.setText(getTimeString(duration));
|
binding.playbackEndTime.setText(getTimeString(duration));
|
||||||
|
@ -1214,7 +1217,7 @@ public abstract class VideoPlayerUi extends PlayerUi
|
||||||
final MediaItemTag.Quality quality = currentMetadata.getMaybeQuality().get();
|
final MediaItemTag.Quality quality = currentMetadata.getMaybeQuality().get();
|
||||||
final List<VideoStream> availableStreams = quality.getSortedVideoStreams();
|
final List<VideoStream> availableStreams = quality.getSortedVideoStreams();
|
||||||
final int selectedStreamIndex = quality.getSelectedVideoStreamIndex();
|
final int selectedStreamIndex = quality.getSelectedVideoStreamIndex();
|
||||||
if (selectedStreamIndex == menuItemIndex|| availableStreams.size() <= menuItemIndex) {
|
if (selectedStreamIndex == menuItemIndex || availableStreams.size() <= menuItemIndex) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1320,7 +1323,7 @@ public abstract class VideoPlayerUi extends PlayerUi
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCues(@NonNull List<Cue> cues) {
|
public void onCues(@NonNull final List<Cue> cues) {
|
||||||
super.onCues(cues);
|
super.onCues(cues);
|
||||||
binding.subtitleView.setCues(cues);
|
binding.subtitleView.setCues(cues);
|
||||||
}
|
}
|
||||||
|
@ -1332,7 +1335,7 @@ public abstract class VideoPlayerUi extends PlayerUi
|
||||||
binding.subtitleView.setStyle(captionStyle);
|
binding.subtitleView.setStyle(captionStyle);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract void setupSubtitleView(final float captionScale);
|
protected abstract void setupSubtitleView(float captionScale);
|
||||||
//endregion
|
//endregion
|
||||||
|
|
||||||
|
|
||||||
|
@ -1518,7 +1521,7 @@ public abstract class VideoPlayerUi extends PlayerUi
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onVideoSizeChanged(@NonNull VideoSize videoSize) {
|
public void onVideoSizeChanged(@NonNull final VideoSize videoSize) {
|
||||||
super.onVideoSizeChanged(videoSize);
|
super.onVideoSizeChanged(videoSize);
|
||||||
binding.surfaceView.setAspectRatio(((float) videoSize.width) / videoSize.height);
|
binding.surfaceView.setAspectRatio(((float) videoSize.width) / videoSize.height);
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,6 @@ import androidx.preference.PreferenceViewHolder;
|
||||||
import org.schabi.newpipe.R;
|
import org.schabi.newpipe.R;
|
||||||
import org.schabi.newpipe.databinding.ListRadioIconItemBinding;
|
import org.schabi.newpipe.databinding.ListRadioIconItemBinding;
|
||||||
import org.schabi.newpipe.databinding.SingleChoiceDialogViewBinding;
|
import org.schabi.newpipe.databinding.SingleChoiceDialogViewBinding;
|
||||||
import org.schabi.newpipe.player.PlayerService;
|
|
||||||
import org.schabi.newpipe.player.notification.NotificationConstants;
|
import org.schabi.newpipe.player.notification.NotificationConstants;
|
||||||
import org.schabi.newpipe.util.DeviceUtils;
|
import org.schabi.newpipe.util.DeviceUtils;
|
||||||
import org.schabi.newpipe.util.ThemeHelper;
|
import org.schabi.newpipe.util.ThemeHelper;
|
||||||
|
|
Loading…
Reference in a new issue