@@ -165,12 +165,12 @@ public static Player.PlayOrigin convertPlayOrigin(@Nullable PlayOrigin po) {
165165
166166 Player .PlayOrigin .Builder builder = Player .PlayOrigin .newBuilder ();
167167
168- Optional . ofNullable (po .getFeatureIdentifier ()). ifPresent ( builder :: setFeatureIdentifier );
169- Optional . ofNullable (po .getFeatureVersion ()). ifPresent ( builder :: setFeatureVersion );
170- Optional . ofNullable (po .getViewUri ()). ifPresent ( builder :: setViewUri );
171- Optional . ofNullable (po .getExternalReferrer ()). ifPresent ( builder :: setExternalReferrer );
172- Optional . ofNullable (po .getReferrerIdentifier ()). ifPresent ( builder :: setReferrerIdentifier );
173- Optional . ofNullable (po .getDeviceIdentifier ()). ifPresent ( builder :: setDeviceIdentifier );
168+ if (po .hasFeatureIdentifier ()) builder . setFeatureIdentifier ( po . getFeatureIdentifier () );
169+ if (po .hasFeatureVersion ()) builder . setFeatureVersion ( po . getFeatureVersion () );
170+ if (po .hasViewUri ()) builder . setViewUri ( po . getViewUri () );
171+ if (po .hasExternalReferrer ()) builder . setExternalReferrer ( po . getExternalReferrer () );
172+ if (po .hasReferrerIdentifier ()) builder . setReferrerIdentifier ( po . getReferrerIdentifier () );
173+ if (po .hasDeviceIdentifier ()) builder . setDeviceIdentifier ( po . getDeviceIdentifier () );
174174
175175 if (po .getFeatureClassesCount () > 0 )
176176 for (String feature : po .getFeatureClassesList ())
@@ -254,9 +254,11 @@ public static int indexOfTrackByUri(@NotNull List<ContextTrack> tracks, @NotNull
254254 }
255255
256256 public static boolean isQueued (@ NotNull ContextTrack track ) {
257- String value = track .getMetadataOrDefault ("is_queued" , null );
258- if (value == null ) return false ;
259- else return Boolean .parseBoolean (value );
257+ try {
258+ return Boolean .parseBoolean (track .getMetadataOrThrow ("is_queued" ));
259+ } catch (IllegalArgumentException ex ) {
260+ return false ;
261+ }
260262 }
261263
262264 public static void enrichTrack (@ NotNull ContextTrack .Builder subject , @ NotNull ContextTrack track ) {
@@ -283,10 +285,18 @@ public static Player.ProvidedTrack convertToProvidedTrack(@Nullable ContextTrack
283285
284286 Player .ProvidedTrack .Builder builder = Player .ProvidedTrack .newBuilder ();
285287 builder .setProvider ("context" );
286- Optional .ofNullable (track .getUri ()).ifPresent (builder ::setUri );
287- Optional .ofNullable (track .getUid ()).ifPresent (builder ::setUid );
288- Optional .ofNullable (track .getMetadataOrDefault ("album_uri" , null )).ifPresent (builder ::setAlbumUri );
289- Optional .ofNullable (track .getMetadataOrDefault ("artist_uri" , null )).ifPresent (builder ::setArtistUri );
288+ if (track .hasUri ()) builder .setUri (track .getUri ());
289+ if (track .hasUid ()) builder .setUid (track .getUid ());
290+
291+ try {
292+ builder .setAlbumUri (track .getMetadataOrThrow ("album_uri" ));
293+ } catch (IllegalArgumentException ignored ) {
294+ }
295+
296+ try {
297+ builder .setArtistUri (track .getMetadataOrThrow ("artist_uri" ));
298+ } catch (IllegalArgumentException ignored ) {
299+ }
290300
291301 builder .putAllMetadata (track .getMetadataMap ());
292302
0 commit comments