diff --git a/app/build.gradle b/app/build.gradle index d01cbf70..4795370c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -59,7 +59,7 @@ dependencies { // Banuba Video Editor SDK dependencies - def banubaSdkVersion = '1.36.0' + def banubaSdkVersion = '1.36.1' implementation "com.banuba.sdk:ffmpeg:5.1.3" implementation "com.banuba.sdk:camera-sdk:${banubaSdkVersion}" implementation "com.banuba.sdk:camera-ui-sdk:${banubaSdkVersion}" diff --git a/app/src/main/java/com/banuba/example/integrationapp/MainActivity.kt b/app/src/main/java/com/banuba/example/integrationapp/MainActivity.kt index b5d4e31c..969d5545 100644 --- a/app/src/main/java/com/banuba/example/integrationapp/MainActivity.kt +++ b/app/src/main/java/com/banuba/example/integrationapp/MainActivity.kt @@ -25,17 +25,25 @@ class MainActivity : AppCompatActivity() { // Handle Video Editor export results private val videoEditorExportResult = registerForActivityResult(VideoExportResultContract()) { exportResult -> - // The dialog is used only to demonstrate and play an exported video file. - // Release Video Editor SDK after exporting video and closing the latest SDK screen (application as? SampleApp)?.releaseVideoEditor() - AlertDialog.Builder(this).setMessage("Export result") - .setPositiveButton("Play Video") { _, _ -> - playExportedVideo(exportResult) - } - .setNeutralButton("Close") { _, _ -> - }.create().show() + if (exportResult is ExportResult.Success && exportResult.videoList.isEmpty()) { + photoEditorExportResult.launch( + PhotoCreationActivity.startFromEditor( + applicationContext, + imageUri = exportResult.preview + ) + ) + } else { + // The dialog is used only to demonstrate and play an exported video file. + AlertDialog.Builder(this).setMessage("Export result") + .setPositiveButton("Play Video") { _, _ -> + playExportedVideo(exportResult) + } + .setNeutralButton("Close") { _, _ -> + }.create().show() + } } private fun playExportedVideo(exportResult: ExportResult?) { diff --git a/app/src/main/java/com/banuba/example/integrationapp/VideoEditorModule.kt b/app/src/main/java/com/banuba/example/integrationapp/VideoEditorModule.kt index 3e13e3b8..474fa024 100644 --- a/app/src/main/java/com/banuba/example/integrationapp/VideoEditorModule.kt +++ b/app/src/main/java/com/banuba/example/integrationapp/VideoEditorModule.kt @@ -1,18 +1,25 @@ package com.banuba.example.integrationapp +import android.app.Activity import android.content.Context +import android.content.Intent +import android.net.Uri +import android.os.Bundle import androidx.fragment.app.Fragment import com.banuba.sdk.arcloud.data.source.ArEffectsRepositoryProvider import com.banuba.sdk.arcloud.di.ArCloudKoinModule import com.banuba.sdk.audiobrowser.di.AudioBrowserKoinModule import com.banuba.sdk.audiobrowser.domain.AudioBrowserMusicProvider import com.banuba.sdk.core.data.TrackData +import com.banuba.sdk.core.domain.MediaNavigationProcessor import com.banuba.sdk.core.ui.ContentFeatureProvider import com.banuba.sdk.effectplayer.adapter.BanubaEffectPlayerKoinModule +import com.banuba.sdk.export.data.ExportResult import com.banuba.sdk.export.di.VeExportKoinModule import com.banuba.sdk.gallery.di.GalleryKoinModule import com.banuba.sdk.playback.di.VePlaybackSdkKoinModule import com.banuba.sdk.ve.di.VeSdkKoinModule +import com.banuba.sdk.ve.flow.VideoCreationActivity import com.banuba.sdk.ve.flow.di.VeFlowKoinModule import com.banuba.sdk.veui.di.VeUiSdkKoinModule import org.koin.android.ext.koin.androidContext @@ -63,5 +70,26 @@ private class SampleIntegrationKoinModule { ) { AudioBrowserMusicProvider() } + + single { + object : MediaNavigationProcessor { + override fun process(activity: Activity, mediaList: List): Boolean { + val pngs = mediaList.filter { it.path?.contains(".png") ?: false } + return if (pngs.isEmpty()) { + true + } else { + (activity as? VideoCreationActivity)?.closeWithResult( + ExportResult.Success( + emptyList(), + pngs.first(), + Uri.EMPTY, + Bundle() + ) + ) + false + } + } + } + } } }