From f78d0115690d3681f5e8edd2c4a77274aba442d8 Mon Sep 17 00:00:00 2001 From: Mikhail Yevstratiev Date: Sun, 17 Aug 2025 16:36:08 +0300 Subject: [PATCH 1/4] Handle language change on web in Flutter SDK implementation --- CHANGELOG.md | 3 ++ .../android/flutter/VirtusizeFlutter.kt | 6 ++++ .../android/flutter/VirtusizeFlutterImpl.kt | 28 ++++++++++++++++++- .../flutter/VirtusizeFlutterPresenter.kt | 3 ++ 4 files changed, 39 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index efde29b5..afc5bd1b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +### Next release +- Feature: Update Flutter SDK implementation to be compatible with latest changes + ### 2.12.4 - Feature: Add event listener to handle language change on web in Virtusize widgets diff --git a/virtusize/src/main/java/com/virtusize/android/flutter/VirtusizeFlutter.kt b/virtusize/src/main/java/com/virtusize/android/flutter/VirtusizeFlutter.kt index f0187667..a1a8ca1d 100644 --- a/virtusize/src/main/java/com/virtusize/android/flutter/VirtusizeFlutter.kt +++ b/virtusize/src/main/java/com/virtusize/android/flutter/VirtusizeFlutter.kt @@ -146,4 +146,10 @@ interface VirtusizeFlutter { ) fun getPrivacyPolicyLink(context: Context): String + + /** + * Sets the display language for the Virtusize widgets + * @param language the [VirtusizeLanguage] to be set + */ + fun setVsWidgetLanguage(language: VirtusizeLanguage) } diff --git a/virtusize/src/main/java/com/virtusize/android/flutter/VirtusizeFlutterImpl.kt b/virtusize/src/main/java/com/virtusize/android/flutter/VirtusizeFlutterImpl.kt index 991afd6f..f82ca79e 100644 --- a/virtusize/src/main/java/com/virtusize/android/flutter/VirtusizeFlutterImpl.kt +++ b/virtusize/src/main/java/com/virtusize/android/flutter/VirtusizeFlutterImpl.kt @@ -6,6 +6,7 @@ import androidx.lifecycle.AtomicReference import com.virtusize.android.ErrorResponseHandler import com.virtusize.android.R import com.virtusize.android.SuccessResponseHandler +import com.virtusize.android.Virtusize import com.virtusize.android.VirtusizePresenter import com.virtusize.android.VirtusizeRepository import com.virtusize.android.data.local.SizeComparisonRecommendedSize @@ -20,6 +21,8 @@ import com.virtusize.android.data.local.VirtusizeProduct import com.virtusize.android.data.remote.I18nLocalization import com.virtusize.android.network.VirtusizeAPIService import com.virtusize.android.network.VirtusizeApi +import com.virtusize.android.ui.VirtusizeButton +import com.virtusize.android.ui.VirtusizeInPageView import com.virtusize.android.ui.VirtusizeView import com.virtusize.android.util.ConfigurationUtils import com.virtusize.android.util.VirtusizeUtils @@ -172,12 +175,20 @@ internal class VirtusizeFlutterImpl( virtusizeRepository.updateUserSession() } + is VirtusizeEvent.UserClickedLanguageSelector -> { + event.data?.optString("language")?.let { language -> + val virtusizeLanguage = VirtusizeLanguage.entries.firstOrNull { it.value == language } + if (virtusizeLanguage != null) { + setVsWidgetLanguage(virtusizeLanguage) + } + } + } + is VirtusizeEvent.UserCreatedSilhouette, is VirtusizeEvent.UserSawProduct, is VirtusizeEvent.UserSawWidgetButton, is VirtusizeEvent.UserClickedStart, is VirtusizeEvent.Undefined, - is VirtusizeEvent.UserClickedLanguageSelector, -> Unit } } @@ -368,6 +379,21 @@ internal class VirtusizeFlutterImpl( } } + /** + * @see VirtusizeFlutter.setVsWidgetLanguage + */ + override fun setVsWidgetLanguage(language: VirtusizeLanguage) { + virtusizeFlutterPresenter?.onLangugeClick(language) + scope.launch { + virtusizeRepository.setVsWidgetLanguage(language) + virtusizeRepository.fetchDataForInPageRecommendation( + shouldUpdateUserProducts = false, + shouldUpdateBodyProfile = true, + ) + virtusizeRepository.updateInPageRecommendation() + } + } + /** * @see VirtusizeFlutter.openVirtusizeWebView */ diff --git a/virtusize/src/main/java/com/virtusize/android/flutter/VirtusizeFlutterPresenter.kt b/virtusize/src/main/java/com/virtusize/android/flutter/VirtusizeFlutterPresenter.kt index 4aa83eda..b1a2b15e 100644 --- a/virtusize/src/main/java/com/virtusize/android/flutter/VirtusizeFlutterPresenter.kt +++ b/virtusize/src/main/java/com/virtusize/android/flutter/VirtusizeFlutterPresenter.kt @@ -1,6 +1,7 @@ package com.virtusize.android.flutter import com.virtusize.android.data.local.VirtusizeError +import com.virtusize.android.data.local.VirtusizeLanguage import com.virtusize.android.data.local.VirtusizeProduct import com.virtusize.android.data.remote.Product @@ -15,6 +16,8 @@ interface VirtusizeFlutterPresenter { recommendationText: String?, ) + fun onLangugeClick(language: VirtusizeLanguage) + fun hasInPageError( externalProductId: String?, error: VirtusizeError?, From bb89b90eb9a95f65c1078bef8e1f0a338ed548ae Mon Sep 17 00:00:00 2001 From: Mikhail Yevstratiev Date: Sun, 17 Aug 2025 16:52:23 +0300 Subject: [PATCH 2/4] Fix ktlint --- .../com/virtusize/android/flutter/VirtusizeFlutterImpl.kt | 4 ---- 1 file changed, 4 deletions(-) diff --git a/virtusize/src/main/java/com/virtusize/android/flutter/VirtusizeFlutterImpl.kt b/virtusize/src/main/java/com/virtusize/android/flutter/VirtusizeFlutterImpl.kt index f82ca79e..6bf0e9e4 100644 --- a/virtusize/src/main/java/com/virtusize/android/flutter/VirtusizeFlutterImpl.kt +++ b/virtusize/src/main/java/com/virtusize/android/flutter/VirtusizeFlutterImpl.kt @@ -6,7 +6,6 @@ import androidx.lifecycle.AtomicReference import com.virtusize.android.ErrorResponseHandler import com.virtusize.android.R import com.virtusize.android.SuccessResponseHandler -import com.virtusize.android.Virtusize import com.virtusize.android.VirtusizePresenter import com.virtusize.android.VirtusizeRepository import com.virtusize.android.data.local.SizeComparisonRecommendedSize @@ -21,10 +20,7 @@ import com.virtusize.android.data.local.VirtusizeProduct import com.virtusize.android.data.remote.I18nLocalization import com.virtusize.android.network.VirtusizeAPIService import com.virtusize.android.network.VirtusizeApi -import com.virtusize.android.ui.VirtusizeButton -import com.virtusize.android.ui.VirtusizeInPageView import com.virtusize.android.ui.VirtusizeView -import com.virtusize.android.util.ConfigurationUtils import com.virtusize.android.util.VirtusizeUtils import com.virtusize.android.util.trimI18nText import com.virtusize.android.util.valueOf From 57ccb73e3fb36382f115d9464df39f62c3e1cbc7 Mon Sep 17 00:00:00 2001 From: Mikhail Yevstratiev Date: Sun, 17 Aug 2025 16:57:11 +0300 Subject: [PATCH 3/4] Fix import error --- .../java/com/virtusize/android/flutter/VirtusizeFlutterImpl.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/virtusize/src/main/java/com/virtusize/android/flutter/VirtusizeFlutterImpl.kt b/virtusize/src/main/java/com/virtusize/android/flutter/VirtusizeFlutterImpl.kt index 6bf0e9e4..721d0347 100644 --- a/virtusize/src/main/java/com/virtusize/android/flutter/VirtusizeFlutterImpl.kt +++ b/virtusize/src/main/java/com/virtusize/android/flutter/VirtusizeFlutterImpl.kt @@ -21,6 +21,7 @@ import com.virtusize.android.data.remote.I18nLocalization import com.virtusize.android.network.VirtusizeAPIService import com.virtusize.android.network.VirtusizeApi import com.virtusize.android.ui.VirtusizeView +import com.virtusize.android.util.ConfigurationUtils import com.virtusize.android.util.VirtusizeUtils import com.virtusize.android.util.trimI18nText import com.virtusize.android.util.valueOf From 42e71770a926152ff61b4c798f1cc95cfab6f75a Mon Sep 17 00:00:00 2001 From: Mikhail Yevstratiev Date: Sun, 17 Aug 2025 17:08:50 +0300 Subject: [PATCH 4/4] Raise version --- CHANGELOG.md | 2 +- README-COMPOSE.md | 4 ++-- README-JP.md | 4 ++-- README.md | 4 ++-- .../main/java/com/virtusize/android/constants/Constants.kt | 2 +- gradle/libs.versions.toml | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index afc5bd1b..0e994be3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -### Next release +### 2.12.5 - Feature: Update Flutter SDK implementation to be compatible with latest changes ### 2.12.4 diff --git a/README-COMPOSE.md b/README-COMPOSE.md index af7309f5..59d4dfe9 100644 --- a/README-COMPOSE.md +++ b/README-COMPOSE.md @@ -74,7 +74,7 @@ In your app `build.gradle` file, add the following dependencies: ```groovy dependencies { - implementation 'com.virtusize.android:virtusize:2.12.4' + implementation 'com.virtusize.android:virtusize:2.12.5' } ``` @@ -82,7 +82,7 @@ In your app `build.gradle` file, add the following dependencies: ```kotlin dependencies { - implementation("com.virtusize.android:virtusize:2.12.4") + implementation("com.virtusize.android:virtusize:2.12.5") } ``` diff --git a/README-JP.md b/README-JP.md index 874c0157..485a0568 100644 --- a/README-JP.md +++ b/README-JP.md @@ -75,7 +75,7 @@ appの`build.gradle`ファイルに下記のdependencyを追加 ```groovy dependencies { - implementation 'com.virtusize.android:virtusize:2.12.4' + implementation 'com.virtusize.android:virtusize:2.12.5' } ``` @@ -83,7 +83,7 @@ appの`build.gradle`ファイルに下記のdependencyを追加 ```kotlin dependencies { - implementation("com.virtusize.android:virtusize:2.12.4") + implementation("com.virtusize.android:virtusize:2.12.5") } ``` diff --git a/README.md b/README.md index fb553923..bc188d07 100644 --- a/README.md +++ b/README.md @@ -82,7 +82,7 @@ In your app `build.gradle` file, add the following dependencies: ```groovy dependencies { - implementation 'com.virtusize.android:virtusize:2.12.4' + implementation 'com.virtusize.android:virtusize:2.12.5' } ``` @@ -90,7 +90,7 @@ In your app `build.gradle` file, add the following dependencies: ```kotlin dependencies { - implementation("com.virtusize.android:virtusize:2.12.4") + implementation("com.virtusize.android:virtusize:2.12.5") } ``` diff --git a/buildSrc/src/main/java/com/virtusize/android/constants/Constants.kt b/buildSrc/src/main/java/com/virtusize/android/constants/Constants.kt index d205d560..d2396dc4 100644 --- a/buildSrc/src/main/java/com/virtusize/android/constants/Constants.kt +++ b/buildSrc/src/main/java/com/virtusize/android/constants/Constants.kt @@ -6,6 +6,6 @@ object Constants { const val TARGET_SDK = 34 // Update versionName when publishing a new release - const val VERSION_NAME = "2.12.4" + const val VERSION_NAME = "2.12.5" const val GROUP_ID = "com.virtusize.android" } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 140fda0e..fb7e378f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -20,7 +20,7 @@ material = "1.12.0" nextPublish = "1.1.0" robolectric = "4.13" truth = "1.4.4" -virtusize = "2.12.4" +virtusize = "2.12.5" virtusizeAuth = "1.1.1" browser = "1.8.0"