Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ dependencies {
implementation("androidx.camera:camera-camera2:${camerax_version}")
implementation("androidx.camera:camera-lifecycle:${camerax_version}")
implementation("androidx.camera:camera-video:${camerax_version}")
implementation "androidx.camera:camera-view:${camerax_version}"
implementation("com.google.guava:guava:33.5.0-android")
testImplementation("junit:junit:4.13.2")
testImplementation("org.mockito:mockito-core:5.21.0")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import io.flutter.embedding.engine.plugins.FlutterPlugin;
import io.flutter.embedding.engine.plugins.activity.ActivityAware;
import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding;
import androidx.camera.view.PreviewView;

/** Platform implementation of the camera_plugin implemented with the CameraX library. */
public final class CameraAndroidCameraxPlugin implements FlutterPlugin, ActivityAware {
Expand All @@ -31,6 +32,7 @@ public void onAttachedToEngine(@NonNull FlutterPluginBinding binding) {
new ProxyApiRegistrar(
binding.getBinaryMessenger(),
binding.getApplicationContext(),
binding.getPlatformViewRegistry(),
binding.getTextureRegistry());
proxyApiRegistrar.setUp();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
// Copyright 2013 The Flutter Authors
// 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.Nullable;
import androidx.annotation.NonNull;
import io.flutter.plugin.common.StandardMessageCodec;
import io.flutter.plugin.platform.PlatformView;
import io.flutter.plugin.platform.PlatformViewFactory;
import java.util.Map;
import androidx.camera.view.PreviewView;

class CameraPreviewFactory extends PlatformViewFactory {
PreviewView previewView;

CameraPreviewFactory(PreviewView previewView) {
super(StandardMessageCodec.INSTANCE);
this.previewView = previewView;
}

@NonNull
@Override
@SuppressWarnings("unchecked")
public PlatformView create(@NonNull Context context, int viewId, @Nullable Object args) {
// return previewView;
final Map<String, Object> creationParams = (Map<String, Object>) args;
return new CameraPreviewView(context, viewId, creationParams, previewView);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
// Copyright 2013 The Flutter Authors
// 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 android.graphics.Color;
import android.view.View;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import io.flutter.plugin.platform.PlatformView;
import java.util.Map;

import androidx.camera.view.PreviewView;

class CameraPreviewView implements PlatformView {
@NonNull private final PreviewView previewView;

CameraPreviewView(@NonNull Context context, int id, @Nullable Map<String, Object> creationParams, PreviewView previewView) {
this.previewView = previewView;
}

@NonNull
@Override
public View getView() {
return previewView;
}

@Override
public void dispose() {}
}
Loading
Loading