6177214e-ce7c-49e3-99de-ff9721b26f63 — Commit af489914
Changed files
.../ios/Runner.xcodeproj/project.pbxproj | 18 ++----- comwell_key_app/ios/Runner/Info.plist | 6 +-- .../lib/.generated/assets/assets.gen.dart | 17 ------- .../up_sales/models/dto/addon_upgrade_dto.g.dart | 4 ++ .../profile_settings/profile_settings_screen.dart | 2 - .../interceptors/response_handle_interceptor.dart | 1 + .../up_sales/components/background_animation.dart | 56 +++++++++++++++++----- .../components/up_sales_services_widget.dart | 5 +- .../components/up_sales_upgrades_widget.dart | 4 +- .../up_sales/components/upsale_header_media.dart | 15 +++--- .../lib/up_sales/mappers/addon_upgrade_mapper.dart | 2 + .../lib/up_sales/models/addon_upgrade.dart | 9 ++++ .../lib/up_sales/models/dto/addon_upgrade_dto.dart | 6 +++ .../lib/up_sales/pages/addon_upgrade_page.dart | 4 +- .../lib/up_sales/pages/services_upgrade_page.dart | 3 +- .../profile_settings_cubit_test.dart | 1 - 16 files changed, 91 insertions(+), 62 deletions(-)
Diff
diff --git a/comwell_key_app/ios/Runner.xcodeproj/project.pbxproj b/comwell_key_app/ios/Runner.xcodeproj/project.pbxproj
index 513c6793..5ac200dc 100644
--- a/comwell_key_app/ios/Runner.xcodeproj/project.pbxproj
+++ b/comwell_key_app/ios/Runner.xcodeproj/project.pbxproj
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 60;
+ objectVersion = 54;
objects = {
/* Begin PBXBuildFile section */
@@ -204,8 +204,8 @@
);
mainGroup = 97C146E51CF9000F007C117D;
packageReferences = (
- 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */,
- 60BC597B2DEF216C00031449 /* XCLocalSwiftPackageReference "../../mobilekeys_sdk_plugin/ios/seos_mobile_keys_plugin" */,
+ 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */,
+ 60BC597B2DEF216C00031449 /* XCLocalSwiftPackageReference "seos_mobile_keys_plugin" */,
);
productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
projectDirPath = "";
@@ -328,14 +328,10 @@
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
- inputPaths = (
- );
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
- outputPaths = (
- );
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
@@ -349,14 +345,10 @@
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
);
- inputPaths = (
- );
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
);
- outputPaths = (
- );
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
@@ -1128,11 +1120,11 @@
/* End XCConfigurationList section */
/* Begin XCLocalSwiftPackageReference section */
- 60BC597B2DEF216C00031449 /* XCLocalSwiftPackageReference "../../mobilekeys_sdk_plugin/ios/seos_mobile_keys_plugin" */ = {
+ 60BC597B2DEF216C00031449 /* XCLocalSwiftPackageReference "seos_mobile_keys_plugin" */ = {
isa = XCLocalSwiftPackageReference;
relativePath = ../../mobilekeys_sdk_plugin/ios/seos_mobile_keys_plugin;
};
- 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = {
+ 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */ = {
isa = XCLocalSwiftPackageReference;
relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage;
};
diff --git a/comwell_key_app/ios/Runner/Info.plist b/comwell_key_app/ios/Runner/Info.plist
index 7da83da6..c2aa5b80 100644
--- a/comwell_key_app/ios/Runner/Info.plist
+++ b/comwell_key_app/ios/Runner/Info.plist
@@ -25,8 +25,6 @@
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>$(FLUTTER_BUILD_NAME)</string>
- <key>ITSAppUsesNonExemptEncryption</key>
- <false/>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleURLTypes</key>
@@ -75,13 +73,15 @@
<dict/>
</array>
<key>CFBundleVersion</key>
- <string>$(FLUTTER_BUILD_NUMBER)</string>
+ <string>5846</string>
<key>FIREBASE_ANALYTICS_COLLECTION_ENABLED</key>
<false/>
<key>FirebaseAutomaticScreenReportingEnabled</key>
<false/>
<key>FlutterDeepLinkingEnabled</key>
<false/>
+ <key>ITSAppUsesNonExemptEncryption</key>
+ <false/>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>msauthv2</string>
diff --git a/comwell_key_app/lib/.generated/assets/assets.gen.dart b/comwell_key_app/lib/.generated/assets/assets.gen.dart
index d2a282fe..d57457ce 100644
--- a/comwell_key_app/lib/.generated/assets/assets.gen.dart
+++ b/comwell_key_app/lib/.generated/assets/assets.gen.dart
@@ -497,22 +497,6 @@ class $AssetsMsalGen {
List<String> get values => [msalConfigDev, msalConfigProd, msalConfigStage];
}
-class $AssetsTranslationsGen {
- const $AssetsTranslationsGen();
-
- /// File path: assets/translations/all_translations.csv
- String get allTranslations => 'assets/translations/all_translations.csv';
-
- /// File path: assets/translations/intl_da.arb
- String get intlDa => 'assets/translations/intl_da.arb';
-
- /// File path: assets/translations/intl_en.arb
- String get intlEn => 'assets/translations/intl_en.arb';
-
- /// List of all assets
- List<String> get values => [allTranslations, intlDa, intlEn];
-}
-
class Assets {
const Assets._();
@@ -520,7 +504,6 @@ class Assets {
static const $AssetsIconsGen icons = $AssetsIconsGen();
static const $AssetsImagesGen images = $AssetsImagesGen();
static const $AssetsMsalGen msal = $AssetsMsalGen();
- static const $AssetsTranslationsGen translations = $AssetsTranslationsGen();
static const $EnvGen env = $EnvGen();
}
diff --git a/comwell_key_app/lib/.generated/up_sales/models/dto/addon_upgrade_dto.g.dart b/comwell_key_app/lib/.generated/up_sales/models/dto/addon_upgrade_dto.g.dart
index cb41c914..da6067bf 100644
--- a/comwell_key_app/lib/.generated/up_sales/models/dto/addon_upgrade_dto.g.dart
+++ b/comwell_key_app/lib/.generated/up_sales/models/dto/addon_upgrade_dto.g.dart
@@ -19,6 +19,8 @@ AddOnUpgradeDTO _$AddOnUpgradeDTOFromJson(Map json) => AddOnUpgradeDTO(
isPopular: json['isPopular'] as bool? ?? false,
onlyAvailableBeforeCheckin:
json['onlyAvailableBeforeCheckin'] as bool? ?? false,
+ animationJson: json['animationJson'] as String? ?? '',
+ backgroundImageUrl: json['backgroundImageUrl'] as String? ?? '',
);
Map<String, dynamic> _$AddOnUpgradeDTOToJson(AddOnUpgradeDTO instance) =>
@@ -34,4 +36,6 @@ Map<String, dynamic> _$AddOnUpgradeDTOToJson(AddOnUpgradeDTO instance) =>
'isService': instance.isService,
'isPopular': instance.isPopular,
'onlyAvailableBeforeCheckin': instance.onlyAvailableBeforeCheckin,
+ 'animationJson': instance.animationJson,
+ 'backgroundImageUrl': instance.backgroundImageUrl,
};
diff --git a/comwell_key_app/lib/presentation/screens/profile_settings/profile_settings_screen.dart b/comwell_key_app/lib/presentation/screens/profile_settings/profile_settings_screen.dart
index 7636396d..bcabaacb 100644
--- a/comwell_key_app/lib/presentation/screens/profile_settings/profile_settings_screen.dart
+++ b/comwell_key_app/lib/presentation/screens/profile_settings/profile_settings_screen.dart
@@ -129,8 +129,6 @@ class ProfileSettingsScreen extends StatelessWidget {
),
);
- debugPrint('qqq response: $response');
-
if (response is Address) {
cubit.updateAddress(response);
} else {
diff --git a/comwell_key_app/lib/services/interceptors/response_handle_interceptor.dart b/comwell_key_app/lib/services/interceptors/response_handle_interceptor.dart
index 689ccabd..d55e7849 100644
--- a/comwell_key_app/lib/services/interceptors/response_handle_interceptor.dart
+++ b/comwell_key_app/lib/services/interceptors/response_handle_interceptor.dart
@@ -30,6 +30,7 @@ class ResponseHandleInterceptor extends Interceptor {
}
}
void addUserAgentHeader(RequestOptions requestOptions) {
+ print("qqq userAgent=${_comwellPreferences.userAgent}");
requestOptions.headers['User-Agent'] = _comwellPreferences.userAgent;
}
diff --git a/comwell_key_app/lib/up_sales/components/background_animation.dart b/comwell_key_app/lib/up_sales/components/background_animation.dart
index 16c26ae7..dc5151c3 100644
--- a/comwell_key_app/lib/up_sales/components/background_animation.dart
+++ b/comwell_key_app/lib/up_sales/components/background_animation.dart
@@ -1,26 +1,58 @@
+import 'dart:convert';
+import 'dart:typed_data';
+
import 'package:flutter/widgets.dart';
import 'package:lottie/lottie.dart';
-import 'package:comwell_key_app/utils/upsale_utils.dart';
-class BackgroundAnimation extends StatelessWidget {
- final String addonId;
- const BackgroundAnimation({super.key, required this.addonId});
+class BackgroundAnimation extends StatefulWidget {
+ final String animationJson;
+ final String backgroundImageUrl;
+ const BackgroundAnimation({
+ super.key,
+ required this.animationJson,
+ required this.backgroundImageUrl,
+ });
+
+ @override
+ State<BackgroundAnimation> createState() => _BackgroundAnimationState();
+}
+
+class _BackgroundAnimationState extends State<BackgroundAnimation>
+ with SingleTickerProviderStateMixin {
+ late final AnimationController _controller;
+
+ @override
+ void initState() {
+ super.initState();
+ _controller = AnimationController(vsync: this);
+ }
+
+ @override
+ void dispose() {
+ _controller.dispose();
+ super.dispose();
+ }
@override
Widget build(BuildContext context) {
- final config = getUpsaleVisualConfig(addonId);
- if (config == null) {
- return const SizedBox.shrink();
- }
return Stack(
fit: StackFit.expand,
children: [
- Image.asset(
- config.backgroundImageAsset,
+ Image.network(
+ widget.backgroundImageUrl,
fit: BoxFit.cover,
),
- Lottie.asset(
- config.animationAsset,
+ Lottie.memory(
+ Uint8List.fromList(utf8.encode(widget.animationJson)),
+ controller: _controller,
+ onLoaded: (composition) {
+ _controller
+ ..duration = composition.duration
+ // Loop only the last 40% of the animation to avoid long static periods.
+ ..repeat(
+ period: composition.duration * 0.6,
+ );
+ },
fit: BoxFit.cover,
),
],
diff --git a/comwell_key_app/lib/up_sales/components/up_sales_services_widget.dart b/comwell_key_app/lib/up_sales/components/up_sales_services_widget.dart
index 2c3ff4a3..a47068bc 100644
--- a/comwell_key_app/lib/up_sales/components/up_sales_services_widget.dart
+++ b/comwell_key_app/lib/up_sales/components/up_sales_services_widget.dart
@@ -3,6 +3,7 @@ import 'package:comwell_key_app/themes/light_theme.dart';
import 'package:comwell_key_app/up_sales/components/comwell_radio_button.dart';
import 'package:comwell_key_app/up_sales/components/tags.dart';
import 'package:comwell_key_app/up_sales/components/upsale_header_media.dart';
+import 'package:comwell_key_app/up_sales/models/addon_upgrade.dart';
import 'package:comwell_key_app/up_sales/models/upgrade.dart';
import 'package:comwell_key_app/utils/l10n_utils.dart';
import 'package:flutter/material.dart';
@@ -10,7 +11,7 @@ import 'package:flutter/material.dart';
class UpSalesServicesWidget extends StatelessWidget {
final double width;
final double height;
- final Upgrade upgrade;
+ final AddOnUpgrade upgrade;
final bool isSelected;
final bool? isPopular;
final VoidCallback onTap;
@@ -56,7 +57,7 @@ class UpSalesServicesWidget extends StatelessWidget {
children: [
Stack(
children: [
- UpsaleHeaderMedia(addonId: upgrade.id, images: upgrade.images.toList(), shouldHavePadding: false),
+ UpsaleHeaderMedia(animationJson: upgrade.animationJson, backgroundImageUrl: upgrade.backgroundImageUrl, images: upgrade.images.toList(), shouldHavePadding: false),
if (isPopular == true)
Positioned(
top: 12,
diff --git a/comwell_key_app/lib/up_sales/components/up_sales_upgrades_widget.dart b/comwell_key_app/lib/up_sales/components/up_sales_upgrades_widget.dart
index cf372952..50744110 100644
--- a/comwell_key_app/lib/up_sales/components/up_sales_upgrades_widget.dart
+++ b/comwell_key_app/lib/up_sales/components/up_sales_upgrades_widget.dart
@@ -2,6 +2,7 @@ import 'package:comwell_key_app/common/const.dart';
import 'package:comwell_key_app/up_sales/components/background_animation.dart';
import 'package:comwell_key_app/up_sales/components/upgrades_counter.dart';
import 'package:comwell_key_app/up_sales/components/upsale_header_media.dart';
+import 'package:comwell_key_app/up_sales/models/addon_upgrade.dart';
import 'package:comwell_key_app/up_sales/models/room_upgrade.dart';
import 'package:comwell_key_app/up_sales/models/upgrade.dart';
import 'package:comwell_key_app/utils/l10n_utils.dart';
@@ -55,7 +56,8 @@ class UpSalesUpgradesWidget extends StatelessWidget {
children: [
UpsaleHeaderMedia(
height: 180,
- addonId: upgrade.id,
+ animationJson: upgrade is AddOnUpgrade ? (upgrade as AddOnUpgrade).animationJson : null,
+ backgroundImageUrl: upgrade is AddOnUpgrade ? (upgrade as AddOnUpgrade).backgroundImageUrl : null,
images: upgrade.images.toList(),
shouldHavePadding: false,
),
diff --git a/comwell_key_app/lib/up_sales/components/upsale_header_media.dart b/comwell_key_app/lib/up_sales/components/upsale_header_media.dart
index c3f70131..7d655493 100644
--- a/comwell_key_app/lib/up_sales/components/upsale_header_media.dart
+++ b/comwell_key_app/lib/up_sales/components/upsale_header_media.dart
@@ -1,20 +1,19 @@
import 'package:comwell_key_app/common/const.dart';
-import 'package:comwell_key_app/utils/upsale_utils.dart';
import 'package:comwell_key_app/up_sales/components/background_animation.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter/material.dart';
class UpsaleHeaderMedia extends StatelessWidget {
- final double height;
- final String? addonId;
+ final double height;
+ final String? animationJson;
+ final String? backgroundImageUrl;
final bool shouldHavePadding;
final List<String>? images;
- const UpsaleHeaderMedia({super.key, this.height = 180, this.addonId, this.images, this.shouldHavePadding = true});
+ const UpsaleHeaderMedia({super.key, this.height = 180, this.images, this.shouldHavePadding = true, this.animationJson, this.backgroundImageUrl});
@override
- Widget build(BuildContext context) {
- final visualConfig = getUpsaleVisualConfig(addonId ?? '');
+ Widget build(BuildContext context) {
return ClipRRect(
borderRadius: const BorderRadius.only(
topLeft: Radius.circular(10),
@@ -22,14 +21,14 @@ class UpsaleHeaderMedia extends StatelessWidget {
),
child: Builder(
builder: (context) {
- if (visualConfig != null) {
+ if (animationJson != null && backgroundImageUrl != null) {
return Padding(
padding: shouldHavePadding ? const EdgeInsets.only(top: 100) : EdgeInsets.zero,
child: SizedBox(
height: height * (shouldHavePadding ? 0.3 : 1),
width: double.infinity,
child: IgnorePointer(
- child: BackgroundAnimation(addonId: addonId ?? ''),
+ child: BackgroundAnimation(animationJson: animationJson!, backgroundImageUrl: backgroundImageUrl!),
),
),
);
diff --git a/comwell_key_app/lib/up_sales/mappers/addon_upgrade_mapper.dart b/comwell_key_app/lib/up_sales/mappers/addon_upgrade_mapper.dart
index 53de994f..baf2b0f1 100644
--- a/comwell_key_app/lib/up_sales/mappers/addon_upgrade_mapper.dart
+++ b/comwell_key_app/lib/up_sales/mappers/addon_upgrade_mapper.dart
@@ -15,6 +15,8 @@ extension AddOnUpgradeDTOMapper on AddOnUpgradeDTO {
isService: isService,
isPopular: isPopular,
onlyAvailableBeforeCheckin: onlyAvailableBeforeCheckin,
+ animationJson: animationJson,
+ backgroundImageUrl: backgroundImageUrl,
);
}
}
diff --git a/comwell_key_app/lib/up_sales/models/addon_upgrade.dart b/comwell_key_app/lib/up_sales/models/addon_upgrade.dart
index f273552c..90e5e8c3 100644
--- a/comwell_key_app/lib/up_sales/models/addon_upgrade.dart
+++ b/comwell_key_app/lib/up_sales/models/addon_upgrade.dart
@@ -5,6 +5,9 @@ class AddOnUpgrade extends Upgrade {
final bool isService;
final bool isPopular;
final bool onlyAvailableBeforeCheckin;
+ final String animationJson;
+ final String backgroundImageUrl;
+
const AddOnUpgrade({
required super.id,
required super.name,
@@ -17,6 +20,8 @@ class AddOnUpgrade extends Upgrade {
required this.isService,
required this.isPopular,
required this.onlyAvailableBeforeCheckin,
+ this.animationJson = '',
+ this.backgroundImageUrl = '',
});
@override
@@ -33,6 +38,8 @@ class AddOnUpgrade extends Upgrade {
bool? isService,
bool? isPopular,
bool? onlyAvailableBeforeCheckin,
+ String? animationJson,
+ String? backgroundImageUrl,
}) {
return AddOnUpgrade(
id: id,
@@ -46,6 +53,8 @@ class AddOnUpgrade extends Upgrade {
isService: isService ?? this.isService,
isPopular: isPopular ?? this.isPopular,
onlyAvailableBeforeCheckin: onlyAvailableBeforeCheckin ?? this.onlyAvailableBeforeCheckin,
+ animationJson: animationJson ?? this.animationJson,
+ backgroundImageUrl: backgroundImageUrl ?? this.backgroundImageUrl,
);
}
diff --git a/comwell_key_app/lib/up_sales/models/dto/addon_upgrade_dto.dart b/comwell_key_app/lib/up_sales/models/dto/addon_upgrade_dto.dart
index 180ab75b..9e12783c 100644
--- a/comwell_key_app/lib/up_sales/models/dto/addon_upgrade_dto.dart
+++ b/comwell_key_app/lib/up_sales/models/dto/addon_upgrade_dto.dart
@@ -17,6 +17,10 @@ class AddOnUpgradeDTO {
final bool isService;
final bool isPopular;
final bool onlyAvailableBeforeCheckin;
+ @JsonKey(defaultValue: '')
+ final String animationJson;
+ @JsonKey(defaultValue: '')
+ final String backgroundImageUrl;
AddOnUpgradeDTO({
required this.id,
@@ -30,6 +34,8 @@ class AddOnUpgradeDTO {
this.isService = false,
this.isPopular = false,
this.onlyAvailableBeforeCheckin = false,
+ required this.animationJson,
+ required this.backgroundImageUrl,
});
Json toJson() => _$AddOnUpgradeDTOToJson(this);
diff --git a/comwell_key_app/lib/up_sales/pages/addon_upgrade_page.dart b/comwell_key_app/lib/up_sales/pages/addon_upgrade_page.dart
index c69f37aa..6ce5b040 100644
--- a/comwell_key_app/lib/up_sales/pages/addon_upgrade_page.dart
+++ b/comwell_key_app/lib/up_sales/pages/addon_upgrade_page.dart
@@ -4,7 +4,6 @@ import 'package:comwell_key_app/up_sales/components/addon_item_counter.dart';
import 'package:comwell_key_app/up_sales/components/upsale_header_media.dart';
import 'package:comwell_key_app/up_sales/models/addon_upgrade.dart';
import 'package:comwell_key_app/utils/l10n_utils.dart';
-import 'package:comwell_key_app/utils/upsale_utils.dart';
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import '../../themes/light_theme.dart';
@@ -66,8 +65,9 @@ class _AddonUpgradePageState extends State<AddonUpgradePage> {
),
child: UpsaleHeaderMedia(
height: height,
- addonId: widget.addonUpgrade.id,
images: widget.addonUpgrade.images.toList(),
+ animationJson: widget.addonUpgrade.animationJson,
+ backgroundImageUrl: widget.addonUpgrade.backgroundImageUrl,
),
),
Container(
diff --git a/comwell_key_app/lib/up_sales/pages/services_upgrade_page.dart b/comwell_key_app/lib/up_sales/pages/services_upgrade_page.dart
index 250fcd88..545c3963 100644
--- a/comwell_key_app/lib/up_sales/pages/services_upgrade_page.dart
+++ b/comwell_key_app/lib/up_sales/pages/services_upgrade_page.dart
@@ -45,7 +45,8 @@ class ServicesUpgradePage extends StatelessWidget {
),
child: UpsaleHeaderMedia(
height: height,
- addonId: roomUpgradeList.addOnUpgrade?.id,
+ animationJson: roomUpgradeList.addOnUpgrade?.animationJson,
+ backgroundImageUrl: roomUpgradeList.addOnUpgrade?.backgroundImageUrl,
images: roomUpgradeList.addOnUpgrade?.images.toList(),
),
),
diff --git a/comwell_key_app/test/profile_settings_test/profile_settings_cubit_test.dart b/comwell_key_app/test/profile_settings_test/profile_settings_cubit_test.dart
index ac8eb87a..7adae8e7 100644
--- a/comwell_key_app/test/profile_settings_test/profile_settings_cubit_test.dart
+++ b/comwell_key_app/test/profile_settings_test/profile_settings_cubit_test.dart
@@ -39,7 +39,6 @@ final user = User(
country: 'USA',
),
birthDate: DateTime(1990, 1, 1),
- addressCountry: 'SE',
shopperReference: '1234567890',
points: 100,
isClubMember: false,