Skip to content

Commit 5108d75

Browse files
committed
Fix NPE and add some @Nullables
Fix NullPointerException in PlayerHolder.getQueueSize() and add `@Nullable` here and there so that the linter reports risks of NPEs
1 parent ac53196 commit 5108d75

2 files changed

Lines changed: 11 additions & 5 deletions

File tree

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,8 @@ public final class Player implements
260260
// Playback
261261
//////////////////////////////////////////////////////////////////////////*/
262262

263-
private PlayQueue playQueue;
263+
// play queue might be null e.g. while player is starting
264+
@Nullable private PlayQueue playQueue;
264265
private PlayQueueAdapter playQueueAdapter;
265266
private StreamSegmentAdapter segmentAdapter;
266267

@@ -4202,6 +4203,7 @@ public boolean popupPlayerSelected() {
42024203
}
42034204

42044205

4206+
@Nullable
42054207
public PlayQueue getPlayQueue() {
42064208
return playQueue;
42074209
}

app/src/main/java/org/schabi/newpipe/player/helper/PlayerHolder.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,12 @@ public static synchronized PlayerHolder getInstance() {
3838
private static final boolean DEBUG = MainActivity.DEBUG;
3939
private static final String TAG = PlayerHolder.class.getSimpleName();
4040

41-
private PlayerServiceExtendedEventListener listener;
41+
@Nullable private PlayerServiceExtendedEventListener listener;
4242

4343
private final PlayerServiceConnection serviceConnection = new PlayerServiceConnection();
4444
private boolean bound;
45-
private MainPlayer playerService;
46-
private Player player;
45+
@Nullable private MainPlayer playerService;
46+
@Nullable private Player player;
4747

4848
/**
4949
* Returns the current {@link MainPlayer.PlayerType} of the {@link MainPlayer} service,
@@ -75,7 +75,11 @@ public boolean isBound() {
7575
}
7676

7777
public int getQueueSize() {
78-
return isPlayerOpen() ? player.getPlayQueue().size() : 0;
78+
if (player == null || player.getPlayQueue() == null) {
79+
// player play queue might be null e.g. while player is starting
80+
return 0;
81+
}
82+
return player.getPlayQueue().size();
7983
}
8084

8185
public void setListener(@Nullable final PlayerServiceExtendedEventListener newListener) {

0 commit comments

Comments
 (0)