diff --git a/app/src/main/java/com/example/cameraxtestappjava/MainActivity.java b/app/src/main/java/com/example/cameraxtestappjava/MainActivity.java index bd1cf0b..5dcea21 100644 --- a/app/src/main/java/com/example/cameraxtestappjava/MainActivity.java +++ b/app/src/main/java/com/example/cameraxtestappjava/MainActivity.java @@ -8,8 +8,6 @@ import android.widget.Toast; import androidx.activity.EdgeToEdge; import androidx.appcompat.app.AppCompatActivity; -import androidx.camera.core.ImageCapture; -import androidx.camera.lifecycle.ProcessCameraProvider; import androidx.core.content.ContextCompat; import androidx.core.graphics.Insets; import androidx.core.view.ViewCompat; @@ -18,18 +16,9 @@ import androidx.core.view.WindowInsetsCompat; import com.example.cameraxtestappjava.camera.CustomCamera; import com.example.cameraxtestappjava.camera.CustomCameraCallback; import com.example.cameraxtestappjava.databinding.ActivityMainBinding; -import com.google.common.util.concurrent.ListenableFuture; public class MainActivity extends AppCompatActivity { - ProcessCameraProvider cameraProvider; - ImageCapture imageCapture; - ImageCapture.OutputFileOptions outputFileOptions; - ListenableFuture cameraProviderFuture; - ContentValues contentValues; - String fileName; - Uri tempFileUri; - CustomCamera customCamera; ActivityMainBinding binding; @@ -68,78 +57,4 @@ public class MainActivity extends AppCompatActivity { } }); } - - /*private void setListeners() { - binding.btnTakePicture.setOnClickListener(v -> capturePhoto()); - } - - private void capturePhoto() { - if (imageCapture == null) return; - - fileName = System.currentTimeMillis() + ""; - - outputFileOptions = getOutputFileOptions(fileName); - - imageCapture.takePicture(outputFileOptions, ContextCompat.getMainExecutor(this), new ImageCapture.OnImageSavedCallback() { - @Override - public void onImageSaved(@NonNull ImageCapture.OutputFileResults outputFileResults) { - tempFileUri = outputFileResults.getSavedUri(); - Toast.makeText(MainActivity.this, "Image saved! " + tempFileUri, Toast.LENGTH_LONG).show(); - } - - @Override - public void onError(@NonNull ImageCaptureException exception) { - Toast.makeText(MainActivity.this, "Image Not Saved " + exception.getMessage(), Toast.LENGTH_LONG).show(); - } - }); - - } - - @NonNull - private ImageCapture.OutputFileOptions getOutputFileOptions(String name) { - contentValues = new ContentValues(); - contentValues.put(MediaStore.MediaColumns.DISPLAY_NAME, name); - contentValues.put(MediaStore.MediaColumns.MIME_TYPE, "image/jpeg"); - - if (Build.VERSION.SDK_INT > Build.VERSION_CODES.P) { - contentValues.put(MediaStore.Images.Media.RELATIVE_PATH, "Pictures/CameraXTestApp"); - } - - return new ImageCapture.OutputFileOptions.Builder( - getContentResolver(), MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues - ).build(); - } - - private void setUpCamera() { - cameraProviderFuture = ProcessCameraProvider.getInstance(this); - cameraProviderFuture.addListener(() -> { - try { - cameraProvider = cameraProviderFuture.get(); - startSegPassCamera(cameraProvider); - } catch (ExecutionException | InterruptedException e) { - throw new RuntimeException(e); - } - - }, ContextCompat.getMainExecutor(this)); // por parametro - } - - private void startSegPassCamera(ProcessCameraProvider cameraProvider) { - Log.d("TAGTAG", "UEEEP"); - CameraSelector cameraSelector = CameraSelector.DEFAULT_FRONT_CAMERA; - - Preview preview = new Preview.Builder().build(); - preview.setSurfaceProvider(binding.pvViewfinder.getSurfaceProvider()); - - imageCapture = new ImageCapture.Builder().build(); - - try { - cameraProvider.unbindAll(); - - cameraProvider.bindToLifecycle(this, cameraSelector, preview, imageCapture); - - } catch (Exception e) { - e.printStackTrace(); - } - - }*/ } \ No newline at end of file diff --git a/app/src/main/java/com/example/cameraxtestappjava/camera/CustomCamera.java b/app/src/main/java/com/example/cameraxtestappjava/camera/CustomCamera.java index 39267bc..95ee158 100644 --- a/app/src/main/java/com/example/cameraxtestappjava/camera/CustomCamera.java +++ b/app/src/main/java/com/example/cameraxtestappjava/camera/CustomCamera.java @@ -88,7 +88,6 @@ public class CustomCamera extends FrameLayout implements TextureView.SurfaceText if (mImageCapture == null) return; String mFileName = System.currentTimeMillis() + ""; - ImageCapture.OutputFileOptions mIutputFileOptions = getOutputFileOptions(mFileName); try { @@ -97,13 +96,11 @@ public class CustomCamera extends FrameLayout implements TextureView.SurfaceText public void onImageSaved(@NonNull ImageCapture.OutputFileResults outputFileResults) { mTempFileUri = outputFileResults.getSavedUri(); callback.onPictureTakenSuccess("Image saved! " + mTempFileUri); - //Toast.makeText(mContext, "Image saved! " + tempFileUri, Toast.LENGTH_LONG).show(); } @Override public void onError(@NonNull ImageCaptureException exception) { callback.onPictureTakenFailError(exception.getMessage()); - //Toast.makeText(mContext, "Image Not Saved " + exception.getMessage(), Toast.LENGTH_LONG).show(); } }); } catch (Exception e) { @@ -133,7 +130,7 @@ public class CustomCamera extends FrameLayout implements TextureView.SurfaceText mCameraProviderFuture.addListener(() -> { try { mCameraProvider = mCameraProviderFuture.get(); - startCustomCamera(mCameraProvider); + startCustomCamera(); } catch (ExecutionException | InterruptedException e) { throw new RuntimeException(e); } @@ -141,8 +138,8 @@ public class CustomCamera extends FrameLayout implements TextureView.SurfaceText }, mExecutor); // por parametro } - private void startCustomCamera(ProcessCameraProvider cameraProvider) { - Log.d("TAGTAG", "UEEEP"); + private void startCustomCamera() { + Log.d("TAGTAG", "Start custom camera"); CameraSelector cameraSelector = CameraSelector.DEFAULT_FRONT_CAMERA; Preview preview = new Preview.Builder().build(); @@ -151,12 +148,10 @@ public class CustomCamera extends FrameLayout implements TextureView.SurfaceText mImageCapture = new ImageCapture.Builder().build(); try { - cameraProvider.unbindAll(); - - cameraProvider.bindToLifecycle(mLifecycleOwner, cameraSelector, preview, mImageCapture); - + mCameraProvider.unbindAll(); + mCameraProvider.bindToLifecycle(mLifecycleOwner, cameraSelector, preview, mImageCapture); } catch (Exception e) { - e.printStackTrace(); + Log.e("TAGTAG", "Couldn't start camera"); } } @@ -164,7 +159,7 @@ public class CustomCamera extends FrameLayout implements TextureView.SurfaceText @Override public void onSurfaceTextureAvailable(@NonNull SurfaceTexture surface, int width, int height) { - startCustomCamera(mCameraProvider); + startCustomCamera(); } @Override diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 5b6f111..3f5678f 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -8,7 +8,7 @@ tools:context=".MainActivity">