Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.chesshelper;
- import androidx.annotation.NonNull;
- import androidx.annotation.Nullable;
- import androidx.appcompat.app.AppCompatActivity;
- import androidx.core.app.ActivityCompat;
- import androidx.core.content.ContextCompat;
- import android.Manifest;
- import android.content.Context;
- import android.content.Intent;
- import android.content.pm.PackageManager;
- import android.graphics.Bitmap;
- import android.os.Build;
- import android.os.Bundle;
- import android.provider.MediaStore;
- import android.util.DisplayMetrics;
- import android.util.Rational;
- import android.util.Size;
- import android.view.Display;
- import android.view.TextureView;
- import android.view.View;
- import android.view.WindowManager;
- import android.widget.ArrayAdapter;
- import android.widget.Button;
- import android.widget.ImageView;
- import android.widget.ListView;
- import android.widget.Toast;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Objects;
- public class MainActivity extends AppCompatActivity {
- private static final int CAMERA_PERMISSION_REQUEST_CODE = 1000;
- private static final int CAMERA_REQUEST_CODE = 1001;
- private ImageIdentifier imageIdentifier;
- ImageView pictureView;
- ListView pictureDetails;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- pictureView = findViewById(R.id.capturedImageViewId);
- pictureDetails = findViewById(R.id.listViewId);
- Button capturePictureButtonId = findViewById(R.id.captureImageButtonId);
- Button goBluetooth = findViewById(R.id.bluetoothGoButton);
- try {
- imageIdentifier = new ImageIdentifier(this);
- } catch (IOException e) {
- e.printStackTrace();
- }
- goBluetooth.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent goToBluetoothActivity = new Intent(MainActivity.this, BluetoothActivity.class);
- startActivity(goToBluetoothActivity);
- }
- });
- capturePictureButtonId.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if(hasPermission())
- {
- startCamera();
- }
- else
- {
- requestPermission();
- }
- }
- });
- }
- @Override
- public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
- super.onRequestPermissionsResult(requestCode, permissions, grantResults);
- if(requestCode == CAMERA_PERMISSION_REQUEST_CODE)
- {
- if (hasAllPermissions(grantResults))
- {
- startCamera();
- }
- else
- {
- requestPermission();
- }
- }
- }
- @Override
- protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
- if(requestCode == CAMERA_REQUEST_CODE)
- {
- Bitmap photo = (Bitmap)Objects.requireNonNull(Objects.requireNonNull(data).getExtras()).get("data");
- pictureView.setImageBitmap(photo);
- List<ImageIdentifier.Recognition> results = imageIdentifier.recognisedImage(photo, 0);
- List<String> finalResults = new ArrayList<>();
- for (ImageIdentifier.Recognition recognition : results)
- {
- finalResults.add(recognition.getName()+"---"+recognition.getConfidence());
- }
- ArrayAdapter<String> predictionAdapter = new ArrayAdapter<>(
- this,
- R.layout.support_simple_spinner_dropdown_item, finalResults
- );
- pictureDetails.setAdapter(predictionAdapter);
- }
- super.onActivityResult(requestCode, resultCode, data);
- }
- private boolean hasAllPermissions(int[] grantResults) {
- for (int res : grantResults)
- {
- if (res == PackageManager.PERMISSION_DENIED)
- {
- return false;
- }
- }
- return true;
- }
- private void requestPermission() {
- if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
- {
- if(shouldShowRequestPermissionRationale(Manifest.permission.CAMERA))
- {
- Toast.makeText(this, "You need to give permission for camera!", Toast.LENGTH_LONG).show();
- }
- requestPermissions(new String[]{Manifest.permission.CAMERA}, CAMERA_PERMISSION_REQUEST_CODE);
- }
- }
- private void startCamera() {
- Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
- startActivityForResult(cameraIntent, CAMERA_REQUEST_CODE);
- }
- private boolean hasPermission() {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
- {
- return checkSelfPermission(Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED;
- }
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement