Advertisement
Guest User

Untitled

a guest
Sep 17th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 3.16 KB | None | 0 0
  1. private fun showBottomSheet() {
  2.         val menuSheetView = MenuSheetView(this@ProfileActivity, MenuSheetView.MenuType.LIST, null, MenuSheetView.OnMenuItemClickListener { item ->
  3.             when (item.itemId) {
  4.                 R.id.openGallery -> {
  5.                     openGallery()
  6.                 }
  7.                 R.id.openCamera -> {
  8.                     openCamera()
  9.                 }
  10.             }
  11.             if (bottomSheetLayout.isSheetShowing) {
  12.                 bottomSheetLayout.dismissSheet()
  13.             }
  14.             true
  15.         })
  16.  
  17.         menuSheetView.inflateMenu(R.menu.add_image_menu)
  18.         bottomSheetLayout?.showWithSheetView(menuSheetView)
  19.     }
  20.  
  21.     private fun openCamera() {
  22.         val takePicture = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
  23.         startActivityForResult(takePicture, cameraRequestCode)
  24.     }
  25.  
  26.     private fun openGallery() {
  27.         val pickPhoto = Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
  28.         startActivityForResult(pickPhoto, galleryRequestCode)
  29.     }
  30.  
  31.     override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
  32.         super.onActivityResult(requestCode, resultCode, data)
  33.         when (requestCode) {
  34.             cameraRequestCode -> if (resultCode == Activity.RESULT_OK) {
  35.                 data?.extras?.let {
  36.                     if (it["data"] != null) {
  37.                         val bitmap = it["data"] as Bitmap
  38.                         val uri = FileUtils.saveBitmap(bitmap)
  39.                         updateImage(uri)
  40.                     }
  41.                 }
  42.             }
  43.             galleryRequestCode -> if (resultCode == Activity.RESULT_OK) {
  44.                 val imageUri = data?.data
  45.                 if (imageUri != null) {
  46.                     updateImage(imageUri)
  47.                 }
  48.             }
  49.         }
  50.     }
  51.  
  52.     fun updateImage(uri: Uri) {
  53.         val imageFile = File(FileUtils.getRealPathFromURI(this, uri))
  54.         loadImage(uri, viewModel.userLiveData.value?.sex)
  55.         viewModel.uploadImage(this.contentResolver, uri, imageFile)
  56.     }
  57.  
  58.     private fun checkStoragePermission() {
  59.         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
  60.             requestPermissions(arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE), storagePermissionRequestCode)
  61.         } else {
  62.             showBottomSheet()
  63.         }
  64.     }
  65.  
  66.     override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>, grantResults: IntArray) {
  67.         super.onRequestPermissionsResult(requestCode, permissions, grantResults)
  68.         if (requestCode == storagePermissionRequestCode) {
  69.             for (i in permissions.indices) {
  70.                 val permission = permissions[i]
  71.                 val grantResult = grantResults[i]
  72.  
  73.                 if (permission == Manifest.permission.READ_EXTERNAL_STORAGE) {
  74.                     if (grantResult == PackageManager.PERMISSION_GRANTED) {
  75.                         showBottomSheet()
  76.                     }
  77.                 }
  78.             }
  79.         }
  80.     }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement