From 63ca2595be611f683549f55ef204e981b3fd6b4f Mon Sep 17 00:00:00 2001 From: Googler Date: Tue, 20 Jun 2023 15:05:43 +0000 Subject: [PATCH] Add public API for isWear check in media3-common. PiperOrigin-RevId: 541925117 --- .../main/java/androidx/media3/common/util/Util.java | 12 ++++++++++++ .../androidx/media3/exoplayer/ExoPlayerImpl.java | 8 +------- ...bleOutputPlaybackSuppressionResolverListener.java | 8 ++------ 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/libraries/common/src/main/java/androidx/media3/common/util/Util.java b/libraries/common/src/main/java/androidx/media3/common/util/Util.java index c7bb2689dd..f05c52bdb3 100644 --- a/libraries/common/src/main/java/androidx/media3/common/util/Util.java +++ b/libraries/common/src/main/java/androidx/media3/common/util/Util.java @@ -2687,6 +2687,18 @@ public final class Util { && context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE); } + /** + * Returns whether the app is running on a Wear OS device. + * + * @param context Any context. + * @return Whether the app is running on a Wear OS device. + */ + @UnstableApi + public static boolean isWear(Context context) { + return SDK_INT >= 20 + && context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_WATCH); + } + /** * Gets the size of the current mode of the default display, in pixels. * diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java index 9c455c0d34..a0bfdc20a9 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java @@ -40,7 +40,6 @@ import static java.lang.Math.min; import android.annotation.SuppressLint; import android.content.Context; -import android.content.pm.PackageManager; import android.graphics.Rect; import android.graphics.SurfaceTexture; import android.media.AudioDeviceCallback; @@ -3324,7 +3323,7 @@ import java.util.concurrent.TimeoutException; public static boolean isSuitableAudioOutputPresentInAudioDeviceInfoList( Context context, AudioDeviceInfo[] audioDeviceInfos) { - if (!isRunningOnWear(context)) { + if (!Util.isWear(context)) { return true; } for (AudioDeviceInfo device : audioDeviceInfos) { @@ -3353,11 +3352,6 @@ import java.util.concurrent.TimeoutException; } return false; } - - private static boolean isRunningOnWear(Context context) { - PackageManager packageManager = context.getPackageManager(); - return packageManager.hasSystemFeature(PackageManager.FEATURE_WATCH); - } } /** diff --git a/libraries/ui/src/main/java/androidx/media3/ui/WearUnsuitableOutputPlaybackSuppressionResolverListener.java b/libraries/ui/src/main/java/androidx/media3/ui/WearUnsuitableOutputPlaybackSuppressionResolverListener.java index 4081f3f58b..382fd1c417 100644 --- a/libraries/ui/src/main/java/androidx/media3/ui/WearUnsuitableOutputPlaybackSuppressionResolverListener.java +++ b/libraries/ui/src/main/java/androidx/media3/ui/WearUnsuitableOutputPlaybackSuppressionResolverListener.java @@ -27,6 +27,7 @@ import androidx.annotation.Nullable; import androidx.media3.common.Player; import androidx.media3.common.Player.Events; import androidx.media3.common.util.UnstableApi; +import androidx.media3.common.util.Util; import java.util.List; /** @@ -96,7 +97,7 @@ public final class WearUnsuitableOutputPlaybackSuppressionResolverListener @Override public void onEvents(Player player, Events events) { - if (!isRunningOnWear(applicationContext)) { + if (!Util.isWear(applicationContext)) { return; } if (events.contains(Player.EVENT_PLAY_WHEN_READY_CHANGED) @@ -160,9 +161,4 @@ public final class WearUnsuitableOutputPlaybackSuppressionResolverListener } return null; } - - private static boolean isRunningOnWear(Context context) { - PackageManager packageManager = context.getPackageManager(); - return packageManager.hasSystemFeature(PackageManager.FEATURE_WATCH); - } }