Skip to content

Commit 4fa3bdb

Browse files
authored
Native SwiftUI Interface (#34)
* first pass, functional file list * fix hidden toolbar on iphone * huge changes * initial setup fixes * fix user info showing * more functionality, unified preview * album list, short list, more context menu, zoomable preview * Basic websocket and ws toast functionality * delete support and unified context menu * private toggle func and file status icons * Fix private/password previews * adds file password functionality * fix raw links * file rename support * use the correct method of renaming * settings, fixes new app setup flow, thumbs, refinements * stray comma * better image preview, and code syntax highlighting * more ui improvements and preview fixes * upload sheet fix, in app uploads * major improvements * list visual fixes, and stop refresh after preview * stupid encryption thing keeps resetting * improve auth fail handling, login flow * fix nav stack for changing servers, make shorts copy * image caching and short creator * split out image cache * create album functionality, api cleanup * file info * tweaks to list and previews * hookup creator functions, album delete, misc fixes * audio preview support, camera capture, minor tweaks * set album on upload * fixes to audio preview * file preview detail support, attempt fixing info plist * better file info and swipe to delete files * fix * misc fixes and cleanup * better login flow * preview improvements and thumbnail long press preview * fix context open preview * file preview improvements * empty list adjustments * minor tweaks to loading * fix crash for album views after server change * add qr code auth * preview improvements * dupe auth prevention using qr * ton of misc little fixes * preview refactor, fix tab views and server selection,notify on login * misc fixes and onboarding screen * fix albums fetch issue, preview refinements, misc fixes * make share sheet from preview better * fix deeplink auth cookies, tab selection, old deeplinks * delete and rename hooked up for live updates, list and preview * fix the rest of the context menu and live updates * firebase setup * fix text field not hidden with non text sharing sheet * rename websocket handler * fix share sheet crash on ipad from preview * major preview refinement, and login flow fixes * fix json support * update readme * stupid gh runner is failing tests that pass locally * just disable all ui tests for now * readd the function to clear app data for tests * this is getting old * fix main actor and remove test launch performance * attempt to disable firebase in tests * another attempt to disable firebase * add google services to test run
1 parent 94e7543 commit 4fa3bdb

Some content is hidden

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

41 files changed

+6091
-426
lines changed

.github/workflows/publish.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ jobs:
3636
with:
3737
ssh-private-key: ${{ secrets.SSH_KEY }}
3838

39+
- name: "Google Services File"
40+
run: |
41+
echo "${{ secrets.GOOGLE_SERVICES }}" | base64 --decode > "Django Files/GoogleService-Info.plist"
42+
3943
- name: "Fastlane ${{ env.command }}"
4044
run: fastlane ${{ env.command }}
4145
env:

.github/workflows/tests.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ jobs:
2929
with:
3030
ssh-private-key: ${{ secrets.SSH_KEY }}
3131

32+
- name: "Google Services File"
33+
run: |
34+
echo "${{ secrets.GOOGLE_SERVICES }}" | base64 --decode > "Django Files/GoogleService-Info.plist"
35+
3236
- name: "Fastlane Tests"
3337
run: fastlane tests
3438
env:

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,6 @@ xcuserdata/
1616
.DS_Store
1717
report.xml
1818
report.html
19-
report.junit
19+
report.junit
20+
21+
GoogleService-Info.plist

Django Files.xcodeproj/project.pbxproj

Lines changed: 51 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
4CA2E48A2D6D49D6006EF3F0 /* HTTPTypes in Frameworks */ = {isa = PBXBuildFile; productRef = 4CA2E4892D6D49D6006EF3F0 /* HTTPTypes */; };
1414
4CA2E48C2D6D49D6006EF3F0 /* HTTPTypesFoundation in Frameworks */ = {isa = PBXBuildFile; productRef = 4CA2E48B2D6D49D6006EF3F0 /* HTTPTypesFoundation */; };
1515
4CE57E8B2D7C9F440073CFC1 /* SnapshotHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CE57E8A2D7C9F440073CFC1 /* SnapshotHelper.swift */; };
16+
A21CC8852DEB967300EF776C /* FirebaseAnalytics in Frameworks */ = {isa = PBXBuildFile; productRef = A21CC8842DEB967300EF776C /* FirebaseAnalytics */; };
17+
A21CC88B2DEB991100EF776C /* FirebaseCrashlytics in Frameworks */ = {isa = PBXBuildFile; productRef = A21CC88A2DEB991100EF776C /* FirebaseCrashlytics */; };
18+
A2DF11D52DDA13FE0096E7C4 /* HighlightSwift in Frameworks */ = {isa = PBXBuildFile; productRef = A2DF11D42DDA13FE0096E7C4 /* HighlightSwift */; };
1619
/* End PBXBuildFile section */
1720

1821
/* Begin PBXContainerItemProxy section */
@@ -79,11 +82,14 @@
7982
4CA2E47D2D6D22CA006EF3F0 /* Exceptions for "Django Files" folder in "UploadAndCopy" target */ = {
8083
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
8184
membershipExceptions = (
85+
API/Albums.swift,
8286
API/DFAPI.swift,
8387
API/Error.swift,
88+
API/Files.swift,
8489
API/Short.swift,
8590
API/Stats.swift,
8691
API/Upload.swift,
92+
API/Websocket.swift,
8793
Models/DjangoFilesSession.swift,
8894
);
8995
target = 4C82CB7E2D624E8700C0893B /* UploadAndCopy */;
@@ -125,7 +131,10 @@
125131
isa = PBXFrameworksBuildPhase;
126132
buildActionMask = 2147483647;
127133
files = (
134+
A2DF11D52DDA13FE0096E7C4 /* HighlightSwift in Frameworks */,
128135
4C82CB512D62372200C0893B /* HTTPTypes in Frameworks */,
136+
A21CC88B2DEB991100EF776C /* FirebaseCrashlytics in Frameworks */,
137+
A21CC8852DEB967300EF776C /* FirebaseAnalytics in Frameworks */,
129138
4C82CB532D62372200C0893B /* HTTPTypesFoundation in Frameworks */,
130139
);
131140
runOnlyForDeploymentPostprocessing = 0;
@@ -211,6 +220,9 @@
211220
packageProductDependencies = (
212221
4C82CB502D62372200C0893B /* HTTPTypes */,
213222
4C82CB522D62372200C0893B /* HTTPTypesFoundation */,
223+
A2DF11D42DDA13FE0096E7C4 /* HighlightSwift */,
224+
A21CC8842DEB967300EF776C /* FirebaseAnalytics */,
225+
A21CC88A2DEB991100EF776C /* FirebaseCrashlytics */,
214226
);
215227
productName = "Django Files";
216228
productReference = 4C5E20EC2D603C3B009EE83A /* Django Files.app */;
@@ -324,6 +336,8 @@
324336
packageReferences = (
325337
4C82CB4F2D62372200C0893B /* XCRemoteSwiftPackageReference "swift-http-types" */,
326338
4CE57E892D7C9EB70073CFC1 /* XCRemoteSwiftPackageReference "fastlane" */,
339+
A2DF11D32DDA12CA0096E7C4 /* XCRemoteSwiftPackageReference "highlightswift" */,
340+
A21CC8832DEB950C00EF776C /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */,
327341
);
328342
preferredProjectObjectVersion = 77;
329343
productRefGroup = 4C5E20ED2D603C3B009EE83A /* Products */;
@@ -445,7 +459,7 @@
445459
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "This lets you save or upload photos to your Django Files";
446460
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
447461
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
448-
INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait;
462+
INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait";
449463
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown";
450464
LD_RUNPATH_SEARCH_PATHS = (
451465
"$(inherited)",
@@ -491,7 +505,7 @@
491505
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "This lets you save or upload photos to your Django Files";
492506
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
493507
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
494-
INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait;
508+
INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait";
495509
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown";
496510
LD_RUNPATH_SEARCH_PATHS = (
497511
"$(inherited)",
@@ -564,7 +578,7 @@
564578
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
565579
GCC_WARN_UNUSED_FUNCTION = YES;
566580
GCC_WARN_UNUSED_VARIABLE = YES;
567-
IPHONEOS_DEPLOYMENT_TARGET = 18.2;
581+
IPHONEOS_DEPLOYMENT_TARGET = 18.0;
568582
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
569583
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
570584
MTL_FAST_MATH = YES;
@@ -621,7 +635,7 @@
621635
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
622636
GCC_WARN_UNUSED_FUNCTION = YES;
623637
GCC_WARN_UNUSED_VARIABLE = YES;
624-
IPHONEOS_DEPLOYMENT_TARGET = 18.2;
638+
IPHONEOS_DEPLOYMENT_TARGET = 18.0;
625639
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
626640
MTL_ENABLE_DEBUG_INFO = NO;
627641
MTL_FAST_MATH = YES;
@@ -639,7 +653,7 @@
639653
CURRENT_PROJECT_VERSION = 0;
640654
DEVELOPMENT_TEAM = ZY6BPTGK47;
641655
GENERATE_INFOPLIST_FILE = YES;
642-
IPHONEOS_DEPLOYMENT_TARGET = 18.2;
656+
IPHONEOS_DEPLOYMENT_TARGET = 18.0;
643657
MARKETING_VERSION = 0.0;
644658
PRODUCT_BUNDLE_IDENTIFIER = blastsoftstudios.djangofilesTests;
645659
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -658,7 +672,7 @@
658672
CURRENT_PROJECT_VERSION = 0;
659673
DEVELOPMENT_TEAM = ZY6BPTGK47;
660674
GENERATE_INFOPLIST_FILE = YES;
661-
IPHONEOS_DEPLOYMENT_TARGET = 18.2;
675+
IPHONEOS_DEPLOYMENT_TARGET = 18.0;
662676
MARKETING_VERSION = 0.0;
663677
PRODUCT_BUNDLE_IDENTIFIER = blastsoftstudios.djangofilesTests;
664678
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -848,6 +862,22 @@
848862
minimumVersion = 2.226.0;
849863
};
850864
};
865+
A21CC8832DEB950C00EF776C /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */ = {
866+
isa = XCRemoteSwiftPackageReference;
867+
repositoryURL = "https://github.com/firebase/firebase-ios-sdk";
868+
requirement = {
869+
kind = upToNextMajorVersion;
870+
minimumVersion = 11.13.0;
871+
};
872+
};
873+
A2DF11D32DDA12CA0096E7C4 /* XCRemoteSwiftPackageReference "highlightswift" */ = {
874+
isa = XCRemoteSwiftPackageReference;
875+
repositoryURL = "https://github.com/appstefan/highlightswift";
876+
requirement = {
877+
kind = upToNextMajorVersion;
878+
minimumVersion = 1.0.9;
879+
};
880+
};
851881
/* End XCRemoteSwiftPackageReference section */
852882

853883
/* Begin XCSwiftPackageProductDependency section */
@@ -871,6 +901,21 @@
871901
package = 4C82CB4F2D62372200C0893B /* XCRemoteSwiftPackageReference "swift-http-types" */;
872902
productName = HTTPTypesFoundation;
873903
};
904+
A21CC8842DEB967300EF776C /* FirebaseAnalytics */ = {
905+
isa = XCSwiftPackageProductDependency;
906+
package = A21CC8832DEB950C00EF776C /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
907+
productName = FirebaseAnalytics;
908+
};
909+
A21CC88A2DEB991100EF776C /* FirebaseCrashlytics */ = {
910+
isa = XCSwiftPackageProductDependency;
911+
package = A21CC8832DEB950C00EF776C /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
912+
productName = FirebaseCrashlytics;
913+
};
914+
A2DF11D42DDA13FE0096E7C4 /* HighlightSwift */ = {
915+
isa = XCSwiftPackageProductDependency;
916+
package = A2DF11D32DDA12CA0096E7C4 /* XCRemoteSwiftPackageReference "highlightswift" */;
917+
productName = HighlightSwift;
918+
};
874919
/* End XCSwiftPackageProductDependency section */
875920
};
876921
rootObject = 4C5E20E42D603C3B009EE83A /* Project object */;

Django Files.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

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

0 commit comments

Comments
 (0)