From 35f30122137329e6d3d7cf5d0d7b0c5e11cf516c Mon Sep 17 00:00:00 2001 From: HermanKhodyrevBanubaTechSupport Date: Wed, 20 Nov 2024 18:30:34 +0300 Subject: [PATCH 1/5] Add experimental new UI flow --- android/build.gradle | 5 ++- .../plugin/ve_sdk_flutter/ContractConstats.kt | 6 ++- .../plugin/ve_sdk_flutter/FeaturesConfig.kt | 7 ++-- .../ve_sdk_flutter/FeaturesConfigParser.kt | 7 +++- .../ve_sdk_flutter/VideoEditorModule.kt | 36 +++++++++++------- ios/Classes/ContractConstants.swift | 5 ++- ios/Classes/FeaturesConfig.swift | 3 +- ios/Classes/VideoEditorModule.swift | 38 +++++++++++++++---- ios/ve_sdk_flutter.podspec | 2 +- lib/features_config.dart | 12 +++++- lib/features_config_serializer.dart | 3 +- 11 files changed, 88 insertions(+), 36 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index b4d9be0..ed42d1c 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -135,7 +135,7 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version" - def banubaSdkVersion = '1.39.0' + def banubaSdkVersion = '1.35.9.0.2' implementation "com.banuba.sdk:ffmpeg:5.1.3" implementation "com.banuba.sdk:camera-sdk:${banubaSdkVersion}" implementation "com.banuba.sdk:camera-ui-sdk:${banubaSdkVersion}" @@ -152,6 +152,9 @@ dependencies { implementation "com.banuba.sdk:ve-playback-sdk:${banubaSdkVersion}" if (ENABLE_FACE_AR){ + print("!!! BANUBA FACE AR IS ENABLED !!!") implementation "com.banuba.sdk:effect-player-adapter:${banubaSdkVersion}" + } else { + print("!!! BANUBA FACE AR IS DISABLED !!!") } } \ No newline at end of file diff --git a/android/src/main/kotlin/com/banuba/ve/sdk/flutter/plugin/ve_sdk_flutter/ContractConstats.kt b/android/src/main/kotlin/com/banuba/ve/sdk/flutter/plugin/ve_sdk_flutter/ContractConstats.kt index 8511b1a..dff0769 100644 --- a/android/src/main/kotlin/com/banuba/ve/sdk/flutter/plugin/ve_sdk_flutter/ContractConstats.kt +++ b/android/src/main/kotlin/com/banuba/ve/sdk/flutter/plugin/ve_sdk_flutter/ContractConstats.kt @@ -23,6 +23,9 @@ internal const val EXPORTED_VIDEO_SOURCES = "exportedVideoSources" internal const val EXPORTED_PREVIEW = "exportedPreview" internal const val EXPORTED_META = "exportedMeta" +// New UI Config +internal const val FEATURES_CONFIG_EXPERIMENTAL_ENABLE_NEW_UI = "experimentalEnableNewUI" + // Features config params internal const val FEATURES_CONFIG_AI_CAPTIONS = "aiCaptions" internal const val FEATURES_CONFIG_AI_CAPTIONS_UPLOAD_URL = "uploadUrl" @@ -40,7 +43,7 @@ internal const val FEATURES_CONFIG_AUDIO_BROWSER_PARAMS = "params" internal const val FEATURES_CONFIG_AUDIO_BROWSER_SOURCE_LOCAL = "local" internal const val FEATURES_CONFIG_AUDIO_BROWSER_SOURCE_MUBERT = "mubert" internal const val FEATURES_CONFIG_AUDIO_BROWSER_SOURCE_SOUNDSTRIPE = "soundstripe" -internal const val FEATURES_CONFIG_AUDIO_BROWSER_SOURCE_BANUBA_MUSIC = "banubaMusic" +internal const val FEATURES_CONFIG_AUDIO_BROWSER_SOURCE_DISABLED = "disabled" internal const val FEATURES_CONFIG_AUDIO_BROWSER_PARAMS_MUBERT_LICENCE = "mubertLicence" internal const val FEATURES_CONFIG_AUDIO_BROWSER_PARAMS_MUBERT_TOKEN = "mubertToken" @@ -146,6 +149,7 @@ internal fun prepareExtras(featuresConfig: FeaturesConfig): Bundle { bundle.putString(CaptionsApiService.ARG_CAPTIONS_TRANSCRIBE_URL, params.transcribeUrl) bundle.putString(CaptionsApiService.ARG_API_KEY, params.apiKey) } + bundle.putBoolean("EXTRA_USE_NEW_UI", featuresConfig.experimentalEnableNewUI) return bundle } diff --git a/android/src/main/kotlin/com/banuba/ve/sdk/flutter/plugin/ve_sdk_flutter/FeaturesConfig.kt b/android/src/main/kotlin/com/banuba/ve/sdk/flutter/plugin/ve_sdk_flutter/FeaturesConfig.kt index 46fb6a6..a93acdc 100644 --- a/android/src/main/kotlin/com/banuba/ve/sdk/flutter/plugin/ve_sdk_flutter/FeaturesConfig.kt +++ b/android/src/main/kotlin/com/banuba/ve/sdk/flutter/plugin/ve_sdk_flutter/FeaturesConfig.kt @@ -3,8 +3,8 @@ package com.banuba.ve.sdk.flutter.plugin.ve_sdk_flutter import com.banuba.sdk.core.data.TrackData import androidx.fragment.app.Fragment import com.banuba.sdk.audiobrowser.domain.AudioBrowserMusicProvider -import com.banuba.sdk.audiobrowser.soundstripe.SoundstripeProvider -import com.banuba.sdk.audiobrowser.feedfm.BanubaMusicProvider +import com.banuba.sdk.audiobrowser.domain.SoundstripeProvider +import com.banuba.sdk.core.ui.SimpleMusicTrackProvider import com.banuba.sdk.core.ui.ContentFeatureProvider import com.banuba.sdk.core.domain.DraftConfig import org.json.JSONObject @@ -16,6 +16,7 @@ internal data class FeaturesConfig( val editorConfig: EditorConfig = defaultEditorConfig, val draftsConfig: DraftsConfig = defaultDraftsConfig, val gifPickerConfig: GifPickerConfig? = null, + val experimentalEnableNewUI: Boolean = false ) internal data class AiClipping( @@ -36,7 +37,7 @@ internal data class AudioBrowser( internal fun value(): ContentFeatureProvider { return when (this.source) { FEATURES_CONFIG_AUDIO_BROWSER_SOURCE_SOUNDSTRIPE -> SoundstripeProvider() - FEATURES_CONFIG_AUDIO_BROWSER_SOURCE_BANUBA_MUSIC -> BanubaMusicProvider() + FEATURES_CONFIG_AUDIO_BROWSER_SOURCE_DISABLED -> SimpleMusicTrackProvider() else -> { AudioBrowserMusicProvider() } diff --git a/android/src/main/kotlin/com/banuba/ve/sdk/flutter/plugin/ve_sdk_flutter/FeaturesConfigParser.kt b/android/src/main/kotlin/com/banuba/ve/sdk/flutter/plugin/ve_sdk_flutter/FeaturesConfigParser.kt index da68db0..63918df 100644 --- a/android/src/main/kotlin/com/banuba/ve/sdk/flutter/plugin/ve_sdk_flutter/FeaturesConfigParser.kt +++ b/android/src/main/kotlin/com/banuba/ve/sdk/flutter/plugin/ve_sdk_flutter/FeaturesConfigParser.kt @@ -16,7 +16,8 @@ internal fun parseFeaturesConfig(rawConfigParams: String?): FeaturesConfig = featuresConfigObject.extractAudioBrowser(), featuresConfigObject.extractEditorConfig(), featuresConfigObject.extractDraftsConfig(), - featuresConfigObject.extractGifPickerConfig() + featuresConfigObject.extractGifPickerConfig(), + featuresConfigObject.extractEnableNewUI(), ) } catch (e: JSONException) { defaultFeaturesConfig @@ -102,4 +103,8 @@ private fun JSONObject.extractGifPickerConfig(): GifPickerConfig? { Log.w(TAG, "Missing Gif Picker Config params", e) null } +} + +private fun JSONObject.extractEnableNewUI(): Boolean { + return this.optBoolean(FEATURES_CONFIG_EXPERIMENTAL_ENABLE_NEW_UI) } \ No newline at end of file diff --git a/android/src/main/kotlin/com/banuba/ve/sdk/flutter/plugin/ve_sdk_flutter/VideoEditorModule.kt b/android/src/main/kotlin/com/banuba/ve/sdk/flutter/plugin/ve_sdk_flutter/VideoEditorModule.kt index 5c8c5d1..020fc90 100644 --- a/android/src/main/kotlin/com/banuba/ve/sdk/flutter/plugin/ve_sdk_flutter/VideoEditorModule.kt +++ b/android/src/main/kotlin/com/banuba/ve/sdk/flutter/plugin/ve_sdk_flutter/VideoEditorModule.kt @@ -17,12 +17,14 @@ import com.banuba.sdk.core.ui.ContentFeatureProvider import com.banuba.sdk.playback.PlayerScaleType import com.banuba.sdk.core.data.autocut.AutoCutTrackLoader import com.banuba.sdk.ve.data.autocut.AutoCutConfig +import com.banuba.sdk.audiobrowser.autocut.AutoCutTrackLoaderSoundstripe import com.banuba.sdk.ve.effects.watermark.WatermarkProvider -import com.banuba.sdk.audiobrowser.soundstripe.AutoCutSoundstripeTrackLoader -import com.banuba.sdk.audiobrowser.feedfm.AutoCutBanubaTrackLoader +import com.banuba.sdk.audiobrowser.domain.SoundstripeProvider import com.banuba.sdk.core.domain.DraftConfig import com.banuba.sdk.veui.data.stickers.GifPickerConfigurations import com.banuba.sdk.audiobrowser.data.MubertApiConfig +import com.banuba.sdk.veui.data.music.MusicEditorConfig +import com.banuba.sdk.cameraui.data.CameraConfig import org.koin.android.ext.koin.androidContext import org.koin.core.context.startKoin import org.koin.core.qualifier.named @@ -125,6 +127,11 @@ private class SampleIntegrationVeKoinModule(featuresConfig: FeaturesConfig, expo featuresConfig.audioBrowser.value() } + when (featuresConfig.audioBrowser.source){ + FEATURES_CONFIG_AUDIO_BROWSER_SOURCE_MUBERT -> this.addMubertParams(featuresConfig) + FEATURES_CONFIG_AUDIO_BROWSER_SOURCE_DISABLED -> this.applyDisabledMusicConfig(featuresConfig) + } + if (featuresConfig.audioBrowser.source == FEATURES_CONFIG_AUDIO_BROWSER_SOURCE_MUBERT) { this.addMubertParams(featuresConfig) } @@ -137,18 +144,9 @@ private class SampleIntegrationVeKoinModule(featuresConfig: FeaturesConfig, expo ) } this.single { - when (featuresConfig.audioBrowser.source) { - FEATURES_CONFIG_AUDIO_BROWSER_SOURCE_BANUBA_MUSIC -> { - AutoCutBanubaTrackLoader( - contentProvider = get() - ) - } - else -> { - AutoCutSoundstripeTrackLoader( - soundstripeApi = get() - ) - } - } + AutoCutTrackLoaderSoundstripe( + soundstripeApi = get() + ) } } @@ -206,6 +204,16 @@ private class SampleIntegrationVeKoinModule(featuresConfig: FeaturesConfig, expo } } + private fun Module.applyDisabledMusicConfig(featuresConfig: FeaturesConfig) { + this.single{ + MusicEditorConfig(supportsExternalMusic = false) + } + + this.single { + CameraConfig(supportsExternalMusic = false) + } + } + private fun Module.addExportData(exportData: ExportData?) { if (exportData == null) { Log.d(TAG, MESSAGE_MISSING_EXPORT_DATA) diff --git a/ios/Classes/ContractConstants.swift b/ios/Classes/ContractConstants.swift index 26df511..03150d8 100644 --- a/ios/Classes/ContractConstants.swift +++ b/ios/Classes/ContractConstants.swift @@ -75,7 +75,8 @@ extension VeSdkFlutterPlugin { draftsConfig: DraftsConfig( option: "enable" ), - gifPickerConfig: nil + gifPickerConfig: nil, + experimentalEnableNewUI: false ) } @@ -100,7 +101,7 @@ extension VideoEditorConfig { static let featuresConfigAudioBrowserSourceSoundstripe = "soundstripe" static let featuresConfigAudioBrowserSourceMubert = "mubert" static let featuresConfigAudioBrowserSourceLocal = "local" - static let featuresConfigAudioBrowserSourceBanubaMusic = "banubaMusic" + static let featuresConfigAudioBrowserSourceDisabled = "disabled" // Draft Configs static let featuresConfigDraftConfigOptionAskToSave = "askToSave" diff --git a/ios/Classes/FeaturesConfig.swift b/ios/Classes/FeaturesConfig.swift index 265882b..c86050a 100644 --- a/ios/Classes/FeaturesConfig.swift +++ b/ios/Classes/FeaturesConfig.swift @@ -9,6 +9,7 @@ struct FeaturesConfig: Codable { let editorConfig: EditorConfig let draftsConfig: DraftsConfig let gifPickerConfig: GifPickerConfig? + let experimentalEnableNewUI: Bool } struct AiClipping: Codable { @@ -32,8 +33,6 @@ struct AudioBrowser: Codable { return .soundstripe case VideoEditorConfig.featuresConfigAudioBrowserSourceLocal: return .localStorageWithMyFiles - case VideoEditorConfig.featuresConfigAudioBrowserSourceBanubaMusic: - return .banubaMusic default: return .allSources } diff --git a/ios/Classes/VideoEditorModule.swift b/ios/Classes/VideoEditorModule.swift index 533e86a..c04e29b 100644 --- a/ios/Classes/VideoEditorModule.swift +++ b/ios/Classes/VideoEditorModule.swift @@ -47,6 +47,7 @@ class VideoEditorModule: VideoEditor { videoEditorSDK = BanubaVideoEditor( token: token, + arguments: ["ENABLE_NEW_UI" : featuresConfig.experimentalEnableNewUI], configuration: config, externalViewControllerFactory: provideCustomViewFactory(featuresConfig: featuresConfig) ) @@ -292,7 +293,15 @@ extension VideoEditorConfig { print("Add Features Config with params: \(featuresConfig)") - AudioBrowserConfig.shared.musicSource = featuresConfig.audioBrowser.value() + if featuresConfig.audioBrowser.source != VideoEditorConfig.featuresConfigAudioBrowserSourceDisabled { + AudioBrowserConfig.shared.musicSource = featuresConfig.audioBrowser.value() + } + + switch featuresConfig.audioBrowser.source { + case VideoEditorConfig.featuresConfigAudioBrowserSourceMubert: addMubertParams(featuresConfig) + case VideoEditorConfig.featuresConfigAudioBrowserSourceDisabled: applyDisabledMusicConfig(featuresConfig) + default: return + } if featuresConfig.audioBrowser.source == VideoEditorConfig.featuresConfigAudioBrowserSourceMubert { guard let audioBrowserParams = featuresConfig.audioBrowser.params else { return } @@ -304,6 +313,11 @@ extension VideoEditorConfig { ) } + if featuresConfig.experimentalEnableNewUI { + self.videoEditorViewConfiguration.timelineConfiguration.isAddAudioEnabled = false + self.combinedGalleryConfiguration.visibleTabsInGallery = GalleryMediaType.allCases + } + if let aiCaptions = featuresConfig.aiCaptions { self.captionsConfiguration.captionsUploadUrl = aiCaptions.uploadUrl self.captionsConfiguration.captionsTranscribeUrl = aiCaptions.transcribeUrl @@ -313,13 +327,7 @@ extension VideoEditorConfig { if let aiClipping = featuresConfig.aiClipping, let audioTracksUrl = URL(string: aiClipping.audioTracksUrl) { self.autoCutConfiguration.embeddingsDownloadUrl = aiClipping.audioDataUrl - self.autoCutConfiguration.musicProvider = - switch featuresConfig.audioBrowser.value() { - case .banubaMusic: - .banubaMusic(tracksURL: audioTracksUrl) - default: - .soundstripe(tracksURL: audioTracksUrl) - } + self.autoCutConfiguration.musicProvider = .soundstripe(tracksURL: audioTracksUrl) } self.editorConfiguration.isVideoAspectFillEnabled = featuresConfig.editorConfig.enableVideoAspectFill @@ -339,4 +347,18 @@ extension VideoEditorConfig { featureConfiguration.isMuteCameraAudioEnabled = true self.updateFeatureConfiguration(featureConfiguration: featureConfiguration) } + + private func addMubertParams(_ featuresConfig: FeaturesConfig){ + guard let audioBrowserParams = featuresConfig.audioBrowser.params else { return } + guard let mubertLicence = audioBrowserParams.mubertLicence, let mubertToken = audioBrowserParams.mubertToken else { return } + + BanubaAudioBrowser.setMubertKeys( + license: mubertLicence, + token: mubertToken + ) + } + + private mutating func applyDisabledMusicConfig(_ featuresConfig: FeaturesConfig){ + self.recorderConfiguration.additionalEffectsButtons = self.recorderConfiguration.additionalEffectsButtons.filter{$0.identifier != .sound} + } } diff --git a/ios/ve_sdk_flutter.podspec b/ios/ve_sdk_flutter.podspec index 113f545..97aae51 100644 --- a/ios/ve_sdk_flutter.podspec +++ b/ios/ve_sdk_flutter.podspec @@ -19,7 +19,7 @@ A new Flutter project. s.dependency 'Flutter' s.platform = :ios, '15.0' - sdk_version = '1.39.0' + sdk_version = '0.40.0' ENABLE_FACE_AR = ENV['ENABLE_FACE_AR'] == 'true' || ENV['ENABLE_FACE_AR'].nil? diff --git a/lib/features_config.dart b/lib/features_config.dart index 3164fb0..dd23adf 100644 --- a/lib/features_config.dart +++ b/lib/features_config.dart @@ -7,6 +7,7 @@ class FeaturesConfig { final EditorConfig editorConfig; final DraftsConfig draftsConfig; final GifPickerConfig? gifPickerConfig; + final bool experimentalEnableNewUI; FeaturesConfig._builder(FeaturesConfigBuilder builder) : aiClipping = builder._aiClipping, @@ -14,7 +15,8 @@ class FeaturesConfig { audioBrowser = builder._audioBrowser, editorConfig = builder._editorConfig, draftsConfig = builder._draftsConfig, - gifPickerConfig = builder._gifPickerConfig; + gifPickerConfig = builder._gifPickerConfig, + experimentalEnableNewUI = builder._experimentalEnableNewUI; } class FeaturesConfigBuilder { @@ -27,6 +29,7 @@ class FeaturesConfigBuilder { DraftsConfig _draftsConfig = DraftsConfig.fromOption(DraftsOption.askToSave); GifPickerConfig? _gifPickerConfig; + bool _experimentalEnableNewUI = false; FeaturesConfigBuilder setAiClipping(aiClipping) { _aiClipping = aiClipping; @@ -58,12 +61,17 @@ class FeaturesConfigBuilder { return this; } + FeaturesConfigBuilder setExperimentalEnableNewUI(experimentalEnableNewUI) { + _experimentalEnableNewUI = experimentalEnableNewUI; + return this; + } + FeaturesConfig build() { return FeaturesConfig._builder(this); } } -enum AudioBrowserSource { soundstripe, local, mubert, banubaMusic } +enum AudioBrowserSource { soundstripe, local, mubert, disabled } @immutable class AudioBrowser { diff --git a/lib/features_config_serializer.dart b/lib/features_config_serializer.dart index 1993300..57222a8 100644 --- a/lib/features_config_serializer.dart +++ b/lib/features_config_serializer.dart @@ -9,7 +9,8 @@ extension FeatureConfigSerializer on FeaturesConfig { 'audioBrowser': audioBrowser._serialize(), 'editorConfig': editorConfig._serialize(), 'draftsConfig': draftsConfig._serialize(), - 'gifPickerConfig': gifPickerConfig?._serialize() + 'gifPickerConfig': gifPickerConfig?._serialize(), + 'experimentalEnableNewUI': experimentalEnableNewUI, }; return jsonEncode(configMap); } From a7fcaa398670ea231d2d973f4d654825f8f2a4fd Mon Sep 17 00:00:00 2001 From: HermanKhodyrevBanubaTechSupport Date: Wed, 20 Nov 2024 22:09:59 +0300 Subject: [PATCH 2/5] Add condition for trimmer --- .../flutter/plugin/ve_sdk_flutter/FeaturesConfigParser.kt | 6 +----- lib/ve_sdk_flutter_method_channel.dart | 4 ++++ 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/android/src/main/kotlin/com/banuba/ve/sdk/flutter/plugin/ve_sdk_flutter/FeaturesConfigParser.kt b/android/src/main/kotlin/com/banuba/ve/sdk/flutter/plugin/ve_sdk_flutter/FeaturesConfigParser.kt index 63918df..c935088 100644 --- a/android/src/main/kotlin/com/banuba/ve/sdk/flutter/plugin/ve_sdk_flutter/FeaturesConfigParser.kt +++ b/android/src/main/kotlin/com/banuba/ve/sdk/flutter/plugin/ve_sdk_flutter/FeaturesConfigParser.kt @@ -17,7 +17,7 @@ internal fun parseFeaturesConfig(rawConfigParams: String?): FeaturesConfig = featuresConfigObject.extractEditorConfig(), featuresConfigObject.extractDraftsConfig(), featuresConfigObject.extractGifPickerConfig(), - featuresConfigObject.extractEnableNewUI(), + featuresConfigObject.optBoolean(FEATURES_CONFIG_EXPERIMENTAL_ENABLE_NEW_UI), ) } catch (e: JSONException) { defaultFeaturesConfig @@ -103,8 +103,4 @@ private fun JSONObject.extractGifPickerConfig(): GifPickerConfig? { Log.w(TAG, "Missing Gif Picker Config params", e) null } -} - -private fun JSONObject.extractEnableNewUI(): Boolean { - return this.optBoolean(FEATURES_CONFIG_EXPERIMENTAL_ENABLE_NEW_UI) } \ No newline at end of file diff --git a/lib/ve_sdk_flutter_method_channel.dart b/lib/ve_sdk_flutter_method_channel.dart index 87a0fdf..631de81 100644 --- a/lib/ve_sdk_flutter_method_channel.dart +++ b/lib/ve_sdk_flutter_method_channel.dart @@ -82,6 +82,10 @@ class MethodChannelVeSdkFlutter extends VeSdkFlutterPlatform { List sourceVideoPathList, {ExportData? exportData} ) async { + if (featuresConfig.experimentalEnableNewUI && screen == _screenTrimmer){ + debugPrint("Starting the Video Editor from the $screen is unavailable for the New UI"); + return null; + } final inputParams = { _inputParamToken: token, _inputParamFeaturesConfig: featuresConfig.serialize(), From 6c4d39e8fbea8c4583dee78f874769da7f815fb7 Mon Sep 17 00:00:00 2001 From: HermanKhodyrevBanubaTechSupport Date: Thu, 21 Nov 2024 13:17:03 +0300 Subject: [PATCH 3/5] flutter version & add constants & update VE IOS version --- .../flutter/plugin/ve_sdk_flutter/ContractConstats.kt | 3 ++- ios/Classes/ContractConstants.swift | 3 +++ ios/Classes/VideoEditorModule.swift | 2 +- ios/ve_sdk_flutter.podspec | 9 +++++++-- pubspec.yaml | 2 +- 5 files changed, 14 insertions(+), 5 deletions(-) diff --git a/android/src/main/kotlin/com/banuba/ve/sdk/flutter/plugin/ve_sdk_flutter/ContractConstats.kt b/android/src/main/kotlin/com/banuba/ve/sdk/flutter/plugin/ve_sdk_flutter/ContractConstats.kt index dff0769..a4485a8 100644 --- a/android/src/main/kotlin/com/banuba/ve/sdk/flutter/plugin/ve_sdk_flutter/ContractConstats.kt +++ b/android/src/main/kotlin/com/banuba/ve/sdk/flutter/plugin/ve_sdk_flutter/ContractConstats.kt @@ -25,6 +25,7 @@ internal const val EXPORTED_META = "exportedMeta" // New UI Config internal const val FEATURES_CONFIG_EXPERIMENTAL_ENABLE_NEW_UI = "experimentalEnableNewUI" +internal const val FEATURES_CONFIG_EXTRA_USE_NEW_UI = "EXTRA_USE_NEW_UI" // Features config params internal const val FEATURES_CONFIG_AI_CAPTIONS = "aiCaptions" @@ -149,7 +150,7 @@ internal fun prepareExtras(featuresConfig: FeaturesConfig): Bundle { bundle.putString(CaptionsApiService.ARG_CAPTIONS_TRANSCRIBE_URL, params.transcribeUrl) bundle.putString(CaptionsApiService.ARG_API_KEY, params.apiKey) } - bundle.putBoolean("EXTRA_USE_NEW_UI", featuresConfig.experimentalEnableNewUI) + bundle.putBoolean(FEATURES_CONFIG_EXTRA_USE_NEW_UI, featuresConfig.experimentalEnableNewUI) return bundle } diff --git a/ios/Classes/ContractConstants.swift b/ios/Classes/ContractConstants.swift index 03150d8..553727d 100644 --- a/ios/Classes/ContractConstants.swift +++ b/ios/Classes/ContractConstants.swift @@ -114,6 +114,9 @@ extension VideoEditorConfig { // Unknown params static let featuresConfigUnknownParams = "Undefined" + + // New UI Config + static let featuresConfigEnableNewUI = "ENABLE_NEW_UI" } extension ExportData { diff --git a/ios/Classes/VideoEditorModule.swift b/ios/Classes/VideoEditorModule.swift index c04e29b..d28be0f 100644 --- a/ios/Classes/VideoEditorModule.swift +++ b/ios/Classes/VideoEditorModule.swift @@ -47,7 +47,7 @@ class VideoEditorModule: VideoEditor { videoEditorSDK = BanubaVideoEditor( token: token, - arguments: ["ENABLE_NEW_UI" : featuresConfig.experimentalEnableNewUI], + arguments: [VideoEditorConfig.featuresConfigEnableNewUI : featuresConfig.experimentalEnableNewUI], configuration: config, externalViewControllerFactory: provideCustomViewFactory(featuresConfig: featuresConfig) ) diff --git a/ios/ve_sdk_flutter.podspec b/ios/ve_sdk_flutter.podspec index 97aae51..45b4912 100644 --- a/ios/ve_sdk_flutter.podspec +++ b/ios/ve_sdk_flutter.podspec @@ -19,14 +19,19 @@ A new Flutter project. s.dependency 'Flutter' s.platform = :ios, '15.0' - sdk_version = '0.40.0' + sdk_version = '0.40.1' ENABLE_FACE_AR = ENV['ENABLE_FACE_AR'] == 'true' || ENV['ENABLE_FACE_AR'].nil? s.dependency 'BanubaARCloudSDK', sdk_version #optional s.dependency 'BanubaVideoEditorSDK', sdk_version s.dependency 'BanubaAudioBrowserSDK', sdk_version #optional - s.dependency 'BanubaSDK', sdk_version if ENABLE_FACE_AR + if ENABLE_FACE_AR + puts "!!! BANUBA FACE AR IS ENABLED !!!" + s.dependency 'BanubaSDK', sdk_version + else + puts "!!! BANUBA FACE AR IS DISABLED !!!" + end s.dependency 'BanubaSDKSimple', sdk_version s.dependency 'BanubaSDKServicing', sdk_version s.dependency 'VideoEditor', sdk_version diff --git a/pubspec.yaml b/pubspec.yaml index a264eac..f60f433 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: ve_sdk_flutter description: Banuba Video Editor Flutter plugin. -version: 0.9.0 +version: 0.7.1 homepage: https://github.com/Banuba/ve-sdk-flutter environment: From 39183f8e53797ad7182ed4aa2b212ed6259172d0 Mon Sep 17 00:00:00 2001 From: HermanKhodyrevBanubaTechSupport Date: Thu, 21 Nov 2024 13:36:07 +0300 Subject: [PATCH 4/5] Update log --- lib/ve_sdk_flutter_method_channel.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ve_sdk_flutter_method_channel.dart b/lib/ve_sdk_flutter_method_channel.dart index 631de81..859775f 100644 --- a/lib/ve_sdk_flutter_method_channel.dart +++ b/lib/ve_sdk_flutter_method_channel.dart @@ -83,7 +83,7 @@ class MethodChannelVeSdkFlutter extends VeSdkFlutterPlatform { {ExportData? exportData} ) async { if (featuresConfig.experimentalEnableNewUI && screen == _screenTrimmer){ - debugPrint("Starting the Video Editor from the $screen is unavailable for the New UI"); + debugPrint("New UI is not available from Trimmer screen"); return null; } final inputParams = { From 0e684d2430720d959a7b6e3f31560285dc278e54 Mon Sep 17 00:00:00 2001 From: HermanKhodyrevBanubaTechSupport Date: Mon, 2 Dec 2024 10:53:25 +0300 Subject: [PATCH 5/5] Bump 0.7.2 & update android version --- android/build.gradle | 2 +- example/pubspec.lock | 2 +- pubspec.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index ed42d1c..1f77bfc 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -135,7 +135,7 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version" - def banubaSdkVersion = '1.35.9.0.2' + def banubaSdkVersion = '1.35.9.0.3' 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/example/pubspec.lock b/example/pubspec.lock index 2f39ed1..da0f6ca 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -355,7 +355,7 @@ packages: path: ".." relative: true source: path - version: "0.9.0" + version: "0.7.2" vector_math: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index f60f433..9c4291b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: ve_sdk_flutter description: Banuba Video Editor Flutter plugin. -version: 0.7.1 +version: 0.7.2 homepage: https://github.com/Banuba/ve-sdk-flutter environment: