[go: nahoru, domu]

Move restriceted classes to internal package (Utils and Extensions
related).

Bug: b/146236769
Test: ./gradlew camera:camera-core:lintDebug
Change-Id: I546597dd51f36d9ce26bd8cf485f68748fdc24a8
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/ImageCaptureTest.java b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/ImageCaptureTest.java
index 314ecdc..4a78b35 100644
--- a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/ImageCaptureTest.java
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/ImageCaptureTest.java
@@ -54,8 +54,6 @@
 import androidx.camera.core.CameraX;
 import androidx.camera.core.CameraXConfig;
 import androidx.camera.core.CaptureBundle;
-import androidx.camera.core.CaptureProcessor;
-import androidx.camera.core.CaptureStage;
 import androidx.camera.core.ImageCapture;
 import androidx.camera.core.ImageCapture.Metadata;
 import androidx.camera.core.ImageCapture.OnImageCapturedCallback;
@@ -64,6 +62,8 @@
 import androidx.camera.core.ImageProxy;
 import androidx.camera.core.impl.CameraControlInternal;
 import androidx.camera.core.impl.CaptureConfig;
+import androidx.camera.core.impl.CaptureProcessor;
+import androidx.camera.core.impl.CaptureStage;
 import androidx.camera.core.impl.utils.Exif;
 import androidx.camera.testing.CameraUtil;
 import androidx.camera.testing.fakes.FakeCameraControl;
diff --git a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/Camera2CameraInfoImpl.java b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/Camera2CameraInfoImpl.java
index 63f0550..b170141 100644
--- a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/Camera2CameraInfoImpl.java
+++ b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/Camera2CameraInfoImpl.java
@@ -22,10 +22,10 @@
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
-import androidx.camera.core.CameraOrientationUtil;
 import androidx.camera.core.CameraSelector;
 import androidx.camera.core.ImageOutputConfig.RotationValue;
 import androidx.camera.core.impl.CameraInfoInternal;
+import androidx.camera.core.impl.utils.CameraOrientationUtil;
 import androidx.core.util.Preconditions;
 import androidx.lifecycle.LiveData;
 
diff --git a/camera/camera-core/lint-baseline.xml b/camera/camera-core/lint-baseline.xml
index b3084a8..30cad6b 100644
--- a/camera/camera-core/lint-baseline.xml
+++ b/camera/camera-core/lint-baseline.xml
@@ -268,21 +268,10 @@
     <issue
         id="UnknownNullness"
         message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
-        errorLine1="    List&lt;CaptureStage> getCaptureStages();"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/camera/core/CaptureBundle.java"
-            line="35"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="UnknownNullness"
-        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
         errorLine1="    void onOutputSurface(Surface surface, int imageFormat);"
         errorLine2="                         ~~~~~~~">
         <location
-            file="src/main/java/androidx/camera/core/CaptureProcessor.java"
+            file="src/main/java/androidx/camera/core/impl/CaptureProcessor.java"
             line="39"
             column="26"/>
     </issue>
@@ -293,7 +282,7 @@
         errorLine1="    void process(ImageProxyBundle bundle);"
         errorLine2="                 ~~~~~~~~~~~~~~~~">
         <location
-            file="src/main/java/androidx/camera/core/CaptureProcessor.java"
+            file="src/main/java/androidx/camera/core/impl/CaptureProcessor.java"
             line="51"
             column="18"/>
     </issue>
@@ -304,7 +293,7 @@
         errorLine1="    void onResolutionUpdate(Size size);"
         errorLine2="                            ~~~~">
         <location
-            file="src/main/java/androidx/camera/core/CaptureProcessor.java"
+            file="src/main/java/androidx/camera/core/impl/CaptureProcessor.java"
             line="58"
             column="29"/>
     </issue>
@@ -315,7 +304,7 @@
         errorLine1="    CaptureConfig getCaptureConfig();"
         errorLine2="    ~~~~~~~~~~~~~">
         <location
-            file="src/main/java/androidx/camera/core/CaptureStage.java"
+            file="src/main/java/androidx/camera/core/impl/CaptureStage.java"
             line="36"
             column="5"/>
     </issue>
@@ -326,7 +315,7 @@
         errorLine1="        public CaptureConfig getCaptureConfig() {"
         errorLine2="               ~~~~~~~~~~~~~">
         <location
-            file="src/main/java/androidx/camera/core/CaptureStage.java"
+            file="src/main/java/androidx/camera/core/impl/CaptureStage.java"
             line="55"
             column="16"/>
     </issue>
@@ -686,17 +675,6 @@
     <issue
         id="UnknownNullness"
         message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
-        errorLine1="        public FailureType getFailureType() {"
-        errorLine2="               ~~~~~~~~~~~">
-        <location
-            file="src/main/java/androidx/camera/core/ImageUtil.java"
-            line="291"
-            column="16"/>
-    </issue>
-
-    <issue
-        id="UnknownNullness"
-        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://android.github.io/kotlin-guides/interop.html#nullability-annotations"
         errorLine1="    public static Handler getInstance() {"
         errorLine2="                  ~~~~~~~">
         <location
diff --git a/camera/camera-core/src/androidTest/java/androidx/camera/core/ProcessingSurfaceTest.java b/camera/camera-core/src/androidTest/java/androidx/camera/core/ProcessingSurfaceTest.java
index 3bc6251..5dde8d0 100644
--- a/camera/camera-core/src/androidTest/java/androidx/camera/core/ProcessingSurfaceTest.java
+++ b/camera/camera-core/src/androidTest/java/androidx/camera/core/ProcessingSurfaceTest.java
@@ -29,6 +29,8 @@
 import androidx.annotation.NonNull;
 import androidx.annotation.RequiresApi;
 import androidx.camera.core.impl.CameraCaptureCallback;
+import androidx.camera.core.impl.CaptureProcessor;
+import androidx.camera.core.impl.CaptureStage;
 import androidx.camera.core.impl.DeferrableSurface;
 import androidx.camera.core.impl.utils.executor.CameraXExecutors;
 import androidx.camera.core.impl.utils.futures.Futures;
diff --git a/camera/camera-core/src/main/java/androidx/camera/core/CaptureBundle.java b/camera/camera-core/src/main/java/androidx/camera/core/CaptureBundle.java
index 3a52540..1c7dfab 100644
--- a/camera/camera-core/src/main/java/androidx/camera/core/CaptureBundle.java
+++ b/camera/camera-core/src/main/java/androidx/camera/core/CaptureBundle.java
@@ -16,8 +16,10 @@
 
 package androidx.camera.core;
 
+import androidx.annotation.Nullable;
 import androidx.annotation.RestrictTo;
 import androidx.annotation.RestrictTo.Scope;
+import androidx.camera.core.impl.CaptureStage;
 
 import java.util.List;
 
@@ -28,9 +30,9 @@
  */
 @RestrictTo(Scope.LIBRARY_GROUP)
 public interface CaptureBundle {
-
     /**
      * Returns a list of {@link CaptureStage} in order of how they are to be issued.
      */
+    @Nullable
     List<CaptureStage> getCaptureStages();
 }
diff --git a/camera/camera-core/src/main/java/androidx/camera/core/CaptureBundles.java b/camera/camera-core/src/main/java/androidx/camera/core/CaptureBundles.java
index 7ebb068..66efdd6 100644
--- a/camera/camera-core/src/main/java/androidx/camera/core/CaptureBundles.java
+++ b/camera/camera-core/src/main/java/androidx/camera/core/CaptureBundles.java
@@ -16,8 +16,10 @@
 
 package androidx.camera.core;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.RestrictTo;
 import androidx.annotation.RestrictTo.Scope;
+import androidx.camera.core.impl.CaptureStage;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -37,7 +39,8 @@
     }
 
     /** Returns a {@link CaptureBundle} which contains a list of {@link CaptureStage}. */
-    static CaptureBundle createCaptureBundle(CaptureStage ... captureStages) {
+    @NonNull
+    static CaptureBundle createCaptureBundle(CaptureStage... captureStages) {
         return new CaptureBundleImpl(Arrays.asList(captureStages));
     }
 
diff --git a/camera/camera-core/src/main/java/androidx/camera/core/ImageCapture.java b/camera/camera-core/src/main/java/androidx/camera/core/ImageCapture.java
index e15c9e0..994c32f 100644
--- a/camera/camera-core/src/main/java/androidx/camera/core/ImageCapture.java
+++ b/camera/camera-core/src/main/java/androidx/camera/core/ImageCapture.java
@@ -77,6 +77,8 @@
 import androidx.camera.core.impl.CameraIdFilter;
 import androidx.camera.core.impl.CameraInfoInternal;
 import androidx.camera.core.impl.CaptureConfig;
+import androidx.camera.core.impl.CaptureProcessor;
+import androidx.camera.core.impl.CaptureStage;
 import androidx.camera.core.impl.DeferrableSurface;
 import androidx.camera.core.impl.utils.Threads;
 import androidx.camera.core.impl.utils.executor.CameraXExecutors;
diff --git a/camera/camera-core/src/main/java/androidx/camera/core/ImageCaptureConfig.java b/camera/camera-core/src/main/java/androidx/camera/core/ImageCaptureConfig.java
index ac6d7bc..00d7e62 100644
--- a/camera/camera-core/src/main/java/androidx/camera/core/ImageCaptureConfig.java
+++ b/camera/camera-core/src/main/java/androidx/camera/core/ImageCaptureConfig.java
@@ -30,6 +30,8 @@
 import androidx.camera.core.impl.CameraDeviceConfig;
 import androidx.camera.core.impl.CameraIdFilter;
 import androidx.camera.core.impl.CaptureConfig;
+import androidx.camera.core.impl.CaptureProcessor;
+import androidx.camera.core.impl.CaptureStage;
 
 import java.io.File;
 import java.util.List;
diff --git a/camera/camera-core/src/main/java/androidx/camera/core/ImageInfoProcessor.java b/camera/camera-core/src/main/java/androidx/camera/core/ImageInfoProcessor.java
index 52c70cb..0d0be8c 100644
--- a/camera/camera-core/src/main/java/androidx/camera/core/ImageInfoProcessor.java
+++ b/camera/camera-core/src/main/java/androidx/camera/core/ImageInfoProcessor.java
@@ -18,6 +18,7 @@
 
 import androidx.annotation.RestrictTo;
 import androidx.annotation.RestrictTo.Scope;
+import androidx.camera.core.impl.CaptureStage;
 
 /**
  * A processing step that updates the necessary {@link CaptureStage} based on the current
diff --git a/camera/camera-core/src/main/java/androidx/camera/core/ImageUtil.java b/camera/camera-core/src/main/java/androidx/camera/core/ImageUtil.java
index f2f0663..a6851bc 100644
--- a/camera/camera-core/src/main/java/androidx/camera/core/ImageUtil.java
+++ b/camera/camera-core/src/main/java/androidx/camera/core/ImageUtil.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright 2019 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,9 +26,8 @@
 import android.util.Rational;
 import android.util.Size;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
-import androidx.annotation.RestrictTo;
-import androidx.annotation.RestrictTo.Scope;
 import androidx.camera.core.ImageOutputConfig.RotationValue;
 
 import java.io.ByteArrayOutputStream;
@@ -37,10 +36,7 @@
 
 /**
  * Utility class for image related operations.
- *
- * @hide
  */
-@RestrictTo(Scope.LIBRARY_GROUP)
 final class ImageUtil {
     private static final String TAG = "ImageUtil";
 
@@ -48,7 +44,9 @@
     }
 
     /** {@link android.media.Image} to JPEG byte array. */
-    public static byte[] imageToJpegByteArray(ImageProxy image) throws CodecFailedException {
+    @Nullable
+    public static byte[] imageToJpegByteArray(@NonNull ImageProxy image)
+            throws CodecFailedException {
         byte[] data = null;
         if (image.getFormat() == ImageFormat.JPEG) {
             data = jpegImageToJpegByteArray(image);
@@ -61,7 +59,9 @@
     }
 
     /** Crops byte array with given {@link android.graphics.Rect}. */
-    public static byte[] cropByteArray(byte[] data, Rect cropRect) throws CodecFailedException {
+    @NonNull
+    public static byte[] cropByteArray(@NonNull byte[] data, @Nullable Rect cropRect)
+            throws CodecFailedException {
         if (cropRect == null) {
             return data;
         }
@@ -97,12 +97,13 @@
     }
 
     /** True if the given aspect ratio is meaningful. */
-    public static boolean isAspectRatioValid(Rational aspectRatio) {
+    public static boolean isAspectRatioValid(@Nullable Rational aspectRatio) {
         return aspectRatio != null && aspectRatio.floatValue() > 0 && !aspectRatio.isNaN();
     }
 
     /** True if the given aspect ratio is meaningful and has effect on the given size. */
-    public static boolean isAspectRatioValid(Size sourceSize, Rational aspectRatio) {
+    public static boolean isAspectRatioValid(@NonNull Size sourceSize,
+            @Nullable Rational aspectRatio) {
         return aspectRatio != null
                 && aspectRatio.floatValue() > 0
                 && isCropAspectRatioHasEffect(sourceSize, aspectRatio)
@@ -113,7 +114,9 @@
      * Calculates crop rect with the specified aspect ratio on the given size. Assuming the rect is
      * at the center of the source.
      */
-    public static Rect computeCropRectFromAspectRatio(Size sourceSize, Rational aspectRatio) {
+    @Nullable
+    public static Rect computeCropRectFromAspectRatio(@NonNull Size sourceSize,
+            @NonNull Rational aspectRatio) {
         if (!isAspectRatioValid(aspectRatio)) {
             Log.w(TAG, "Invalid view ratio.");
             return null;
@@ -146,8 +149,9 @@
      * @param rational Rational to be rotated.
      * @param rotation Rotation value being applied.
      */
+    @NonNull
     public static Rational rotate(
-            Rational rational, @RotationValue int rotation) {
+            @NonNull Rational rational, @RotationValue int rotation) {
         if (rotation == 90 || rotation == 270) {
             return inverseRational(rational);
         }
@@ -288,6 +292,7 @@
             mFailureType = failureType;
         }
 
+        @NonNull
         public FailureType getFailureType() {
             return mFailureType;
         }
diff --git a/camera/camera-core/src/main/java/androidx/camera/core/Preview.java b/camera/camera-core/src/main/java/androidx/camera/core/Preview.java
index 57ca9b6..c8f7881 100644
--- a/camera/camera-core/src/main/java/androidx/camera/core/Preview.java
+++ b/camera/camera-core/src/main/java/androidx/camera/core/Preview.java
@@ -63,6 +63,8 @@
 import androidx.camera.core.impl.CameraIdFilter;
 import androidx.camera.core.impl.CameraInternal;
 import androidx.camera.core.impl.CaptureConfig;
+import androidx.camera.core.impl.CaptureProcessor;
+import androidx.camera.core.impl.CaptureStage;
 import androidx.camera.core.impl.utils.Threads;
 import androidx.camera.core.impl.utils.executor.CameraXExecutors;
 import androidx.camera.core.internal.TargetConfig;
diff --git a/camera/camera-core/src/main/java/androidx/camera/core/PreviewConfig.java b/camera/camera-core/src/main/java/androidx/camera/core/PreviewConfig.java
index 441366a..379049d 100644
--- a/camera/camera-core/src/main/java/androidx/camera/core/PreviewConfig.java
+++ b/camera/camera-core/src/main/java/androidx/camera/core/PreviewConfig.java
@@ -28,6 +28,7 @@
 import androidx.camera.core.impl.CameraDeviceConfig;
 import androidx.camera.core.impl.CameraIdFilter;
 import androidx.camera.core.impl.CaptureConfig;
+import androidx.camera.core.impl.CaptureProcessor;
 
 import java.util.List;
 import java.util.Set;
diff --git a/camera/camera-core/src/main/java/androidx/camera/core/ProcessingImageReader.java b/camera/camera-core/src/main/java/androidx/camera/core/ProcessingImageReader.java
index 16ac083..000f67d 100644
--- a/camera/camera-core/src/main/java/androidx/camera/core/ProcessingImageReader.java
+++ b/camera/camera-core/src/main/java/androidx/camera/core/ProcessingImageReader.java
@@ -26,6 +26,8 @@
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.camera.core.impl.CameraCaptureCallback;
+import androidx.camera.core.impl.CaptureProcessor;
+import androidx.camera.core.impl.CaptureStage;
 import androidx.camera.core.impl.utils.executor.CameraXExecutors;
 import androidx.camera.core.impl.utils.futures.FutureCallback;
 import androidx.camera.core.impl.utils.futures.Futures;
diff --git a/camera/camera-core/src/main/java/androidx/camera/core/ProcessingSurface.java b/camera/camera-core/src/main/java/androidx/camera/core/ProcessingSurface.java
index ea33ea8..c5469c1 100644
--- a/camera/camera-core/src/main/java/androidx/camera/core/ProcessingSurface.java
+++ b/camera/camera-core/src/main/java/androidx/camera/core/ProcessingSurface.java
@@ -31,6 +31,8 @@
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.camera.core.impl.CameraCaptureCallback;
+import androidx.camera.core.impl.CaptureProcessor;
+import androidx.camera.core.impl.CaptureStage;
 import androidx.camera.core.impl.DeferrableSurface;
 import androidx.camera.core.impl.utils.futures.FutureCallback;
 import androidx.camera.core.impl.utils.futures.Futures;
diff --git a/camera/camera-core/src/main/java/androidx/camera/core/CaptureProcessor.java b/camera/camera-core/src/main/java/androidx/camera/core/impl/CaptureProcessor.java
similarity index 89%
rename from camera/camera-core/src/main/java/androidx/camera/core/CaptureProcessor.java
rename to camera/camera-core/src/main/java/androidx/camera/core/impl/CaptureProcessor.java
index 8dfe987..1701a5e 100644
--- a/camera/camera-core/src/main/java/androidx/camera/core/CaptureProcessor.java
+++ b/camera/camera-core/src/main/java/androidx/camera/core/impl/CaptureProcessor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright 2019 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,20 +14,17 @@
  * limitations under the License.
  */
 
-package androidx.camera.core;
+package androidx.camera.core.impl;
 
 import android.util.Size;
 import android.view.Surface;
 
-import androidx.annotation.RestrictTo;
-import androidx.annotation.RestrictTo.Scope;
+import androidx.camera.core.ImageProxy;
+import androidx.camera.core.ImageProxyBundle;
 
 /**
  * A processing step of the image capture pipeline.
- *
- * @hide
  */
-@RestrictTo(Scope.LIBRARY_GROUP)
 public interface CaptureProcessor {
     /**
      * This gets called to update where the CaptureProcessor should write the output of {@link
diff --git a/camera/camera-core/src/main/java/androidx/camera/core/CaptureStage.java b/camera/camera-core/src/main/java/androidx/camera/core/impl/CaptureStage.java
similarity index 85%
rename from camera/camera-core/src/main/java/androidx/camera/core/CaptureStage.java
rename to camera/camera-core/src/main/java/androidx/camera/core/impl/CaptureStage.java
index bda28b1..a93bf97 100644
--- a/camera/camera-core/src/main/java/androidx/camera/core/CaptureStage.java
+++ b/camera/camera-core/src/main/java/androidx/camera/core/impl/CaptureStage.java
@@ -14,18 +14,11 @@
  * limitations under the License.
  */
 
-package androidx.camera.core;
-
-import androidx.annotation.RestrictTo;
-import androidx.annotation.RestrictTo.Scope;
-import androidx.camera.core.impl.CaptureConfig;
+package androidx.camera.core.impl;
 
 /**
  * A {@link CaptureConfig} with an identifier.
- *
- * @hide
  */
-@RestrictTo(Scope.LIBRARY_GROUP)
 public interface CaptureStage {
 
     /** Returns the identifier for the capture. */
@@ -42,7 +35,7 @@
     final class DefaultCaptureStage implements CaptureStage {
         private final CaptureConfig mCaptureConfig;
 
-        DefaultCaptureStage() {
+        public DefaultCaptureStage() {
             CaptureConfig.Builder builder = new CaptureConfig.Builder();
             mCaptureConfig = builder.build();
         }
diff --git a/camera/camera-core/src/main/java/androidx/camera/core/CameraOrientationUtil.java b/camera/camera-core/src/main/java/androidx/camera/core/impl/utils/CameraOrientationUtil.java
similarity index 94%
rename from camera/camera-core/src/main/java/androidx/camera/core/CameraOrientationUtil.java
rename to camera/camera-core/src/main/java/androidx/camera/core/impl/utils/CameraOrientationUtil.java
index 59e43cc..183d401 100644
--- a/camera/camera-core/src/main/java/androidx/camera/core/CameraOrientationUtil.java
+++ b/camera/camera-core/src/main/java/androidx/camera/core/impl/utils/CameraOrientationUtil.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright 2019 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,21 +14,16 @@
  * limitations under the License.
  */
 
-package androidx.camera.core;
+package androidx.camera.core.impl.utils;
 
 import android.util.Log;
 import android.view.Surface;
 
-import androidx.annotation.RestrictTo;
-import androidx.annotation.RestrictTo.Scope;
 import androidx.camera.core.ImageOutputConfig.RotationValue;
 
 /**
  * Contains utility methods related to camera orientation.
- *
- * @hide
  */
-@RestrictTo(Scope.LIBRARY_GROUP)
 public final class CameraOrientationUtil {
     private static final String TAG = "CameraOrientationUtil";
     private static final boolean DEBUG = false;
diff --git a/camera/camera-core/src/test/java/androidx/camera/core/CaptureBundleTest.java b/camera/camera-core/src/test/java/androidx/camera/core/CaptureBundleTest.java
index 929101f..42539c1 100644
--- a/camera/camera-core/src/test/java/androidx/camera/core/CaptureBundleTest.java
+++ b/camera/camera-core/src/test/java/androidx/camera/core/CaptureBundleTest.java
@@ -20,6 +20,7 @@
 
 import android.os.Build;
 
+import androidx.camera.core.impl.CaptureStage;
 import androidx.camera.testing.fakes.FakeCaptureStage;
 import androidx.test.filters.SmallTest;
 
diff --git a/camera/camera-core/src/test/java/androidx/camera/core/ProcessingImageReaderTest.java b/camera/camera-core/src/test/java/androidx/camera/core/ProcessingImageReaderTest.java
index d735595..f933ce7 100644
--- a/camera/camera-core/src/test/java/androidx/camera/core/ProcessingImageReaderTest.java
+++ b/camera/camera-core/src/test/java/androidx/camera/core/ProcessingImageReaderTest.java
@@ -27,6 +27,8 @@
 import android.util.Size;
 import android.view.Surface;
 
+import androidx.camera.core.impl.CaptureProcessor;
+import androidx.camera.core.impl.CaptureStage;
 import androidx.camera.testing.fakes.FakeCaptureStage;
 import androidx.camera.testing.fakes.FakeImageReaderProxy;
 import androidx.test.filters.SmallTest;
diff --git a/camera/camera-core/src/test/java/androidx/camera/core/CaptureStagesTest.java b/camera/camera-core/src/test/java/androidx/camera/core/impl/CaptureStagesTest.java
similarity index 97%
rename from camera/camera-core/src/test/java/androidx/camera/core/CaptureStagesTest.java
rename to camera/camera-core/src/test/java/androidx/camera/core/impl/CaptureStagesTest.java
index fdc808e..551c8ed 100644
--- a/camera/camera-core/src/test/java/androidx/camera/core/CaptureStagesTest.java
+++ b/camera/camera-core/src/test/java/androidx/camera/core/impl/CaptureStagesTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.camera.core;
+package androidx.camera.core.impl;
 
 import static com.google.common.truth.Truth.assertThat;
 
diff --git a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/ImageCaptureExtenderTest.java b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/ImageCaptureExtenderTest.java
index 2060982..69a38e4 100644
--- a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/ImageCaptureExtenderTest.java
+++ b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/ImageCaptureExtenderTest.java
@@ -44,8 +44,8 @@
 import androidx.camera.core.CameraInfoUnavailableException;
 import androidx.camera.core.CameraSelector;
 import androidx.camera.core.CameraX;
-import androidx.camera.core.CaptureProcessor;
 import androidx.camera.core.ImageCapture;
+import androidx.camera.core.impl.CaptureProcessor;
 import androidx.camera.extensions.ExtensionsManager.EffectMode;
 import androidx.camera.extensions.impl.CaptureStageImpl;
 import androidx.camera.extensions.impl.ImageCaptureExtenderImpl;
diff --git a/camera/camera-extensions/src/main/java/androidx/camera/extensions/AdaptingCaptureProcessor.java b/camera/camera-extensions/src/main/java/androidx/camera/extensions/AdaptingCaptureProcessor.java
index b4ff326..1a87666 100644
--- a/camera/camera-extensions/src/main/java/androidx/camera/extensions/AdaptingCaptureProcessor.java
+++ b/camera/camera-extensions/src/main/java/androidx/camera/extensions/AdaptingCaptureProcessor.java
@@ -25,12 +25,12 @@
 
 import androidx.camera.camera2.impl.Camera2CameraCaptureResultConverter;
 import androidx.camera.core.CameraCaptureResults;
-import androidx.camera.core.CaptureProcessor;
 import androidx.camera.core.ExperimentalGetImage;
 import androidx.camera.core.ImageInfo;
 import androidx.camera.core.ImageProxy;
 import androidx.camera.core.ImageProxyBundle;
 import androidx.camera.core.impl.CameraCaptureResult;
+import androidx.camera.core.impl.CaptureProcessor;
 import androidx.camera.extensions.impl.CaptureProcessorImpl;
 
 import com.google.common.util.concurrent.ListenableFuture;
diff --git a/camera/camera-extensions/src/main/java/androidx/camera/extensions/AdaptingCaptureStage.java b/camera/camera-extensions/src/main/java/androidx/camera/extensions/AdaptingCaptureStage.java
index 0372643..d10ecd7 100644
--- a/camera/camera-extensions/src/main/java/androidx/camera/extensions/AdaptingCaptureStage.java
+++ b/camera/camera-extensions/src/main/java/androidx/camera/extensions/AdaptingCaptureStage.java
@@ -20,8 +20,8 @@
 import android.util.Pair;
 
 import androidx.camera.camera2.impl.Camera2ImplConfig;
-import androidx.camera.core.CaptureStage;
 import androidx.camera.core.impl.CaptureConfig;
+import androidx.camera.core.impl.CaptureStage;
 import androidx.camera.extensions.impl.CaptureStageImpl;
 
 /** A {@link CaptureStage} that calls a vendor provided implementation. */
diff --git a/camera/camera-extensions/src/main/java/androidx/camera/extensions/AdaptingPreviewProcessor.java b/camera/camera-extensions/src/main/java/androidx/camera/extensions/AdaptingPreviewProcessor.java
index 53d02d9..e56590e 100644
--- a/camera/camera-extensions/src/main/java/androidx/camera/extensions/AdaptingPreviewProcessor.java
+++ b/camera/camera-extensions/src/main/java/androidx/camera/extensions/AdaptingPreviewProcessor.java
@@ -25,12 +25,12 @@
 
 import androidx.camera.camera2.impl.Camera2CameraCaptureResultConverter;
 import androidx.camera.core.CameraCaptureResults;
-import androidx.camera.core.CaptureProcessor;
 import androidx.camera.core.ExperimentalGetImage;
 import androidx.camera.core.ImageInfo;
 import androidx.camera.core.ImageProxy;
 import androidx.camera.core.ImageProxyBundle;
 import androidx.camera.core.impl.CameraCaptureResult;
+import androidx.camera.core.impl.CaptureProcessor;
 import androidx.camera.extensions.impl.PreviewImageProcessorImpl;
 import androidx.core.util.Preconditions;
 
diff --git a/camera/camera-extensions/src/main/java/androidx/camera/extensions/AdaptingRequestUpdateProcessor.java b/camera/camera-extensions/src/main/java/androidx/camera/extensions/AdaptingRequestUpdateProcessor.java
index 29582e7..9f13217 100644
--- a/camera/camera-extensions/src/main/java/androidx/camera/extensions/AdaptingRequestUpdateProcessor.java
+++ b/camera/camera-extensions/src/main/java/androidx/camera/extensions/AdaptingRequestUpdateProcessor.java
@@ -21,10 +21,10 @@
 
 import androidx.camera.camera2.impl.Camera2CameraCaptureResultConverter;
 import androidx.camera.core.CameraCaptureResults;
-import androidx.camera.core.CaptureStage;
 import androidx.camera.core.ImageInfo;
 import androidx.camera.core.ImageInfoProcessor;
 import androidx.camera.core.impl.CameraCaptureResult;
+import androidx.camera.core.impl.CaptureStage;
 import androidx.camera.extensions.impl.CaptureStageImpl;
 import androidx.camera.extensions.impl.PreviewExtenderImpl;
 import androidx.camera.extensions.impl.RequestUpdateProcessorImpl;
diff --git a/camera/camera-extensions/src/main/java/androidx/camera/extensions/ImageCaptureExtender.java b/camera/camera-extensions/src/main/java/androidx/camera/extensions/ImageCaptureExtender.java
index 2b15297..386cba7 100644
--- a/camera/camera-extensions/src/main/java/androidx/camera/extensions/ImageCaptureExtender.java
+++ b/camera/camera-extensions/src/main/java/androidx/camera/extensions/ImageCaptureExtender.java
@@ -32,12 +32,12 @@
 import androidx.camera.core.CameraSelector;
 import androidx.camera.core.CameraX;
 import androidx.camera.core.CaptureBundle;
-import androidx.camera.core.CaptureStage;
 import androidx.camera.core.Config;
 import androidx.camera.core.ImageCapture;
 import androidx.camera.core.UseCase;
 import androidx.camera.core.impl.CameraIdFilter;
 import androidx.camera.core.impl.CaptureConfig;
+import androidx.camera.core.impl.CaptureStage;
 import androidx.camera.core.impl.utils.CameraSelectorUtil;
 import androidx.camera.extensions.ExtensionsErrorListener.ExtensionsErrorCode;
 import androidx.camera.extensions.ExtensionsManager.EffectMode;
diff --git a/camera/camera-testing/src/main/java/androidx/camera/testing/TimestampCaptureProcessor.java b/camera/camera-testing/src/main/java/androidx/camera/testing/TimestampCaptureProcessor.java
index c9d5d97..bcea7dd 100644
--- a/camera/camera-testing/src/main/java/androidx/camera/testing/TimestampCaptureProcessor.java
+++ b/camera/camera-testing/src/main/java/androidx/camera/testing/TimestampCaptureProcessor.java
@@ -22,10 +22,10 @@
 
 import androidx.annotation.NonNull;
 import androidx.annotation.RestrictTo;
-import androidx.camera.core.CaptureProcessor;
 import androidx.camera.core.ExperimentalGetImage;
 import androidx.camera.core.ImageProxy;
 import androidx.camera.core.ImageProxyBundle;
+import androidx.camera.core.impl.CaptureProcessor;
 import androidx.core.util.Preconditions;
 
 import com.google.common.util.concurrent.ListenableFuture;
diff --git a/camera/camera-testing/src/main/java/androidx/camera/testing/fakes/FakeCameraInfoInternal.java b/camera/camera-testing/src/main/java/androidx/camera/testing/fakes/FakeCameraInfoInternal.java
index 14fb8a9..218feb9 100644
--- a/camera/camera-testing/src/main/java/androidx/camera/testing/fakes/FakeCameraInfoInternal.java
+++ b/camera/camera-testing/src/main/java/androidx/camera/testing/fakes/FakeCameraInfoInternal.java
@@ -20,11 +20,11 @@
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
-import androidx.camera.core.CameraOrientationUtil;
 import androidx.camera.core.CameraSelector;
 import androidx.camera.core.ImageOutputConfig.RotationValue;
 import androidx.camera.core.TorchState;
 import androidx.camera.core.impl.CameraInfoInternal;
+import androidx.camera.core.impl.utils.CameraOrientationUtil;
 import androidx.lifecycle.LiveData;
 import androidx.lifecycle.MutableLiveData;
 
diff --git a/camera/camera-testing/src/main/java/androidx/camera/testing/fakes/FakeCaptureStage.java b/camera/camera-testing/src/main/java/androidx/camera/testing/fakes/FakeCaptureStage.java
index 94d8bad..41a920f 100644
--- a/camera/camera-testing/src/main/java/androidx/camera/testing/fakes/FakeCaptureStage.java
+++ b/camera/camera-testing/src/main/java/androidx/camera/testing/fakes/FakeCaptureStage.java
@@ -18,8 +18,8 @@
 
 import androidx.annotation.RestrictTo;
 import androidx.annotation.RestrictTo.Scope;
-import androidx.camera.core.CaptureStage;
 import androidx.camera.core.impl.CaptureConfig;
+import androidx.camera.core.impl.CaptureStage;
 
 /**
  * A fake {@link CaptureStage} where the values can be set.
diff --git a/camera/camera-view/src/main/java/androidx/camera/view/CameraXModule.java b/camera/camera-view/src/main/java/androidx/camera/view/CameraXModule.java
index 49e9ab4..d3d73e0 100644
--- a/camera/camera-view/src/main/java/androidx/camera/view/CameraXModule.java
+++ b/camera/camera-view/src/main/java/androidx/camera/view/CameraXModule.java
@@ -35,7 +35,6 @@
 import androidx.annotation.UiThread;
 import androidx.camera.core.AspectRatio;
 import androidx.camera.core.Camera;
-import androidx.camera.core.CameraOrientationUtil;
 import androidx.camera.core.CameraSelector;
 import androidx.camera.core.CameraX;
 import androidx.camera.core.ImageCapture;
@@ -48,6 +47,7 @@
 import androidx.camera.core.VideoCapture;
 import androidx.camera.core.VideoCapture.OnVideoSavedCallback;
 import androidx.camera.core.VideoCaptureConfig;
+import androidx.camera.core.impl.utils.CameraOrientationUtil;
 import androidx.camera.core.impl.utils.executor.CameraXExecutors;
 import androidx.camera.core.impl.utils.futures.FutureCallback;
 import androidx.camera.core.impl.utils.futures.Futures;
diff --git a/camera/integration-tests/extensionstestapp/src/androidTest/java/androidx/camera/integration/extensions/PreviewProcessorTimestampTest.java b/camera/integration-tests/extensionstestapp/src/androidTest/java/androidx/camera/integration/extensions/PreviewProcessorTimestampTest.java
index 1a7a11f..e21b39b 100644
--- a/camera/integration-tests/extensionstestapp/src/androidTest/java/androidx/camera/integration/extensions/PreviewProcessorTimestampTest.java
+++ b/camera/integration-tests/extensionstestapp/src/androidTest/java/androidx/camera/integration/extensions/PreviewProcessorTimestampTest.java
@@ -39,11 +39,11 @@
 import androidx.camera.camera2.interop.ExperimentalCamera2Interop;
 import androidx.camera.core.CameraSelector;
 import androidx.camera.core.CameraX;
-import androidx.camera.core.CaptureProcessor;
 import androidx.camera.core.ImageAnalysis;
 import androidx.camera.core.ImageCapture;
 import androidx.camera.core.Preview;
 import androidx.camera.core.PreviewConfig;
+import androidx.camera.core.impl.CaptureProcessor;
 import androidx.camera.extensions.AutoImageCaptureExtender;
 import androidx.camera.extensions.AutoPreviewExtender;
 import androidx.camera.extensions.BeautyImageCaptureExtender;