Как изменить метод startActivityForResult и onActivityResult в kotlin, android studio по новым стандартам
Сейчас изучаю язык kotlin для себя. Нашел в интернете как можно написать инстаграм приложение. Видео довольно подробные, но старые (2018 года), поэтому некоторые методы оттуда устарели. Код ниже, по идее, должен включать сохранять сфотографированную фотографию в базу данных в виде ссылки:
этот кусок кода из файла EditProfileActivity.kt
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == cameraHelper.REQUEST_CODE && resultCode == RESULT_OK) {
mFirebaseHelper.uploadUserPhoto(cameraHelper.imageUri!!) {
it.metadata!!.reference!!.downloadUrl.addOnCompleteListener {
val photoUrl = it.toString()
mFirebaseHelper.updateUserPhoto(photoUrl){
mUser = mUser.copy(photo = photoUrl)
profile_image.loadUserPhoto(mUser.photo)
}
}
}
}
}
этот кусок кода из файла CameraHelper.kt, его просто вынесли для удобства
class CameraHelper(private val activity: Activity) {
var imageUri: Uri? = null
val REQUEST_CODE = 1
private val simpleDateFormat = SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US)
fun takeCameraPicture() {
val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
if (intent.resolveActivity(activity.packageManager) != null) {
val imageFile = createImageFile()
imageUri = FileProvider.getUriForFile(activity,
"com.example.instapirate.fileprovider",
imageFile)
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri)
activity.startActivityForResult(intent, REQUEST_CODE)
}
}
private fun createImageFile(): File {
val storageDir = activity.getExternalFilesDir(Environment.DIRECTORY_PICTURES)
return File.createTempFile(
"JPEG_${simpleDateFormat.format(Date())}_",
".jpg",
storageDir
)
}
}
Полагаю, что из-за устаревшего метода код работает не правильно и не загружает ссылку в базу данных. Так предполагается регистрировать ссылку на изображение(скрин из google firebase realtime database), само изображение появляется в Storage
Но ссылка в realtime database не появляется, и в storage ничего нет:

Если потребуется больше кода, то наверное я смогу отредактировать и залить весь код со всего файла, но мне кажется, что дело именно в неправильном оформлении устаревшего метода onActivityResult и startActivityForResult. Я гуглил, но не смог найти как в моём случае лучше изменить код так, чтобы он работал. Прошу помощи.
