diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e348435..ed32b5b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -29,6 +29,9 @@
+
diff --git a/app/src/main/java/com/example/greenwatch/MainActivity.java b/app/src/main/java/com/example/greenwatch/MainActivity.java
index 683f40c..2eeff07 100644
--- a/app/src/main/java/com/example/greenwatch/MainActivity.java
+++ b/app/src/main/java/com/example/greenwatch/MainActivity.java
@@ -27,6 +27,7 @@ public class MainActivity extends AppCompatActivity {
private Button audiodetectionAndAccelerometerButton;
private Button videodetectionAndAccelerometerButton;
private Button connectionButton;
+ private Button prewview_kamera;
private MainActivityViewModel mMainActivityViewModel;
@Override
@@ -40,6 +41,7 @@ public class MainActivity extends AppCompatActivity {
audiodetectionAndAccelerometerButton = (Button) findViewById(R.id.audiodetectionAndAccelerometerButton);
videodetectionAndAccelerometerButton = (Button) findViewById(R.id.videodetectionAndAccelerometerButton);
connectionButton = (Button) findViewById(R.id.connectionButton);
+ prewview_kamera = (Button) findViewById(R.id.preview_kamera);
RecyclerView deviceListRecyclerView = findViewById(R.id.deviceListRecyclerView);
deviceListRecyclerView.setLayoutManager(new LinearLayoutManager(this));
@@ -84,6 +86,17 @@ public class MainActivity extends AppCompatActivity {
}
});
+ prewview_kamera.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (mMainActivityViewModel.isCameraAccessAllowed(MainActivity.this)) {
+ openVideoPrewvoewActivity();
+ }
+ else {
+ mMainActivityViewModel.accessRequestCamera(MainActivity.this);
+ }
+ }
+ });
audiodetectionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -131,6 +144,10 @@ public class MainActivity extends AppCompatActivity {
}
});
}
+ public void openVideoPrewvoewActivity() {
+ Intent intent = new Intent(this, VideoPreviewActivity.class);
+ startActivity(intent);
+ }
public void openAudiodetectionActivity(){
Intent intent = new Intent(this, AudiodetectionActivity.class);
startActivity(intent);
diff --git a/app/src/main/java/com/example/greenwatch/VideoPreviewActivity.java b/app/src/main/java/com/example/greenwatch/VideoPreviewActivity.java
new file mode 100644
index 0000000..cc110c4
--- /dev/null
+++ b/app/src/main/java/com/example/greenwatch/VideoPreviewActivity.java
@@ -0,0 +1,61 @@
+package com.example.greenwatch;
+
+import android.os.Bundle;
+import android.util.Size;
+import android.widget.Button;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.camera.core.CameraSelector;
+import androidx.camera.core.ImageAnalysis;
+import androidx.camera.core.ImageProxy;
+import androidx.camera.core.Preview;
+import androidx.camera.lifecycle.ProcessCameraProvider;
+import androidx.camera.view.PreviewView;
+import androidx.core.content.ContextCompat;
+import androidx.lifecycle.LifecycleOwner;
+
+import com.google.common.util.concurrent.ListenableFuture;
+
+import java.util.concurrent.ExecutionException;
+
+public class VideoPreviewActivity extends AppCompatActivity {
+
+ private Button backToMainActivity;
+ private PreviewView previewView;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_preview_kamera);
+
+ backToMainActivity = (Button) findViewById(R.id.videodetectorBackToMainActivity);
+ previewView = findViewById(R.id.previewView);
+
+ backToMainActivity.setOnClickListener(v -> finish());
+
+
+ final ListenableFuture cameraProviderFuture = ProcessCameraProvider.getInstance(this);
+ cameraProviderFuture.addListener(() -> {
+ try {
+ bindImageAnalysis(cameraProviderFuture.get());
+ } catch (ExecutionException | InterruptedException e) {
+ e.printStackTrace();
+ }
+ }, ContextCompat.getMainExecutor(this));
+ }
+
+ private void bindImageAnalysis(ProcessCameraProvider cameraProvider) {
+ ImageAnalysis.Builder builder = new ImageAnalysis.Builder();
+ builder.setTargetResolution(new Size(640, 480));
+ builder.setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST);
+ ImageAnalysis imageAnalysis = builder.build();
+ imageAnalysis.setAnalyzer(
+ ContextCompat.getMainExecutor(this),
+ ImageProxy::close);
+
+ Preview preview = new Preview.Builder().build();
+ CameraSelector cameraSelector = new CameraSelector.Builder().requireLensFacing(CameraSelector.LENS_FACING_BACK).build();
+ preview.setSurfaceProvider(previewView.getSurfaceProvider());
+ cameraProvider.bindToLifecycle((LifecycleOwner) this, cameraSelector, imageAnalysis, preview);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index ca28180..940f0f1 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -8,6 +8,12 @@
android:padding="10dp"
tools:context=".MainActivity">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file