Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * take a picture but check for camera permissions first
- */
- fun takePicture() {
- val permissionGranted = ActivityCompat.checkSelfPermission(activity, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED
- if (permissionGranted) {
- openCamera()
- } else {
- ActivityCompat.requestPermissions(activity, arrayOf(Manifest.permission.CAMERA), CAMERA_PERMISSION_CODE)
- }
- }
- /**
- * Open the camera after obtaining the permission
- */
- override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>, grantResults: IntArray) {
- when (requestCode) {
- CAMERA_PERMISSION_CODE -> {
- if (grantResults.isEmpty() || grantResults[0] != PackageManager.PERMISSION_GRANTED) {
- Log.i("CAMERA", "Permission has been denied by user")
- } else {
- openCamera()
- Log.i("CAMERA", "Permission has been granted by user")
- }
- }
- }
- }
- /**
- * Save the picture to the thumbnail after taking it
- */
- override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
- super.onActivityResult(requestCode, resultCode, data)
- if (requestCode == CAMERA_REQUEST_CODE && resultCode == RESULT_OK) {
- try {
- //Getting the Bitmap from Gallery
- val bitmap = MediaStore.Images.Media.getBitmap(context.contentResolver, this.imageUri) as Bitmap
- this.imgThumb!!.setImageBitmap(bitmap)
- this.pictureTaken = true
- } catch (e:IOException) {
- e.printStackTrace()
- }
- } else {
- Toast.makeText(context, "Error loading image", Toast.LENGTH_LONG)
- }
- }
- @Throws(IOException::class)
- fun createImageFile(): File {
- val timeStamp: String = SimpleDateFormat("yyyyMMdd_HHmmss").format(Date())
- val imageFileName: String = "JPEG_" + timeStamp + "_"
- val storageDir: File = activity.getExternalFilesDir(Environment.DIRECTORY_PICTURES)
- if(!storageDir.exists()) storageDir.mkdirs()
- val imageFile = File.createTempFile(imageFileName, ".jpg", storageDir)
- imageFilePath = imageFile.absolutePath
- return imageFile
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement