Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
2047659
Starting to add compose UIViewController in MobileContentStackView
levieggertcru May 20, 2025
c9fc927
Add CADisableMinimumFrameDurationOnPhone true to handle exception
levieggertcru May 20, 2025
af7126f
Add compose view at screen bounds
levieggertcru May 20, 2025
14cd813
Update stack view to have bounds of screen area
levieggertcru May 20, 2025
4168fc7
switch to the latest godtools-shared compose build
frett Jun 11, 2025
5874390
Merge branch 'develop' into add-compose-view-controller
frett Jun 11, 2025
f7fa916
Merge branch 'develop' into add-compose-view-controller
frett Jul 17, 2025
9e48909
update the compose renderer to support loading images & animations
frett Jul 17, 2025
caa8e4e
Merge branch 'GT-next-release' into GT-next-into-compose-vc
levieggertcru Sep 19, 2025
ac0c602
Merge branch 'GT-next-release' into add-compose-view-controller
levieggertcru Oct 17, 2025
f54300e
Merge branch 'GT-next-release' into add-compose-view-controller
levieggertcru Oct 20, 2025
fea0327
Merge branch 'GT-next-release' into add-compose-view-controller
levieggertcru Oct 20, 2025
7373f5e
Merge branch 'GT-next-release' into add-compose-view-controller
levieggertcru Oct 20, 2025
d9708d6
Merge branch 'develop' into add-compose-view-controller
levieggertcru Oct 27, 2025
01963d9
Merge branch 'develop' into add-compose-view-controller
levieggertcru Oct 28, 2025
261ddb7
Merge branch 'develop' into add-compose-view-controller
levieggertcru Oct 28, 2025
a3c074b
Merge branch 'develop' into add-compose-view-controller
levieggertcru Oct 30, 2025
922b806
Merge branch 'develop' into add-compose-view-controller
levieggertcru Nov 13, 2025
6c1084e
Merge branch 'develop' into add-compose-view-controller
levieggertcru Nov 24, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions Podfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@

source 'https://cdn.cocoapods.org/'
source 'https://github.com/CruGlobal/cocoapods-specs.git'

# Uncomment this line to define a global platform for your project
platform :ios, '15.0'

# Specs finder:
# https://github.com/CocoaPods/Specs/find/master

def shared_pods

# CruGlobal pods
pod 'GodToolsShared', '1.3.0-compose-SNAPSHOT'
end

target 'godtools' do

shared_pods
end

target 'godtoolsTests' do

shared_pods
end

target 'godtoolsUITests' do

shared_pods
end
16 changes: 16 additions & 0 deletions Podfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
PODS:
- GodToolsShared (1.3.0-compose-SNAPSHOT)

DEPENDENCIES:
- GodToolsShared (= 1.3.0-compose-SNAPSHOT)

SPEC REPOS:
https://github.com/CruGlobal/cocoapods-specs.git:
- GodToolsShared

SPEC CHECKSUMS:
GodToolsShared: eb59631cd8eb516c1c75c7fae542744f9316d78d

PODFILE CHECKSUM: c6375a8c34292c173efae79e9cad1a1941f09695

COCOAPODS: 1.16.2
169 changes: 150 additions & 19 deletions godtools.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,16 @@
4581EAA32BFBE194008115FF /* RealmSwift in Frameworks */ = {isa = PBXBuildFile; productRef = 4581EAA22BFBE194008115FF /* RealmSwift */; };
4581EAA52BFBE257008115FF /* RealmSwift in Frameworks */ = {isa = PBXBuildFile; productRef = 4581EAA42BFBE257008115FF /* RealmSwift */; };
4581EAA72BFBE2B9008115FF /* RealmSwift in Embed Frameworks */ = {isa = PBXBuildFile; productRef = 4581EAA22BFBE194008115FF /* RealmSwift */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
<<<<<<< HEAD
459C56D225FF954F00F15967 /* BuildFile in Sources */ = {isa = PBXBuildFile; };
459C56D325FF954F00F15967 /* BuildFile in Sources */ = {isa = PBXBuildFile; };
=======
4593DEFE2EABFD45004E1C8D /* GodToolsShared in Frameworks */ = {isa = PBXBuildFile; productRef = 4593DEFD2EABFD45004E1C8D /* GodToolsShared */; };
4593DF002EABFD93004E1C8D /* GodToolsShared in Frameworks */ = {isa = PBXBuildFile; productRef = 4593DEFF2EABFD93004E1C8D /* GodToolsShared */; };
4593DF022EABFD9C004E1C8D /* GodToolsShared in Frameworks */ = {isa = PBXBuildFile; productRef = 4593DF012EABFD9C004E1C8D /* GodToolsShared */; };
459C56D225FF954F00F15967 /* (null) in Sources */ = {isa = PBXBuildFile; };
459C56D325FF954F00F15967 /* (null) in Sources */ = {isa = PBXBuildFile; };
>>>>>>> develop
45A416062A9943D50030E2C7 /* Lottie in Frameworks */ = {isa = PBXBuildFile; productRef = 45A416052A9943D50030E2C7 /* Lottie */; };
45A416082A9943D50030E2C7 /* RequestOperation in Frameworks */ = {isa = PBXBuildFile; productRef = 45A416072A9943D50030E2C7 /* RequestOperation */; };
45A4160C2A9943D50030E2C7 /* YouTubeiOSPlayerHelper in Frameworks */ = {isa = PBXBuildFile; productRef = 45A4160B2A9943D50030E2C7 /* YouTubeiOSPlayerHelper */; };
Expand All @@ -27,15 +32,15 @@
45AD217F2593ABC800A096A0 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = 45AD217E2593ABC800A096A0 /* README.md */; };
45AF5BF82DBBF87E0059FF55 /* FirebaseMessaging in Frameworks */ = {isa = PBXBuildFile; productRef = 45AF5BF72DBBF87E0059FF55 /* FirebaseMessaging */; };
45B0F6A72DBBCC300011FF1D /* FirebaseMessaging in Frameworks */ = {isa = PBXBuildFile; productRef = 45B0F6A62DBBCC300011FF1D /* FirebaseMessaging */; };
45B6480925E581660098BAF1 /* (null) in Sources */ = {isa = PBXBuildFile; };
45B6480A25E581660098BAF1 /* (null) in Resources */ = {isa = PBXBuildFile; };
45B6480B25E581660098BAF1 /* (null) in Sources */ = {isa = PBXBuildFile; };
45B6480C25E581660098BAF1 /* (null) in Sources */ = {isa = PBXBuildFile; };
45B6481625E58ECC0098BAF1 /* (null) in Sources */ = {isa = PBXBuildFile; };
45B6482025E58EE70098BAF1 /* (null) in Sources */ = {isa = PBXBuildFile; };
45B6482825E593110098BAF1 /* (null) in Sources */ = {isa = PBXBuildFile; };
45B6482925E593110098BAF1 /* (null) in Resources */ = {isa = PBXBuildFile; };
45B6482A25E593110098BAF1 /* (null) in Sources */ = {isa = PBXBuildFile; };
45B6480925E581660098BAF1 /* BuildFile in Sources */ = {isa = PBXBuildFile; };
45B6480A25E581660098BAF1 /* BuildFile in Resources */ = {isa = PBXBuildFile; };
45B6480B25E581660098BAF1 /* BuildFile in Sources */ = {isa = PBXBuildFile; };
45B6480C25E581660098BAF1 /* BuildFile in Sources */ = {isa = PBXBuildFile; };
45B6481625E58ECC0098BAF1 /* BuildFile in Sources */ = {isa = PBXBuildFile; };
45B6482025E58EE70098BAF1 /* BuildFile in Sources */ = {isa = PBXBuildFile; };
45B6482825E593110098BAF1 /* BuildFile in Sources */ = {isa = PBXBuildFile; };
45B6482925E593110098BAF1 /* BuildFile in Resources */ = {isa = PBXBuildFile; };
45B6482A25E593110098BAF1 /* BuildFile in Sources */ = {isa = PBXBuildFile; };
45CF09702784B910007F13D3 /* RequestOperation in Frameworks */ = {isa = PBXBuildFile; productRef = 45CF096F2784B910007F13D3 /* RequestOperation */; };
45D40C6B2A5315D500E8E4AE /* Fuzi in Frameworks */ = {isa = PBXBuildFile; productRef = 45D40C6A2A5315D500E8E4AE /* Fuzi */; };
45D48C8629F81324004E92B1 /* SocialAuthentication in Frameworks */ = {isa = PBXBuildFile; productRef = 45D48C8529F81324004E92B1 /* SocialAuthentication */; };
Expand Down Expand Up @@ -230,6 +235,8 @@
};
45F7F2952E54984600F854AE /* TestPlans */ = {
isa = PBXFileSystemSynchronizedRootGroup;
exceptions = (
);
path = TestPlans;
sourceTree = "<group>";
};
Expand Down Expand Up @@ -634,9 +641,14 @@
buildActionMask = 2147483647;
files = (
D1838479257E86B3004F5674 /* container in Resources */,
45B6482925E593110098BAF1 /* (null) in Resources */,
45B6482925E593110098BAF1 /* BuildFile in Resources */,
45AD217F2593ABC800A096A0 /* README.md in Resources */,
<<<<<<< HEAD
4F0CCC1F1EE73E9D00AE4E45 /* Podfile in Resources */,
45B6480A25E581660098BAF1 /* BuildFile in Resources */,
=======
45B6480A25E581660098BAF1 /* (null) in Resources */,
>>>>>>> develop
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand All @@ -650,6 +662,66 @@
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
<<<<<<< HEAD
17231C6B7DDAC7A166F9C69F /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-godtoolsTests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
200BFD1DAA90A6ADFADFF5CD /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-godtools-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
2D5EA523440839626249CDB4 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-godtoolsUITests/Pods-godtoolsUITests-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-godtoolsUITests/Pods-godtoolsUITests-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-godtoolsUITests/Pods-godtoolsUITests-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
=======
>>>>>>> develop
451C8B7628AEC6AD00E98AFA /* Download Initial Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 8;
Expand Down Expand Up @@ -709,6 +781,65 @@
shellPath = /bin/sh;
shellScript = "\"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run\"\n";
};
<<<<<<< HEAD
4B8471B7294A512B41CD5919 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-godtoolsUITests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
7A035592B08A8E100C0CD795 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-godtools/Pods-godtools-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-godtools/Pods-godtools-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-godtools/Pods-godtools-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
CD25C11DF6C494453DB97F93 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-godtoolsTests/Pods-godtoolsTests-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-godtoolsTests/Pods-godtoolsTests-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-godtoolsTests/Pods-godtoolsTests-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
=======
>>>>>>> develop
/* End PBXShellScriptBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
Expand All @@ -730,15 +861,15 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
459C56D225FF954F00F15967 /* (null) in Sources */,
45B6481625E58ECC0098BAF1 /* (null) in Sources */,
45B6480B25E581660098BAF1 /* (null) in Sources */,
45B6482025E58EE70098BAF1 /* (null) in Sources */,
45B6480925E581660098BAF1 /* (null) in Sources */,
459C56D325FF954F00F15967 /* (null) in Sources */,
45B6482A25E593110098BAF1 /* (null) in Sources */,
45B6480C25E581660098BAF1 /* (null) in Sources */,
45B6482825E593110098BAF1 /* (null) in Sources */,
459C56D225FF954F00F15967 /* BuildFile in Sources */,
45B6481625E58ECC0098BAF1 /* BuildFile in Sources */,
45B6480B25E581660098BAF1 /* BuildFile in Sources */,
45B6482025E58EE70098BAF1 /* BuildFile in Sources */,
45B6480925E581660098BAF1 /* BuildFile in Sources */,
459C56D325FF954F00F15967 /* BuildFile in Sources */,
45B6482A25E593110098BAF1 /* BuildFile in Sources */,
45B6480C25E581660098BAF1 /* BuildFile in Sources */,
45B6482825E593110098BAF1 /* BuildFile in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,16 @@ class MobileContentRendererManifestResourcesCache {

return FileCacheLocation(relativeUrlString: localName)
}


func getRootDirectory() -> URL? {
switch resourcesFileCache.getRootDirectory() {
case .success(let dir):
return dir
case .failure( _):
return nil
}
}

func getFile(resource: Resource) -> Result<URL, Error> {

guard let location = getSHA256FileLocation(resource: resource) else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,11 @@ extension MobileContentMultiSelectOptionViewModel {
func multiSelectOptionTapped() {

multiSelectOptionModel.toggleSelected(ctx: renderedPageContext.rendererState)
<<<<<<< HEAD

=======

>>>>>>> develop
mobileContentAnalytics.trackEvents(events: multiSelectOptionModel.getAnalyticsEvents(type: .clicked), renderedPageContext: renderedPageContext)
}
}
Loading
Loading