Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private fun showBottomSheet() {
- val menuSheetView = MenuSheetView(this@ProfileActivity, MenuSheetView.MenuType.LIST, null, MenuSheetView.OnMenuItemClickListener { item ->
- when (item.itemId) {
- R.id.openGallery -> {
- openGallery()
- }
- R.id.openCamera -> {
- openCamera()
- }
- }
- if (bottomSheetLayout.isSheetShowing) {
- bottomSheetLayout.dismissSheet()
- }
- true
- })
- menuSheetView.inflateMenu(R.menu.add_image_menu)
- bottomSheetLayout?.showWithSheetView(menuSheetView)
- }
- private fun openCamera() {
- val takePicture = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
- startActivityForResult(takePicture, cameraRequestCode)
- }
- private fun openGallery() {
- val pickPhoto = Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
- startActivityForResult(pickPhoto, galleryRequestCode)
- }
- override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
- super.onActivityResult(requestCode, resultCode, data)
- when (requestCode) {
- cameraRequestCode -> if (resultCode == Activity.RESULT_OK) {
- data?.extras?.let {
- if (it["data"] != null) {
- val bitmap = it["data"] as Bitmap
- val uri = FileUtils.saveBitmap(bitmap)
- updateImage(uri)
- }
- }
- }
- galleryRequestCode -> if (resultCode == Activity.RESULT_OK) {
- val imageUri = data?.data
- if (imageUri != null) {
- updateImage(imageUri)
- }
- }
- }
- }
- fun updateImage(uri: Uri) {
- val imageFile = File(FileUtils.getRealPathFromURI(this, uri))
- loadImage(uri, viewModel.userLiveData.value?.sex)
- viewModel.uploadImage(this.contentResolver, uri, imageFile)
- }
- private fun checkStoragePermission() {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
- requestPermissions(arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE), storagePermissionRequestCode)
- } else {
- showBottomSheet()
- }
- }
- override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>, grantResults: IntArray) {
- super.onRequestPermissionsResult(requestCode, permissions, grantResults)
- if (requestCode == storagePermissionRequestCode) {
- for (i in permissions.indices) {
- val permission = permissions[i]
- val grantResult = grantResults[i]
- if (permission == Manifest.permission.READ_EXTERNAL_STORAGE) {
- if (grantResult == PackageManager.PERMISSION_GRANTED) {
- showBottomSheet()
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement