Skip to content
This repository was archived by the owner on Feb 22, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Address review
  • Loading branch information
camsim99 committed Jan 20, 2023
commit 452b5c0a402ff43d3a16c805b1c91f016c5de5fe
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,9 @@ public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) {

@Override
public void onAttachedToActivity(@NonNull ActivityPluginBinding activityPluginBinding) {
CameraAndroidCameraxPlugin plugin = new CameraAndroidCameraxPlugin();
plugin.setUp(pluginBinding.getBinaryMessenger(), pluginBinding.getApplicationContext());
plugin.updateContext(pluginBinding.getApplicationContext());
plugin.processCameraProviderHostApi.setLifecycleOwner(
this.setUp(pluginBinding.getBinaryMessenger(), pluginBinding.getApplicationContext());
this.updateContext(pluginBinding.getApplicationContext());
this.processCameraProviderHostApi.setLifecycleOwner(
(LifecycleOwner) activityPluginBinding.getActivity());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import androidx.annotation.NonNull;
import androidx.camera.core.CameraInfo;
import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraInfoHostApi;
import java.util.Objects;

public class CameraInfoHostApiImpl implements CameraInfoHostApi {
private final InstanceManager instanceManager;
Expand All @@ -17,7 +18,8 @@ public CameraInfoHostApiImpl(InstanceManager instanceManager) {

@Override
public Long getSensorRotationDegrees(@NonNull Long identifier) {
CameraInfo cameraInfo = (CameraInfo) instanceManager.getInstance(identifier);
CameraInfo cameraInfo =
(CameraInfo) Objects.requireNonNull(instanceManager.getInstance(identifier));
return Long.valueOf(cameraInfo.getSensorRotationDegrees());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraSelectorHostApi;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

public class CameraSelectorHostApiImpl implements CameraSelectorHostApi {
private final BinaryMessenger binaryMessenger;
Expand Down Expand Up @@ -41,13 +42,15 @@ public void create(@NonNull Long identifier, Long lensFacing) {

@Override
public List<Long> filter(@NonNull Long identifier, @NonNull List<Long> cameraInfoIds) {
CameraSelector cameraSelector = (CameraSelector) instanceManager.getInstance(identifier);
CameraSelector cameraSelector =
(CameraSelector) Objects.requireNonNull(instanceManager.getInstance(identifier));
List<CameraInfo> cameraInfosForFilter = new ArrayList<CameraInfo>();

for (Number cameraInfoAsNumber : cameraInfoIds) {
Long cameraInfoId = cameraInfoAsNumber.longValue();

CameraInfo cameraInfo = (CameraInfo) instanceManager.getInstance(cameraInfoId);
CameraInfo cameraInfo =
(CameraInfo) Objects.requireNonNull(instanceManager.getInstance(cameraInfoId));
cameraInfosForFilter.add(cameraInfo);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ProcessCameraProviderHostApi;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

public class ProcessCameraProviderHostApiImpl implements ProcessCameraProviderHostApi {
private final BinaryMessenger binaryMessenger;
Expand Down Expand Up @@ -78,7 +79,7 @@ public void getInstance(GeneratedCameraXLibrary.Result<Long> result) {
@Override
public List<Long> getAvailableCameraInfos(@NonNull Long identifier) {
ProcessCameraProvider processCameraProvider =
(ProcessCameraProvider) instanceManager.getInstance(identifier);
(ProcessCameraProvider) Objects.requireNonNull(instanceManager.getInstance(identifier));

List<CameraInfo> availableCameras = processCameraProvider.getAvailableCameraInfos();
List<Long> availableCamerasIds = new ArrayList<Long>();
Expand All @@ -103,12 +104,16 @@ public Long bindToLifecycle(
@NonNull Long cameraSelectorIdentifier,
@NonNull List<Long> useCaseIds) {
ProcessCameraProvider processCameraProvider =
(ProcessCameraProvider) instanceManager.getInstance(identifier);
(ProcessCameraProvider) Objects.requireNonNull(instanceManager.getInstance(identifier));
CameraSelector cameraSelector =
(CameraSelector) instanceManager.getInstance(cameraSelectorIdentifier);
(CameraSelector)
Objects.requireNonNull(instanceManager.getInstance(cameraSelectorIdentifier));
UseCase[] useCases = new UseCase[useCaseIds.size()];
for (int i = 0; i < useCaseIds.size(); i++) {
useCases[i] = (UseCase) instanceManager.getInstance(((Number) useCaseIds.get(i)).longValue());
useCases[i] =
(UseCase)
Objects.requireNonNull(
instanceManager.getInstance(((Number) useCaseIds.get(i)).longValue()));
}

Camera camera =
Expand All @@ -125,18 +130,21 @@ public Long bindToLifecycle(
@Override
public void unbind(@NonNull Long identifier, @NonNull List<Long> useCaseIds) {
ProcessCameraProvider processCameraProvider =
(ProcessCameraProvider) instanceManager.getInstance(identifier);
(ProcessCameraProvider) Objects.requireNonNull(instanceManager.getInstance(identifier));
UseCase[] useCases = new UseCase[useCaseIds.size()];
for (int i = 0; i < useCaseIds.size(); i++) {
useCases[i] = (UseCase) instanceManager.getInstance(((Number) useCaseIds.get(i)).longValue());
useCases[i] =
(UseCase)
Objects.requireNonNull(
instanceManager.getInstance(((Number) useCaseIds.get(i)).longValue()));
}
processCameraProvider.unbind(useCases);
}

@Override
public void unbindAll(@NonNull Long identifier) {
ProcessCameraProvider processCameraProvider =
(ProcessCameraProvider) instanceManager.getInstance(identifier);
(ProcessCameraProvider) Objects.requireNonNull(instanceManager.getInstance(identifier));
processCameraProvider.unbindAll();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,10 @@
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;

@RunWith(RobolectricTestRunner.class)
public class CameraTest {
@Rule public MockitoRule mockitoRule = MockitoJUnit.rule();

Expand All @@ -35,6 +32,11 @@ public void setUp() {
testInstanceManager = InstanceManager.open(identifier -> {});
}

@After
public void tearDown() {
testInstanceManager.close();
}

@Test
public void flutterApiCreateTest() {
final CameraFlutterApiImpl spyFlutterApi =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,11 +95,9 @@ class ProcessCameraProviderHostApiImpl extends ProcessCameraProviderHostApi {
/// the [ProcessCameraProvider] instance.
int getProcessCameraProviderIdentifier(ProcessCameraProvider instance) {
int? identifier = instanceManager.getIdentifier(instance);
identifier ??= instanceManager.addDartCreatedInstance(instance,
onCopy: (ProcessCameraProvider original) {
return ProcessCameraProvider.detached(
binaryMessenger: binaryMessenger, instanceManager: instanceManager);
});

assert(identifier != null,
'No ProcessCameraProvider has the identifer of that requested.');
return identifier;
}

Expand Down