Advertisement
Guest User

Untitled

a guest
Dec 23rd, 2016
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.93 KB | None | 0 0
  1. package com.example.arturs.cameraappzoom;
  2.  
  3. import android.Manifest;
  4. import android.app.Activity;
  5. import android.content.Intent;
  6. import android.content.pm.PackageManager;
  7. import android.os.Bundle;
  8. import android.support.annotation.NonNull;
  9. import android.support.design.widget.Snackbar;
  10. import android.support.v4.app.ActivityCompat;
  11. import android.util.Log;
  12. import android.view.View;
  13. import android.view.Window;
  14. import android.view.WindowManager;
  15. import android.widget.Button;
  16. import android.widget.TextView;
  17.  
  18. import com.example.arturs.cameraappzoom.constant.ZoomSupportIssues;
  19. import com.example.arturs.cameraappzoom.listener.ZoomListener;
  20.  
  21. public class MainActivity extends Activity implements ZoomListener, View.OnClickListener {
  22.  
  23.     private static final String TAG = MainActivity.class.getSimpleName();
  24.  
  25.     private static final int PERMISSION_REQUEST_CODE = 32 << 4;
  26.  
  27.     private Button zoomIn;
  28.     private Button zoomOut;
  29.     private Button cameraSwitch;
  30.  
  31.     private TextView mCameraStatusTv;
  32.     private CameraView cameraPreview;
  33.  
  34.  
  35.     @Override
  36.     protected void onCreate(Bundle savedInstanceState) {
  37.         super.onCreate(savedInstanceState);
  38.         requestWindowFeature(Window.FEATURE_NO_TITLE); //brak tytułu w oknie
  39.         setContentView(R.layout.activity_main);
  40.         //mCameraStatusTv = (TextView) findViewById(R.id.camera_status);
  41.  
  42.         getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
  43.  
  44.         zoomIn = (Button) findViewById(R.id.btnZoomIn);
  45.         zoomIn.setOnClickListener(this);
  46.         zoomOut = (Button) findViewById(R.id.btnZoomOut);
  47.         zoomOut.setOnClickListener(this);
  48.         //cameraSwitch.setOnClickListener(R.id.b);
  49.  
  50.         cameraPreview = (CameraView) findViewById(R.id.custom_preview);
  51.         cameraPreview.setTestResultListener(this);
  52.     }
  53.  
  54.     @Override
  55.     public void onZoomSupported() {
  56.         //setCamStatsTxt(getString(R.string.camera_zoom_supported));
  57.     }
  58.  
  59.     @Override
  60.     public void onZoomNotSupported(ZoomSupportIssues reason) {
  61.         switch (reason) {
  62.             case NO_CAMERA:
  63.                 setCamStatsTxt(getString(R.string.camera_not_supported));
  64.                 break;
  65.             case NO_PERMISSION:
  66.                 setCamStatsTxt(getString(R.string.no_cam_permission));
  67.                 requestPermissionWithRationale();
  68.                 break;
  69.             case NOT_SUPPORTED:
  70.                 setCamStatsTxt(getString(R.string.camera_zoom_not_supported));
  71.                 break;
  72.  
  73.         }
  74.     }
  75.  
  76.     private void setCamStatsTxt(final String status) {
  77.         mCameraStatusTv.setText(status);
  78.         mCameraStatusTv.setVisibility(View.VISIBLE);
  79.         Log.i(TAG, status);
  80.     }
  81.  
  82.     //Check if permission granted
  83.     @Override
  84.     public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
  85.         if (requestCode == PERMISSION_REQUEST_CODE) {
  86.             if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
  87.                 //notify library that permission had been granted
  88.                 cameraPreview.initCamera();
  89.             } else {
  90.                 //showNoCameraPermissionSnackbar();
  91.             }
  92.             return;
  93.         }
  94.         super.onRequestPermissionsResult(requestCode, permissions, grantResults);
  95.     }
  96.  
  97.     // Make an attempt to request camera when getting back to this activity
  98.     @Override
  99.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  100.         if (requestCode == PERMISSION_REQUEST_CODE) {
  101.             //notify library that permission had been granted
  102.             cameraPreview.initCamera();
  103.             return;
  104.         }
  105.         super.onActivityResult(requestCode, resultCode, data);
  106.     }
  107.  
  108.  
  109.     // request permsission for camera
  110.     public void requestCameraPermission() {
  111.         ActivityCompat.requestPermissions(this,
  112.                 new String[]{
  113.                         Manifest.permission.CAMERA
  114.                 },
  115.                 PERMISSION_REQUEST_CODE);
  116.     }
  117.  
  118.     public void requestPermissionWithRationale() {
  119.         if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA)) {
  120.             Snackbar.make(findViewById(android.R.id.content), R.string.no_cam_permission, Snackbar.LENGTH_INDEFINITE)
  121.                     .setAction(R.string.snackbar_action_grant, new View.OnClickListener() {
  122.                         @Override
  123.                         public void onClick(View v) {
  124.                             requestCameraPermission();
  125.                         }
  126.                     })
  127.                     .show();
  128.         } else {
  129.             requestCameraPermission();
  130.         }
  131.     }
  132.  
  133.     /*public void showNoCameraPermissionSnackbar() {
  134.         Snackbar.make(findViewById(android.R.id.content), R.string.permission_not_granted, Snackbar.LENGTH_INDEFINITE)
  135.                 .setAction(R.string.snackbar_action_settings, new View.OnClickListener() {
  136.                     @Override
  137.                     public void onClick(View v) {
  138.                         openAppSettings();
  139.                         Toast.makeText(getApplicationContext(), R.string.open_permission, Toast.LENGTH_SHORT).show();
  140.                     }
  141.                 })
  142.                 .show();
  143.     }*/
  144.  
  145.     /*public void openAppSettings() {
  146.         Intent appSettingsIntent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
  147.                 Uri.parse("package:" + getPackageName()));
  148.         startActivityForResult(appSettingsIntent, PERMISSION_REQUEST_CODE);
  149.     }
  150. */
  151.     @Override
  152.     public void onClick(View v) {
  153.         switch (v.getId()) {
  154.             case R.id.btnZoomIn:
  155.                 cameraPreview.zoomIn();
  156.                 break;
  157.             case R.id.btnZoomOut:
  158.                 cameraPreview.zoomOut();
  159.                 break;
  160.             case R.id.btnCameraSwitch:
  161.  
  162.  
  163.         }
  164.     }
  165. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement