onActivityResult не работает в собственном модуле React с пользовательской активностью

#java #android #react-native #kotlin #react-native-android

Вопрос:

Я хочу получить данные о результатах из моей пользовательской активности в моем собственном модуле React, но в настоящее время моя onActivityResult функция никогда не получает эти данные.

В настоящее время мой модуль react выглядит следующим образом:

 class VideoEditorModule(reactContext: ReactApplicationContext) 
    : ReactContextBaseJavaModule(reactContext), ActivityEventListener {

    ...

    override fun onActivityResult(
        activity: Activity,
        requestCode: Int,
        resultCode: Int,
        data: Intent
    ) {
        val data = data.data

        Log.d("ReactModule", "onActivityResult "   data.toString())
    }

   override fun onNewIntent(intent: Intent?) {
    val data = intent?.data
    Log.d("ReactModule", "onNewIntent: "   data.toString())
   }

   @ReactMethod
   fun openNativeVideoEditor(videoURL: String, promise: Promise) {
      reactApplicationContext.addActivityEventListener(this)

    val currentActivity = currentActivity;

    if (currentActivity == null) {
        promise.reject("ERROR_ACTIVITY", "Activity doesn't exist");
        return;
    }

    modulePromise = promise
    
    val intent = Intent(currentActivity, VideoEditorActivity::class.java)
    intent.putExtra("videoURL", videoURL)
    
    try {
        currentActivity.startActivityForResult(intent, RESULT_OK, null)
    } catch (e: Exception) {
        promise.reject("ERROR_ACTIVITY", e);
        modulePromise = null;
    }
   }

}
 

Родная активность выглядит так:

 class VideoEditorActivity: AppCompatActivity(), OnEditVideoListener {
    ...

    override fun getResult(uri: Uri) {
        Log.d("VideoEditorActivity", "getResult ${uri.path}")

        val i = intent
        i.putExtra("Resulted", uri.path)
        setResult(Activity.RESULT_OK, i)

        finish()
    }
}
 

Модуль успешно открывает действие, действие работает, я могу редактировать свое видео, но когда я завершаю редактирование, мой getResult журнал печатает новый URL-адрес для отредактированного видео, но похоже, что настройка результата ранее finish() не работает. onActivityResult в моем модуле ничего не регистрируется в Android Studio.

Большое спасибо за каждую помощь в этом.

Версия RN 0.64.1