80: degrees=180; break; Surface.ROTATION_270: degrees=270; break;
}. CameraInfo info=new Camera.CameraInfo () ;. getCameraInfo (cameraId, info); (info.orientation - degrees + 360)% 360;
} boolean getFlashAvailability () {
//noinspection ConstantConditions (camera!=null amp; amp; getPackageManager (). hasSystemFeature (PackageManager.FEATURE_CAMERA_FLASH)) { lt; String gt; modes=camera.getParameters (). getSupportedFlashModes (); modes!=null amp; amp;// Workaround for some tablets an chinese devices
! (modes.size () == 1 amp; amp; .Parameters.FLASH_MODE_OFF.equals (modes.get (0)));
} false;
} Camera.Size [] getPictureSizes (Camera camera) { lt; Camera.Size gt; sizes=camera.getParameters (). getSupportedPictureSizes (); sizes!=null; count=sizes.size (); (count gt; 3) {= sizes.subList (count - 3, count);
} sizes.toArray (new Camera.Size [sizes.size ()]);
} void setPictureSize (int index) {.Size newSize=pictureSizes [index];=index; .Parameters parameters=camera.getParameters () ;. setPictureSize (newSize.width, newSize.height);.setParameters (parameters);
} void setFlashMode (boolean useFlash) {.useFlash=useFlash; .Parameters parameters=camera.getParameters () ;. setFlashMode (useFlash? .Parameters.FLASH_MODE_ON: Camera.Parameters.FLASH_MODE_OFF) ;. setParameters (parameters);
} void setUpCameraParameters () {.Size newSize=pictureSizes [pictureSizeIndex] ;. Parameters parameters=camera.getParameters (); lt; String gt; focusModes=parameters.getSupportedFocusModes (); focusModes!=null; (focusModes.contains (Camera.Parameters.FOCUS_MODE_AUTO)) {.setFocusMode (Camera.Parameters.FOCUS_MODE_AUTO);=true;
} else if (focusModes.contains (Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE)) {.setFocusMode (Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
}.setSceneMode(Camera.Parameters.SCENE_MODE_AUTO);.setWhiteBalance(Camera.Parameters.WHITE_BALANCE_AUTO);.setExposureCompensation(0);.setPictureSize(newSize.width, newSize.height); (hasFlash) {.setFlashMode (useFlash? .Parameters.FLASH_MODE_ON: Camera.Parameters.FLASH_MODE_OFF);
}. setParameters (parameters);
} void resetCameraPreview (SurfaceHolder surfaceHolder) {{.setDisplayOrientation (getRotationValue ());
//setCameraRotation (getRotationValue ()) ;. setPreviewDisplay (surfaceHolder);
} catch (IOException exception) {();
}
//endregion
//region Options menu
@ Overrideboolean onCreateOptionsMenu (Menu menu) {inflater=(LayoutInflater) this.getSystemService (LAYOUT_INFLATER_SERVICE); view=inflater.inflate (R.layout.menu_camera, null) ;. setCustomView (view);= (Button) view.findViewById (R.id.logoutButton);=(ImageView) view.findViewById (R.id.logoutImageView);=(Button) view.findViewById (R.id.flashButton);=(ImageView) view. findViewById (R.id.flashImageView);=(Button) view.findViewById (R.id.settingsButton);=(ImageView)view.findViewById(R.id.settingsImageView);.setOnClickListener(this);.setOnClickListener(this);(hasFlash) {.setOnClickListener (this);
} else {.setEnabled (false) ;. setAlpha (0.7f);
} () ;. enable (); true;
}
//endregion
//region Click listener callbacks
@ Overridevoid onClick (View view) {(view.getId ()) {R.id.cameraButton: (camera!=null) {.setEnabled (false); (useAutoFocus) {.autoFocus ( this);
} else {.takePicture (null, null, this);
}
}; R.id.cancelButton: .clean (); (); (camera!=null) {.startPreview ();
};R.id.continueButton:();;R.id.logoutButton:();;R.id.flashButton:(!useFlash);();;R.id.settingsButton:(popupWindow.isShowing()) {.dismiss ();
} else {.showAsDropDown (settingsButton);
};
}
@ Overridevoid onItemClick (AdapterView lt;? gt; adapterView, View view, int i, long l) {(i);
}
//endregion
//region Navigationvoid navigateToLoginActivity () {intent=new Intent (this, LoginActivity.class) ;. setFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP); (intent);
} void navigateToDataActivity () {intent=new Intent (this, DataActivity.class); (); (intent);
}
//endregion
//region SurfaceHolder.Callback implementation
...