Revert "[camera] Add ProcessCameraProvider class to CameraX plugin (#6469)" (#6506)

This reverts commit 1c47c3b9d2788104985ebfc4660cafb390968b6e.
diff --git a/packages/camera/camera_android_camerax/CHANGELOG.md b/packages/camera/camera_android_camerax/CHANGELOG.md
index ce2fb90..2bdfa59 100644
--- a/packages/camera/camera_android_camerax/CHANGELOG.md
+++ b/packages/camera/camera_android_camerax/CHANGELOG.md
@@ -3,4 +3,3 @@
 * Creates camera_android_camerax plugin for development.
 * Adds CameraInfo class and removes unnecessary code from plugin.
 * Adds CameraSelector class.
-* Adds ProcessCameraProvider class.
diff --git a/packages/camera/camera_android_camerax/android/build.gradle b/packages/camera/camera_android_camerax/android/build.gradle
index a193a29..1772afe 100644
--- a/packages/camera/camera_android_camerax/android/build.gradle
+++ b/packages/camera/camera_android_camerax/android/build.gradle
@@ -38,15 +38,13 @@
 
 dependencies {
     // CameraX core library using the camera2 implementation must use same version number.
-    def camerax_version = "1.2.0-beta02"
+    def camerax_version = "1.2.0-beta01"
     implementation "androidx.camera:camera-core:${camerax_version}"
     implementation "androidx.camera:camera-camera2:${camerax_version}"
     implementation "androidx.camera:camera-lifecycle:${camerax_version}"
-    implementation 'com.google.guava:guava:28.1-android'
     testImplementation 'junit:junit:4.13.2'
     testImplementation 'org.mockito:mockito-inline:4.7.0'
     testImplementation 'androidx.test:core:1.4.0'
-    testImplementation 'org.robolectric:robolectric:4.3'
 }
     testOptions {
         unitTests.includeAndroidResources = true
diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java
index b8fbaf5..bb5756a 100644
--- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java
+++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java
@@ -15,7 +15,6 @@
 public final class CameraAndroidCameraxPlugin implements FlutterPlugin, ActivityAware {
   private InstanceManager instanceManager;
   private FlutterPluginBinding pluginBinding;
-  private ProcessCameraProviderHostApiImpl processCameraProviderHostApi;
 
   /**
    * Initialize this within the {@code #configureFlutterEngine} of a Flutter activity or fragment.
@@ -40,10 +39,6 @@
         binaryMessenger, new JavaObjectHostApiImpl(instanceManager));
     GeneratedCameraXLibrary.CameraSelectorHostApi.setup(
         binaryMessenger, new CameraSelectorHostApiImpl(binaryMessenger, instanceManager));
-    processCameraProviderHostApi =
-        new ProcessCameraProviderHostApiImpl(binaryMessenger, instanceManager, context);
-    GeneratedCameraXLibrary.ProcessCameraProviderHostApi.setup(
-        binaryMessenger, processCameraProviderHostApi);
   }
 
   @Override
@@ -65,33 +60,15 @@
   // Activity Lifecycle methods:
 
   @Override
-  public void onAttachedToActivity(@NonNull ActivityPluginBinding activityPluginBinding) {
-    updateContext(activityPluginBinding.getActivity());
-  }
+  public void onAttachedToActivity(@NonNull ActivityPluginBinding activityPluginBinding) {}
 
   @Override
-  public void onDetachedFromActivityForConfigChanges() {
-    updateContext(pluginBinding.getApplicationContext());
-  }
+  public void onDetachedFromActivityForConfigChanges() {}
 
   @Override
   public void onReattachedToActivityForConfigChanges(
-      @NonNull ActivityPluginBinding activityPluginBinding) {
-    updateContext(activityPluginBinding.getActivity());
-  }
+      @NonNull ActivityPluginBinding activityPluginBinding) {}
 
   @Override
-  public void onDetachedFromActivity() {
-    updateContext(pluginBinding.getApplicationContext());
-  }
-
-  /**
-   * Updates context that is used to fetch the corresponding instance of a {@code
-   * ProcessCameraProvider}.
-   */
-  private void updateContext(Context context) {
-    if (processCameraProviderHostApi != null) {
-      processCameraProviderHostApi.setContext(context);
-    }
-  }
+  public void onDetachedFromActivity() {}
 }
diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoFlutterApiImpl.java
index c538e42..b5ba9fc 100644
--- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoFlutterApiImpl.java
+++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoFlutterApiImpl.java
@@ -18,6 +18,7 @@
   }
 
   void create(CameraInfo cameraInfo, Reply<Void> reply) {
-    create(instanceManager.addHostCreatedInstance(cameraInfo), reply);
+    instanceManager.addHostCreatedInstance(cameraInfo);
+    create(instanceManager.getIdentifierForStrongReference(cameraInfo), reply);
   }
 }
diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/GeneratedCameraXLibrary.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/GeneratedCameraXLibrary.java
index 041564c..e87a80d 100644
--- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/GeneratedCameraXLibrary.java
+++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/GeneratedCameraXLibrary.java
@@ -22,13 +22,6 @@
 /** Generated class from Pigeon. */
 @SuppressWarnings({"unused", "unchecked", "CodeBlock2Expr", "RedundantSuppression"})
 public class GeneratedCameraXLibrary {
-
-  public interface Result<T> {
-    void success(T result);
-
-    void error(Throwable error);
-  }
-
   private static class JavaObjectHostApiCodec extends StandardMessageCodec {
     public static final JavaObjectHostApiCodec INSTANCE = new JavaObjectHostApiCodec();
 
@@ -318,133 +311,6 @@
     }
   }
 
-  private static class ProcessCameraProviderHostApiCodec extends StandardMessageCodec {
-    public static final ProcessCameraProviderHostApiCodec INSTANCE =
-        new ProcessCameraProviderHostApiCodec();
-
-    private ProcessCameraProviderHostApiCodec() {}
-  }
-
-  /** Generated interface from Pigeon that represents a handler of messages from Flutter. */
-  public interface ProcessCameraProviderHostApi {
-    void getInstance(Result<Long> result);
-
-    @NonNull
-    List<Long> getAvailableCameraInfos(@NonNull Long identifier);
-
-    /** The codec used by ProcessCameraProviderHostApi. */
-    static MessageCodec<Object> getCodec() {
-      return ProcessCameraProviderHostApiCodec.INSTANCE;
-    }
-
-    /**
-     * Sets up an instance of `ProcessCameraProviderHostApi` to handle messages through the
-     * `binaryMessenger`.
-     */
-    static void setup(BinaryMessenger binaryMessenger, ProcessCameraProviderHostApi api) {
-      {
-        BasicMessageChannel<Object> channel =
-            new BasicMessageChannel<>(
-                binaryMessenger,
-                "dev.flutter.pigeon.ProcessCameraProviderHostApi.getInstance",
-                getCodec());
-        if (api != null) {
-          channel.setMessageHandler(
-              (message, reply) -> {
-                Map<String, Object> wrapped = new HashMap<>();
-                try {
-                  Result<Long> resultCallback =
-                      new Result<Long>() {
-                        public void success(Long result) {
-                          wrapped.put("result", result);
-                          reply.reply(wrapped);
-                        }
-
-                        public void error(Throwable error) {
-                          wrapped.put("error", wrapError(error));
-                          reply.reply(wrapped);
-                        }
-                      };
-
-                  api.getInstance(resultCallback);
-                } catch (Error | RuntimeException exception) {
-                  wrapped.put("error", wrapError(exception));
-                  reply.reply(wrapped);
-                }
-              });
-        } else {
-          channel.setMessageHandler(null);
-        }
-      }
-      {
-        BasicMessageChannel<Object> channel =
-            new BasicMessageChannel<>(
-                binaryMessenger,
-                "dev.flutter.pigeon.ProcessCameraProviderHostApi.getAvailableCameraInfos",
-                getCodec());
-        if (api != null) {
-          channel.setMessageHandler(
-              (message, reply) -> {
-                Map<String, Object> wrapped = new HashMap<>();
-                try {
-                  ArrayList<Object> args = (ArrayList<Object>) message;
-                  Number identifierArg = (Number) args.get(0);
-                  if (identifierArg == null) {
-                    throw new NullPointerException("identifierArg unexpectedly null.");
-                  }
-                  List<Long> output =
-                      api.getAvailableCameraInfos(
-                          (identifierArg == null) ? null : identifierArg.longValue());
-                  wrapped.put("result", output);
-                } catch (Error | RuntimeException exception) {
-                  wrapped.put("error", wrapError(exception));
-                }
-                reply.reply(wrapped);
-              });
-        } else {
-          channel.setMessageHandler(null);
-        }
-      }
-    }
-  }
-
-  private static class ProcessCameraProviderFlutterApiCodec extends StandardMessageCodec {
-    public static final ProcessCameraProviderFlutterApiCodec INSTANCE =
-        new ProcessCameraProviderFlutterApiCodec();
-
-    private ProcessCameraProviderFlutterApiCodec() {}
-  }
-
-  /** Generated class from Pigeon that represents Flutter messages that can be called from Java. */
-  public static class ProcessCameraProviderFlutterApi {
-    private final BinaryMessenger binaryMessenger;
-
-    public ProcessCameraProviderFlutterApi(BinaryMessenger argBinaryMessenger) {
-      this.binaryMessenger = argBinaryMessenger;
-    }
-
-    public interface Reply<T> {
-      void reply(T reply);
-    }
-
-    static MessageCodec<Object> getCodec() {
-      return ProcessCameraProviderFlutterApiCodec.INSTANCE;
-    }
-
-    public void create(@NonNull Long identifierArg, Reply<Void> callback) {
-      BasicMessageChannel<Object> channel =
-          new BasicMessageChannel<>(
-              binaryMessenger,
-              "dev.flutter.pigeon.ProcessCameraProviderFlutterApi.create",
-              getCodec());
-      channel.send(
-          new ArrayList<Object>(Arrays.asList(identifierArg)),
-          channelReply -> {
-            callback.reply(null);
-          });
-    }
-  }
-
   private static Map<String, Object> wrapError(Throwable exception) {
     Map<String, Object> errorMap = new HashMap<>();
     errorMap.put("message", exception.toString());
diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderFlutterApiImpl.java
deleted file mode 100644
index 90c94d0..0000000
--- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderFlutterApiImpl.java
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2013 The Flutter Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package io.flutter.plugins.camerax;
-
-import androidx.camera.lifecycle.ProcessCameraProvider;
-import io.flutter.plugin.common.BinaryMessenger;
-import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ProcessCameraProviderFlutterApi;
-
-public class ProcessCameraProviderFlutterApiImpl extends ProcessCameraProviderFlutterApi {
-  public ProcessCameraProviderFlutterApiImpl(
-      BinaryMessenger binaryMessenger, InstanceManager instanceManager) {
-    super(binaryMessenger);
-    this.instanceManager = instanceManager;
-  }
-
-  private final InstanceManager instanceManager;
-
-  void create(ProcessCameraProvider processCameraProvider, Reply<Void> reply) {
-    create(instanceManager.addHostCreatedInstance(processCameraProvider), reply);
-  }
-}
diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderHostApiImpl.java
deleted file mode 100644
index 19c5eb5..0000000
--- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderHostApiImpl.java
+++ /dev/null
@@ -1,87 +0,0 @@
-// Copyright 2013 The Flutter Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package io.flutter.plugins.camerax;
-
-import android.content.Context;
-import androidx.annotation.NonNull;
-import androidx.camera.core.CameraInfo;
-import androidx.camera.lifecycle.ProcessCameraProvider;
-import androidx.core.content.ContextCompat;
-import com.google.common.util.concurrent.ListenableFuture;
-import io.flutter.plugin.common.BinaryMessenger;
-import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ProcessCameraProviderHostApi;
-import java.util.ArrayList;
-import java.util.List;
-
-public class ProcessCameraProviderHostApiImpl implements ProcessCameraProviderHostApi {
-  private final BinaryMessenger binaryMessenger;
-  private final InstanceManager instanceManager;
-
-  private Context context;
-
-  public ProcessCameraProviderHostApiImpl(
-      BinaryMessenger binaryMessenger, InstanceManager instanceManager, Context context) {
-    this.binaryMessenger = binaryMessenger;
-    this.instanceManager = instanceManager;
-    this.context = context;
-  }
-
-  /**
-   * Sets the context that the {@code ProcessCameraProvider} will use to attach the lifecycle of the
-   * camera to.
-   *
-   * <p>If using the camera plugin in an add-to-app context, ensure that a new instance of the
-   * {@code ProcessCameraProvider} is fetched via {@code #getInstance} anytime the context changes.
-   */
-  public void setContext(Context context) {
-    this.context = context;
-  }
-
-  /**
-   * Returns the instance of the ProcessCameraProvider to manage the lifecycle of the camera for the
-   * current {@code Context}.
-   */
-  @Override
-  public void getInstance(GeneratedCameraXLibrary.Result<Long> result) {
-    ListenableFuture<ProcessCameraProvider> processCameraProviderFuture =
-        ProcessCameraProvider.getInstance(context);
-
-    processCameraProviderFuture.addListener(
-        () -> {
-          try {
-            // Camera provider is now guaranteed to be available.
-            ProcessCameraProvider processCameraProvider = processCameraProviderFuture.get();
-
-            if (!instanceManager.containsInstance(processCameraProvider)) {
-              final ProcessCameraProviderFlutterApiImpl flutterApi =
-                  new ProcessCameraProviderFlutterApiImpl(binaryMessenger, instanceManager);
-              flutterApi.create(processCameraProvider, reply -> {});
-            }
-            result.success(instanceManager.getIdentifierForStrongReference(processCameraProvider));
-          } catch (Exception e) {
-            result.error(e);
-          }
-        },
-        ContextCompat.getMainExecutor(context));
-  }
-
-  /** Returns cameras available to the ProcessCameraProvider. */
-  @Override
-  public List<Long> getAvailableCameraInfos(@NonNull Long identifier) {
-    ProcessCameraProvider processCameraProvider =
-        (ProcessCameraProvider) instanceManager.getInstance(identifier);
-
-    List<CameraInfo> availableCameras = processCameraProvider.getAvailableCameraInfos();
-    List<Long> availableCamerasIds = new ArrayList<Long>();
-    final CameraInfoFlutterApiImpl cameraInfoFlutterApi =
-        new CameraInfoFlutterApiImpl(binaryMessenger, instanceManager);
-
-    for (CameraInfo cameraInfo : availableCameras) {
-      cameraInfoFlutterApi.create(cameraInfo, result -> {});
-      availableCamerasIds.add(instanceManager.getIdentifierForStrongReference(cameraInfo));
-    }
-    return availableCamerasIds;
-  }
-}
diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderTest.java
deleted file mode 100644
index ec321f8..0000000
--- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderTest.java
+++ /dev/null
@@ -1,106 +0,0 @@
-// Copyright 2013 The Flutter Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package io.flutter.plugins.camerax;
-
-import static org.junit.Assert.assertEquals;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import androidx.camera.core.CameraInfo;
-import androidx.camera.lifecycle.ProcessCameraProvider;
-import androidx.test.core.app.ApplicationProvider;
-import com.google.common.util.concurrent.SettableFuture;
-import io.flutter.plugin.common.BinaryMessenger;
-import java.util.Arrays;
-import java.util.Objects;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockedStatic;
-import org.mockito.Mockito;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
-import org.mockito.stubbing.Answer;
-import org.robolectric.RobolectricTestRunner;
-
-@RunWith(RobolectricTestRunner.class)
-public class ProcessCameraProviderTest {
-  @Rule public MockitoRule mockitoRule = MockitoJUnit.rule();
-
-  @Mock public ProcessCameraProvider processCameraProvider;
-  @Mock public BinaryMessenger mockBinaryMessenger;
-
-  InstanceManager testInstanceManager;
-  private Context context;
-
-  @Before
-  public void setUp() {
-    testInstanceManager = InstanceManager.open(identifier -> {});
-    context = ApplicationProvider.getApplicationContext();
-  }
-
-  @After
-  public void tearDown() {
-    testInstanceManager.close();
-  }
-
-  @Test
-  public void getInstanceTest() {
-    final ProcessCameraProviderHostApiImpl processCameraProviderHostApi =
-        new ProcessCameraProviderHostApiImpl(mockBinaryMessenger, testInstanceManager, context);
-    SettableFuture processCameraProviderFuture = SettableFuture.create();
-    processCameraProviderFuture.set(processCameraProvider);
-    final GeneratedCameraXLibrary.Result<Long> mockResult =
-        mock(GeneratedCameraXLibrary.Result.class);
-
-    testInstanceManager.addDartCreatedInstance(processCameraProvider, 0);
-
-    try (MockedStatic<ProcessCameraProvider> mockedProcessCameraProvider =
-        Mockito.mockStatic(ProcessCameraProvider.class)) {
-      mockedProcessCameraProvider
-          .when(() -> ProcessCameraProvider.getInstance(context))
-          .thenAnswer((Answer<SettableFuture>) invocation -> processCameraProviderFuture);
-
-      processCameraProviderHostApi.getInstance(mockResult);
-      verify(mockResult).success(0L);
-    }
-  }
-
-  @Test
-  public void getAvailableCameraInfosTest() {
-    final ProcessCameraProviderHostApiImpl processCameraProviderHostApi =
-        new ProcessCameraProviderHostApiImpl(mockBinaryMessenger, testInstanceManager, context);
-    final CameraInfo mockCameraInfo = mock(CameraInfo.class);
-
-    testInstanceManager.addDartCreatedInstance(processCameraProvider, 0);
-    testInstanceManager.addDartCreatedInstance(mockCameraInfo, 1);
-
-    when(processCameraProvider.getAvailableCameraInfos()).thenReturn(Arrays.asList(mockCameraInfo));
-
-    assertEquals(processCameraProviderHostApi.getAvailableCameraInfos(0L), Arrays.asList(1L));
-    verify(processCameraProvider).getAvailableCameraInfos();
-  }
-
-  @Test
-  public void flutterApiCreateTest() {
-    final ProcessCameraProviderFlutterApiImpl spyFlutterApi =
-        spy(new ProcessCameraProviderFlutterApiImpl(mockBinaryMessenger, testInstanceManager));
-
-    spyFlutterApi.create(processCameraProvider, reply -> {});
-
-    final long identifier =
-        Objects.requireNonNull(
-            testInstanceManager.getIdentifierForStrongReference(processCameraProvider));
-    verify(spyFlutterApi).create(eq(identifier), any());
-  }
-}
diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax_flutter_api_impls.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax_flutter_api_impls.dart
index 9c6564a..576260c 100644
--- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax_flutter_api_impls.dart
+++ b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax_flutter_api_impls.dart
@@ -6,7 +6,6 @@
 import 'camera_selector.dart';
 import 'camerax_library.pigeon.dart';
 import 'java_object.dart';
-import 'process_camera_provider.dart';
 
 /// Handles initialization of Flutter APIs for the Android CameraX library.
 class AndroidCameraXCameraFlutterApis {
@@ -15,7 +14,6 @@
     JavaObjectFlutterApiImpl? javaObjectFlutterApi,
     CameraInfoFlutterApiImpl? cameraInfoFlutterApi,
     CameraSelectorFlutterApiImpl? cameraSelectorFlutterApi,
-    ProcessCameraProviderFlutterApiImpl? processCameraProviderFlutterApi,
   }) {
     this.javaObjectFlutterApi =
         javaObjectFlutterApi ?? JavaObjectFlutterApiImpl();
@@ -23,8 +21,6 @@
         cameraInfoFlutterApi ?? CameraInfoFlutterApiImpl();
     this.cameraSelectorFlutterApi =
         cameraSelectorFlutterApi ?? CameraSelectorFlutterApiImpl();
-    this.processCameraProviderFlutterApi = processCameraProviderFlutterApi ??
-        ProcessCameraProviderFlutterApiImpl();
   }
 
   static bool _haveBeenSetUp = false;
@@ -44,17 +40,12 @@
   /// Flutter Api for [CameraSelector].
   late final CameraSelectorFlutterApiImpl cameraSelectorFlutterApi;
 
-  /// Flutter Api for [ProcessCameraProvider].
-  late final ProcessCameraProviderFlutterApiImpl
-      processCameraProviderFlutterApi;
-
   /// Ensures all the Flutter APIs have been setup to receive calls from native code.
   void ensureSetUp() {
     if (!_haveBeenSetUp) {
       JavaObjectFlutterApi.setup(javaObjectFlutterApi);
       CameraInfoFlutterApi.setup(cameraInfoFlutterApi);
       CameraSelectorFlutterApi.setup(cameraSelectorFlutterApi);
-      ProcessCameraProviderFlutterApi.setup(processCameraProviderFlutterApi);
       _haveBeenSetUp = true;
     }
   }
diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.pigeon.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.pigeon.dart
index c0b0523..a399001 100644
--- a/packages/camera/camera_android_camerax/lib/src/camerax_library.pigeon.dart
+++ b/packages/camera/camera_android_camerax/lib/src/camerax_library.pigeon.dart
@@ -263,112 +263,3 @@
     }
   }
 }
-
-class _ProcessCameraProviderHostApiCodec extends StandardMessageCodec {
-  const _ProcessCameraProviderHostApiCodec();
-}
-
-class ProcessCameraProviderHostApi {
-  /// Constructor for [ProcessCameraProviderHostApi].  The [binaryMessenger] named argument is
-  /// available for dependency injection.  If it is left null, the default
-  /// BinaryMessenger will be used which routes to the host platform.
-  ProcessCameraProviderHostApi({BinaryMessenger? binaryMessenger})
-      : _binaryMessenger = binaryMessenger;
-
-  final BinaryMessenger? _binaryMessenger;
-
-  static const MessageCodec<Object?> codec =
-      _ProcessCameraProviderHostApiCodec();
-
-  Future<int> getInstance() async {
-    final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
-        'dev.flutter.pigeon.ProcessCameraProviderHostApi.getInstance', codec,
-        binaryMessenger: _binaryMessenger);
-    final Map<Object?, Object?>? replyMap =
-        await channel.send(null) as Map<Object?, Object?>?;
-    if (replyMap == null) {
-      throw PlatformException(
-        code: 'channel-error',
-        message: 'Unable to establish connection on channel.',
-      );
-    } else if (replyMap['error'] != null) {
-      final Map<Object?, Object?> error =
-          (replyMap['error'] as Map<Object?, Object?>?)!;
-      throw PlatformException(
-        code: (error['code'] as String?)!,
-        message: error['message'] as String?,
-        details: error['details'],
-      );
-    } else if (replyMap['result'] == null) {
-      throw PlatformException(
-        code: 'null-error',
-        message: 'Host platform returned null value for non-null return value.',
-      );
-    } else {
-      return (replyMap['result'] as int?)!;
-    }
-  }
-
-  Future<List<int?>> getAvailableCameraInfos(int arg_identifier) async {
-    final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
-        'dev.flutter.pigeon.ProcessCameraProviderHostApi.getAvailableCameraInfos',
-        codec,
-        binaryMessenger: _binaryMessenger);
-    final Map<Object?, Object?>? replyMap =
-        await channel.send(<Object?>[arg_identifier]) as Map<Object?, Object?>?;
-    if (replyMap == null) {
-      throw PlatformException(
-        code: 'channel-error',
-        message: 'Unable to establish connection on channel.',
-      );
-    } else if (replyMap['error'] != null) {
-      final Map<Object?, Object?> error =
-          (replyMap['error'] as Map<Object?, Object?>?)!;
-      throw PlatformException(
-        code: (error['code'] as String?)!,
-        message: error['message'] as String?,
-        details: error['details'],
-      );
-    } else if (replyMap['result'] == null) {
-      throw PlatformException(
-        code: 'null-error',
-        message: 'Host platform returned null value for non-null return value.',
-      );
-    } else {
-      return (replyMap['result'] as List<Object?>?)!.cast<int?>();
-    }
-  }
-}
-
-class _ProcessCameraProviderFlutterApiCodec extends StandardMessageCodec {
-  const _ProcessCameraProviderFlutterApiCodec();
-}
-
-abstract class ProcessCameraProviderFlutterApi {
-  static const MessageCodec<Object?> codec =
-      _ProcessCameraProviderFlutterApiCodec();
-
-  void create(int identifier);
-  static void setup(ProcessCameraProviderFlutterApi? api,
-      {BinaryMessenger? binaryMessenger}) {
-    {
-      final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
-          'dev.flutter.pigeon.ProcessCameraProviderFlutterApi.create', codec,
-          binaryMessenger: binaryMessenger);
-      if (api == null) {
-        channel.setMessageHandler(null);
-      } else {
-        channel.setMessageHandler((Object? message) async {
-          assert(message != null,
-              'Argument for dev.flutter.pigeon.ProcessCameraProviderFlutterApi.create was null.');
-          final List<Object?> args = (message as List<Object?>?)!;
-          final int? arg_identifier = (args[0] as int?);
-          assert(arg_identifier != null,
-              'Argument for dev.flutter.pigeon.ProcessCameraProviderFlutterApi.create was null, expected non-null int.');
-          api.create(arg_identifier!);
-          return;
-        });
-      }
-    }
-  }
-}
diff --git a/packages/camera/camera_android_camerax/lib/src/process_camera_provider.dart b/packages/camera/camera_android_camerax/lib/src/process_camera_provider.dart
deleted file mode 100644
index e2b588d..0000000
--- a/packages/camera/camera_android_camerax/lib/src/process_camera_provider.dart
+++ /dev/null
@@ -1,119 +0,0 @@
-// Copyright 2013 The Flutter Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'package:flutter/services.dart';
-
-import 'android_camera_camerax_flutter_api_impls.dart';
-import 'camera_info.dart';
-import 'camerax_library.pigeon.dart';
-import 'instance_manager.dart';
-import 'java_object.dart';
-
-/// Provides an object to manage the camera.
-///
-/// See https://developer.android.com/reference/androidx/camera/lifecycle/ProcessCameraProvider.
-class ProcessCameraProvider extends JavaObject {
-  /// Creates a detached [ProcessCameraProvider].
-  ProcessCameraProvider.detached(
-      {BinaryMessenger? binaryMessenger, InstanceManager? instanceManager})
-      : super.detached(
-            binaryMessenger: binaryMessenger,
-            instanceManager: instanceManager) {
-    _api = ProcessCameraProviderHostApiImpl(
-        binaryMessenger: binaryMessenger, instanceManager: instanceManager);
-    AndroidCameraXCameraFlutterApis.instance.ensureSetUp();
-  }
-
-  late final ProcessCameraProviderHostApiImpl _api;
-
-  /// Gets an instance of [ProcessCameraProvider].
-  static Future<ProcessCameraProvider> getInstance(
-      {BinaryMessenger? binaryMessenger, InstanceManager? instanceManager}) {
-    AndroidCameraXCameraFlutterApis.instance.ensureSetUp();
-    final ProcessCameraProviderHostApiImpl api =
-        ProcessCameraProviderHostApiImpl(
-            binaryMessenger: binaryMessenger, instanceManager: instanceManager);
-
-    return api.getInstancefromInstances();
-  }
-
-  /// Retrieves the cameras available to the device.
-  Future<List<CameraInfo>> getAvailableCameraInfos() {
-    return _api.getAvailableCameraInfosFromInstances(this);
-  }
-}
-
-/// Host API implementation of [ProcessCameraProvider].
-class ProcessCameraProviderHostApiImpl extends ProcessCameraProviderHostApi {
-  /// Creates a [ProcessCameraProviderHostApiImpl].
-  ProcessCameraProviderHostApiImpl(
-      {this.binaryMessenger, InstanceManager? instanceManager})
-      : super(binaryMessenger: binaryMessenger) {
-    this.instanceManager = instanceManager ?? JavaObject.globalInstanceManager;
-  }
-
-  /// Receives binary data across the Flutter platform barrier.
-  ///
-  /// If it is null, the default BinaryMessenger will be used which routes to
-  /// the host platform.
-  final BinaryMessenger? binaryMessenger;
-
-  /// Maintains instances stored to communicate with native language objects.
-  late final InstanceManager instanceManager;
-
-  /// Retrieves an instance of a ProcessCameraProvider from the context of
-  /// the FlutterActivity.
-  Future<ProcessCameraProvider> getInstancefromInstances() async {
-    return instanceManager.getInstanceWithWeakReference(await getInstance())!
-        as ProcessCameraProvider;
-  }
-
-  /// Retrives the list of CameraInfos corresponding to the available cameras.
-  Future<List<CameraInfo>> getAvailableCameraInfosFromInstances(
-      ProcessCameraProvider instance) async {
-    int? identifier = instanceManager.getIdentifier(instance);
-    identifier ??= instanceManager.addDartCreatedInstance(instance,
-        onCopy: (ProcessCameraProvider original) {
-      return ProcessCameraProvider.detached(
-          binaryMessenger: binaryMessenger, instanceManager: instanceManager);
-    });
-
-    final List<int?> cameraInfos = await getAvailableCameraInfos(identifier);
-    return (cameraInfos.map<CameraInfo>((int? id) =>
-            instanceManager.getInstanceWithWeakReference(id!)! as CameraInfo))
-        .toList();
-  }
-}
-
-/// Flutter API Implementation of [ProcessCameraProvider].
-class ProcessCameraProviderFlutterApiImpl
-    implements ProcessCameraProviderFlutterApi {
-  /// Constructs a [ProcessCameraProviderFlutterApiImpl].
-  ProcessCameraProviderFlutterApiImpl({
-    this.binaryMessenger,
-    InstanceManager? instanceManager,
-  }) : instanceManager = instanceManager ?? JavaObject.globalInstanceManager;
-
-  /// Receives binary data across the Flutter platform barrier.
-  ///
-  /// If it is null, the default BinaryMessenger will be used which routes to
-  /// the host platform.
-  final BinaryMessenger? binaryMessenger;
-
-  /// Maintains instances stored to communicate with native language objects.
-  final InstanceManager instanceManager;
-
-  @override
-  void create(int identifier) {
-    instanceManager.addHostCreatedInstance(
-      ProcessCameraProvider.detached(
-          binaryMessenger: binaryMessenger, instanceManager: instanceManager),
-      identifier,
-      onCopy: (ProcessCameraProvider original) {
-        return ProcessCameraProvider.detached(
-            binaryMessenger: binaryMessenger, instanceManager: instanceManager);
-      },
-    );
-  }
-}
diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart
index 4d7d969..aace7a0 100644
--- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart
+++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart
@@ -57,16 +57,3 @@
 abstract class CameraSelectorFlutterApi {
   void create(int identifier, int? lensFacing);
 }
-
-@HostApi(dartHostTestHandler: 'TestProcessCameraProviderHostApi')
-abstract class ProcessCameraProviderHostApi {
-  @async
-  int getInstance();
-
-  List<int> getAvailableCameraInfos(int identifier);
-}
-
-@FlutterApi()
-abstract class ProcessCameraProviderFlutterApi {
-  void create(int identifier);
-}
diff --git a/packages/camera/camera_android_camerax/test/process_camera_provider_test.dart b/packages/camera/camera_android_camerax/test/process_camera_provider_test.dart
deleted file mode 100644
index 65e7d00..0000000
--- a/packages/camera/camera_android_camerax/test/process_camera_provider_test.dart
+++ /dev/null
@@ -1,96 +0,0 @@
-// Copyright 2013 The Flutter Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'package:camera_android_camerax/src/camera_info.dart';
-import 'package:camera_android_camerax/src/instance_manager.dart';
-import 'package:camera_android_camerax/src/process_camera_provider.dart';
-import 'package:flutter_test/flutter_test.dart';
-import 'package:mockito/annotations.dart';
-import 'package:mockito/mockito.dart';
-
-import 'process_camera_provider_test.mocks.dart';
-import 'test_camerax_library.pigeon.dart';
-
-@GenerateMocks(<Type>[TestProcessCameraProviderHostApi])
-void main() {
-  TestWidgetsFlutterBinding.ensureInitialized();
-
-  group('ProcessCameraProvider', () {
-    tearDown(() => TestProcessCameraProviderHostApi.setup(null));
-
-    test('getInstanceTest', () async {
-      final MockTestProcessCameraProviderHostApi mockApi =
-          MockTestProcessCameraProviderHostApi();
-      TestProcessCameraProviderHostApi.setup(mockApi);
-
-      final InstanceManager instanceManager = InstanceManager(
-        onWeakReferenceRemoved: (_) {},
-      );
-      final ProcessCameraProvider processCameraProvider =
-          ProcessCameraProvider.detached(
-        instanceManager: instanceManager,
-      );
-
-      instanceManager.addHostCreatedInstance(
-        processCameraProvider,
-        0,
-        onCopy: (_) => ProcessCameraProvider.detached(),
-      );
-
-      when(mockApi.getInstance()).thenAnswer((_) async => 0);
-      expect(
-          await ProcessCameraProvider.getInstance(
-              instanceManager: instanceManager),
-          equals(processCameraProvider));
-      verify(mockApi.getInstance());
-    });
-
-    test('getAvailableCameraInfosTest', () async {
-      final MockTestProcessCameraProviderHostApi mockApi =
-          MockTestProcessCameraProviderHostApi();
-      TestProcessCameraProviderHostApi.setup(mockApi);
-
-      final InstanceManager instanceManager = InstanceManager(
-        onWeakReferenceRemoved: (_) {},
-      );
-      final ProcessCameraProvider processCameraProvider =
-          ProcessCameraProvider.detached(
-        instanceManager: instanceManager,
-      );
-
-      instanceManager.addHostCreatedInstance(
-        processCameraProvider,
-        0,
-        onCopy: (_) => ProcessCameraProvider.detached(),
-      );
-      final CameraInfo fakeAvailableCameraInfo =
-          CameraInfo.detached(instanceManager: instanceManager);
-      instanceManager.addHostCreatedInstance(
-        fakeAvailableCameraInfo,
-        1,
-        onCopy: (_) => CameraInfo.detached(),
-      );
-
-      when(mockApi.getAvailableCameraInfos(0)).thenReturn(<int>[1]);
-      expect(await processCameraProvider.getAvailableCameraInfos(),
-          equals(<CameraInfo>[fakeAvailableCameraInfo]));
-      verify(mockApi.getAvailableCameraInfos(0));
-    });
-
-    test('flutterApiCreateTest', () {
-      final InstanceManager instanceManager = InstanceManager(
-        onWeakReferenceRemoved: (_) {},
-      );
-      final ProcessCameraProviderFlutterApiImpl flutterApi =
-          ProcessCameraProviderFlutterApiImpl(
-        instanceManager: instanceManager,
-      );
-
-      flutterApi.create(0);
-
-      expect(instanceManager.getInstanceWithWeakReference(0),
-          isA<ProcessCameraProvider>());
-    });
-  });
-}
diff --git a/packages/camera/camera_android_camerax/test/process_camera_provider_test.mocks.dart b/packages/camera/camera_android_camerax/test/process_camera_provider_test.mocks.dart
deleted file mode 100644
index 9fcfe69..0000000
--- a/packages/camera/camera_android_camerax/test/process_camera_provider_test.mocks.dart
+++ /dev/null
@@ -1,40 +0,0 @@
-// Mocks generated by Mockito 5.3.0 from annotations
-// in camera_android_camerax/test/process_camera_provider_test.dart.
-// Do not manually edit this file.
-
-// ignore_for_file: no_leading_underscores_for_library_prefixes
-import 'dart:async' as _i3;
-
-import 'package:mockito/mockito.dart' as _i1;
-
-import 'test_camerax_library.pigeon.dart' as _i2;
-
-// ignore_for_file: type=lint
-// ignore_for_file: avoid_redundant_argument_values
-// ignore_for_file: avoid_setters_without_getters
-// ignore_for_file: comment_references
-// ignore_for_file: implementation_imports
-// ignore_for_file: invalid_use_of_visible_for_testing_member
-// ignore_for_file: prefer_const_constructors
-// ignore_for_file: unnecessary_parenthesis
-// ignore_for_file: camel_case_types
-// ignore_for_file: subtype_of_sealed_class
-
-/// A class which mocks [TestProcessCameraProviderHostApi].
-///
-/// See the documentation for Mockito's code generation for more information.
-class MockTestProcessCameraProviderHostApi extends _i1.Mock
-    implements _i2.TestProcessCameraProviderHostApi {
-  MockTestProcessCameraProviderHostApi() {
-    _i1.throwOnMissingStub(this);
-  }
-
-  @override
-  _i3.Future<int> getInstance() =>
-      (super.noSuchMethod(Invocation.method(#getInstance, []),
-          returnValue: _i3.Future<int>.value(0)) as _i3.Future<int>);
-  @override
-  List<int?> getAvailableCameraInfos(int? identifier) => (super.noSuchMethod(
-      Invocation.method(#getAvailableCameraInfos, [identifier]),
-      returnValue: <int?>[]) as List<int?>);
-}
diff --git a/packages/camera/camera_android_camerax/test/test_camerax_library.pigeon.dart b/packages/camera/camera_android_camerax/test/test_camerax_library.pigeon.dart
index 2196b73..b10e14e 100644
--- a/packages/camera/camera_android_camerax/test/test_camerax_library.pigeon.dart
+++ b/packages/camera/camera_android_camerax/test/test_camerax_library.pigeon.dart
@@ -135,53 +135,3 @@
     }
   }
 }
-
-class _TestProcessCameraProviderHostApiCodec extends StandardMessageCodec {
-  const _TestProcessCameraProviderHostApiCodec();
-}
-
-abstract class TestProcessCameraProviderHostApi {
-  static const MessageCodec<Object?> codec =
-      _TestProcessCameraProviderHostApiCodec();
-
-  Future<int> getInstance();
-  List<int?> getAvailableCameraInfos(int identifier);
-  static void setup(TestProcessCameraProviderHostApi? api,
-      {BinaryMessenger? binaryMessenger}) {
-    {
-      final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
-          'dev.flutter.pigeon.ProcessCameraProviderHostApi.getInstance', codec,
-          binaryMessenger: binaryMessenger);
-      if (api == null) {
-        channel.setMockMessageHandler(null);
-      } else {
-        channel.setMockMessageHandler((Object? message) async {
-          // ignore message
-          final int output = await api.getInstance();
-          return <Object?, Object?>{'result': output};
-        });
-      }
-    }
-    {
-      final BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
-          'dev.flutter.pigeon.ProcessCameraProviderHostApi.getAvailableCameraInfos',
-          codec,
-          binaryMessenger: binaryMessenger);
-      if (api == null) {
-        channel.setMockMessageHandler(null);
-      } else {
-        channel.setMockMessageHandler((Object? message) async {
-          assert(message != null,
-              'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.getAvailableCameraInfos was null.');
-          final List<Object?> args = (message as List<Object?>?)!;
-          final int? arg_identifier = (args[0] as int?);
-          assert(arg_identifier != null,
-              'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.getAvailableCameraInfos was null, expected non-null int.');
-          final List<int?> output =
-              api.getAvailableCameraInfos(arg_identifier!);
-          return <Object?, Object?>{'result': output};
-        });
-      }
-    }
-  }
-}