Add Lottie-based global loading overlay across key flows.

Introduce GlobalLoadingCenter with reference counting, wire it through RootView and major auth/order/profile screens, and add the loading animation asset plus unit tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-23 11:25:56 +08:00
parent 1d1eb46ed8
commit 7fd964fe19
17 changed files with 514 additions and 139 deletions

View File

@ -10,6 +10,7 @@
11A5FC66EE3769DAC202A397 /* Pods_suixinkanTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EDE192531FA9E2FD908B9EC1 /* Pods_suixinkanTests.framework */; };
93DAED0B2FE8E50000B9E2B1 /* Kingfisher in Frameworks */ = {isa = PBXBuildFile; productRef = 93DAED0D2FE8E50000B9E2B1 /* Kingfisher */; };
93DAED0C2FE8E50000B9E2B1 /* AlibabaCloudOSS in Frameworks */ = {isa = PBXBuildFile; productRef = 93DAED0E2FE8E50000B9E2B1 /* AlibabaCloudOSS */; };
93DAED112FE9100000B9E2B1 /* Lottie in Frameworks */ = {isa = PBXBuildFile; productRef = 93DAED102FE9100000B9E2B1 /* Lottie */; };
AE69C4E776CD531A1BB67C15 /* Pods_suixinkan.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 454D6E9EC1585878877CF5FD /* Pods_suixinkan.framework */; };
/* End PBXBuildFile section */
@ -58,6 +59,7 @@
files = (
93DAED0B2FE8E50000B9E2B1 /* Kingfisher in Frameworks */,
93DAED0C2FE8E50000B9E2B1 /* AlibabaCloudOSS in Frameworks */,
93DAED112FE9100000B9E2B1 /* Lottie in Frameworks */,
AE69C4E776CD531A1BB67C15 /* Pods_suixinkan.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
@ -137,6 +139,7 @@
packageProductDependencies = (
93DAED0D2FE8E50000B9E2B1 /* Kingfisher */,
93DAED0E2FE8E50000B9E2B1 /* AlibabaCloudOSS */,
93DAED102FE9100000B9E2B1 /* Lottie */,
);
productName = suixinkan;
productReference = 939AC7962FE3F832004B22E4 /* suixinkan.app */;
@ -195,6 +198,7 @@
packageReferences = (
93DAED092FE8E14D00B9E2B1 /* XCRemoteSwiftPackageReference "Kingfisher" */,
93DAED0A2FE8E17E00B9E2B1 /* XCRemoteSwiftPackageReference "alibabacloud-oss-swift-sdk-v2" */,
93DAED0F2FE9100000B9E2B1 /* XCRemoteSwiftPackageReference "lottie-ios" */,
);
preferredProjectObjectVersion = 77;
productRefGroup = 939AC7972FE3F832004B22E4 /* Products */;
@ -644,6 +648,14 @@
minimumVersion = 0.2.0;
};
};
93DAED0F2FE9100000B9E2B1 /* XCRemoteSwiftPackageReference "lottie-ios" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/airbnb/lottie-ios.git";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 4.5.0;
};
};
/* End XCRemoteSwiftPackageReference section */
/* Begin XCSwiftPackageProductDependency section */
@ -657,6 +669,11 @@
package = 93DAED0A2FE8E17E00B9E2B1 /* XCRemoteSwiftPackageReference "alibabacloud-oss-swift-sdk-v2" */;
productName = AlibabaCloudOSS;
};
93DAED102FE9100000B9E2B1 /* Lottie */ = {
isa = XCSwiftPackageProductDependency;
package = 93DAED0F2FE9100000B9E2B1 /* XCRemoteSwiftPackageReference "lottie-ios" */;
productName = Lottie;
};
/* End XCSwiftPackageProductDependency section */
};
rootObject = 939AC78E2FE3F832004B22E4 /* Project object */;