Skip to content

Commit 5371905

Browse files
committed
Merge branch 'release/2.4.4'
2 parents 731ab63 + f26d325 commit 5371905

File tree

139 files changed

+927
-346
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

139 files changed

+927
-346
lines changed

.github/workflows/build.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@ jobs:
2424
./Scripts/process.sh
2525
exit $?
2626
- name: Create CloudAccessSecrets
27-
run: ./create-cloud-access-secrets-file.sh
27+
run: |
28+
cd fastlane
29+
./scripts/create-cloud-access-secrets.sh
2830
- name: Build
2931
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild clean build-for-testing -scheme 'AllTests' -destination "name=$DEVICE" -derivedDataPath $DERIVED_DATA_PATH -enableCodeCoverage YES | xcpretty
3032
- name: Test

Cryptomator.xcodeproj/project.pbxproj

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
4A09E54E27071F4F0056D32A /* ErrorMapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A09E54D27071F4F0056D32A /* ErrorMapper.swift */; };
2222
4A0C07E225AC80C100B83211 /* UIView+Preview.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A0C07E125AC80C100B83211 /* UIView+Preview.swift */; };
2323
4A0C07EB25AC832900B83211 /* VaultListPosition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A0C07EA25AC832900B83211 /* VaultListPosition.swift */; };
24+
4A0EAAD2296F604200E27B56 /* SessionTaskRegistratorMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A0EAAD1296F604200E27B56 /* SessionTaskRegistratorMock.swift */; };
2425
4A123EA824BEF5F0001D1CF7 /* CloudProviderPaginationMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A123EA724BEF5F0001D1CF7 /* CloudProviderPaginationMock.swift */; };
2526
4A136124276767D60077EB7F /* Snapshots.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A136123276767D60077EB7F /* Snapshots.swift */; };
2627
4A13612D276768000077EB7F /* SnapshotHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A13612C276768000077EB7F /* SnapshotHelper.swift */; };
@@ -190,6 +191,7 @@
190191
4A717CD924C835740048E08F /* ReparentTaskManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A717CD824C835740048E08F /* ReparentTaskManagerTests.swift */; };
191192
4A74337A28B3E3AB00AECD21 /* WebDAVAuthentication.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A74337928B3E3AB00AECD21 /* WebDAVAuthentication.swift */; };
192193
4A74DBB1282132EC00A332C4 /* FileProviderAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A74DBB0282132EC00A332C4 /* FileProviderAction.swift */; };
194+
4A7514A12937F777002E802E /* SessionTaskRegistrator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A7514A02937F777002E802E /* SessionTaskRegistrator.swift */; };
193195
4A753DB92678A226005F79C1 /* OpenExistingLegacyVaultPasswordViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A753DB82678A226005F79C1 /* OpenExistingLegacyVaultPasswordViewModel.swift */; };
194196
4A773907286D86C20006B3C3 /* S3AuthenticationViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A773906286D86C20006B3C3 /* S3AuthenticationViewModel.swift */; };
195197
4A773909286D87AB0006B3C3 /* S3AuthenticationViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A773908286D87AB0006B3C3 /* S3AuthenticationViewModelTests.swift */; };
@@ -545,6 +547,7 @@
545547
4A09E54D27071F4F0056D32A /* ErrorMapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ErrorMapper.swift; sourceTree = "<group>"; };
546548
4A0C07E125AC80C100B83211 /* UIView+Preview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIView+Preview.swift"; sourceTree = "<group>"; };
547549
4A0C07EA25AC832900B83211 /* VaultListPosition.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VaultListPosition.swift; sourceTree = "<group>"; };
550+
4A0EAAD1296F604200E27B56 /* SessionTaskRegistratorMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionTaskRegistratorMock.swift; sourceTree = "<group>"; };
548551
4A123EA724BEF5F0001D1CF7 /* CloudProviderPaginationMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CloudProviderPaginationMock.swift; sourceTree = "<group>"; };
549552
4A136121276767D60077EB7F /* Snapshots.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Snapshots.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
550553
4A136123276767D60077EB7F /* Snapshots.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Snapshots.swift; sourceTree = "<group>"; };
@@ -715,6 +718,7 @@
715718
4A717CD824C835740048E08F /* ReparentTaskManagerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReparentTaskManagerTests.swift; sourceTree = "<group>"; };
716719
4A74337928B3E3AB00AECD21 /* WebDAVAuthentication.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebDAVAuthentication.swift; sourceTree = "<group>"; };
717720
4A74DBB0282132EC00A332C4 /* FileProviderAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileProviderAction.swift; sourceTree = "<group>"; };
721+
4A7514A02937F777002E802E /* SessionTaskRegistrator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionTaskRegistrator.swift; sourceTree = "<group>"; };
718722
4A753DB82678A226005F79C1 /* OpenExistingLegacyVaultPasswordViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenExistingLegacyVaultPasswordViewModel.swift; sourceTree = "<group>"; };
719723
4A753FBB2832A371006A9C3F /* CryptomatorIntents.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = CryptomatorIntents.entitlements; sourceTree = "<group>"; };
720724
4A773906286D86C20006B3C3 /* S3AuthenticationViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = S3AuthenticationViewModel.swift; sourceTree = "<group>"; };
@@ -1716,6 +1720,7 @@
17161720
4AA782E3282A9007001A71E3 /* NSFileProviderDomainProviderMock.swift */,
17171721
4AEECD3A279EB24300C6E2B5 /* NSFileProviderEnumerationObserverMock.swift */,
17181722
4AFBFA172829414A00E30818 /* ProgressManagerMock.swift */,
1723+
4A0EAAD1296F604200E27B56 /* SessionTaskRegistratorMock.swift */,
17191724
4ADC66C627A95E67002E6CC7 /* UnlockMonitorTaskExecutorMock.swift */,
17201725
4AAD444627E26D1800D16707 /* UploadTaskManagerMock.swift */,
17211726
4AEECD30279EA50D00C6E2B5 /* WorkingSetObservingMock.swift */,
@@ -1893,6 +1898,7 @@
18931898
4AEE6EE92825716400E1B35E /* ProgressManager.swift */,
18941899
4AC1157527F5BD890023F51B /* Promise+AllIgnoringResult.swift */,
18951900
4ADD233F26737CD400374E4E /* RootFileProviderItem.swift */,
1901+
4A7514A02937F777002E802E /* SessionTaskRegistrator.swift */,
18961902
4ADC66C027A7F426002E6CC7 /* UnlockMonitor.swift */,
18971903
740375F52587AEB50023FF53 /* URL+NameCollisionExtension.swift */,
18981904
4A74DBAF2821312200A332C4 /* Actions */,
@@ -2050,8 +2056,6 @@
20502056
4A136128276767D60077EB7F /* PBXTargetDependency */,
20512057
);
20522058
name = Snapshots;
2053-
packageProductDependencies = (
2054-
);
20552059
productName = Snapshots;
20562060
productReference = 4A136121276767D60077EB7F /* Snapshots.xctest */;
20572061
productType = "com.apple.product-type.bundle.ui-testing";
@@ -2302,8 +2306,8 @@
23022306
);
23032307
mainGroup = 4A5E5B202453119100BD6298;
23042308
packageReferences = (
2305-
4A1521E227C55EA2006C96B2 /* XCRemoteSwiftPackageReference "TPInAppReceipt" */,
2306-
4AED9A6D286B38D900352951 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */,
2309+
4A1521E227C55EA2006C96B2 /* XCRemoteSwiftPackageReference "TPInAppReceipt.git" */,
2310+
4AED9A6D286B38D900352951 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect.git" */,
23072311
);
23082312
productRefGroup = 4A5E5B2A2453119100BD6298 /* Products */;
23092313
projectDirPath = "";
@@ -2434,7 +2438,7 @@
24342438
);
24352439
runOnlyForDeploymentPostprocessing = 0;
24362440
shellPath = /bin/sh;
2437-
shellScript = "if [ -f ./.cloud-access-secrets.sh ]; then\n source ./.cloud-access-secrets.sh\nelse\n echo \"warning: .cloud-access-secrets.sh could not be found, please see README for instructions\"\nfi\n/usr/libexec/PlistBuddy -c \"Add :CFBundleURLTypes:1:CFBundleURLSchemes:0 string db-${DROPBOX_APP_KEY}\" \"${TARGET_BUILD_DIR}/${INFOPLIST_PATH}\"\n/usr/libexec/PlistBuddy -c \"Add :CFBundleURLTypes:1:CFBundleURLSchemes:1 string ${GOOGLE_DRIVE_REDIRECT_URL_SCHEME}\" \"${TARGET_BUILD_DIR}/${INFOPLIST_PATH}\"\n/usr/libexec/PlistBuddy -c \"Add :CFBundleURLTypes:1:CFBundleURLSchemes:2 string ${ONEDRIVE_REDIRECT_URI_SCHEME}\" \"${TARGET_BUILD_DIR}/${INFOPLIST_PATH}\"\necho \"Updated ${TARGET_BUILD_DIR}/${INFOPLIST_PATH} by adding URL schemes\"\n";
2441+
shellScript = "if [ -f ./fastlane/scripts/.cloud-access-secrets.sh ]; then\n source ./fastlane/scripts/.cloud-access-secrets.sh \"${CONFIG_NAME}\"\nelse\n echo \"warning: .cloud-access-secrets.sh could not be found, please see README for instructions\"\nfi\n/usr/libexec/PlistBuddy -c \"Add :CFBundleURLTypes:1:CFBundleURLSchemes:0 string db-${DROPBOX_APP_KEY}\" \"${TARGET_BUILD_DIR}/${INFOPLIST_PATH}\"\n/usr/libexec/PlistBuddy -c \"Add :CFBundleURLTypes:1:CFBundleURLSchemes:1 string ${GOOGLE_DRIVE_REDIRECT_URL_SCHEME}\" \"${TARGET_BUILD_DIR}/${INFOPLIST_PATH}\"\n/usr/libexec/PlistBuddy -c \"Add :CFBundleURLTypes:1:CFBundleURLSchemes:2 string ${ONEDRIVE_REDIRECT_URI_SCHEME}\" \"${TARGET_BUILD_DIR}/${INFOPLIST_PATH}\"\necho \"Updated ${TARGET_BUILD_DIR}/${INFOPLIST_PATH} by adding URL schemes\"\n";
24382442
};
24392443
742595D72552EE0000A8A008 /* Set Build Number */ = {
24402444
isa = PBXShellScriptBuildPhase;
@@ -2564,6 +2568,7 @@
25642568
4AA782E4282A9007001A71E3 /* NSFileProviderDomainProviderMock.swift in Sources */,
25652569
4A9C8DFD27A007C2000063E4 /* FileProviderNotificatorTests.swift in Sources */,
25662570
4AB1C325265CE69700DC7A49 /* DownloadTaskExecutorTests.swift in Sources */,
2571+
4A0EAAD2296F604200E27B56 /* SessionTaskRegistratorMock.swift in Sources */,
25672572
4AEECD3B279EB24300C6E2B5 /* NSFileProviderEnumerationObserverMock.swift in Sources */,
25682573
4A8F149C266A29E400ADBCE4 /* OnlineItemNameCollisionHandlerTests.swift in Sources */,
25692574
4A8F14A2266A302A00ADBCE4 /* FileProviderAdapterTestCase.swift in Sources */,
@@ -2925,6 +2930,7 @@
29252930
4AB1D4EC27D0E027009060AB /* LocalURLProviderType.swift in Sources */,
29262931
4A511D4E2660FF9E000A0E01 /* WorkflowScheduler.swift in Sources */,
29272932
4AD9481A2909A66900072110 /* MaintenanceModeHelperServiceSource.swift in Sources */,
2933+
4A7514A12937F777002E802E /* SessionTaskRegistrator.swift in Sources */,
29282934
4A2482352671110A002D9F59 /* DBManagerError.swift in Sources */,
29292935
4AA2531B28216E45003B45EE /* ServiceSource.swift in Sources */,
29302936
4A2060D5279AF67C00DA6C62 /* WorkingSetObserver.swift in Sources */,
@@ -2970,7 +2976,7 @@
29702976
};
29712977
4A9172722619F16C003C4043 /* PBXTargetDependency */ = {
29722978
isa = PBXTargetDependency;
2973-
productRef = 4A9172712619F16C003C4043 /* CryptomatorCommonCore */;
2979+
productRef = 4A9172712619F16C003C4043;
29742980
};
29752981
4A9BED69268F379300721BAA /* PBXTargetDependency */ = {
29762982
isa = PBXTargetDependency;
@@ -3254,7 +3260,7 @@
32543260
GCC_WARN_UNUSED_FUNCTION = YES;
32553261
GCC_WARN_UNUSED_VARIABLE = YES;
32563262
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
3257-
MARKETING_VERSION = 2.4.3;
3263+
MARKETING_VERSION = 2.4.4;
32583264
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
32593265
MTL_FAST_MATH = YES;
32603266
ONLY_ACTIVE_ARCH = YES;
@@ -3316,7 +3322,7 @@
33163322
GCC_WARN_UNUSED_FUNCTION = YES;
33173323
GCC_WARN_UNUSED_VARIABLE = YES;
33183324
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
3319-
MARKETING_VERSION = 2.4.3;
3325+
MARKETING_VERSION = 2.4.4;
33203326
MTL_ENABLE_DEBUG_INFO = NO;
33213327
MTL_FAST_MATH = YES;
33223328
OTHER_SWIFT_FLAGS = "-Xfrontend -warn-long-expression-type-checking=200 -Xfrontend -warn-long-function-bodies=200";
@@ -3424,7 +3430,6 @@
34243430
GENERATE_INFOPLIST_FILE = YES;
34253431
INFOPLIST_FILE = CryptomatorIntents/Info.plist;
34263432
INFOPLIST_KEY_CFBundleDisplayName = CryptomatorIntents;
3427-
INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2022 Skymatic GmbH. All rights reserved.";
34283433
LD_RUNPATH_SEARCH_PATHS = (
34293434
"$(inherited)",
34303435
"@executable_path/Frameworks",
@@ -3448,7 +3453,6 @@
34483453
GENERATE_INFOPLIST_FILE = YES;
34493454
INFOPLIST_FILE = CryptomatorIntents/Info.plist;
34503455
INFOPLIST_KEY_CFBundleDisplayName = CryptomatorIntents;
3451-
INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2022 Skymatic GmbH. All rights reserved.";
34523456
LD_RUNPATH_SEARCH_PATHS = (
34533457
"$(inherited)",
34543458
"@executable_path/Frameworks",
@@ -3656,15 +3660,15 @@
36563660
/* End XCConfigurationList section */
36573661

36583662
/* Begin XCRemoteSwiftPackageReference section */
3659-
4A1521E227C55EA2006C96B2 /* XCRemoteSwiftPackageReference "TPInAppReceipt" */ = {
3663+
4A1521E227C55EA2006C96B2 /* XCRemoteSwiftPackageReference "TPInAppReceipt.git" */ = {
36603664
isa = XCRemoteSwiftPackageReference;
36613665
repositoryURL = "https://github.com/tikhop/TPInAppReceipt.git";
36623666
requirement = {
36633667
kind = upToNextMinorVersion;
36643668
minimumVersion = 3.3.0;
36653669
};
36663670
};
3667-
4AED9A6D286B38D900352951 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */ = {
3671+
4AED9A6D286B38D900352951 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect.git" */ = {
36683672
isa = XCRemoteSwiftPackageReference;
36693673
repositoryURL = "https://github.com/siteline/SwiftUI-Introspect.git";
36703674
requirement = {
@@ -3677,17 +3681,13 @@
36773681
/* Begin XCSwiftPackageProductDependency section */
36783682
4A1521E327C55EA2006C96B2 /* TPInAppReceipt */ = {
36793683
isa = XCSwiftPackageProductDependency;
3680-
package = 4A1521E227C55EA2006C96B2 /* XCRemoteSwiftPackageReference "TPInAppReceipt" */;
3684+
package = 4A1521E227C55EA2006C96B2 /* XCRemoteSwiftPackageReference "TPInAppReceipt.git" */;
36813685
productName = TPInAppReceipt;
36823686
};
36833687
4A33092C282EC23400876A3E /* CryptomatorCommonCore */ = {
36843688
isa = XCSwiftPackageProductDependency;
36853689
productName = CryptomatorCommonCore;
36863690
};
3687-
4A9172712619F16C003C4043 /* CryptomatorCommonCore */ = {
3688-
isa = XCSwiftPackageProductDependency;
3689-
productName = CryptomatorCommonCore;
3690-
};
36913691
4A9172812619F17C003C4043 /* CryptomatorCommon */ = {
36923692
isa = XCSwiftPackageProductDependency;
36933693
productName = CryptomatorCommon;
@@ -3698,7 +3698,7 @@
36983698
};
36993699
4AED9A6E286B38DA00352951 /* Introspect */ = {
37003700
isa = XCSwiftPackageProductDependency;
3701-
package = 4AED9A6D286B38D900352951 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */;
3701+
package = 4AED9A6D286B38D900352951 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect.git" */;
37023702
productName = Introspect;
37033703
};
37043704
/* End XCSwiftPackageProductDependency section */

Cryptomator.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cryptomator/AddVault/AddVaultCoordinator.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ class AddVaultCoordinator: Coordinator {
7676
}
7777

7878
private func isAllowedToCreateNewVault() -> Bool {
79-
return UserDefaultsFullVersionChecker.shared.isFullVersion
79+
return GlobalFullVersionChecker.default.isFullVersion
8080
}
8181
}
8282

Cryptomator/AppDelegate.swift

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
2525
// Set up logger
2626
LoggerSetup.oneTimeSetup()
2727

28+
// Set up IAP Checker
29+
setupIAP()
30+
2831
// Set up database
2932
guard let dbURL = CryptomatorDatabase.sharedDBURL else {
3033
// MARK: Handle error
@@ -137,4 +140,15 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
137140
DDLogError("Clean up unused WebDAV Credentials failed with error: \(error)")
138141
}
139142
}
143+
144+
private func setupIAP() {
145+
#if ALWAYS_PREMIUM
146+
DDLogDebug("Always activated premium")
147+
GlobalFullVersionChecker.default = AlwaysActivatedPremium.default
148+
CryptomatorUserDefaults.shared.fullVersionUnlocked = true
149+
#else
150+
DDLogDebug("Freemium version")
151+
GlobalFullVersionChecker.default = UserDefaultsFullVersionChecker.default
152+
#endif
153+
}
140154
}

Cryptomator/Info.plist

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
<dict>
55
<key>CFBundleDevelopmentRegion</key>
66
<string>$(DEVELOPMENT_LANGUAGE)</string>
7+
<key>CFBundleDisplayName</key>
8+
<string>Cryptomator</string>
79
<key>CFBundleExecutable</key>
810
<string>$(EXECUTABLE_NAME)</string>
911
<key>CFBundleIdentifier</key>
@@ -63,7 +65,7 @@
6365
<string>GetFolderIntent</string>
6466
<string>IsVaultUnlockedIntent</string>
6567
<string>LockVaultIntent</string>
66-
<string>OpenVaultIntent</string>
68+
<string>OpenVaultIntent</string>
6769
<string>SaveFileIntent</string>
6870
</array>
6971
<key>UILaunchStoryboardName</key>

Cryptomator/Onboarding/OnboardingCoordinator.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class OnboardingCoordinator: Coordinator {
2525
}
2626

2727
func showIAP() {
28-
guard !UserDefaultsFullVersionChecker.shared.isFullVersion else {
28+
guard !GlobalFullVersionChecker.default.isFullVersion else {
2929
navigationController.dismiss(animated: true)
3030
return
3131
}

Cryptomator/Purchase/PremiumManager.swift

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,12 @@ protocol PremiumManagerType {
3030
}
3131

3232
class PremiumManager: PremiumManagerType {
33+
#if ALWAYS_PREMIUM
34+
static let shared = AlwaysPremiumManager()
35+
#else
3336
static let shared = PremiumManager(cryptomatorSettings: CryptomatorUserDefaults.shared)
37+
#endif
38+
3439
private var cryptomatorSettings: CryptomatorSettings
3540

3641
init(cryptomatorSettings: CryptomatorSettings) {
@@ -154,3 +159,13 @@ extension InAppReceipt {
154159
return activeAutoRenewableSubscriptionPurchases(ofProductIdentifier: productIdentifier.rawValue, forDate: date)
155160
}
156161
}
162+
163+
class AlwaysPremiumManager: PremiumManagerType {
164+
func refreshStatus() {
165+
// no-op
166+
}
167+
168+
func trialExpirationDate(for purchaseDate: Date) -> Date? {
169+
return nil
170+
}
171+
}

Cryptomator/Resources/about.html

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,26 +41,32 @@ <h2>Contribute</h2>
4141
<h2>Third-Party Dependencies</h2>
4242
<ul>
4343
<li><a href="https://github.com/openid/AppAuth-iOS">AppAuth by OpenID</a></li>
44+
<li><a href="https://github.com/tikhop/ASN1Swift">ASN1Swift by Pavel Tikhonenko</a></li>
45+
<li><a href="https://github.com/aws-amplify/aws-sdk-ios">AWSiOSSDKV2 by AWS Amplify</a></li>
4446
<li><a href="https://github.com/norio-nomura/Base32">Base32 by Norio Nomura</a></li>
4547
<li><a href="https://github.com/CocoaLumberjack/CocoaLumberjack">CocoaLumberjack by Robbie Hanson</a></li>
4648
<li><a href="https://github.com/cryptomator/cloud-access-swift">CryptomatorCloudAccess by Cryptomator</a></li>
4749
<li><a href="https://github.com/cryptomator/cryptolib-swift">CryptomatorCryptoLib by Cryptomator</a></li>
4850
<li><a href="https://github.com/google/google-api-objectivec-client-for-rest">GoogleAPIClientForREST by Google</a></li>
51+
<li><a href="https://github.com/groue/GRDB.swift">GRDB by Gwendal Roué</a></li>
4952
<li><a href="https://github.com/google/GTMAppAuth">GTMAppAuth by Google</a></li>
5053
<li><a href="https://github.com/google/gtm-session-fetcher">GTMSessionFetcher by Google</a></li>
54+
<li><a href="https://github.com/siteline/SwiftUI-Introspect">Introspect by Siteline</a></li>
5155
<li><a href="https://github.com/airsidemobile/JOSESwift">JOSESwift by Airside Mobile</a></li>
5256
<li><a href="https://github.com/AzureAD/microsoft-authentication-library-for-objc">MSAL by Microsoft</a></li>
5357
<li><a href="https://github.com/microsoftgraph/msgraph-sdk-objc-models/">MSGraphClientModels by Microsoft</a></li>
5458
<li><a href="https://github.com/microsoftgraph/msgraph-sdk-objc">MSGraphClientSDK by Microsoft</a></li>
5559
<li><a href="https://github.com/dropbox/dropbox-sdk-obj-c">ObjectiveDropboxOfficial by Dropbox</a></li>
60+
<li><a href="https://github.com/pCloud/pcloud-sdk-swift">PCloudSDKSwift by pCloud</a></li>
5661
<li><a href="https://github.com/google/promises">Promises by Google</a></li>
5762
<li><a href="https://github.com/apple/swift-log">swift-log by Apple</a></li>
63+
<li><a href="https://github.com/tikhop/TPInAppReceipt">TPInAppReceipt by Pavel Tikhonenko</a></li>
5864
</ul>
5965

6066
<h2>Disclaimer</h2>
6167
<p>THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
6268

6369
<h2>Copyright</h2>
64-
<p>© 2016 – 2022 Skymatic GmbH. All rights reserved.</p>
70+
<p>© 2016 – 2023 Skymatic GmbH. All rights reserved.</p>
6571
</body>
6672
</html>

0 commit comments

Comments
 (0)