From c078fa17d4be4db9ffcb6c7077ca36bfafd0cf03 Mon Sep 17 00:00:00 2001 From: Rui <102453770+ruixhuang@users.noreply.github.com> Date: Sat, 9 Nov 2024 17:09:47 -0800 Subject: [PATCH] Fixing a regression of tab bar view flashing and market list scrolling (#292) --- dydx/Podfile.lock | 12 +- dydx/Pods/Local Podspecs/abacus.podspec.json | 6 +- dydx/Pods/Manifest.lock | 12 +- dydx/Pods/Pods.xcodeproj/project.pbxproj | 130 +++++++++--------- .../Classes/ImageManager.swift | 9 +- .../SDWebImageSwiftUI/Classes/WebImage.swift | 12 +- .../Sources/Statsig/DeviceEnvironment.swift | 2 +- .../Statsig/Sources/Statsig/Statsig.swift | 6 +- ...bImageSwiftUI-SDWebImageSwiftUI-Info.plist | 2 +- .../SDWebImageSwiftUI-Info.plist | 2 +- .../ResourceBundle-Statsig-Statsig-Info.plist | 2 +- .../Statsig/Statsig-Info.plist | 2 +- .../_v4/Markets/dydxMarketsViewBuilder.swift | 14 +- .../_v4/RootTab/dydxV4TabBarBuilder.swift | 2 + podspecs/Abacus.podspec | 2 +- 15 files changed, 106 insertions(+), 109 deletions(-) diff --git a/dydx/Podfile.lock b/dydx/Podfile.lock index 6eaea6614..d95e393fb 100644 --- a/dydx/Podfile.lock +++ b/dydx/Podfile.lock @@ -1,5 +1,5 @@ PODS: - - Abacus (1.13.18) + - Abacus (1.13.19) - AmplitudeSwift (1.10.1): - AnalyticsConnector (~> 1.0.1) - AnalyticsConnector (1.0.3) @@ -256,11 +256,11 @@ PODS: - SDWebImage/Core (5.20.0) - SDWebImageSVGCoder (1.7.0): - SDWebImage/Core (~> 5.6) - - SDWebImageSwiftUI (3.1.1): + - SDWebImageSwiftUI (3.1.3): - SDWebImage (~> 5.10) - SimpleKeychain (0.12.5) - SnapKit (5.7.1) - - Statsig (1.48.0) + - Statsig (1.48.1) - SVGKit (3.0.0): - CocoaLumberjack (~> 3.0) - Validator (3.2.1) @@ -382,7 +382,7 @@ CHECKOUT OPTIONS: :git: https://github.com/dydxprotocol/Charts.git SPEC CHECKSUMS: - Abacus: ad923b7bd4d7a7dc4824a5b88130f0d7c56af1d0 + Abacus: 8f260c5639033d002ce9584113192b64d1ea6d5e AmplitudeSwift: 9a4b3e0cb70ad8f89176925e7a6f979c5d48f362 AnalyticsConnector: a53214d38ae22734c6266106c0492b37832633a9 AppsFlyerFramework: ad7ff0d22aa36c7f8cc4f71a5424e19b89ccb8ae @@ -433,10 +433,10 @@ SPEC CHECKSUMS: ReachabilitySwift: 32793e867593cfc1177f5d16491e3a197d2fccda SDWebImage: 73c6079366fea25fa4bb9640d5fb58f0893facd8 SDWebImageSVGCoder: 15a300a97ec1c8ac958f009c02220ac0402e936c - SDWebImageSwiftUI: dcff3d05fd0579ff280221ae8856c34ac3b67f25 + SDWebImageSwiftUI: a6d7129fb68fc18c8b930b869ddcfce314e49ded SimpleKeychain: 8193a9e40967eccac933c1fde82de46c07a5ae26 SnapKit: d612e99e678a2d3b95bf60b0705ed0a35c03484a - Statsig: e4a2bb505d5f809f684908820a234c93ef3d1996 + Statsig: b3ce932e479889e01611bebe92d77433ab280c4d SVGKit: 1ad7513f8c74d9652f94ed64ddecda1a23864dea Validator: 80a6f567220c962dfd2d9928ae98a8c1d164f6f4 ZSWTappableLabel: 92f11d677bb395a8294df48482316c4981783ca0 diff --git a/dydx/Pods/Local Podspecs/abacus.podspec.json b/dydx/Pods/Local Podspecs/abacus.podspec.json index 51d88d177..2ef5f135d 100644 --- a/dydx/Pods/Local Podspecs/abacus.podspec.json +++ b/dydx/Pods/Local Podspecs/abacus.podspec.json @@ -1,10 +1,10 @@ { "name": "Abacus", - "version": "1.13.18", + "version": "1.13.19", "homepage": "https://github.com/dydxprotocol/v4-abacus", "source": { "git": "git@github.com:dydxprotocol/v4-abacus.git", - "tag": "v1.13.18" + "tag": "v1.13.19" }, "authors": "", "license": "", @@ -20,7 +20,7 @@ "name": "Build abacus", "execution_position": "before_compile", "shell_path": "/bin/sh", - "script": " if [ \"YES\" = \"$COCOAPODS_SKIP_KOTLIN_BUILD\" ]; then\n echo \"Skipping Gradle build task invocation due to COCOAPODS_SKIP_KOTLIN_BUILD environment variable set to \"YES\"\"\n exit 0\n fi\n set -evx\n \n REPO_ROOT=\"$PODS_TARGET_SRCROOT\"\n \n if [ ! -f $REPO_ROOT/gradlew ]; then\n rm -rf $PRODUCT_MODULE_NAME\n git clone git@github.com:dydxprotocol/v4-abacus.git --branch v1.13.18 $PRODUCT_MODULE_NAME\n \n \"$REPO_ROOT/gradlew\" -p \"$REPO_ROOT\" $KOTLIN_PROJECT_PATH:syncFramework -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME -Pkotlin.native.cocoapods.archs=\"$ARCHS\" -Pkotlin.native.cocoapods.configuration=\"$CONFIGURATION\"\n \n # We will need to overwrite the dummy framework generated by cocoapods with the actual one from Kotlin\n \n TARGET_FRAMEWORK=\"${TARGET_BUILD_DIR}/${TARGET_NAME}.framework\"\n ABACUS_FRAMEWORK=\"$REPO_ROOT/build/cocoapods/framework/$PRODUCT_MODULE_NAME.framework\"\n rm -rf $TARGET_FRAMEWORK\n mkdir $TARGET_FRAMEWORK\n cp -rf $ABACUS_FRAMEWORK/* $TARGET_FRAMEWORK\n else\n \"$REPO_ROOT/gradlew\" -p \"$REPO_ROOT\" $KOTLIN_PROJECT_PATH:syncFramework -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME -Pkotlin.native.cocoapods.archs=\"$ARCHS\" -Pkotlin.native.cocoapods.configuration=\"$CONFIGURATION\"\n fi\n" + "script": " if [ \"YES\" = \"$COCOAPODS_SKIP_KOTLIN_BUILD\" ]; then\n echo \"Skipping Gradle build task invocation due to COCOAPODS_SKIP_KOTLIN_BUILD environment variable set to \"YES\"\"\n exit 0\n fi\n set -evx\n \n REPO_ROOT=\"$PODS_TARGET_SRCROOT\"\n \n if [ ! -f $REPO_ROOT/gradlew ]; then\n rm -rf $PRODUCT_MODULE_NAME\n git clone git@github.com:dydxprotocol/v4-abacus.git --branch v1.13.19 $PRODUCT_MODULE_NAME\n \n \"$REPO_ROOT/gradlew\" -p \"$REPO_ROOT\" $KOTLIN_PROJECT_PATH:syncFramework -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME -Pkotlin.native.cocoapods.archs=\"$ARCHS\" -Pkotlin.native.cocoapods.configuration=\"$CONFIGURATION\"\n \n # We will need to overwrite the dummy framework generated by cocoapods with the actual one from Kotlin\n \n TARGET_FRAMEWORK=\"${TARGET_BUILD_DIR}/${TARGET_NAME}.framework\"\n ABACUS_FRAMEWORK=\"$REPO_ROOT/build/cocoapods/framework/$PRODUCT_MODULE_NAME.framework\"\n rm -rf $TARGET_FRAMEWORK\n mkdir $TARGET_FRAMEWORK\n cp -rf $ABACUS_FRAMEWORK/* $TARGET_FRAMEWORK\n else\n \"$REPO_ROOT/gradlew\" -p \"$REPO_ROOT\" $KOTLIN_PROJECT_PATH:syncFramework -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME -Pkotlin.native.cocoapods.archs=\"$ARCHS\" -Pkotlin.native.cocoapods.configuration=\"$CONFIGURATION\"\n fi\n" } ], "platforms": { diff --git a/dydx/Pods/Manifest.lock b/dydx/Pods/Manifest.lock index 6eaea6614..d95e393fb 100644 --- a/dydx/Pods/Manifest.lock +++ b/dydx/Pods/Manifest.lock @@ -1,5 +1,5 @@ PODS: - - Abacus (1.13.18) + - Abacus (1.13.19) - AmplitudeSwift (1.10.1): - AnalyticsConnector (~> 1.0.1) - AnalyticsConnector (1.0.3) @@ -256,11 +256,11 @@ PODS: - SDWebImage/Core (5.20.0) - SDWebImageSVGCoder (1.7.0): - SDWebImage/Core (~> 5.6) - - SDWebImageSwiftUI (3.1.1): + - SDWebImageSwiftUI (3.1.3): - SDWebImage (~> 5.10) - SimpleKeychain (0.12.5) - SnapKit (5.7.1) - - Statsig (1.48.0) + - Statsig (1.48.1) - SVGKit (3.0.0): - CocoaLumberjack (~> 3.0) - Validator (3.2.1) @@ -382,7 +382,7 @@ CHECKOUT OPTIONS: :git: https://github.com/dydxprotocol/Charts.git SPEC CHECKSUMS: - Abacus: ad923b7bd4d7a7dc4824a5b88130f0d7c56af1d0 + Abacus: 8f260c5639033d002ce9584113192b64d1ea6d5e AmplitudeSwift: 9a4b3e0cb70ad8f89176925e7a6f979c5d48f362 AnalyticsConnector: a53214d38ae22734c6266106c0492b37832633a9 AppsFlyerFramework: ad7ff0d22aa36c7f8cc4f71a5424e19b89ccb8ae @@ -433,10 +433,10 @@ SPEC CHECKSUMS: ReachabilitySwift: 32793e867593cfc1177f5d16491e3a197d2fccda SDWebImage: 73c6079366fea25fa4bb9640d5fb58f0893facd8 SDWebImageSVGCoder: 15a300a97ec1c8ac958f009c02220ac0402e936c - SDWebImageSwiftUI: dcff3d05fd0579ff280221ae8856c34ac3b67f25 + SDWebImageSwiftUI: a6d7129fb68fc18c8b930b869ddcfce314e49ded SimpleKeychain: 8193a9e40967eccac933c1fde82de46c07a5ae26 SnapKit: d612e99e678a2d3b95bf60b0705ed0a35c03484a - Statsig: e4a2bb505d5f809f684908820a234c93ef3d1996 + Statsig: b3ce932e479889e01611bebe92d77433ab280c4d SVGKit: 1ad7513f8c74d9652f94ed64ddecda1a23864dea Validator: 80a6f567220c962dfd2d9928ae98a8c1d164f6f4 ZSWTappableLabel: 92f11d677bb395a8294df48482316c4981783ca0 diff --git a/dydx/Pods/Pods.xcodeproj/project.pbxproj b/dydx/Pods/Pods.xcodeproj/project.pbxproj index 5cb91551d..d66025cbb 100644 --- a/dydx/Pods/Pods.xcodeproj/project.pbxproj +++ b/dydx/Pods/Pods.xcodeproj/project.pbxproj @@ -22,10 +22,10 @@ }; 2B2AD932AF1A90828B4DFC5AC6955ADA /* Abacus */ = { isa = PBXAggregateTarget; - buildConfigurationList = 2EC7EDBB2B8194A99148858952FBE995 /* Build configuration list for PBXAggregateTarget "Abacus" */; + buildConfigurationList = 01B406B18BCDC6C411151203EF7C444E /* Build configuration list for PBXAggregateTarget "Abacus" */; buildPhases = ( - FEF71DA61C0F407F64C44F708B8FE79A /* [CP-User] Build abacus */, - 7D584380B808F2F0AB3BC8DD9B1DA594 /* [CP] Copy dSYMs */, + 6E4C9A9327E57A41B7DD02B4E76D994E /* [CP-User] Build abacus */, + BA1627589CDE6D0F0427F5EA81071A41 /* [CP] Copy dSYMs */, ); dependencies = ( ); @@ -24933,22 +24933,15 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/FirebaseAnalytics/FirebaseAnalytics-xcframeworks.sh\"\n"; showEnvVarsInLog = 0; }; - 7D584380B808F2F0AB3BC8DD9B1DA594 /* [CP] Copy dSYMs */ = { + 6E4C9A9327E57A41B7DD02B4E76D994E /* [CP-User] Build abacus */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Abacus/Abacus-copy-dsyms-input-files.xcfilelist", - ); - name = "[CP] Copy dSYMs"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Abacus/Abacus-copy-dsyms-output-files.xcfilelist", - ); + name = "[CP-User] Build abacus"; runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Abacus/Abacus-copy-dsyms.sh\"\n"; - showEnvVarsInLog = 0; + shellScript = " if [ \"YES\" = \"$COCOAPODS_SKIP_KOTLIN_BUILD\" ]; then\n echo \"Skipping Gradle build task invocation due to COCOAPODS_SKIP_KOTLIN_BUILD environment variable set to \"YES\"\"\n exit 0\n fi\n set -evx\n \n REPO_ROOT=\"$PODS_TARGET_SRCROOT\"\n \n if [ ! -f $REPO_ROOT/gradlew ]; then\n rm -rf $PRODUCT_MODULE_NAME\n git clone git@github.com:dydxprotocol/v4-abacus.git --branch v1.13.19 $PRODUCT_MODULE_NAME\n \n \"$REPO_ROOT/gradlew\" -p \"$REPO_ROOT\" $KOTLIN_PROJECT_PATH:syncFramework -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME -Pkotlin.native.cocoapods.archs=\"$ARCHS\" -Pkotlin.native.cocoapods.configuration=\"$CONFIGURATION\"\n \n # We will need to overwrite the dummy framework generated by cocoapods with the actual one from Kotlin\n \n TARGET_FRAMEWORK=\"${TARGET_BUILD_DIR}/${TARGET_NAME}.framework\"\n ABACUS_FRAMEWORK=\"$REPO_ROOT/build/cocoapods/framework/$PRODUCT_MODULE_NAME.framework\"\n rm -rf $TARGET_FRAMEWORK\n mkdir $TARGET_FRAMEWORK\n cp -rf $ABACUS_FRAMEWORK/* $TARGET_FRAMEWORK\n else\n \"$REPO_ROOT/gradlew\" -p \"$REPO_ROOT\" $KOTLIN_PROJECT_PATH:syncFramework -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME -Pkotlin.native.cocoapods.archs=\"$ARCHS\" -Pkotlin.native.cocoapods.configuration=\"$CONFIGURATION\"\n fi\n"; }; AA25B77F33C1BF0ACDDA59D430A4FF57 /* [CP] Copy XCFrameworks */ = { isa = PBXShellScriptBuildPhase; @@ -24967,32 +24960,39 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/GoogleAppMeasurement/GoogleAppMeasurement-xcframeworks.sh\"\n"; showEnvVarsInLog = 0; }; - DB7C100E6D7A5CF954757DB8962D9B72 /* [CP] Copy XCFrameworks */ = { + BA1627589CDE6D0F0427F5EA81071A41 /* [CP] Copy dSYMs */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/AppsFlyerFramework/AppsFlyerFramework-xcframeworks-input-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Abacus/Abacus-copy-dsyms-input-files.xcfilelist", ); - name = "[CP] Copy XCFrameworks"; + name = "[CP] Copy dSYMs"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/AppsFlyerFramework/AppsFlyerFramework-xcframeworks-output-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Abacus/Abacus-copy-dsyms-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/AppsFlyerFramework/AppsFlyerFramework-xcframeworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Abacus/Abacus-copy-dsyms.sh\"\n"; showEnvVarsInLog = 0; }; - FEF71DA61C0F407F64C44F708B8FE79A /* [CP-User] Build abacus */ = { + DB7C100E6D7A5CF954757DB8962D9B72 /* [CP] Copy XCFrameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); - name = "[CP-User] Build abacus"; + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/AppsFlyerFramework/AppsFlyerFramework-xcframeworks-input-files.xcfilelist", + ); + name = "[CP] Copy XCFrameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/AppsFlyerFramework/AppsFlyerFramework-xcframeworks-output-files.xcfilelist", + ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = " if [ \"YES\" = \"$COCOAPODS_SKIP_KOTLIN_BUILD\" ]; then\n echo \"Skipping Gradle build task invocation due to COCOAPODS_SKIP_KOTLIN_BUILD environment variable set to \"YES\"\"\n exit 0\n fi\n set -evx\n \n REPO_ROOT=\"$PODS_TARGET_SRCROOT\"\n \n if [ ! -f $REPO_ROOT/gradlew ]; then\n rm -rf $PRODUCT_MODULE_NAME\n git clone git@github.com:dydxprotocol/v4-abacus.git --branch v1.13.18 $PRODUCT_MODULE_NAME\n \n \"$REPO_ROOT/gradlew\" -p \"$REPO_ROOT\" $KOTLIN_PROJECT_PATH:syncFramework -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME -Pkotlin.native.cocoapods.archs=\"$ARCHS\" -Pkotlin.native.cocoapods.configuration=\"$CONFIGURATION\"\n \n # We will need to overwrite the dummy framework generated by cocoapods with the actual one from Kotlin\n \n TARGET_FRAMEWORK=\"${TARGET_BUILD_DIR}/${TARGET_NAME}.framework\"\n ABACUS_FRAMEWORK=\"$REPO_ROOT/build/cocoapods/framework/$PRODUCT_MODULE_NAME.framework\"\n rm -rf $TARGET_FRAMEWORK\n mkdir $TARGET_FRAMEWORK\n cp -rf $ABACUS_FRAMEWORK/* $TARGET_FRAMEWORK\n else\n \"$REPO_ROOT/gradlew\" -p \"$REPO_ROOT\" $KOTLIN_PROJECT_PATH:syncFramework -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME -Pkotlin.native.cocoapods.archs=\"$ARCHS\" -Pkotlin.native.cocoapods.configuration=\"$CONFIGURATION\"\n fi\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/AppsFlyerFramework/AppsFlyerFramework-xcframeworks.sh\"\n"; + showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -36395,6 +36395,23 @@ }; name = Release; }; + 566E50D15745D37B108A85D28D7E7579 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D10DBF2FFCAE2CFAFDB147B38E7246C5 /* Abacus.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + SDKROOT = iphoneos; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; 588A4851DED1B644B0C0A77446382E19 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 1CC036A1774E39325629694A72F5F5D4 /* FirebaseInstallations.debug.xcconfig */; @@ -39055,23 +39072,6 @@ }; name = Debug; }; - AD342EF8B8F86A929C50CD3BEF75E736 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D10DBF2FFCAE2CFAFDB147B38E7246C5 /* Abacus.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - SDKROOT = iphoneos; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; AD3ACC11AAC57CA8B83E2DCEEEE21678 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = C5F736672CB99E19C0B5A13B8D3A457F /* JTCalendar.release.xcconfig */; @@ -39363,24 +39363,6 @@ }; name = Release; }; - B7815826282ADD408405813DDB4B4029 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 3F58A67E444353CF2F3A3D37E5BBE252 /* Abacus.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - IPHONEOS_DEPLOYMENT_TARGET = 16.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - SDKROOT = iphoneos; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; B7B9D58AA5C1EA8309A27538ACAEE4CA /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 4AA0D180BF223229CDCF7372C22F8583 /* PanModal.debug.xcconfig */; @@ -41961,6 +41943,24 @@ }; name = Debug; }; + FB336E1B88CC922BEA4F5EF96344720C /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 3F58A67E444353CF2F3A3D37E5BBE252 /* Abacus.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + SDKROOT = iphoneos; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; FC1DF3EE50011D4C5159689FE8BB2778 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 76AF4B14CDD27DB0126DE93402215E9F /* AppsFlyerFramework.release.xcconfig */; @@ -42109,6 +42109,15 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + 01B406B18BCDC6C411151203EF7C444E /* Build configuration list for PBXAggregateTarget "Abacus" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 566E50D15745D37B108A85D28D7E7579 /* Debug */, + FB336E1B88CC922BEA4F5EF96344720C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 02E6F99C80E51EFFD8EE255DEBE986B2 /* Build configuration list for PBXNativeTarget "Pods-iOS-dydxViewsTests" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -42325,15 +42334,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 2EC7EDBB2B8194A99148858952FBE995 /* Build configuration list for PBXAggregateTarget "Abacus" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - AD342EF8B8F86A929C50CD3BEF75E736 /* Debug */, - B7815826282ADD408405813DDB4B4029 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 32D9A7EDFCDCDDBB39F3175168F6918F /* Build configuration list for PBXNativeTarget "Pods-iOS-UIToolkitsTests" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/dydx/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/ImageManager.swift b/dydx/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/ImageManager.swift index eb5ec2737..045bfa37c 100644 --- a/dydx/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/ImageManager.swift +++ b/dydx/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/ImageManager.swift @@ -85,6 +85,7 @@ public final class ImageManager : ObservableObject { self.indicatorStatus.isLoading = true self.indicatorStatus.progress = 0 currentOperation = manager.loadImage(with: url, options: options, context: context, progress: { [weak self] (receivedSize, expectedSize, _) in + // This block may be called in non-main thread guard let self = self else { return } @@ -95,7 +96,11 @@ public final class ImageManager : ObservableObject { progress = 0 } self.indicatorStatus.progress = progress - self.progressBlock?(receivedSize, expectedSize) + if let progressBlock = self.progressBlock { + DispatchQueue.main.async { + progressBlock(receivedSize, expectedSize) + } + } }) { [weak self] (image, data, error, cacheType, finished, _) in guard let self = self else { return @@ -107,7 +112,7 @@ public final class ImageManager : ObservableObject { // So previous View struct call `onDisappear` and cancel the currentOperation return } - withTransaction(transaction) { + withTransaction(self.transaction) { self.image = image self.error = error self.isIncremental = !finished diff --git a/dydx/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/WebImage.swift b/dydx/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/WebImage.swift index 3dab6a3c6..59fe49a51 100644 --- a/dydx/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/WebImage.swift +++ b/dydx/Pods/SDWebImageSwiftUI/SDWebImageSwiftUI/Classes/WebImage.swift @@ -109,7 +109,7 @@ public struct WebImage : View where Content: View { /// - Parameter scale: The scale to use for the image. The default is 1. Set a different value when loading images designed for higher resolution displays. For example, set a value of 2 for an image that you would name with the @2x suffix if stored in a file on disk. /// - Parameter options: The options to use when downloading the image. See `SDWebImageOptions` for the possible values. /// - Parameter context: A context contains different options to perform specify changes or processes, see `SDWebImageContextOption`. This hold the extra objects which `options` enum can not hold. - /// - Parameter isAnimating: The binding for animation control. The binding value should be `true` when initialized to setup the correct animated image class. If not, you must provide the `.animatedImageClass` explicitly. When the animation started, this binding can been used to start / stop the animation. + /// - Parameter isAnimating: The binding for animation control. When the animation started, this binding can been used to start / stop the animation. You can still customize the `.animatedImageClass` context for advanced custom animation. public init(url: URL?, scale: CGFloat = 1, options: SDWebImageOptions = [], context: [SDWebImageContextOption : Any]? = nil, isAnimating: Binding = .constant(true)) where Content == Image { self.init(url: url, options: options, context: context, isAnimating: isAnimating) { phase in phase.image ?? Image(platformImage: .empty) @@ -132,11 +132,11 @@ public struct WebImage : View where Content: View { if context[.imageScaleFactor] == nil { context[.imageScaleFactor] = scale } - // provide animated image class if the initialized `isAnimating` is true, user can still custom the image class if they want - if isAnimating.wrappedValue { - if context[.animatedImageClass] == nil { - context[.animatedImageClass] = SDAnimatedImage.self - } + // always provide animated image class to allows dynamic control + // since most cases, SDAnimatedImage should be compatible with UIImage + // user can still custom the image class if they want + if context[.animatedImageClass] == nil { + context[.animatedImageClass] = SDAnimatedImage.self } let imageModel = WebImageModel() imageModel.url = url diff --git a/dydx/Pods/Statsig/Sources/Statsig/DeviceEnvironment.swift b/dydx/Pods/Statsig/Sources/Statsig/DeviceEnvironment.swift index a58db4ab2..ec8d00d2d 100644 --- a/dydx/Pods/Statsig/Sources/Statsig/DeviceEnvironment.swift +++ b/dydx/Pods/Statsig/Sources/Statsig/DeviceEnvironment.swift @@ -7,7 +7,7 @@ struct DeviceEnvironment { static internal let deviceOS = PlatformCompatibility.deviceInfo.os static internal let sdkType: String = "ios-client" - static internal let sdkVersion: String = "1.48.0" + static internal let sdkVersion: String = "1.48.1" let lock = NSLock() var sessionID: String? { UUID().uuidString } diff --git a/dydx/Pods/Statsig/Sources/Statsig/Statsig.swift b/dydx/Pods/Statsig/Sources/Statsig/Statsig.swift index b989f552e..ae79edcf4 100644 --- a/dydx/Pods/Statsig/Sources/Statsig/Statsig.swift +++ b/dydx/Pods/Statsig/Sources/Statsig/Statsig.swift @@ -43,10 +43,8 @@ public class Statsig { _initialize() } } else if let storageProvider = options?.storageProvider { - DispatchQueue.main.async { - StatsigUserDefaults.defaults = StorageProviderBasedUserDefaults(storageProvider: storageProvider) - _initialize() - } + StatsigUserDefaults.defaults = StorageProviderBasedUserDefaults(storageProvider: storageProvider) + _initialize() } else { _initialize() } diff --git a/dydx/Pods/Target Support Files/SDWebImageSwiftUI/ResourceBundle-SDWebImageSwiftUI-SDWebImageSwiftUI-Info.plist b/dydx/Pods/Target Support Files/SDWebImageSwiftUI/ResourceBundle-SDWebImageSwiftUI-SDWebImageSwiftUI-Info.plist index 0be871422..18e335818 100644 --- a/dydx/Pods/Target Support Files/SDWebImageSwiftUI/ResourceBundle-SDWebImageSwiftUI-SDWebImageSwiftUI-Info.plist +++ b/dydx/Pods/Target Support Files/SDWebImageSwiftUI/ResourceBundle-SDWebImageSwiftUI-SDWebImageSwiftUI-Info.plist @@ -13,7 +13,7 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 3.1.1 + 3.1.3 CFBundleSignature ???? CFBundleVersion diff --git a/dydx/Pods/Target Support Files/SDWebImageSwiftUI/SDWebImageSwiftUI-Info.plist b/dydx/Pods/Target Support Files/SDWebImageSwiftUI/SDWebImageSwiftUI-Info.plist index 56509df06..928faca12 100644 --- a/dydx/Pods/Target Support Files/SDWebImageSwiftUI/SDWebImageSwiftUI-Info.plist +++ b/dydx/Pods/Target Support Files/SDWebImageSwiftUI/SDWebImageSwiftUI-Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 3.1.1 + 3.1.3 CFBundleSignature ???? CFBundleVersion diff --git a/dydx/Pods/Target Support Files/Statsig/ResourceBundle-Statsig-Statsig-Info.plist b/dydx/Pods/Target Support Files/Statsig/ResourceBundle-Statsig-Statsig-Info.plist index 3cf2dfe4a..7507ce375 100644 --- a/dydx/Pods/Target Support Files/Statsig/ResourceBundle-Statsig-Statsig-Info.plist +++ b/dydx/Pods/Target Support Files/Statsig/ResourceBundle-Statsig-Statsig-Info.plist @@ -13,7 +13,7 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 1.48.0 + 1.48.1 CFBundleSignature ???? CFBundleVersion diff --git a/dydx/Pods/Target Support Files/Statsig/Statsig-Info.plist b/dydx/Pods/Target Support Files/Statsig/Statsig-Info.plist index c06fc7b53..6ef013a89 100644 --- a/dydx/Pods/Target Support Files/Statsig/Statsig-Info.plist +++ b/dydx/Pods/Target Support Files/Statsig/Statsig-Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.48.0 + 1.48.1 CFBundleSignature ???? CFBundleVersion diff --git a/dydx/dydxPresenters/dydxPresenters/_v4/Markets/dydxMarketsViewBuilder.swift b/dydx/dydxPresenters/dydxPresenters/_v4/Markets/dydxMarketsViewBuilder.swift index 94212f1db..d4e98991f 100644 --- a/dydx/dydxPresenters/dydxPresenters/_v4/Markets/dydxMarketsViewBuilder.swift +++ b/dydx/dydxPresenters/dydxPresenters/_v4/Markets/dydxMarketsViewBuilder.swift @@ -60,6 +60,7 @@ private class dydxMarketsViewPresenter: HostedViewPresenter "git@github.com:dydxprotocol/v4-abacus.git", :tag => "v#{spec.version}" } spec.authors = ''