Skip to content

Commit 30a8f25

Browse files
committed
Refactored code
1 parent d348c20 commit 30a8f25

5 files changed

Lines changed: 118 additions & 107 deletions

File tree

app/src/main/java/org/schabi/newpipe/player/Player.java

Lines changed: 30 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,8 @@
166166
import org.schabi.newpipe.player.helper.MediaSessionManager;
167167
import org.schabi.newpipe.player.helper.PlayerDataSource;
168168
import org.schabi.newpipe.player.helper.PlayerHelper;
169-
import org.schabi.newpipe.player.listeners.view.PlaybackSpeedListener;
170-
import org.schabi.newpipe.player.listeners.view.QualityTextListener;
169+
import org.schabi.newpipe.player.listeners.view.PlaybackSpeedClickListener;
170+
import org.schabi.newpipe.player.listeners.view.QualityClickListener;
171171
import org.schabi.newpipe.player.playback.CustomTrackSelector;
172172
import org.schabi.newpipe.player.playback.MediaSourceManager;
173173
import org.schabi.newpipe.player.playback.PlaybackListener;
@@ -532,9 +532,9 @@ private void initPlayer(final boolean playOnReady) {
532532

533533
private void initListeners() {
534534
binding.qualityTextView.setOnClickListener(
535-
new QualityTextListener(this, qualityPopupMenu));
535+
new QualityClickListener(this, qualityPopupMenu));
536536
binding.playbackSpeed.setOnClickListener(
537-
new PlaybackSpeedListener(this, playbackSpeedPopupMenu));
537+
new PlaybackSpeedClickListener(this, playbackSpeedPopupMenu));
538538

539539
binding.playbackSeekBar.setOnSeekBarChangeListener(this);
540540
binding.captionTextView.setOnClickListener(this);
@@ -3772,23 +3772,33 @@ public void onClick(final View v) {
37723772
context.sendBroadcast(new Intent(VideoDetailFragment.ACTION_HIDE_MAIN_PLAYER));
37733773
}
37743774

3775-
if (currentState != STATE_COMPLETED) {
3776-
controlsVisibilityHandler.removeCallbacksAndMessages(null);
3777-
showHideShadow(true, DEFAULT_CONTROLS_DURATION);
3778-
animate(binding.playbackControlRoot, true, DEFAULT_CONTROLS_DURATION,
3779-
AnimationType.ALPHA, 0, () -> {
3780-
if (currentState == STATE_PLAYING && !isSomePopupMenuVisible) {
3781-
if (v.getId() == binding.playPauseButton.getId()
3782-
// Hide controls in fullscreen immediately
3783-
|| (v.getId() == binding.screenRotationButton.getId()
3784-
&& isFullscreen)) {
3785-
hideControls(0, 0);
3786-
} else {
3787-
hideControls(DEFAULT_CONTROLS_DURATION, DEFAULT_CONTROLS_HIDE_TIME);
3788-
}
3789-
}
3790-
});
3775+
afterOnClick(v);
3776+
}
3777+
3778+
/**
3779+
* Function that should be executed after a click occured on the player UI.
3780+
* @param v – The view that was clicked
3781+
*/
3782+
public void afterOnClick(@NonNull final View v) {
3783+
if (currentState == STATE_COMPLETED) {
3784+
return;
37913785
}
3786+
3787+
controlsVisibilityHandler.removeCallbacksAndMessages(null);
3788+
showHideShadow(true, DEFAULT_CONTROLS_DURATION);
3789+
animate(binding.playbackControlRoot, true, DEFAULT_CONTROLS_DURATION,
3790+
AnimationType.ALPHA, 0, () -> {
3791+
if (currentState == STATE_PLAYING && !isSomePopupMenuVisible) {
3792+
if (v.getId() == binding.playPauseButton.getId()
3793+
// Hide controls in fullscreen immediately
3794+
|| (v.getId() == binding.screenRotationButton.getId()
3795+
&& isFullscreen)) {
3796+
hideControls(0, 0);
3797+
} else {
3798+
hideControls(DEFAULT_CONTROLS_DURATION, DEFAULT_CONTROLS_HIDE_TIME);
3799+
}
3800+
}
3801+
});
37923802
}
37933803

37943804
@Override
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package org.schabi.newpipe.player.listeners.view
2+
3+
import android.util.Log
4+
import android.view.View
5+
import android.widget.PopupMenu
6+
import org.schabi.newpipe.MainActivity
7+
import org.schabi.newpipe.player.Player
8+
import org.schabi.newpipe.player.helper.PlaybackParameterDialog
9+
10+
/**
11+
* Click listener for the playbackSpeed textview of the player
12+
*/
13+
class PlaybackSpeedClickListener(
14+
private val player: Player,
15+
private val playbackSpeedPopupMenu: PopupMenu
16+
) : View.OnClickListener {
17+
18+
companion object {
19+
private const val TAG: String = "PlaybSpeedClickListener"
20+
}
21+
22+
override fun onClick(v: View) {
23+
if (MainActivity.DEBUG) {
24+
Log.d(TAG, "onPlaybackSpeedClicked() called")
25+
}
26+
27+
if (player.videoPlayerSelected()) {
28+
PlaybackParameterDialog.newInstance(
29+
player.playbackSpeed.toDouble(),
30+
player.playbackPitch.toDouble(),
31+
player.playbackSkipSilence
32+
) { speed: Float, pitch: Float, skipSilence: Boolean ->
33+
player.setPlaybackParameters(
34+
speed,
35+
pitch,
36+
skipSilence
37+
)
38+
}
39+
.show(player.parentActivity!!.supportFragmentManager, null)
40+
} else {
41+
playbackSpeedPopupMenu.show()
42+
player.isSomePopupMenuVisible = true
43+
}
44+
45+
player.afterOnClick(v)
46+
}
47+
}

app/src/main/java/org/schabi/newpipe/player/listeners/view/PlaybackSpeedListener.kt

Lines changed: 0 additions & 46 deletions
This file was deleted.
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package org.schabi.newpipe.player.listeners.view
2+
3+
import android.annotation.SuppressLint
4+
import android.util.Log
5+
import android.view.View
6+
import android.widget.PopupMenu
7+
import org.schabi.newpipe.MainActivity
8+
import org.schabi.newpipe.extractor.MediaFormat
9+
import org.schabi.newpipe.player.Player
10+
11+
/**
12+
* Click listener for the qualityTextView of the player
13+
*/
14+
class QualityClickListener(
15+
private val player: Player,
16+
private val qualityPopupMenu: PopupMenu
17+
) : View.OnClickListener {
18+
19+
companion object {
20+
private const val TAG: String = "QualityClickListener"
21+
}
22+
23+
@SuppressLint("SetTextI18n") // we don't need I18N because of a " "
24+
override fun onClick(v: View) {
25+
if (MainActivity.DEBUG) {
26+
Log.d(TAG, "onQualitySelectorClicked() called")
27+
}
28+
29+
qualityPopupMenu.show()
30+
player.isSomePopupMenuVisible = true
31+
32+
val videoStream = player.selectedVideoStream
33+
if (videoStream != null) {
34+
player.binding.qualityTextView.text =
35+
MediaFormat.getNameById(videoStream.formatId) + " " + videoStream.resolution
36+
}
37+
38+
player.saveWasPlaying()
39+
player.afterOnClick(v)
40+
}
41+
}

app/src/main/java/org/schabi/newpipe/player/listeners/view/QualityTextListener.kt

Lines changed: 0 additions & 41 deletions
This file was deleted.

0 commit comments

Comments
 (0)