Skip to content

Commit

Permalink
Fix: 커리어 대외활동 더하기/수정하기 카메라 이미지 전송 가능하게
Browse files Browse the repository at this point in the history
  • Loading branch information
kimyujin-com committed Feb 19, 2024
1 parent 2c6152e commit 022f9b4
Showing 1 changed file with 37 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -1,15 +1,21 @@
package umc.com.mobile.project.ui.career

import android.Manifest
import android.app.Activity
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.net.Uri
import android.os.Bundle
import android.provider.OpenableColumns
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.core.content.ContextCompat
import androidx.fragment.app.activityViewModels
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import umc.com.mobile.project.databinding.FragmentUploadBottomBinding
Expand All @@ -26,6 +32,9 @@ class UploadBottomFragment(context: Context, private val viewModelType: Int) :
private val editViewModel: CareerEditActivityViewModel by activityViewModels()
private val binding get() = _binding!!

private val REQUEST_CODE_PERMISSIONS = 10
private val REQUIRED_PERMISSIONS = arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE)

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
Expand All @@ -44,9 +53,28 @@ class UploadBottomFragment(context: Context, private val viewModelType: Int) :
_binding!!.ivUploadBottomClose.setOnClickListener {
dialog!!.dismiss()
}

if (!allPermissionsGranted()) {
requestPermissions(REQUIRED_PERMISSIONS, REQUEST_CODE_PERMISSIONS)
}
return binding.root
}

private fun allPermissionsGranted() = REQUIRED_PERMISSIONS.all {
ContextCompat.checkSelfPermission(requireContext(), it) == PackageManager.PERMISSION_GRANTED
}

override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>, grantResults: IntArray) {
if (requestCode == REQUEST_CODE_PERMISSIONS) {
if (allPermissionsGranted()) {
// 권한이 모두 부여되었을 때 실행할 코드를 여기에 작성합니다.
} else {
Toast.makeText(requireContext(), "Permissions not granted by the user.", Toast.LENGTH_SHORT).show()
activity?.finish()
}
}
}

private val PICK_IMAGE_MULTIPLE = 2

private fun openGallery() {
Expand All @@ -68,13 +96,20 @@ class UploadBottomFragment(context: Context, private val viewModelType: Int) :
}

private fun createImageFile(uri: Uri): File {
val fileName = "img_" + System.currentTimeMillis() + ".jpg"
val fileName = getFileName(uri)
val directory = requireContext().getExternalFilesDir(null)
val file = File(directory, fileName)

val inputStream = requireContext().contentResolver.openInputStream(uri)
val originalBitmap = BitmapFactory.decodeStream(inputStream)

// 이미지 리사이징
val newWidth = originalBitmap.width / 2
val newHeight = originalBitmap.height / 2
val resizedBitmap = Bitmap.createScaledBitmap(originalBitmap, newWidth, newHeight, true)

val outputStream: OutputStream = FileOutputStream(file)
inputStream?.copyTo(outputStream)
resizedBitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream)

inputStream?.close()
outputStream.close()
Expand Down

0 comments on commit 022f9b4

Please sign in to comment.