From 1b6dd40aa575417739fb15164ccdde251a66c49e Mon Sep 17 00:00:00 2001 From: olly Date: Mon, 15 Feb 2021 12:06:08 +0000 Subject: [PATCH] Move Spherical UI components to the UI module PiperOrigin-RevId: 357549002 --- RELEASENOTES.md | 2 ++ .../java/com/google/android/exoplayer2/util/GlUtil.java | 0 .../google/android/exoplayer2/util/TimedValueQueue.java | 0 .../exoplayer2/ui}/spherical/FrameRotationQueue.java | 4 ++-- .../exoplayer2/ui/spherical/OrientationListener.java | 1 - .../android/exoplayer2/ui}/spherical/Projection.java | 4 ++-- .../exoplayer2/ui}/spherical/ProjectionDecoder.java | 8 ++++---- .../exoplayer2/ui/spherical/ProjectionRenderer.java | 1 - .../android/exoplayer2/ui/spherical/SceneRenderer.java | 3 --- .../android/exoplayer2/ui/spherical/TouchTracker.java | 2 +- .../exoplayer2/ui}/spherical/FrameRotationQueueTest.java | 2 +- .../exoplayer2/ui}/spherical/ProjectionDecoderTest.java | 2 +- .../android/exoplayer2/ui}/spherical/ProjectionTest.java | 2 +- 13 files changed, 14 insertions(+), 17 deletions(-) rename library/{core => common}/src/main/java/com/google/android/exoplayer2/util/GlUtil.java (100%) rename library/{core => common}/src/main/java/com/google/android/exoplayer2/util/TimedValueQueue.java (100%) rename library/{core/src/main/java/com/google/android/exoplayer2/video => ui/src/main/java/com/google/android/exoplayer2/ui}/spherical/FrameRotationQueue.java (97%) rename library/{core/src/main/java/com/google/android/exoplayer2/video => ui/src/main/java/com/google/android/exoplayer2/ui}/spherical/Projection.java (99%) rename library/{core/src/main/java/com/google/android/exoplayer2/video => ui/src/main/java/com/google/android/exoplayer2/ui}/spherical/ProjectionDecoder.java (97%) rename library/{core/src/test/java/com/google/android/exoplayer2/video => ui/src/test/java/com/google/android/exoplayer2/ui}/spherical/FrameRotationQueueTest.java (98%) rename library/{core/src/test/java/com/google/android/exoplayer2/video => ui/src/test/java/com/google/android/exoplayer2/ui}/spherical/ProjectionDecoderTest.java (98%) rename library/{core/src/test/java/com/google/android/exoplayer2/video => ui/src/test/java/com/google/android/exoplayer2/ui}/spherical/ProjectionTest.java (98%) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 5dadd7d2f9..d7fa719b4b 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -8,6 +8,8 @@ * Add builder for `PlayerNotificationManager`. * Library restructuring: * `DebugTextViewHelper` moved from `ui` package to `util` package. + * Spherical UI components moved from `video.spherical` package to + `ui.spherical` package, and made package private. * Remove deprecated symbols: * Remove `Player.DefaultEventListener`. Use `Player.EventListener` instead. diff --git a/library/core/src/main/java/com/google/android/exoplayer2/util/GlUtil.java b/library/common/src/main/java/com/google/android/exoplayer2/util/GlUtil.java similarity index 100% rename from library/core/src/main/java/com/google/android/exoplayer2/util/GlUtil.java rename to library/common/src/main/java/com/google/android/exoplayer2/util/GlUtil.java diff --git a/library/core/src/main/java/com/google/android/exoplayer2/util/TimedValueQueue.java b/library/common/src/main/java/com/google/android/exoplayer2/util/TimedValueQueue.java similarity index 100% rename from library/core/src/main/java/com/google/android/exoplayer2/util/TimedValueQueue.java rename to library/common/src/main/java/com/google/android/exoplayer2/util/TimedValueQueue.java diff --git a/library/core/src/main/java/com/google/android/exoplayer2/video/spherical/FrameRotationQueue.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/FrameRotationQueue.java similarity index 97% rename from library/core/src/main/java/com/google/android/exoplayer2/video/spherical/FrameRotationQueue.java rename to library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/FrameRotationQueue.java index d464bf04fa..8299ecd000 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/video/spherical/FrameRotationQueue.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/FrameRotationQueue.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.android.exoplayer2.video.spherical; +package com.google.android.exoplayer2.ui.spherical; import android.opengl.Matrix; import com.google.android.exoplayer2.util.TimedValueQueue; @@ -27,7 +27,7 @@ import com.google.android.exoplayer2.util.TimedValueQueue; *
  • Recenters the rotations to componsate the yaw of the initial rotation. * */ -public final class FrameRotationQueue { +/* package */ final class FrameRotationQueue { private final float[] recenterMatrix; private final float[] rotationMatrix; private final TimedValueQueue rotations; diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/OrientationListener.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/OrientationListener.java index 7276953cf5..1a52202efc 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/OrientationListener.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/OrientationListener.java @@ -23,7 +23,6 @@ import android.opengl.Matrix; import android.view.Display; import android.view.Surface; import androidx.annotation.BinderThread; -import com.google.android.exoplayer2.video.spherical.FrameRotationQueue; /** * Listens for orientation sensor events, converts event data to rotation matrix and roll value, and diff --git a/library/core/src/main/java/com/google/android/exoplayer2/video/spherical/Projection.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/Projection.java similarity index 99% rename from library/core/src/main/java/com/google/android/exoplayer2/video/spherical/Projection.java rename to library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/Projection.java index 8ba24bb06e..5c7dc4fa15 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/video/spherical/Projection.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/Projection.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.android.exoplayer2.video.spherical; +package com.google.android.exoplayer2.ui.spherical; import androidx.annotation.IntDef; import com.google.android.exoplayer2.C; @@ -24,7 +24,7 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; /** The projection mesh used with 360/VR videos. */ -public final class Projection { +/* package */ final class Projection { /** Enforces allowed (sub) mesh draw modes. */ @Documented diff --git a/library/core/src/main/java/com/google/android/exoplayer2/video/spherical/ProjectionDecoder.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/ProjectionDecoder.java similarity index 97% rename from library/core/src/main/java/com/google/android/exoplayer2/video/spherical/ProjectionDecoder.java rename to library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/ProjectionDecoder.java index 9f7f2362e5..576b47c2f0 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/video/spherical/ProjectionDecoder.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/ProjectionDecoder.java @@ -13,15 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.android.exoplayer2.video.spherical; +package com.google.android.exoplayer2.ui.spherical; import androidx.annotation.Nullable; import com.google.android.exoplayer2.C; +import com.google.android.exoplayer2.ui.spherical.Projection.Mesh; +import com.google.android.exoplayer2.ui.spherical.Projection.SubMesh; import com.google.android.exoplayer2.util.ParsableBitArray; import com.google.android.exoplayer2.util.ParsableByteArray; import com.google.android.exoplayer2.util.Util; -import com.google.android.exoplayer2.video.spherical.Projection.Mesh; -import com.google.android.exoplayer2.video.spherical.Projection.SubMesh; import java.util.ArrayList; import java.util.zip.Inflater; @@ -34,7 +34,7 @@ import java.util.zip.Inflater; * *

    The decoder does not perform CRC checks at the moment. */ -public final class ProjectionDecoder { +/* package */ final class ProjectionDecoder { private static final int TYPE_YTMP = 0x79746d70; private static final int TYPE_MSHP = 0x6d736870; diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/ProjectionRenderer.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/ProjectionRenderer.java index 9a8c787e77..1f0f2017d6 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/ProjectionRenderer.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/ProjectionRenderer.java @@ -22,7 +22,6 @@ import android.opengl.GLES20; import androidx.annotation.Nullable; import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.util.GlUtil; -import com.google.android.exoplayer2.video.spherical.Projection; import java.nio.FloatBuffer; /** diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/SceneRenderer.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/SceneRenderer.java index 674826e387..2b6e3f1ead 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/SceneRenderer.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/SceneRenderer.java @@ -29,9 +29,6 @@ import com.google.android.exoplayer2.util.GlUtil; import com.google.android.exoplayer2.util.TimedValueQueue; import com.google.android.exoplayer2.video.VideoFrameMetadataListener; import com.google.android.exoplayer2.video.spherical.CameraMotionListener; -import com.google.android.exoplayer2.video.spherical.FrameRotationQueue; -import com.google.android.exoplayer2.video.spherical.Projection; -import com.google.android.exoplayer2.video.spherical.ProjectionDecoder; import java.util.Arrays; import java.util.concurrent.atomic.AtomicBoolean; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/TouchTracker.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/TouchTracker.java index 20b7dc0319..9c0d3c6cec 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/TouchTracker.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/spherical/TouchTracker.java @@ -44,7 +44,7 @@ import androidx.annotation.Nullable; * a nicer UI. An even more advanced UI would reproject the user's touch point into 3D and drag the * Mesh as the user moves their finger. However, that requires quaternion interpolation. */ -/* package */ class TouchTracker extends GestureDetector.SimpleOnGestureListener +/* package */ final class TouchTracker extends GestureDetector.SimpleOnGestureListener implements View.OnTouchListener, OrientationListener.Listener { /* package */ interface Listener { diff --git a/library/core/src/test/java/com/google/android/exoplayer2/video/spherical/FrameRotationQueueTest.java b/library/ui/src/test/java/com/google/android/exoplayer2/ui/spherical/FrameRotationQueueTest.java similarity index 98% rename from library/core/src/test/java/com/google/android/exoplayer2/video/spherical/FrameRotationQueueTest.java rename to library/ui/src/test/java/com/google/android/exoplayer2/ui/spherical/FrameRotationQueueTest.java index 227a827679..dfa9c73004 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/video/spherical/FrameRotationQueueTest.java +++ b/library/ui/src/test/java/com/google/android/exoplayer2/ui/spherical/FrameRotationQueueTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.android.exoplayer2.video.spherical; +package com.google.android.exoplayer2.ui.spherical; import static com.google.common.truth.Truth.assertThat; diff --git a/library/core/src/test/java/com/google/android/exoplayer2/video/spherical/ProjectionDecoderTest.java b/library/ui/src/test/java/com/google/android/exoplayer2/ui/spherical/ProjectionDecoderTest.java similarity index 98% rename from library/core/src/test/java/com/google/android/exoplayer2/video/spherical/ProjectionDecoderTest.java rename to library/ui/src/test/java/com/google/android/exoplayer2/ui/spherical/ProjectionDecoderTest.java index 8cabd85fad..9cdf1727f7 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/video/spherical/ProjectionDecoderTest.java +++ b/library/ui/src/test/java/com/google/android/exoplayer2/ui/spherical/ProjectionDecoderTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.android.exoplayer2.video.spherical; +package com.google.android.exoplayer2.ui.spherical; import static com.google.common.truth.Truth.assertThat; diff --git a/library/core/src/test/java/com/google/android/exoplayer2/video/spherical/ProjectionTest.java b/library/ui/src/test/java/com/google/android/exoplayer2/ui/spherical/ProjectionTest.java similarity index 98% rename from library/core/src/test/java/com/google/android/exoplayer2/video/spherical/ProjectionTest.java rename to library/ui/src/test/java/com/google/android/exoplayer2/ui/spherical/ProjectionTest.java index 1a889bbaa7..3578ae1bb4 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/video/spherical/ProjectionTest.java +++ b/library/ui/src/test/java/com/google/android/exoplayer2/ui/spherical/ProjectionTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.android.exoplayer2.video.spherical; +package com.google.android.exoplayer2.ui.spherical; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertEquals;