From 093d7d20a9df2963b5e7aa9a8323c712cac00f2e Mon Sep 17 00:00:00 2001 From: Alex Dadukin Date: Wed, 16 Nov 2022 12:42:05 +0000 Subject: [PATCH] Fix issues with nullability contract in MediaRouter2Utils Bug: b/259025372 Test: atest MediaRoute2InfoTest RoutingSessionInfoTest Change-Id: I3e6de420582db117d7dae6bb460614d27b1b322a --- media/java/android/media/MediaRoute2Info.java | 5 ++++- media/java/android/media/MediaRouter2Utils.java | 12 ++++-------- media/java/android/media/RoutingSessionInfo.java | 10 ++++++---- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/media/java/android/media/MediaRoute2Info.java b/media/java/android/media/MediaRoute2Info.java index 681e1124d0ab0..e8648cca3934b 100644 --- a/media/java/android/media/MediaRoute2Info.java +++ b/media/java/android/media/MediaRoute2Info.java @@ -28,6 +28,8 @@ import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; +import com.android.internal.util.Preconditions; + import java.io.PrintWriter; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -374,6 +376,7 @@ public final class MediaRoute2Info implements Parcelable { MediaRoute2Info(@NonNull Parcel in) { mId = in.readString(); + Preconditions.checkArgument(!TextUtils.isEmpty(mId)); mName = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in); mFeatures = in.createStringArrayList(); mType = in.readInt(); @@ -403,7 +406,7 @@ public final class MediaRoute2Info implements Parcelable { */ @NonNull public String getId() { - if (mProviderId != null) { + if (!TextUtils.isEmpty(mProviderId)) { return toUniqueId(mProviderId, mId); } else { return mId; diff --git a/media/java/android/media/MediaRouter2Utils.java b/media/java/android/media/MediaRouter2Utils.java index c15972dcff2ec..6f946ee23ed93 100644 --- a/media/java/android/media/MediaRouter2Utils.java +++ b/media/java/android/media/MediaRouter2Utils.java @@ -21,6 +21,8 @@ import android.annotation.Nullable; import android.text.TextUtils; import android.util.Log; +import com.android.internal.util.Preconditions; + /** * @hide */ @@ -31,14 +33,8 @@ public class MediaRouter2Utils { @NonNull public static String toUniqueId(@NonNull String providerId, @NonNull String id) { - if (TextUtils.isEmpty(providerId)) { - Log.w(TAG, "toUniqueId: providerId shouldn't be empty"); - return null; - } - if (TextUtils.isEmpty(id)) { - Log.w(TAG, "toUniqueId: id shouldn't be null"); - return null; - } + Preconditions.checkArgument(!TextUtils.isEmpty(providerId) + && !TextUtils.isEmpty(id)); return providerId + SEPARATOR + id; } diff --git a/media/java/android/media/RoutingSessionInfo.java b/media/java/android/media/RoutingSessionInfo.java index 10973abf9c567..0982132e006d0 100644 --- a/media/java/android/media/RoutingSessionInfo.java +++ b/media/java/android/media/RoutingSessionInfo.java @@ -25,6 +25,8 @@ import android.os.Parcelable; import android.text.TextUtils; import android.util.Log; +import com.android.internal.util.Preconditions; + import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.ArrayList; @@ -106,9 +108,9 @@ public final class RoutingSessionInfo implements Parcelable { } RoutingSessionInfo(@NonNull Parcel src) { - Objects.requireNonNull(src, "src must not be null."); + mId = src.readString(); + Preconditions.checkArgument(!TextUtils.isEmpty(mId)); - mId = ensureString(src.readString()); mName = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(src); mOwnerPackageName = src.readString(); mClientPackageName = ensureString(src.readString()); @@ -177,7 +179,7 @@ public final class RoutingSessionInfo implements Parcelable { */ @NonNull public String getId() { - if (mProviderId != null) { + if (!TextUtils.isEmpty(mProviderId)) { return MediaRouter2Utils.toUniqueId(mProviderId, mId); } else { return mId; @@ -421,7 +423,7 @@ public final class RoutingSessionInfo implements Parcelable { } // mProviderId can be null if not set. Return the original list for this case. - if (mProviderId == null) { + if (TextUtils.isEmpty(mProviderId)) { return routeIds; }