Advertisement
Guest User

MainActivity

a guest
May 22nd, 2021
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.20 KB | None | 0 0
  1. package com.example.chesshelper;
  2.  
  3. import androidx.annotation.NonNull;
  4. import androidx.annotation.Nullable;
  5. import androidx.appcompat.app.AppCompatActivity;
  6. import androidx.core.app.ActivityCompat;
  7. import androidx.core.content.ContextCompat;
  8.  
  9. import android.Manifest;
  10. import android.content.Context;
  11. import android.content.Intent;
  12. import android.content.pm.PackageManager;
  13. import android.graphics.Bitmap;
  14. import android.os.Build;
  15. import android.os.Bundle;
  16. import android.provider.MediaStore;
  17. import android.util.DisplayMetrics;
  18. import android.util.Rational;
  19. import android.util.Size;
  20. import android.view.Display;
  21. import android.view.TextureView;
  22. import android.view.View;
  23. import android.view.WindowManager;
  24. import android.widget.ArrayAdapter;
  25. import android.widget.Button;
  26. import android.widget.ImageView;
  27. import android.widget.ListView;
  28. import android.widget.Toast;
  29.  
  30. import java.io.IOException;
  31. import java.util.ArrayList;
  32. import java.util.List;
  33. import java.util.Objects;
  34.  
  35. public class MainActivity extends AppCompatActivity {
  36.     private static final int CAMERA_PERMISSION_REQUEST_CODE = 1000;
  37.     private static final int CAMERA_REQUEST_CODE = 1001;
  38.     private ImageIdentifier imageIdentifier;
  39.  
  40.     ImageView pictureView;
  41.     ListView pictureDetails;
  42.    
  43.  
  44.     @Override
  45.     protected void onCreate(Bundle savedInstanceState) {
  46.         super.onCreate(savedInstanceState);
  47.         setContentView(R.layout.activity_main);
  48.         pictureView = findViewById(R.id.capturedImageViewId);
  49.         pictureDetails = findViewById(R.id.listViewId);
  50.         Button capturePictureButtonId = findViewById(R.id.captureImageButtonId);
  51.         Button goBluetooth = findViewById(R.id.bluetoothGoButton);
  52.         try {
  53.             imageIdentifier = new ImageIdentifier(this);
  54.         } catch (IOException e) {
  55.             e.printStackTrace();
  56.         }
  57.  
  58.         goBluetooth.setOnClickListener(new View.OnClickListener() {
  59.             @Override
  60.             public void onClick(View v) {
  61.                 Intent goToBluetoothActivity = new Intent(MainActivity.this, BluetoothActivity.class);
  62.                 startActivity(goToBluetoothActivity);
  63.             }
  64.         });
  65.  
  66.         capturePictureButtonId.setOnClickListener(new View.OnClickListener() {
  67.             @Override
  68.             public void onClick(View v) {
  69.                 if(hasPermission())
  70.                 {
  71.                     startCamera();
  72.                 }
  73.                 else
  74.                 {
  75.                     requestPermission();
  76.                 }
  77.             }
  78.         });
  79.  
  80.     }
  81.  
  82.     @Override
  83.     public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
  84.         super.onRequestPermissionsResult(requestCode, permissions, grantResults);
  85.         if(requestCode == CAMERA_PERMISSION_REQUEST_CODE)
  86.         {
  87.             if (hasAllPermissions(grantResults))
  88.             {
  89.                 startCamera();
  90.             }
  91.             else
  92.             {
  93.                 requestPermission();
  94.             }
  95.         }
  96.     }
  97.  
  98.     @Override
  99.     protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
  100.         if(requestCode == CAMERA_REQUEST_CODE)
  101.         {
  102.             Bitmap photo = (Bitmap)Objects.requireNonNull(Objects.requireNonNull(data).getExtras()).get("data");
  103.             pictureView.setImageBitmap(photo);
  104.             List<ImageIdentifier.Recognition> results = imageIdentifier.recognisedImage(photo, 0);
  105.             List<String> finalResults = new ArrayList<>();
  106.             for (ImageIdentifier.Recognition recognition : results)
  107.             {
  108.                 finalResults.add(recognition.getName()+"---"+recognition.getConfidence());
  109.             }
  110.             ArrayAdapter<String> predictionAdapter = new ArrayAdapter<>(
  111.                     this,
  112.                     R.layout.support_simple_spinner_dropdown_item, finalResults
  113.             );
  114.             pictureDetails.setAdapter(predictionAdapter);
  115.         }
  116.         super.onActivityResult(requestCode, resultCode, data);
  117.     }
  118.  
  119.     private boolean hasAllPermissions(int[] grantResults) {
  120.         for (int res : grantResults)
  121.         {
  122.             if (res == PackageManager.PERMISSION_DENIED)
  123.             {
  124.                 return false;
  125.             }
  126.         }
  127.         return true;
  128.     }
  129.  
  130.     private void requestPermission() {
  131.         if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
  132.         {
  133.             if(shouldShowRequestPermissionRationale(Manifest.permission.CAMERA))
  134.             {
  135.                 Toast.makeText(this, "You need to give permission for camera!", Toast.LENGTH_LONG).show();
  136.             }
  137.             requestPermissions(new String[]{Manifest.permission.CAMERA}, CAMERA_PERMISSION_REQUEST_CODE);
  138.         }
  139.     }
  140.  
  141.     private void startCamera() {
  142.         Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
  143.         startActivityForResult(cameraIntent, CAMERA_REQUEST_CODE);
  144.     }
  145.  
  146.     private boolean hasPermission() {
  147.         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
  148.         {
  149.             return checkSelfPermission(Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED;
  150.         }
  151.         return true;
  152.     }
  153. }
  154.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement