Получить результат Activity со сторонней библиотеки [Android, Kotlin]

Т.к. метод onActivityResult является устаревшим, пытаюсь разобраться с его приемником. Ситуация такая, в сторонней библиотеке, внутри, после исполнения нужного мне метода, используется старая версия отправки интента

activity.startActivityForResult(intent, 100); 

В офиц. документации приводится следующий код для получения и отправки интента, у коллбека вызывается метод launch(), но в моём случае, как уже сказал выше используется startActivityForResult,

val startForResult = registerForActivityResult(StartActivityForResult()) { result: ActivityResult ->
        if (result.resultCode == Activity.RESULT_OK) {
            val intent = result.data
            // Handle the Intent
        }
    }
    
        // ...
    override fun onCreate(savedInstanceState: Bundle) {
    
        val startButton = findViewById(R.id.start_button)
    
        startButton.setOnClickListener {
            // Use the Kotlin extension in activity-ktx
            // passing it the Intent you want to start
            startForResult.launch(Intent(this, ResultProducingActivity::class.java))
        }
    }

Использую следующий код в MainActivity в onCreate():

registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
        onActivityResult(100, result)
    }

Результат не отлавливается, не могу понять как правильно нужно получить результат отправленный с помощью старой версией кода по новому принципу работы, и возможно ли это вообще


Ответы (1 шт):

Автор решения: woesss

Новая схема не заменяет старую, она разработана поверх неё. Вы можете ловить результат так же как и раньше в onActivityResult() не регистрируя для этого колбеки. Просто придётся смириться с предупреждением об устаревшем методе до тех пор, пока не будет обновлена/заменена библиотека.

→ Ссылка