diff options
author | Sungsoo Lim <sungsoo@google.com> | 2019-04-25 10:55:23 +0900 |
---|---|---|
committer | Sungsoo Lim <sungsoo@google.com> | 2019-04-26 11:31:18 +0900 |
commit | 590422b9d3897ab86f8d5d787aaa3bbe9528754a (patch) | |
tree | b1b654f80aa9f95a1ce16047aea25c0de27b2b79 | |
parent | 0df41beca759cf931784489af33cb16bff26fc2d (diff) | |
download | support-590422b9d3897ab86f8d5d787aaa3bbe9528754a.tar.gz |
Code clean up: ILE -> NPE
Bug: 131254583, Bug: 130694010
Test: pass media2-session, media2-player tests, and
media2-session version-compat-test
Change-Id: I548584902367201c418d35173ad615766631a7e0
36 files changed, 211 insertions, 168 deletions
diff --git a/media/src/main/java/android/support/v4/media/session/MediaSessionCompat.java b/media/src/main/java/android/support/v4/media/session/MediaSessionCompat.java index 3409c814a85..a54240612a7 100644 --- a/media/src/main/java/android/support/v4/media/session/MediaSessionCompat.java +++ b/media/src/main/java/android/support/v4/media/session/MediaSessionCompat.java @@ -1956,7 +1956,7 @@ public class MediaSessionCompat { MediaDescriptionCompat description, long id) { if (description == null) { - throw new IllegalArgumentException("Description cannot be null."); + throw new IllegalArgumentException("Description cannot be null"); } if (id == UNKNOWN_ID) { throw new IllegalArgumentException("Id cannot be QueueItem.UNKNOWN_ID"); @@ -2227,7 +2227,7 @@ public class MediaSessionCompat { PendingIntent mbrIntent, Bundle sessionInfo) { if (mbrComponent == null) { throw new IllegalArgumentException( - "MediaButtonReceiver component may not be null."); + "MediaButtonReceiver component may not be null"); } mContext = context; mPackageName = context.getPackageName(); diff --git a/media/src/main/java/android/support/v4/media/session/PlaybackStateCompat.java b/media/src/main/java/android/support/v4/media/session/PlaybackStateCompat.java index 57a33024285..d1399d64ec7 100644 --- a/media/src/main/java/android/support/v4/media/session/PlaybackStateCompat.java +++ b/media/src/main/java/android/support/v4/media/session/PlaybackStateCompat.java @@ -1054,15 +1054,15 @@ public final class PlaybackStateCompat implements Parcelable { public Builder(String action, CharSequence name, int icon) { if (TextUtils.isEmpty(action)) { throw new IllegalArgumentException( - "You must specify an action to build a CustomAction."); + "You must specify an action to build a CustomAction"); } if (TextUtils.isEmpty(name)) { throw new IllegalArgumentException( - "You must specify a name to build a CustomAction."); + "You must specify a name to build a CustomAction"); } if (icon == 0) { throw new IllegalArgumentException( - "You must specify an icon resource id to build a CustomAction."); + "You must specify an icon resource id to build a CustomAction"); } mAction = action; mName = name; @@ -1302,7 +1302,7 @@ public final class PlaybackStateCompat implements Parcelable { public Builder addCustomAction(PlaybackStateCompat.CustomAction customAction) { if (customAction == null) { throw new IllegalArgumentException( - "You may not add a null CustomAction to PlaybackStateCompat."); + "You may not add a null CustomAction to PlaybackStateCompat"); } mCustomActions.add(customAction); return this; diff --git a/media/src/main/java/androidx/media/MediaBrowserServiceCompat.java b/media/src/main/java/androidx/media/MediaBrowserServiceCompat.java index d9ffcd9d7f0..0a12fc9e323 100644 --- a/media/src/main/java/androidx/media/MediaBrowserServiceCompat.java +++ b/media/src/main/java/androidx/media/MediaBrowserServiceCompat.java @@ -953,7 +953,7 @@ public abstract class MediaBrowserServiceCompat extends Service { float value = extras.getFloat(MediaBrowserCompat.EXTRA_DOWNLOAD_PROGRESS); if (value < -EPSILON || value > 1.0f + EPSILON) { throw new IllegalArgumentException("The value of the EXTRA_DOWNLOAD_PROGRESS " - + "field must be a float number within [0.0, 1.0]."); + + "field must be a float number within [0.0, 1.0]"); } } } @@ -1520,10 +1520,10 @@ public abstract class MediaBrowserServiceCompat extends Service { */ public void setSessionToken(MediaSessionCompat.Token token) { if (token == null) { - throw new IllegalArgumentException("Session token may not be null."); + throw new IllegalArgumentException("Session token may not be null"); } if (mSession != null) { - throw new IllegalStateException("The session token has already been set."); + throw new IllegalStateException("The session token has already been set"); } mSession = token; mImpl.setSessionToken(token); @@ -1950,7 +1950,7 @@ public abstract class MediaBrowserServiceCompat extends Service { public BrowserRoot(@NonNull String rootId, @Nullable Bundle extras) { if (rootId == null) { throw new IllegalArgumentException("The root id in BrowserRoot cannot be null. " + - "Use null for BrowserRoot instead."); + "Use null for BrowserRoot instead"); } mRootId = rootId; mExtras = extras; diff --git a/media/src/main/java/androidx/media/MediaSessionManager.java b/media/src/main/java/androidx/media/MediaSessionManager.java index c75c47da3bc..7183e026190 100644 --- a/media/src/main/java/androidx/media/MediaSessionManager.java +++ b/media/src/main/java/androidx/media/MediaSessionManager.java @@ -50,7 +50,8 @@ public final class MediaSessionManager { * * @return The MediaSessionManager instance for this context. */ - public static @NonNull MediaSessionManager getSessionManager(@NonNull Context context) { + @NonNull + public static MediaSessionManager getSessionManager(@NonNull Context context) { if (context == null) { throw new IllegalArgumentException("context cannot be null"); } diff --git a/media2/common/src/main/java/androidx/media2/common/MediaMetadata.java b/media2/common/src/main/java/androidx/media2/common/MediaMetadata.java index 4c1be5b2cbc..f3d7a0b57df 100644 --- a/media2/common/src/main/java/androidx/media2/common/MediaMetadata.java +++ b/media2/common/src/main/java/androidx/media2/common/MediaMetadata.java @@ -793,7 +793,7 @@ public final class MediaMetadata extends CustomVersionedParcelable { */ public boolean containsKey(@NonNull String key) { if (key == null) { - throw new IllegalArgumentException("key shouldn't be null"); + throw new NullPointerException("key shouldn't be null"); } return mBundle.containsKey(key); } @@ -808,7 +808,7 @@ public final class MediaMetadata extends CustomVersionedParcelable { */ public @Nullable CharSequence getText(@NonNull @TextKey String key) { if (key == null) { - throw new IllegalArgumentException("key shouldn't be null"); + throw new NullPointerException("key shouldn't be null"); } return mBundle.getCharSequence(key); } @@ -836,7 +836,7 @@ public final class MediaMetadata extends CustomVersionedParcelable { */ public @Nullable String getString(@NonNull @TextKey String key) { if (key == null) { - throw new IllegalArgumentException("key shouldn't be null"); + throw new NullPointerException("key shouldn't be null"); } CharSequence text = mBundle.getCharSequence(key); if (text != null) { @@ -854,7 +854,7 @@ public final class MediaMetadata extends CustomVersionedParcelable { */ public long getLong(@NonNull @LongKey String key) { if (key == null) { - throw new IllegalArgumentException("key shouldn't be null"); + throw new NullPointerException("key shouldn't be null"); } return mBundle.getLong(key, 0); } @@ -871,7 +871,7 @@ public final class MediaMetadata extends CustomVersionedParcelable { */ public @Nullable Rating getRating(@NonNull @RatingKey String key) { if (key == null) { - throw new IllegalArgumentException("key shouldn't be null"); + throw new NullPointerException("key shouldn't be null"); } Rating rating = null; try { @@ -892,7 +892,7 @@ public final class MediaMetadata extends CustomVersionedParcelable { */ public float getFloat(@NonNull @FloatKey String key) { if (key == null) { - throw new IllegalArgumentException("key shouldn't be null"); + throw new NullPointerException("key shouldn't be null"); } return mBundle.getFloat(key); } @@ -906,7 +906,7 @@ public final class MediaMetadata extends CustomVersionedParcelable { */ public @Nullable Bitmap getBitmap(@NonNull @BitmapKey String key) { if (key == null) { - throw new IllegalArgumentException("key shouldn't be null"); + throw new NullPointerException("key shouldn't be null"); } Bitmap bmp = null; try { @@ -964,7 +964,7 @@ public final class MediaMetadata extends CustomVersionedParcelable { @RestrictTo(LIBRARY_GROUP_PREFIX) public @Nullable Object getObject(@NonNull String key) { if (key == null) { - throw new IllegalArgumentException("key shouldn't be null"); + throw new NullPointerException("key shouldn't be null"); } return mBundle.get(key); } @@ -1075,7 +1075,7 @@ public final class MediaMetadata extends CustomVersionedParcelable { public @NonNull Builder putText(@NonNull @TextKey String key, @Nullable CharSequence value) { if (key == null) { - throw new IllegalArgumentException("key shouldn't be null"); + throw new NullPointerException("key shouldn't be null"); } if (METADATA_KEYS_TYPE.containsKey(key)) { if (METADATA_KEYS_TYPE.get(key) != METADATA_TYPE_TEXT) { @@ -1119,7 +1119,7 @@ public final class MediaMetadata extends CustomVersionedParcelable { public @NonNull Builder putString(@NonNull @TextKey String key, @Nullable String value) { if (key == null) { - throw new IllegalArgumentException("key shouldn't be null"); + throw new NullPointerException("key shouldn't be null"); } if (METADATA_KEYS_TYPE.containsKey(key)) { if (METADATA_KEYS_TYPE.get(key) != METADATA_TYPE_TEXT) { @@ -1153,7 +1153,7 @@ public final class MediaMetadata extends CustomVersionedParcelable { */ public @NonNull Builder putLong(@NonNull @LongKey String key, long value) { if (key == null) { - throw new IllegalArgumentException("key shouldn't be null"); + throw new NullPointerException("key shouldn't be null"); } if (METADATA_KEYS_TYPE.containsKey(key)) { if (METADATA_KEYS_TYPE.get(key) != METADATA_TYPE_LONG) { @@ -1181,7 +1181,7 @@ public final class MediaMetadata extends CustomVersionedParcelable { public @NonNull Builder putRating(@NonNull @RatingKey String key, @Nullable Rating value) { if (key == null) { - throw new IllegalArgumentException("key shouldn't be null"); + throw new NullPointerException("key shouldn't be null"); } if (METADATA_KEYS_TYPE.containsKey(key)) { if (METADATA_KEYS_TYPE.get(key) != METADATA_TYPE_RATING) { @@ -1213,7 +1213,7 @@ public final class MediaMetadata extends CustomVersionedParcelable { public @NonNull Builder putBitmap(@NonNull @BitmapKey String key, @Nullable Bitmap value) { if (key == null) { - throw new IllegalArgumentException("key shouldn't be null"); + throw new NullPointerException("key shouldn't be null"); } if (METADATA_KEYS_TYPE.containsKey(key)) { if (METADATA_KEYS_TYPE.get(key) != METADATA_TYPE_BITMAP) { @@ -1234,7 +1234,7 @@ public final class MediaMetadata extends CustomVersionedParcelable { */ public @NonNull Builder putFloat(@NonNull @LongKey String key, float value) { if (key == null) { - throw new IllegalArgumentException("key shouldn't be null"); + throw new NullPointerException("key shouldn't be null"); } if (METADATA_KEYS_TYPE.containsKey(key)) { if (METADATA_KEYS_TYPE.get(key) != METADATA_TYPE_FLOAT) { diff --git a/media2/common/src/main/java/androidx/media2/common/ParcelImplListSlice.java b/media2/common/src/main/java/androidx/media2/common/ParcelImplListSlice.java index 5e96a286e66..4c858e57a5c 100644 --- a/media2/common/src/main/java/androidx/media2/common/ParcelImplListSlice.java +++ b/media2/common/src/main/java/androidx/media2/common/ParcelImplListSlice.java @@ -53,7 +53,7 @@ public class ParcelImplListSlice implements Parcelable { public ParcelImplListSlice(@NonNull List<ParcelImpl> list) { if (list == null) { - throw new IllegalArgumentException("list shouldn't be null"); + throw new NullPointerException("list shouldn't be null"); } mList = list; } diff --git a/media2/common/src/main/java/androidx/media2/common/SessionPlayer.java b/media2/common/src/main/java/androidx/media2/common/SessionPlayer.java index 13304b4844a..92a75ebcf4f 100644 --- a/media2/common/src/main/java/androidx/media2/common/SessionPlayer.java +++ b/media2/common/src/main/java/androidx/media2/common/SessionPlayer.java @@ -756,10 +756,10 @@ public abstract class SessionPlayer implements AutoCloseable { @NonNull /*@CallbackExecutor*/ Executor executor, @NonNull PlayerCallback callback) { if (executor == null) { - throw new IllegalArgumentException("executor shouldn't be null"); + throw new NullPointerException("executor shouldn't be null"); } if (callback == null) { - throw new IllegalArgumentException("callback shouldn't be null"); + throw new NullPointerException("callback shouldn't be null"); } synchronized (mLock) { @@ -781,7 +781,7 @@ public abstract class SessionPlayer implements AutoCloseable { */ public final void unregisterPlayerCallback(@NonNull PlayerCallback callback) { if (callback == null) { - throw new IllegalArgumentException("callback shouldn't be null"); + throw new NullPointerException("callback shouldn't be null"); } synchronized (mLock) { for (int i = mCallbacks.size() - 1; i >= 0; i--) { diff --git a/media2/common/src/main/java/androidx/media2/common/UriMediaItem.java b/media2/common/src/main/java/androidx/media2/common/UriMediaItem.java index 0b772fb43af..ebaca476566 100644 --- a/media2/common/src/main/java/androidx/media2/common/UriMediaItem.java +++ b/media2/common/src/main/java/androidx/media2/common/UriMediaItem.java @@ -147,7 +147,7 @@ public class UriMediaItem extends MediaItem { if (cookieHandler != null && !(cookieHandler instanceof CookieManager)) { throw new IllegalArgumentException( "The cookie handler has to be of CookieManager type " - + "when cookies are provided."); + + "when cookies are provided"); } } diff --git a/media2/player/api/1.0.0-alpha05.txt b/media2/player/api/1.0.0-alpha05.txt index e4e13a5e5f4..85b0b16df99 100644 --- a/media2/player/api/1.0.0-alpha05.txt +++ b/media2/player/api/1.0.0-alpha05.txt @@ -5,7 +5,7 @@ package androidx.media2.player { ctor public MediaPlayer(android.content.Context); method public com.google.common.util.concurrent.ListenableFuture<androidx.media2.common.SessionPlayer.PlayerResult> addPlaylistItem(int, androidx.media2.common.MediaItem); method public com.google.common.util.concurrent.ListenableFuture<androidx.media2.common.SessionPlayer.PlayerResult> attachAuxEffect(int); - method public void close() throws java.lang.Exception; + method public void close(); method public androidx.media.AudioAttributesCompat? getAudioAttributes(); method public int getAudioSessionId(); method public long getBufferedPosition(); diff --git a/media2/player/api/current.txt b/media2/player/api/current.txt index e4e13a5e5f4..85b0b16df99 100644 --- a/media2/player/api/current.txt +++ b/media2/player/api/current.txt @@ -5,7 +5,7 @@ package androidx.media2.player { ctor public MediaPlayer(android.content.Context); method public com.google.common.util.concurrent.ListenableFuture<androidx.media2.common.SessionPlayer.PlayerResult> addPlaylistItem(int, androidx.media2.common.MediaItem); method public com.google.common.util.concurrent.ListenableFuture<androidx.media2.common.SessionPlayer.PlayerResult> attachAuxEffect(int); - method public void close() throws java.lang.Exception; + method public void close(); method public androidx.media.AudioAttributesCompat? getAudioAttributes(); method public int getAudioSessionId(); method public long getBufferedPosition(); diff --git a/media2/player/src/androidTest/java/androidx/media2/player/MediaPlayerDrmTest.java b/media2/player/src/androidTest/java/androidx/media2/player/MediaPlayerDrmTest.java index 48a04b9355c..71a18e7b8ce 100644 --- a/media2/player/src/androidTest/java/androidx/media2/player/MediaPlayerDrmTest.java +++ b/media2/player/src/androidTest/java/androidx/media2/player/MediaPlayerDrmTest.java @@ -1081,7 +1081,7 @@ public class MediaPlayerDrmTest { throw new InterruptedException( "Timeout waiting for IDs " + Arrays.toString(waitForIds) + "; received " + mCompleteIds.toString() - + ". Make sure you have WiFi or some other connectivity for this test."); + + ". Make sure you have WiFi or some other connectivity for this test"); } } diff --git a/media2/player/src/androidTest/java/androidx/media2/player/MediaPlayer_AudioFocusTest.java b/media2/player/src/androidTest/java/androidx/media2/player/MediaPlayer_AudioFocusTest.java index b0d64fcaeee..2ac95698e58 100644 --- a/media2/player/src/androidTest/java/androidx/media2/player/MediaPlayer_AudioFocusTest.java +++ b/media2/player/src/androidTest/java/androidx/media2/player/MediaPlayer_AudioFocusTest.java @@ -380,19 +380,6 @@ public class MediaPlayer_AudioFocusTest extends MediaPlayerTestBase { } @Test - public void testAudioFocus_setVolumeZeroWhenAudioAttributesIsMissing() - throws Exception { - prepareLooper(); - - // Request an audio focus in advance. - requestAudioFocus(AUDIOFOCUS_GAIN); - initPlayer(null); - mPlayer.play(); - assertNoAudioFocusChanges(AUDIOFOCUS_GAIN); - assertEquals(0, mPlayer.getPlayerVolume(), 0.1f); - } - - @Test public void testAudioFocus_pauseForFocusLoss() throws Exception { prepareLooper(); diff --git a/media2/player/src/main/java/androidx/media2/player/MediaPlayer.java b/media2/player/src/main/java/androidx/media2/player/MediaPlayer.java index e17f349d185..b4fd33c0d37 100644 --- a/media2/player/src/main/java/androidx/media2/player/MediaPlayer.java +++ b/media2/player/src/main/java/androidx/media2/player/MediaPlayer.java @@ -677,6 +677,9 @@ public class MediaPlayer extends SessionPlayer { * @param context A {@link Context} that will be used to resolve {@link UriMediaItem}. */ public MediaPlayer(@NonNull Context context) { + if (context == null) { + throw new NullPointerException("context shouldn't be null"); + } mState = PLAYER_STATE_IDLE; mPlayer = MediaPlayer2.create(context); mExecutor = Executors.newFixedThreadPool(1); @@ -851,6 +854,9 @@ public class MediaPlayer extends SessionPlayer { @Override public ListenableFuture<PlayerResult> setAudioAttributes( @NonNull final AudioAttributesCompat attr) { + if (attr == null) { + throw new NullPointerException("attr shouldn't be null"); + } PendingFuture<PlayerResult> pendingFuture = new PendingFuture<PlayerResult>(mExecutor) { @Override List<ResolvableFuture<PlayerResult>> onExecute() { @@ -1486,7 +1492,7 @@ public class MediaPlayer extends SessionPlayer { } @Override - public void close() throws Exception { + public void close() { reset(); mAudioFocusHandler.close(); mPlayer.close(); @@ -1674,6 +1680,9 @@ public class MediaPlayer extends SessionPlayer { */ @NonNull public ListenableFuture<PlayerResult> setPlaybackParams(@NonNull final PlaybackParams params) { + if (params == null) { + throw new NullPointerException("params shouldn't be null"); + } PendingFuture<PlayerResult> pendingFuture = new PendingFuture<PlayerResult>(mExecutor) { @Override List<ResolvableFuture<PlayerResult>> onExecute() { @@ -1973,6 +1982,9 @@ public class MediaPlayer extends SessionPlayer { // TODO: support subtitle track selection (b/130312596) @NonNull public ListenableFuture<PlayerResult> selectTrack(@NonNull final TrackInfo trackInfo) { + if (trackInfo == null) { + throw new NullPointerException("trackInfo shouldn't be null"); + } final int trackId = trackInfo.mId; PendingFuture<PlayerResult> pendingFuture = new PendingFuture<PlayerResult>(mExecutor) { @Override @@ -2014,6 +2026,9 @@ public class MediaPlayer extends SessionPlayer { @RestrictTo(LIBRARY_GROUP_PREFIX) @NonNull public ListenableFuture<PlayerResult> deselectTrack(@NonNull final TrackInfo trackInfo) { + if (trackInfo == null) { + throw new NullPointerException("trackInfo shouldn't be null"); + } final int trackId = trackInfo.mId; PendingFuture<PlayerResult> pendingFuture = new PendingFuture<PlayerResult>(mExecutor) { @Override @@ -2053,6 +2068,9 @@ public class MediaPlayer extends SessionPlayer { * @throws IllegalArgumentException if the callback is {@code null}. */ public void unregisterPlayerCallback(@NonNull PlayerCallback callback) { + if (callback == null) { + throw new NullPointerException("callback shouldn't be null"); + } super.unregisterPlayerCallback(callback); } @@ -2097,6 +2115,9 @@ public class MediaPlayer extends SessionPlayer { // This is an asynchronous call. @NonNull public ListenableFuture<DrmResult> prepareDrm(@NonNull final UUID uuid) { + if (uuid == null) { + throw new NullPointerException("uuid shouldn't be null"); + } PendingFuture<DrmResult> pendingFuture = new PendingFuture<DrmResult>(mExecutor) { @Override List<ResolvableFuture<DrmResult>> onExecute() { @@ -2229,6 +2250,9 @@ public class MediaPlayer extends SessionPlayer { */ @RestrictTo(LIBRARY_GROUP_PREFIX) public void restoreDrmKeys(@NonNull byte[] keySetId) throws NoDrmSchemeException { + if (keySetId == null) { + throw new NullPointerException("keySetId shouldn't be null"); + } try { mPlayer.restoreDrmKeys(keySetId); } catch (MediaPlayer2.NoDrmSchemeException e) { @@ -2249,6 +2273,9 @@ public class MediaPlayer extends SessionPlayer { @RestrictTo(LIBRARY_GROUP_PREFIX) @NonNull public String getDrmPropertyString(@NonNull String propertyName) throws NoDrmSchemeException { + if (propertyName == null) { + throw new NullPointerException("propertyName shouldn't be null"); + } try { return mPlayer.getDrmPropertyString(propertyName); } catch (MediaPlayer2.NoDrmSchemeException e) { @@ -2270,6 +2297,12 @@ public class MediaPlayer extends SessionPlayer { @RestrictTo(LIBRARY_GROUP_PREFIX) public void setDrmPropertyString(@NonNull String propertyName, @NonNull String value) throws NoDrmSchemeException { + if (propertyName == null) { + throw new NullPointerException("propertyName shouldn't be null"); + } + if (value == null) { + throw new NullPointerException("value shouldn't be null"); + } try { mPlayer.setDrmPropertyString(propertyName, value); } catch (MediaPlayer2.NoDrmSchemeException e) { @@ -2374,6 +2407,9 @@ public class MediaPlayer extends SessionPlayer { @SuppressWarnings("WeakerAccess") /* synthetic access */ List<ResolvableFuture<PlayerResult>> setMediaItemsInternal( @NonNull MediaItem curItem, @Nullable MediaItem nextItem) { + if (curItem == null) { + throw new NullPointerException("curItem shouldn't be null"); + } boolean setMediaItemCalled; synchronized (mPlaylistLock) { setMediaItemCalled = mSetMediaItemCalled; diff --git a/media2/player/src/main/java/androidx/media2/player/MediaPlayer2Impl.java b/media2/player/src/main/java/androidx/media2/player/MediaPlayer2Impl.java index 35ba3e5a255..bf1a24b4cbf 100644 --- a/media2/player/src/main/java/androidx/media2/player/MediaPlayer2Impl.java +++ b/media2/player/src/main/java/androidx/media2/player/MediaPlayer2Impl.java @@ -358,7 +358,7 @@ public final class MediaPlayer2Impl extends MediaPlayer2 { @Override void process() { if (items == null || items.size() == 0) { - throw new IllegalArgumentException("media item list cannot be null or empty."); + throw new IllegalArgumentException("media item list cannot be null or empty"); } for (MediaItem item : items) { if (item == null) { diff --git a/media2/player/src/main/java/androidx/media2/player/PlaybackParams.java b/media2/player/src/main/java/androidx/media2/player/PlaybackParams.java index c07fa42745d..e463802d6d3 100644 --- a/media2/player/src/main/java/androidx/media2/player/PlaybackParams.java +++ b/media2/player/src/main/java/androidx/media2/player/PlaybackParams.java @@ -202,6 +202,9 @@ public final class PlaybackParams { * @param playbackParams the non-null instance to initialize from. */ public Builder(@NonNull PlaybackParams playbackParams) { + if (playbackParams == null) { + throw new NullPointerException("playbakcParams shouldn't be null"); + } if (Build.VERSION.SDK_INT >= 23) { mPlaybackParams = playbackParams.getPlaybackParams(); } else { @@ -252,10 +255,10 @@ public final class PlaybackParams { public @NonNull Builder setSpeed( @FloatRange(from = 0.0f, to = Float.MAX_VALUE, fromInclusive = false) float speed) { if (speed == 0.f) { - throw new IllegalArgumentException("0 speed is not allowed."); + throw new IllegalArgumentException("0 speed is not allowed"); } if (speed < 0.f) { - throw new IllegalArgumentException("negative speed is not supported."); + throw new IllegalArgumentException("negative speed is not supported"); } if (Build.VERSION.SDK_INT >= 23) { mPlaybackParams.setSpeed(speed); diff --git a/media2/session/src/androidTest/java/androidx/media2/session/MediaSessionTest.java b/media2/session/src/androidTest/java/androidx/media2/session/MediaSessionTest.java index 43ba9bacc1a..afd584edc2e 100644 --- a/media2/session/src/androidTest/java/androidx/media2/session/MediaSessionTest.java +++ b/media2/session/src/androidTest/java/androidx/media2/session/MediaSessionTest.java @@ -119,14 +119,14 @@ public class MediaSessionTest extends MediaSessionTestBase { try { builder = new MediaSession.Builder(mContext, null); fail("null player shouldn't be allowed"); - } catch (IllegalArgumentException e) { + } catch (NullPointerException e) { // expected. pass-through } try { builder = new MediaSession.Builder(mContext, mPlayer); builder.setId(null); fail("null id shouldn't be allowed"); - } catch (IllegalArgumentException e) { + } catch (NullPointerException e) { // expected. pass-through } } diff --git a/media2/session/src/main/java/androidx/media2/session/MediaController.java b/media2/session/src/main/java/androidx/media2/session/MediaController.java index ed50340aa71..a65f8456789 100644 --- a/media2/session/src/main/java/androidx/media2/session/MediaController.java +++ b/media2/session/src/main/java/androidx/media2/session/MediaController.java @@ -137,19 +137,19 @@ public class MediaController implements AutoCloseable { * @param callback controller callback to receive changes in */ MediaController(@NonNull final Context context, @NonNull final SessionToken token, - @NonNull Bundle connectionHints, @NonNull Executor executor, + @Nullable Bundle connectionHints, @NonNull Executor executor, @NonNull ControllerCallback callback) { if (context == null) { - throw new IllegalArgumentException("context shouldn't be null"); + throw new NullPointerException("context shouldn't be null"); } if (token == null) { - throw new IllegalArgumentException("token shouldn't be null"); + throw new NullPointerException("token shouldn't be null"); } if (callback == null) { - throw new IllegalArgumentException("callback shouldn't be null"); + throw new NullPointerException("callback shouldn't be null"); } if (executor == null) { - throw new IllegalArgumentException("executor shouldn't be null"); + throw new NullPointerException("executor shouldn't be null"); } synchronized (mLock) { mImpl = createImpl(context, token, connectionHints, executor, callback); @@ -165,19 +165,19 @@ public class MediaController implements AutoCloseable { * @param callback controller callback to receive changes in */ MediaController(@NonNull final Context context, @NonNull final MediaSessionCompat.Token token, - @NonNull final Bundle connectionHints, @NonNull final Executor executor, + @Nullable final Bundle connectionHints, @NonNull final Executor executor, @NonNull final ControllerCallback callback) { if (context == null) { - throw new IllegalArgumentException("context shouldn't be null"); + throw new NullPointerException("context shouldn't be null"); } if (token == null) { - throw new IllegalArgumentException("token shouldn't be null"); + throw new NullPointerException("token shouldn't be null"); } if (callback == null) { - throw new IllegalArgumentException("callback shouldn't be null"); + throw new NullPointerException("callback shouldn't be null"); } if (executor == null) { - throw new IllegalArgumentException("executor shouldn't be null"); + throw new NullPointerException("executor shouldn't be null"); } SessionToken.createSessionToken(context, token, executor, new SessionToken.OnSessionTokenCreatedListener() { @@ -434,7 +434,7 @@ public class MediaController implements AutoCloseable { public ListenableFuture<SessionResult> playFromUri(@NonNull Uri uri, @Nullable Bundle extras) { if (uri == null) { - throw new IllegalArgumentException("uri shouldn't be null"); + throw new NullPointerException("uri shouldn't be null"); } if (isConnected()) { return getImpl().playFromUri(uri, extras); @@ -511,7 +511,7 @@ public class MediaController implements AutoCloseable { public ListenableFuture<SessionResult> prepareFromUri(@NonNull Uri uri, @Nullable Bundle extras) { if (uri == null) { - throw new IllegalArgumentException("uri shouldn't be null"); + throw new NullPointerException("uri shouldn't be null"); } if (isConnected()) { return getImpl().prepareFromUri(uri, extras); @@ -687,11 +687,13 @@ public class MediaController implements AutoCloseable { @NonNull public ListenableFuture<SessionResult> setRating(@NonNull String mediaId, @NonNull Rating rating) { - if (TextUtils.isEmpty(mediaId)) { + if (mediaId == null) { + throw new NullPointerException("mediaId shouldn't be null"); + } else if (TextUtils.isEmpty(mediaId)) { throw new IllegalArgumentException("mediaId shouldn't be empty"); } if (rating == null) { - throw new IllegalArgumentException("rating shouldn't be null"); + throw new NullPointerException("rating shouldn't be null"); } if (isConnected()) { return getImpl().setRating(mediaId, rating); @@ -768,7 +770,7 @@ public class MediaController implements AutoCloseable { public ListenableFuture<SessionResult> setPlaylist(@NonNull List<String> list, @Nullable MediaMetadata metadata) { if (list == null) { - throw new IllegalArgumentException("list shouldn't be null"); + throw new NullPointerException("list shouldn't be null"); } for (int i = 0; i < list.size(); i++) { if (TextUtils.isEmpty(list.get(i))) { @@ -1261,7 +1263,7 @@ public class MediaController implements AutoCloseable { */ BuilderBase(@NonNull Context context) { if (context == null) { - throw new IllegalArgumentException("context shouldn't be null"); + throw new NullPointerException("context shouldn't be null"); } mContext = context; } @@ -1306,7 +1308,7 @@ public class MediaController implements AutoCloseable { @NonNull public U setSessionToken(@NonNull SessionToken token) { if (token == null) { - throw new IllegalArgumentException("token shouldn't be null"); + throw new NullPointerException("token shouldn't be null"); } mToken = token; mCompatToken = null; @@ -1325,7 +1327,7 @@ public class MediaController implements AutoCloseable { @NonNull public U setSessionCompatToken(@NonNull MediaSessionCompat.Token compatToken) { if (compatToken == null) { - throw new IllegalArgumentException("compatToken shouldn't be null"); + throw new NullPointerException("compatToken shouldn't be null"); } mCompatToken = compatToken; mToken = null; @@ -1347,7 +1349,7 @@ public class MediaController implements AutoCloseable { @NonNull public U setConnectionHints(@NonNull Bundle connectionHints) { if (connectionHints == null) { - throw new IllegalArgumentException("connectionHints shouldn't be null"); + throw new NullPointerException("connectionHints shouldn't be null"); } mConnectionHints = new Bundle(connectionHints); return (U) this; @@ -1363,10 +1365,10 @@ public class MediaController implements AutoCloseable { @NonNull public U setControllerCallback(@NonNull Executor executor, @NonNull C callback) { if (executor == null) { - throw new IllegalArgumentException("executor shouldn't be null"); + throw new NullPointerException("executor shouldn't be null"); } if (callback == null) { - throw new IllegalArgumentException("callback shouldn't be null"); + throw new NullPointerException("callback shouldn't be null"); } mCallbackExecutor = executor; mCallback = callback; diff --git a/media2/session/src/main/java/androidx/media2/session/MediaControllerImplBase.java b/media2/session/src/main/java/androidx/media2/session/MediaControllerImplBase.java index 9fc98a26b46..70dc487654e 100644 --- a/media2/session/src/main/java/androidx/media2/session/MediaControllerImplBase.java +++ b/media2/session/src/main/java/androidx/media2/session/MediaControllerImplBase.java @@ -162,16 +162,16 @@ class MediaControllerImplBase implements MediaControllerImpl { @Nullable Bundle connectionHints, Executor executor, ControllerCallback callback) { mInstance = instance; if (context == null) { - throw new IllegalArgumentException("context shouldn't be null"); + throw new NullPointerException("context shouldn't be null"); } if (token == null) { - throw new IllegalArgumentException("token shouldn't be null"); + throw new NullPointerException("token shouldn't be null"); } if (callback == null) { - throw new IllegalArgumentException("callback shouldn't be null"); + throw new NullPointerException("callback shouldn't be null"); } if (executor == null) { - throw new IllegalArgumentException("executor shouldn't be null"); + throw new NullPointerException("executor shouldn't be null"); } mContext = context; mSequencedFutureManager = new SequencedFutureManager(); diff --git a/media2/session/src/main/java/androidx/media2/session/MediaLibraryService.java b/media2/session/src/main/java/androidx/media2/session/MediaLibraryService.java index 76adfdf9ca0..c0e23d66bef 100644 --- a/media2/session/src/main/java/androidx/media2/session/MediaLibraryService.java +++ b/media2/session/src/main/java/androidx/media2/session/MediaLibraryService.java @@ -339,9 +339,11 @@ public abstract class MediaLibraryService extends MediaSessionService { @NonNull String parentId, @IntRange(from = 0) int itemCount, @Nullable LibraryParams params) { if (controller == null) { - throw new IllegalArgumentException("controller shouldn't be null"); + throw new NullPointerException("controller shouldn't be null"); } - if (TextUtils.isEmpty(parentId)) { + if (parentId == null) { + throw new NullPointerException("parentId shouldn't be null"); + } else if (TextUtils.isEmpty(parentId)) { throw new IllegalArgumentException("parentId shouldn't be empty"); } if (itemCount < 0) { @@ -382,9 +384,11 @@ public abstract class MediaLibraryService extends MediaSessionService { @NonNull String query, @IntRange(from = 0) int itemCount, @Nullable LibraryParams params) { if (controller == null) { - throw new IllegalArgumentException("controller shouldn't be null"); + throw new NullPointerException("controller shouldn't be null"); } - if (TextUtils.isEmpty(query)) { + if (query == null) { + throw new NullPointerException("query shouldn't be null"); + } else if (TextUtils.isEmpty(query)) { throw new IllegalArgumentException("query shouldn't be empty"); } if (itemCount < 0) { diff --git a/media2/session/src/main/java/androidx/media2/session/MediaLibraryServiceLegacyStub.java b/media2/session/src/main/java/androidx/media2/session/MediaLibraryServiceLegacyStub.java index d79cbdc31a7..7ae46cedd97 100644 --- a/media2/session/src/main/java/androidx/media2/session/MediaLibraryServiceLegacyStub.java +++ b/media2/session/src/main/java/androidx/media2/session/MediaLibraryServiceLegacyStub.java @@ -288,7 +288,7 @@ class MediaLibraryServiceLegacyStub extends MediaSessionServiceLegacyStub { } if (!(controller.getControllerCb() instanceof BrowserLegacyCb)) { if (DEBUG) { - throw new IllegalStateException("Callback hasn't registered. Must be a bug."); + throw new IllegalStateException("Callback hasn't registered. Must be a bug"); } return; } diff --git a/media2/session/src/main/java/androidx/media2/session/MediaSession.java b/media2/session/src/main/java/androidx/media2/session/MediaSession.java index b499caa86eb..15da1853072 100644 --- a/media2/session/src/main/java/androidx/media2/session/MediaSession.java +++ b/media2/session/src/main/java/androidx/media2/session/MediaSession.java @@ -191,7 +191,7 @@ public class MediaSession implements AutoCloseable { */ public void updatePlayer(@NonNull SessionPlayer player) { if (player == null) { - throw new IllegalArgumentException("player shouldn't be null"); + throw new NullPointerException("player shouldn't be null"); } mImpl.updatePlayer(player); } @@ -295,10 +295,10 @@ public class MediaSession implements AutoCloseable { public @NonNull ListenableFuture<SessionResult> setCustomLayout( @NonNull ControllerInfo controller, @NonNull List<CommandButton> layout) { if (controller == null) { - throw new IllegalArgumentException("controller shouldn't be null"); + throw new NullPointerException("controller shouldn't be null"); } if (layout == null) { - throw new IllegalArgumentException("layout shouldn't be null"); + throw new NullPointerException("layout shouldn't be null"); } return mImpl.setCustomLayout(controller, layout); } @@ -317,10 +317,10 @@ public class MediaSession implements AutoCloseable { public void setAllowedCommands(@NonNull ControllerInfo controller, @NonNull SessionCommandGroup commands) { if (controller == null) { - throw new IllegalArgumentException("controller shouldn't be null"); + throw new NullPointerException("controller shouldn't be null"); } if (commands == null) { - throw new IllegalArgumentException("commands shouldn't be null"); + throw new NullPointerException("commands shouldn't be null"); } mImpl.setAllowedCommands(controller, commands); } @@ -360,10 +360,10 @@ public class MediaSession implements AutoCloseable { @NonNull ControllerInfo controller, @NonNull SessionCommand command, @Nullable Bundle args) { if (controller == null) { - throw new IllegalArgumentException("controller shouldn't be null"); + throw new NullPointerException("controller shouldn't be null"); } if (command == null) { - throw new IllegalArgumentException("command shouldn't be null"); + throw new NullPointerException("command shouldn't be null"); } if (command.getCommandCode() != SessionCommand.COMMAND_CODE_CUSTOM) { throw new IllegalArgumentException("command should be a custom command"); @@ -1237,10 +1237,10 @@ public class MediaSession implements AutoCloseable { BuilderBase(@NonNull Context context, @NonNull SessionPlayer player) { if (context == null) { - throw new IllegalArgumentException("context shouldn't be null"); + throw new NullPointerException("context shouldn't be null"); } if (player == null) { - throw new IllegalArgumentException("player shouldn't be null"); + throw new NullPointerException("player shouldn't be null"); } mContext = context; mPlayer = player; @@ -1267,7 +1267,6 @@ public class MediaSession implements AutoCloseable { * wants to provide external apps to have finer controls of them. * * @param id id of the session. Must be unique per package. - * @throws IllegalArgumentException if id is {@code null}. * @return */ // Note: This ID is not visible to the controllers. ID is introduced in order to prevent @@ -1275,7 +1274,7 @@ public class MediaSession implements AutoCloseable { // sessions with the same ID in a process, then an IllegalStateException will be thrown. @NonNull U setId(@NonNull String id) { if (id == null) { - throw new IllegalArgumentException("id shouldn't be null"); + throw new NullPointerException("id shouldn't be null"); } mId = id; return (U) this; @@ -1290,10 +1289,10 @@ public class MediaSession implements AutoCloseable { */ @NonNull U setSessionCallback(@NonNull Executor executor, @NonNull C callback) { if (executor == null) { - throw new IllegalArgumentException("executor shouldn't be null"); + throw new NullPointerException("executor shouldn't be null"); } if (callback == null) { - throw new IllegalArgumentException("callback shouldn't be null"); + throw new NullPointerException("callback shouldn't be null"); } mCallbackExecutor = executor; mCallback = callback; @@ -1310,7 +1309,7 @@ public class MediaSession implements AutoCloseable { @NonNull public U setExtras(@NonNull Bundle extras) { if (extras == null) { - throw new IllegalArgumentException("extras shouldn't be null"); + throw new NullPointerException("extras shouldn't be null"); } mExtras = extras; return (U) this; diff --git a/media2/session/src/main/java/androidx/media2/session/MediaSessionImplBase.java b/media2/session/src/main/java/androidx/media2/session/MediaSessionImplBase.java index a7b8e067dca..7cbef12387b 100644 --- a/media2/session/src/main/java/androidx/media2/session/MediaSessionImplBase.java +++ b/media2/session/src/main/java/androidx/media2/session/MediaSessionImplBase.java @@ -623,12 +623,12 @@ class MediaSessionImplBase implements MediaSession.MediaSessionImpl { @Override public ListenableFuture<PlayerResult> setPlaylist(final @NonNull List<MediaItem> list, final @Nullable MediaMetadata metadata) { + if (list == null) { + throw new NullPointerException("list shouldn't be null"); + } return dispatchPlayerTask(new PlayerTask<ListenableFuture<PlayerResult>>() { @Override public ListenableFuture<PlayerResult> run(SessionPlayer player) throws Exception { - if (list == null) { - throw new IllegalArgumentException("list shouldn't be null"); - } return player.setPlaylist(list, metadata); } }); @@ -636,12 +636,12 @@ class MediaSessionImplBase implements MediaSession.MediaSessionImpl { @Override public ListenableFuture<PlayerResult> setMediaItem(final @NonNull MediaItem item) { + if (item == null) { + throw new NullPointerException("item shouldn't be null"); + } return dispatchPlayerTask(new PlayerTask<ListenableFuture<PlayerResult>>() { @Override public ListenableFuture<PlayerResult> run(SessionPlayer player) throws Exception { - if (item == null) { - throw new IllegalArgumentException("item shouldn't be null"); - } return player.setMediaItem(item); } }); @@ -649,12 +649,12 @@ class MediaSessionImplBase implements MediaSession.MediaSessionImpl { @Override public ListenableFuture<PlayerResult> skipToPlaylistItem(final int index) { + if (index < 0) { + throw new IllegalArgumentException("index shouldn't be negative"); + } return dispatchPlayerTask(new PlayerTask<ListenableFuture<PlayerResult>>() { @Override public ListenableFuture<PlayerResult> run(SessionPlayer player) throws Exception { - if (index < 0) { - throw new IllegalArgumentException("index shouldn't be negative"); - } final List<MediaItem> list = player.getPlaylist(); if (index >= list.size()) { return PlayerResult.createFuture(RESULT_ERROR_BAD_VALUE); @@ -697,15 +697,15 @@ class MediaSessionImplBase implements MediaSession.MediaSessionImpl { @Override public ListenableFuture<PlayerResult> addPlaylistItem(final int index, final @NonNull MediaItem item) { + if (index < 0) { + throw new IllegalArgumentException("index shouldn't be negative"); + } + if (item == null) { + throw new NullPointerException("item shouldn't be null"); + } return dispatchPlayerTask(new PlayerTask<ListenableFuture<PlayerResult>>() { @Override public ListenableFuture<PlayerResult> run(SessionPlayer player) throws Exception { - if (index < 0) { - throw new IllegalArgumentException("index shouldn't be negative"); - } - if (item == null) { - throw new IllegalArgumentException("item shouldn't be null"); - } return player.addPlaylistItem(index, item); } }); @@ -713,12 +713,12 @@ class MediaSessionImplBase implements MediaSession.MediaSessionImpl { @Override public ListenableFuture<PlayerResult> removePlaylistItem(final int index) { + if (index < 0) { + throw new IllegalArgumentException("index shouldn't be negative"); + } return dispatchPlayerTask(new PlayerTask<ListenableFuture<PlayerResult>>() { @Override public ListenableFuture<PlayerResult> run(SessionPlayer player) throws Exception { - if (index < 0) { - throw new IllegalArgumentException("index shouldn't be negative"); - } final List<MediaItem> list = player.getPlaylist(); if (index >= list.size()) { return PlayerResult.createFuture(RESULT_ERROR_BAD_VALUE); @@ -731,15 +731,15 @@ class MediaSessionImplBase implements MediaSession.MediaSessionImpl { @Override public ListenableFuture<PlayerResult> replacePlaylistItem(final int index, final @NonNull MediaItem item) { + if (index < 0) { + throw new IllegalArgumentException("index shouldn't be negative"); + } + if (item == null) { + throw new NullPointerException("item shouldn't be null"); + } return dispatchPlayerTask(new PlayerTask<ListenableFuture<PlayerResult>>() { @Override public ListenableFuture<PlayerResult> run(SessionPlayer player) throws Exception { - if (index < 0) { - throw new IllegalArgumentException("index shouldn't be negative"); - } - if (item == null) { - throw new IllegalArgumentException("item shouldn't be null"); - } return player.replacePlaylistItem(index, item); } }); diff --git a/media2/session/src/main/java/androidx/media2/session/MediaSessionLegacyStub.java b/media2/session/src/main/java/androidx/media2/session/MediaSessionLegacyStub.java index 27393f06ea4..b68e37b526e 100644 --- a/media2/session/src/main/java/androidx/media2/session/MediaSessionLegacyStub.java +++ b/media2/session/src/main/java/androidx/media2/session/MediaSessionLegacyStub.java @@ -610,7 +610,7 @@ class MediaSessionLegacyStub extends MediaSessionCompat.Callback { @Override void onPlaybackInfoChanged(int seq, PlaybackInfo info) throws RemoteException { - throw new AssertionError("This shouldn't be called."); + throw new AssertionError("This shouldn't be called"); } @Override @@ -628,59 +628,59 @@ class MediaSessionLegacyStub extends MediaSessionCompat.Callback { @Override void onPlayerStateChanged(int seq, long eventTimeMs, long positionMs, int playerState) throws RemoteException { - throw new AssertionError("This shouldn't be called."); + throw new AssertionError("This shouldn't be called"); } @Override void onPlaybackSpeedChanged(int seq, long eventTimeMs, long positionMs, float speed) throws RemoteException { - throw new AssertionError("This shouldn't be called."); + throw new AssertionError("This shouldn't be called"); } @Override void onBufferingStateChanged(int seq, MediaItem item, int bufferingState, long bufferedPositionMs, long eventTimeMs, long positionMs) throws RemoteException { - throw new AssertionError("This shouldn't be called."); + throw new AssertionError("This shouldn't be called"); } @Override void onSeekCompleted(int seq, long eventTimeMs, long positionMs, long position) throws RemoteException { - throw new AssertionError("This shouldn't be called."); + throw new AssertionError("This shouldn't be called"); } @Override void onCurrentMediaItemChanged(int seq, MediaItem item, int currentIdx, int previousIdx, int nextIdx) throws RemoteException { - throw new AssertionError("This shouldn't be called."); + throw new AssertionError("This shouldn't be called"); } @Override void onPlaylistChanged(int seq, List<MediaItem> playlist, MediaMetadata metadata, int currentIdx, int previousIdx, int nextIdx) throws RemoteException { - throw new AssertionError("This shouldn't be called."); + throw new AssertionError("This shouldn't be called"); } @Override void onPlaylistMetadataChanged(int seq, MediaMetadata metadata) throws RemoteException { - throw new AssertionError("This shouldn't be called."); + throw new AssertionError("This shouldn't be called"); } @Override void onShuffleModeChanged(int seq, int shuffleMode, int currentIdx, int previousIdx, int nextIdx) throws RemoteException { - throw new AssertionError("This shouldn't be called."); + throw new AssertionError("This shouldn't be called"); } @Override void onRepeatModeChanged(int seq, int repeatMode, int currentIdx, int previousIdx, int nextIdx) throws RemoteException { - throw new AssertionError("This shouldn't be called."); + throw new AssertionError("This shouldn't be called"); } @Override void onPlaybackCompleted(int seq) throws RemoteException { - throw new AssertionError("This shouldn't be called."); + throw new AssertionError("This shouldn't be called"); } @Override @@ -739,7 +739,7 @@ class MediaSessionLegacyStub extends MediaSessionCompat.Callback { @Override void setCustomLayout(int seq, List<CommandButton> layout) throws RemoteException { - throw new AssertionError("This shouldn't be called."); + throw new AssertionError("This shouldn't be called"); } @Override @@ -751,7 +751,7 @@ class MediaSessionLegacyStub extends MediaSessionCompat.Callback { @Override void onAllowedCommandsChanged(int seq, SessionCommandGroup commands) throws RemoteException { - throw new AssertionError("This shouldn't be called."); + throw new AssertionError("This shouldn't be called"); } @Override diff --git a/media2/session/src/main/java/androidx/media2/session/MediaSessionManager.java b/media2/session/src/main/java/androidx/media2/session/MediaSessionManager.java index 45c02b80101..a57894071cc 100644 --- a/media2/session/src/main/java/androidx/media2/session/MediaSessionManager.java +++ b/media2/session/src/main/java/androidx/media2/session/MediaSessionManager.java @@ -64,9 +64,10 @@ public final class MediaSessionManager { * * @return the MediaSessionManager instance for this context. */ - public static @NonNull MediaSessionManager getInstance(@NonNull Context context) { + @NonNull + public static MediaSessionManager getInstance(@NonNull Context context) { if (context == null) { - throw new IllegalArgumentException("context cannot be null"); + throw new NullPointerException("context shouldn't be null"); } synchronized (sLock) { if (sInstance == null) { @@ -86,7 +87,8 @@ public final class MediaSessionManager { * * @return set of tokens */ - public @NonNull Set<SessionToken> getSessionServiceTokens() { + @NonNull + public Set<SessionToken> getSessionServiceTokens() { ArraySet<SessionToken> sessionServiceTokens = new ArraySet<>(); PackageManager pm = mContext.getPackageManager(); List<ResolveInfo> services = new ArrayList<>(); diff --git a/media2/session/src/main/java/androidx/media2/session/MediaSessionService.java b/media2/session/src/main/java/androidx/media2/session/MediaSessionService.java index 444bf812659..6ca32e0d730 100644 --- a/media2/session/src/main/java/androidx/media2/session/MediaSessionService.java +++ b/media2/session/src/main/java/androidx/media2/session/MediaSessionService.java @@ -188,7 +188,7 @@ public abstract class MediaSessionService extends Service { */ public final void addSession(@NonNull MediaSession session) { if (session == null) { - throw new IllegalArgumentException("session shouldn't be null"); + throw new NullPointerException("session shouldn't be null"); } if (session.isClosed()) { throw new IllegalArgumentException("session is already closed"); @@ -204,7 +204,7 @@ public abstract class MediaSessionService extends Service { */ public final void removeSession(@NonNull MediaSession session) { if (session == null) { - throw new IllegalArgumentException("session shouldn't be null"); + throw new NullPointerException("session shouldn't be null"); } mImpl.removeSession(session); } @@ -226,7 +226,7 @@ public abstract class MediaSessionService extends Service { */ public @Nullable MediaNotification onUpdateNotification(@NonNull MediaSession session) { if (session == null) { - throw new IllegalArgumentException("session shouldn't be null"); + throw new NullPointerException("session shouldn't be null"); } return mImpl.onUpdateNotification(session); } @@ -298,7 +298,7 @@ public abstract class MediaSessionService extends Service { */ public MediaNotification(int notificationId, @NonNull Notification notification) { if (notification == null) { - throw new IllegalArgumentException("notification shouldn't be null"); + throw new NullPointerException("notification shouldn't be null"); } mNotificationId = notificationId; mNotification = notification; diff --git a/media2/session/src/main/java/androidx/media2/session/MediaSessionServiceImplBase.java b/media2/session/src/main/java/androidx/media2/session/MediaSessionServiceImplBase.java index 9ab0ffe5976..caec9f1fac9 100644 --- a/media2/session/src/main/java/androidx/media2/session/MediaSessionServiceImplBase.java +++ b/media2/session/src/main/java/androidx/media2/session/MediaSessionServiceImplBase.java @@ -131,7 +131,7 @@ class MediaSessionServiceImplBase implements MediaSessionServiceImpl { if (old != null && old != session) { // TODO(b/112114183): Also check the uniqueness before sessions're returned by // onGetSession. - throw new IllegalArgumentException("Session ID should be unique."); + throw new IllegalArgumentException("Session ID should be unique"); } mSessions.put(session.getId(), session); } diff --git a/media2/session/src/main/java/androidx/media2/session/MediaSessionStub.java b/media2/session/src/main/java/androidx/media2/session/MediaSessionStub.java index ebc9bce9082..1dea1b6ba81 100644 --- a/media2/session/src/main/java/androidx/media2/session/MediaSessionStub.java +++ b/media2/session/src/main/java/androidx/media2/session/MediaSessionStub.java @@ -394,10 +394,8 @@ class MediaSessionStub extends IMediaSession.Stub { @SuppressWarnings("WeakerAccess") /* synthetic access */ @Nullable - MediaItem convertMediaItemOnExecutor(ControllerInfo controller, - @NonNull String mediaId) { + MediaItem convertMediaItemOnExecutor(ControllerInfo controller, String mediaId) { if (TextUtils.isEmpty(mediaId)) { - Log.w(TAG, "Media ID shouldn't be null"); return null; } MediaItem newItem = mSessionImpl.getCallback().onCreateMediaItem( diff --git a/media2/session/src/main/java/androidx/media2/session/SessionCommand.java b/media2/session/src/main/java/androidx/media2/session/SessionCommand.java index f2a1768ba2d..e7f8efa8b2c 100644 --- a/media2/session/src/main/java/androidx/media2/session/SessionCommand.java +++ b/media2/session/src/main/java/androidx/media2/session/SessionCommand.java @@ -578,7 +578,7 @@ public final class SessionCommand implements VersionedParcelable { */ public SessionCommand(@NonNull String action, @Nullable Bundle extras) { if (action == null) { - throw new IllegalArgumentException("action shouldn't be null"); + throw new NullPointerException("action shouldn't be null"); } mCommandCode = COMMAND_CODE_CUSTOM; mCustomAction = action; diff --git a/media2/session/src/main/java/androidx/media2/session/SessionCommandGroup.java b/media2/session/src/main/java/androidx/media2/session/SessionCommandGroup.java index 8059c26a556..2e7af16216d 100644 --- a/media2/session/src/main/java/androidx/media2/session/SessionCommandGroup.java +++ b/media2/session/src/main/java/androidx/media2/session/SessionCommandGroup.java @@ -66,7 +66,7 @@ public final class SessionCommandGroup implements VersionedParcelable { */ public boolean hasCommand(@NonNull SessionCommand command) { if (command == null) { - throw new IllegalArgumentException("command shouldn't be null"); + throw new NullPointerException("command shouldn't be null"); } return mCommands.contains(command); } @@ -112,6 +112,9 @@ public final class SessionCommandGroup implements VersionedParcelable { * @param commandGroup */ public Builder(@NonNull SessionCommandGroup commandGroup) { + if (commandGroup == null) { + throw new NullPointerException("commandGroup shouldn't be null"); + } mCommands = commandGroup.getCommands(); } @@ -122,7 +125,7 @@ public final class SessionCommandGroup implements VersionedParcelable { */ public @NonNull Builder addCommand(@NonNull SessionCommand command) { if (command == null) { - throw new IllegalArgumentException("command shouldn't be null"); + throw new NullPointerException("command shouldn't be null"); } mCommands.add(command); return this; @@ -159,7 +162,7 @@ public final class SessionCommandGroup implements VersionedParcelable { */ public @NonNull Builder removeCommand(@NonNull SessionCommand command) { if (command == null) { - throw new IllegalArgumentException("command shouldn't be null"); + throw new NullPointerException("command shouldn't be null"); } mCommands.remove(command); return this; diff --git a/media2/session/src/main/java/androidx/media2/session/SessionToken.java b/media2/session/src/main/java/androidx/media2/session/SessionToken.java index 4231439fe17..661a44cf0bd 100644 --- a/media2/session/src/main/java/androidx/media2/session/SessionToken.java +++ b/media2/session/src/main/java/androidx/media2/session/SessionToken.java @@ -121,6 +121,12 @@ public final class SessionToken implements VersionedParcelable { * @param serviceComponent The component name of the service. */ public SessionToken(@NonNull Context context, @NonNull ComponentName serviceComponent) { + if (context == null) { + throw new NullPointerException("context shouldn't be null"); + } + if (serviceComponent == null) { + throw new NullPointerException("serviceComponent shouldn't be null"); + } final PackageManager manager = context.getPackageManager(); final int uid = getUid(manager, serviceComponent.getPackageName()); @@ -137,7 +143,7 @@ public final class SessionToken implements VersionedParcelable { } else { throw new IllegalArgumentException(serviceComponent + " doesn't implement none of" + " MediaSessionService, MediaLibraryService, MediaBrowserService nor" - + " MediaBrowserServiceCompat. Use service's full name."); + + " MediaBrowserServiceCompat. Use service's full name"); } if (type != TYPE_BROWSER_SERVICE_LEGACY) { mImpl = new SessionTokenImplBase(serviceComponent, uid, type); @@ -259,16 +265,16 @@ public final class SessionToken implements VersionedParcelable { @NonNull final MediaSessionCompat.Token tokenCompat, @NonNull final Executor executor, @NonNull final OnSessionTokenCreatedListener listener) { if (context == null) { - throw new IllegalArgumentException("context shouldn't be null"); + throw new NullPointerException("context shouldn't be null"); } if (tokenCompat == null) { - throw new IllegalArgumentException("token shouldn't be null"); + throw new NullPointerException("token shouldn't be null"); } if (executor == null) { - throw new IllegalArgumentException("executor shouldn't be null"); + throw new NullPointerException("executor shouldn't be null"); } if (listener == null) { - throw new IllegalArgumentException("listener shouldn't be null"); + throw new NullPointerException("listener shouldn't be null"); } try { diff --git a/media2/session/src/main/java/androidx/media2/session/SessionTokenImplBase.java b/media2/session/src/main/java/androidx/media2/session/SessionTokenImplBase.java index f6493c46005..9c723c40103 100644 --- a/media2/session/src/main/java/androidx/media2/session/SessionTokenImplBase.java +++ b/media2/session/src/main/java/androidx/media2/session/SessionTokenImplBase.java @@ -57,7 +57,7 @@ final class SessionTokenImplBase implements SessionToken.SessionTokenImpl { @RestrictTo(LIBRARY_GROUP_PREFIX) SessionTokenImplBase(@NonNull ComponentName serviceComponent, int uid, int type) { if (serviceComponent == null) { - throw new IllegalArgumentException("serviceComponent shouldn't be null"); + throw new NullPointerException("serviceComponent shouldn't be null"); } mComponentName = serviceComponent; mPackageName = serviceComponent.getPackageName(); diff --git a/media2/session/src/main/java/androidx/media2/session/SessionTokenImplLegacy.java b/media2/session/src/main/java/androidx/media2/session/SessionTokenImplLegacy.java index 7dc0eac190e..b8ae8101335 100644 --- a/media2/session/src/main/java/androidx/media2/session/SessionTokenImplLegacy.java +++ b/media2/session/src/main/java/androidx/media2/session/SessionTokenImplLegacy.java @@ -60,10 +60,12 @@ final class SessionTokenImplLegacy extends CustomVersionedParcelable implements SessionTokenImplLegacy(MediaSessionCompat.Token token, String packageName, int uid) { if (token == null) { - throw new IllegalArgumentException("token shouldn't be null."); + throw new NullPointerException("token shouldn't be null"); } - if (TextUtils.isEmpty(packageName)) { - throw new IllegalArgumentException("packageName shouldn't be null."); + if (packageName == null) { + throw new NullPointerException("packageName shouldn't be null"); + } else if (TextUtils.isEmpty(packageName)) { + throw new IllegalArgumentException("packageName shouldn't be empty"); } mLegacyToken = token; @@ -76,7 +78,7 @@ final class SessionTokenImplLegacy extends CustomVersionedParcelable implements SessionTokenImplLegacy(ComponentName serviceComponent, int uid) { if (serviceComponent == null) { - throw new IllegalArgumentException("serviceComponent shouldn't be null."); + throw new NullPointerException("serviceComponent shouldn't be null"); } mLegacyToken = null; diff --git a/media2/session/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaControllerTest.java b/media2/session/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaControllerTest.java index de7016d0abe..6a0ad7a7cc0 100644 --- a/media2/session/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaControllerTest.java +++ b/media2/session/version-compat-tests/current/client/src/androidTest/java/androidx/media2/test/client/tests/MediaControllerTest.java @@ -103,7 +103,7 @@ public class MediaControllerTest extends MediaSessionTestBase { try { builder = new MediaController.Builder(null); fail("null context shouldn't be allowed"); - } catch (IllegalArgumentException e) { + } catch (NullPointerException e) { // expected. pass-through } @@ -111,7 +111,7 @@ public class MediaControllerTest extends MediaSessionTestBase { builder = new MediaController.Builder(mContext); builder.setSessionToken(null); fail("null token shouldn't be allowed"); - } catch (IllegalArgumentException e) { + } catch (NullPointerException e) { // expected. pass-through } @@ -119,7 +119,7 @@ public class MediaControllerTest extends MediaSessionTestBase { builder = new MediaController.Builder(mContext); builder.setSessionCompatToken(null); fail("null compat token shouldn't be allowed"); - } catch (IllegalArgumentException e) { + } catch (NullPointerException e) { // expected. pass-through } @@ -127,7 +127,7 @@ public class MediaControllerTest extends MediaSessionTestBase { builder = new MediaController.Builder(mContext); builder.setControllerCallback(null, null); fail("null executor or null callback shouldn't be allowed"); - } catch (IllegalArgumentException e) { + } catch (NullPointerException e) { // expected. pass-through } diff --git a/media2/session/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionTest.java b/media2/session/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionTest.java index a1cdcf1520f..00688f4694a 100644 --- a/media2/session/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionTest.java +++ b/media2/session/version-compat-tests/current/service/src/androidTest/java/androidx/media2/test/service/tests/MediaSessionTest.java @@ -102,21 +102,21 @@ public class MediaSessionTest extends MediaSessionTestBase { try { builder = new MediaSession.Builder(mContext, null); fail("null player shouldn't be allowed"); - } catch (IllegalArgumentException e) { + } catch (NullPointerException e) { // expected. pass-through } try { builder = new MediaSession.Builder(mContext, mPlayer); builder.setId(null); fail("null id shouldn't be allowed"); - } catch (IllegalArgumentException e) { + } catch (NullPointerException e) { // expected. pass-through } try { builder = new MediaSession.Builder(mContext, mPlayer); builder.setExtras(null); fail("null extras shouldn't be allowed"); - } catch (IllegalArgumentException e) { + } catch (NullPointerException e) { // expected. pass-through } } diff --git a/mediarouter/src/main/java/androidx/mediarouter/media/MediaRouteProvider.java b/mediarouter/src/main/java/androidx/mediarouter/media/MediaRouteProvider.java index 9b93e5b6eff..88798c5cd4d 100644 --- a/mediarouter/src/main/java/androidx/mediarouter/media/MediaRouteProvider.java +++ b/mediarouter/src/main/java/androidx/mediarouter/media/MediaRouteProvider.java @@ -512,10 +512,10 @@ public abstract class MediaRouteProvider { @NonNull OnDynamicRoutesChangedListener listener) { synchronized (mLock) { if (executor == null) { - throw new NullPointerException("Executor shouldn't be null."); + throw new NullPointerException("Executor shouldn't be null"); } if (listener == null) { - throw new NullPointerException("Listener shouldn't be null."); + throw new NullPointerException("Listener shouldn't be null"); } mExecutor = executor; mListener = listener; diff --git a/samples/Support7Demos/src/main/java/com/example/android/supportv7/widget/selection/fancy/FancySelectionDemoAdapter.java b/samples/Support7Demos/src/main/java/com/example/android/supportv7/widget/selection/fancy/FancySelectionDemoAdapter.java index 0fcf599d1fa..5d2f5cbd08e 100644 --- a/samples/Support7Demos/src/main/java/com/example/android/supportv7/widget/selection/fancy/FancySelectionDemoAdapter.java +++ b/samples/Support7Demos/src/main/java/com/example/android/supportv7/widget/selection/fancy/FancySelectionDemoAdapter.java @@ -48,7 +48,7 @@ final class FancySelectionDemoAdapter extends RecyclerView.Adapter<FancyHolder> @Override public boolean isSelected(Uri id) { throw new IllegalStateException( - "Adapter must be initialized with SelectionTracker."); + "Adapter must be initialized with SelectionTracker"); } }; |