diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..c3ea37c --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/example/hposregistration/ui/fragments/registration/CaptureUserImageFragment.kt b/app/src/main/java/com/example/hposregistration/ui/fragments/registration/CaptureUserImageFragment.kt index 77fb5a2..c87bab6 100644 --- a/app/src/main/java/com/example/hposregistration/ui/fragments/registration/CaptureUserImageFragment.kt +++ b/app/src/main/java/com/example/hposregistration/ui/fragments/registration/CaptureUserImageFragment.kt @@ -6,11 +6,9 @@ import android.app.Activity.RESULT_OK 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.MediaStore -import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -18,6 +16,7 @@ import android.widget.ImageView import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.contract.ActivityResultContracts import androidx.core.content.ContextCompat +import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.navArgs @@ -85,7 +84,7 @@ class CaptureUserImageFragment : Fragment() { private fun setupCameraLauncher() { cameraLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> - if (result.resultCode == Activity.RESULT_OK && result.data != null) { + if (result.resultCode == RESULT_OK && result.data != null) { val thumbnail: Bitmap = result.data!!.extras!!.get("data") as Bitmap val uri: Uri = saveImageToInternalStorage(thumbnail) uri.let { @@ -125,6 +124,20 @@ class CaptureUserImageFragment : Fragment() { } private fun submitImage(uri: Uri) { + + val cropLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> + if (result.resultCode == RESULT_OK && result.data != null) { + val resultUri: Uri? = UCrop.getOutput(result.data!!) + binding.userImage.loadImageFromUri(Uri.parse(resultUri.toString())) + } else if (result.resultCode == UCrop.RESULT_ERROR) { + val cropError: Throwable? = UCrop.getError(result.data!!) + } + } + +// val cropIntent: Intent = // Create your crop intent here +// cropLauncher.launch(cropIntent) + + // userData.userImage = uri.toString() // viewModel.insert(userData) // navigate() @@ -139,23 +152,15 @@ class CaptureUserImageFragment : Fragment() { .withMaxResultSize(maxWidth, maxHeight) .start(requireActivity()) } -// -// override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { -// super.onActivityResult(requestCode, resultCode, data) -// if (resultCode == RESULT_OK) when (requestCode) { -// UCrop.REQUEST_CROP -> { -// val fi = headPic.inputStream() -// navhbg.setImageBitmap(BitmapFactory.decodeStream(fi)) -// fi.close() -// } -// 1 -> { -// data?.data?.let { -// saveFile(it) -// cropImageUri() -// } -// } -// } -// } + + override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + if (resultCode == RESULT_OK && requestCode == UCrop.REQUEST_CROP) { + val resultUri: Uri? = data?.let { UCrop.getOutput(it) } + binding.userImage.loadImageFromUri(Uri.parse(resultUri.toString())) + } else if (resultCode == UCrop.RESULT_ERROR) { + val cropError: Throwable? = data?.let { UCrop.getError(it) } + } + } private fun navigate() { val action = CaptureUserImageFragmentDirections @@ -207,14 +212,14 @@ class CaptureUserImageFragment : Fragment() { requestPermissionLauncher.launch(permissions) } + private fun ImageView.loadImageFromUri(uri: Uri) { + Glide.with(this) + .load(uri) + .into(this) + } + override fun onDestroyView() { super.onDestroyView() _binding = null } -} - -private fun ImageView.loadImageFromUri(uri: Uri) { - Glide.with(this) - .load(uri) - .into(this) -} +} \ No newline at end of file