Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,6 @@ Package.resolved

*.generated.swift
/.env-vars

## Claude Code
.claude/
2 changes: 1 addition & 1 deletion Brand/NCBrand.swift
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ final class NCBrandOptions: @unchecked Sendable {

// Info Paging
enum NCInfoPagingTab: Int, CaseIterable {
case activity, sharing
case activity, sharing, details
}

init() {
Expand Down
37 changes: 12 additions & 25 deletions Nextcloud.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,9 @@
AAFC0D0B2F9AA10000F0A001 /* NCAutoUploadCounter.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAFC0D0A2F9AA10000F0A001 /* NCAutoUploadCounter.swift */; };
AB6000012F60000100FE2775 /* NCTagEditorModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB6000002F60000100FE2775 /* NCTagEditorModel.swift */; };
AB6000032F60000200FE2775 /* NCTagEditorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB6000022F60000200FE2775 /* NCTagEditorView.swift */; };
AB7000022F70000100FE2776 /* NCShareDetailsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB7000012F70000100FE2776 /* NCShareDetailsView.swift */; };
AB7000042F70000100FE2776 /* NCShareDetailsGovernanceModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB7000032F70000100FE2776 /* NCShareDetailsGovernanceModel.swift */; };
AB7000062F70000100FE2776 /* NCGovernanceLabelSelectorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB7000052F70000100FE2776 /* NCGovernanceLabelSelectorView.swift */; };
AF1A9B6427D0CA1E00F17A9E /* UIAlertController+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF1A9B6327D0CA1E00F17A9E /* UIAlertController+Extension.swift */; };
AF1A9B6527D0CC0500F17A9E /* UIAlertController+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF1A9B6327D0CA1E00F17A9E /* UIAlertController+Extension.swift */; };
AF22B206277B4E4C00DAB0CC /* NCCreateFormUploadConflict.swift in Sources */ = {isa = PBXBuildFile; fileRef = F704B5E42430AA8000632F5F /* NCCreateFormUploadConflict.swift */; };
Expand Down Expand Up @@ -134,7 +137,6 @@
F37208A62BAB63EE006B5430 /* SwiftRichString in Frameworks */ = {isa = PBXBuildFile; productRef = F37208A52BAB63EE006B5430 /* SwiftRichString */; };
F37208AA2BAB63EE006B5430 /* MarkdownKit in Frameworks */ = {isa = PBXBuildFile; productRef = F37208A92BAB63EE006B5430 /* MarkdownKit */; };
F37208B22BAB63EF006B5430 /* DropDown in Frameworks */ = {isa = PBXBuildFile; productRef = F37208B12BAB63EF006B5430 /* DropDown */; };
F37208B42BAB63EF006B5430 /* Parchment in Frameworks */ = {isa = PBXBuildFile; productRef = F37208B32BAB63EF006B5430 /* Parchment */; };
F37208B62BAB63EF006B5430 /* EasyTipView in Frameworks */ = {isa = PBXBuildFile; productRef = F37208B52BAB63EF006B5430 /* EasyTipView */; };
F37208B82BAB63EF006B5430 /* NextcloudKit in Frameworks */ = {isa = PBXBuildFile; productRef = F37208B72BAB63EF006B5430 /* NextcloudKit */; };
F37208BA2BAB63EF006B5430 /* TLPhotoPicker in Frameworks */ = {isa = PBXBuildFile; productRef = F37208B92BAB63EF006B5430 /* TLPhotoPicker */; };
Expand Down Expand Up @@ -755,7 +757,6 @@
F7B934FE2BDCFE1E002B2FC9 /* NCDragDrop.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7B934FD2BDCFE1E002B2FC9 /* NCDragDrop.swift */; };
F7BAADCB1ED5A87C00B7EAD4 /* NCManageDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7BAADB51ED5A87C00B7EAD4 /* NCManageDatabase.swift */; };
F7BAADCC1ED5A87C00B7EAD4 /* NCManageDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7BAADB51ED5A87C00B7EAD4 /* NCManageDatabase.swift */; };
F7BB7E4727A18C56009B9F29 /* Parchment in Frameworks */ = {isa = PBXBuildFile; productRef = F7BB7E4627A18C56009B9F29 /* Parchment */; };
F7BC287E26663F6C004D46C5 /* NCViewCertificateDetails.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F7BC287D26663F6C004D46C5 /* NCViewCertificateDetails.storyboard */; };
F7BC288026663F85004D46C5 /* NCViewCertificateDetails.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7BC287F26663F85004D46C5 /* NCViewCertificateDetails.swift */; };
F7BD0A002C468925003A4A6D /* NCMedia+CollectionViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7BD09FF2C468925003A4A6D /* NCMedia+CollectionViewDataSource.swift */; };
Expand Down Expand Up @@ -1294,6 +1295,9 @@
AAFC0D0A2F9AA10000F0A001 /* NCAutoUploadCounter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NCAutoUploadCounter.swift; sourceTree = "<group>"; };
AB6000002F60000100FE2775 /* NCTagEditorModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NCTagEditorModel.swift; sourceTree = "<group>"; };
AB6000022F60000200FE2775 /* NCTagEditorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NCTagEditorView.swift; sourceTree = "<group>"; };
AB7000012F70000100FE2776 /* NCShareDetailsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NCShareDetailsView.swift; sourceTree = "<group>"; };
AB7000032F70000100FE2776 /* NCShareDetailsGovernanceModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NCShareDetailsGovernanceModel.swift; sourceTree = "<group>"; };
AB7000052F70000100FE2776 /* NCGovernanceLabelSelectorView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NCGovernanceLabelSelectorView.swift; sourceTree = "<group>"; };
AF1A9B6327D0CA1E00F17A9E /* UIAlertController+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIAlertController+Extension.swift"; sourceTree = "<group>"; };
AF22B20B277C6F4D00DAB0CC /* NCShareCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NCShareCell.swift; sourceTree = "<group>"; };
AF22B215277D196700DAB0CC /* NCShareExtension+DataSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NCShareExtension+DataSource.swift"; sourceTree = "<group>"; };
Expand Down Expand Up @@ -1998,7 +2002,6 @@
F37208B22BAB63EF006B5430 /* DropDown in Frameworks */,
F37208BC2BAB63EF006B5430 /* OpenSSL in Frameworks */,
F37208B82BAB63EF006B5430 /* NextcloudKit in Frameworks */,
F37208B42BAB63EF006B5430 /* Parchment in Frameworks */,
F37208BE2BAB63F0006B5430 /* Swifter in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
Expand Down Expand Up @@ -2071,7 +2074,6 @@
F788ECC7263AAAFA00ADC67F /* MarkdownKit in Frameworks */,
F3374AF02D78B01B002A38F9 /* BitCollections in Frameworks */,
F77BC3EB293E5268005F2B08 /* Swifter in Frameworks */,
F7BB7E4727A18C56009B9F29 /* Parchment in Frameworks */,
F33EE6E12BF4BDA500CA1A51 /* NIOSSL in Frameworks */,
F734B06628E75C0100E180D5 /* TLPhotoPicker in Frameworks */,
F760DE032AE66EA80027D78A /* KeychainAccess in Frameworks */,
Expand Down Expand Up @@ -2506,6 +2508,9 @@
AF2D7C7D2742559100ADF566 /* NCShareUserCell.swift */,
AF93471727E2361E002537EE /* NCShareHeader.xib */,
AF93471527E2361E002537EE /* NCShareHeader.swift */,
AB7000012F70000100FE2776 /* NCShareDetailsView.swift */,
AB7000032F70000100FE2776 /* NCShareDetailsGovernanceModel.swift */,
AB7000052F70000100FE2776 /* NCGovernanceLabelSelectorView.swift */,
AFCE353827E5DE0400FEA6C2 /* Shareable.swift */,
AA8E03D92D2ED83300E7E89C /* TransientShare.swift */,
);
Expand Down Expand Up @@ -3738,7 +3743,6 @@
F37208A52BAB63EE006B5430 /* SwiftRichString */,
F37208A92BAB63EE006B5430 /* MarkdownKit */,
F37208B12BAB63EF006B5430 /* DropDown */,
F37208B32BAB63EF006B5430 /* Parchment */,
F37208B52BAB63EF006B5430 /* EasyTipView */,
F37208B72BAB63EF006B5430 /* NextcloudKit */,
F37208B92BAB63EF006B5430 /* TLPhotoPicker */,
Expand Down Expand Up @@ -3907,7 +3911,6 @@
F788ECC6263AAAFA00ADC67F /* MarkdownKit */,
F70B86742642CE3B00ED5349 /* FirebaseCrashlytics */,
F76DA968277B77EA0082465B /* DropDown */,
F7BB7E4627A18C56009B9F29 /* Parchment */,
F753BA92281FD8020015BFB6 /* EasyTipView */,
F72AD70C28C24B93006CB92D /* NextcloudKit */,
F734B06528E75C0100E180D5 /* TLPhotoPicker */,
Expand Down Expand Up @@ -4110,7 +4113,6 @@
F70B86732642CE3B00ED5349 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */,
F76DA967277B77E90082465B /* XCRemoteSwiftPackageReference "DropDown" */,
F710FC78277B7CFF00AA9FBF /* XCRemoteSwiftPackageReference "realm-swift" */,
F7BB7E4527A18C56009B9F29 /* XCRemoteSwiftPackageReference "Parchment" */,
F753BA91281FD8010015BFB6 /* XCRemoteSwiftPackageReference "EasyTipView" */,
F783034028B511D200B84583 /* XCRemoteSwiftPackageReference "NextcloudKit" */,
F734B06428E75C0100E180D5 /* XCRemoteSwiftPackageReference "TLPhotoPicker" */,
Expand Down Expand Up @@ -4815,6 +4817,9 @@
F321DA8A2B71205A00DDA0E6 /* NCTrashSelectTabBar.swift in Sources */,
F702F2CD25EE5B4F008F8E80 /* AppDelegate.swift in Sources */,
F769454022E9F077000A798A /* NCSharePaging.swift in Sources */,
AB7000022F70000100FE2776 /* NCShareDetailsView.swift in Sources */,
AB7000042F70000100FE2776 /* NCShareDetailsGovernanceModel.swift in Sources */,
AB7000062F70000100FE2776 /* NCGovernanceLabelSelectorView.swift in Sources */,
F7C687E92D22BD46004757BC /* NCManageDatabase+RecommendedFiles.swift in Sources */,
F74D50352C9855A000BBBF4C /* NCCollectionViewCommon+CollectionViewDataSourcePrefetching.swift in Sources */,
F7802B322BD5584F00D74270 /* NCMedia+DragDrop.swift in Sources */,
Expand Down Expand Up @@ -6635,14 +6640,6 @@
minimumVersion = 1.0.0;
};
};
F7BB7E4527A18C56009B9F29 /* XCRemoteSwiftPackageReference "Parchment" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/rechsteiner/Parchment";
requirement = {
kind = exactVersion;
version = 3.3.0;
};
};
F7D4BF4E2CA2ECCB00A5E746 /* XCRemoteSwiftPackageReference "vlckit-spm" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/tylerjonesio/vlckit-spm";
Expand Down Expand Up @@ -6763,11 +6760,6 @@
package = F76DA967277B77E90082465B /* XCRemoteSwiftPackageReference "DropDown" */;
productName = DropDown;
};
F37208B32BAB63EF006B5430 /* Parchment */ = {
isa = XCSwiftPackageProductDependency;
package = F7BB7E4527A18C56009B9F29 /* XCRemoteSwiftPackageReference "Parchment" */;
productName = Parchment;
};
F37208B52BAB63EF006B5430 /* EasyTipView */ = {
isa = XCSwiftPackageProductDependency;
package = F753BA91281FD8010015BFB6 /* XCRemoteSwiftPackageReference "EasyTipView" */;
Expand Down Expand Up @@ -7018,11 +7010,6 @@
package = F710FC78277B7CFF00AA9FBF /* XCRemoteSwiftPackageReference "realm-swift" */;
productName = RealmSwift;
};
F7BB7E4627A18C56009B9F29 /* Parchment */ = {
isa = XCSwiftPackageProductDependency;
package = F7BB7E4527A18C56009B9F29 /* XCRemoteSwiftPackageReference "Parchment" */;
productName = Parchment;
};
F7C55C9E2FB5B83A004A974F /* NextcloudKit */ = {
isa = XCSwiftPackageProductDependency;
package = F783034028B511D200B84583 /* XCRemoteSwiftPackageReference "NextcloudKit" */;
Expand Down
1 change: 1 addition & 0 deletions iOSClient/Activity/NCActivity.storyboard
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
<constraint firstItem="fcO-YL-MuT" firstAttribute="top" secondItem="i35-U4-bEk" secondAttribute="top" constant="3" id="faC-by-km5"/>
</constraints>
</tableViewCellContentView>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<connections>
<outlet property="avatar" destination="LQ8-cO-794" id="2PE-uD-pug"/>
<outlet property="icon" destination="xNG-sf-PnA" id="hxb-Vr-oQX"/>
Expand Down
27 changes: 14 additions & 13 deletions iOSClient/Activity/NCActivity.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ class NCActivity: UIViewController, NCSharePagingContent {
var height: CGFloat = 0
var metadata: tableMetadata?
var showComments: Bool = false
var usesGroupedBackground: Bool = false

let utilityFileSystem = NCUtilityFileSystem()
let utility = NCUtility()
Expand Down Expand Up @@ -55,13 +56,13 @@ class NCActivity: UIViewController, NCSharePagingContent {
super.viewDidLoad()

navigationController?.setNavigationBarAppearance()
view.backgroundColor = .systemBackground
view.backgroundColor = usesGroupedBackground ? .systemGroupedBackground : .systemBackground
self.title = NSLocalizedString("_activity_", comment: "")

tableView.allowsSelection = false
tableView.separatorColor = UIColor.clear
tableView.contentInset = insets
tableView.backgroundColor = .systemBackground
tableView.backgroundColor = usesGroupedBackground ? .systemGroupedBackground : .systemBackground

if showComments {
setupComments()
Expand Down Expand Up @@ -161,25 +162,25 @@ extension NCActivity: UITableViewDelegate {
label.text = utility.getTitleFromDate(sectionDates[section])
label.textAlignment = .center

let blur = UIBlurEffect(style: .systemMaterial)
let blurredEffectView = UIVisualEffectView(effect: blur)
blurredEffectView.layer.cornerRadius = 11
blurredEffectView.layer.masksToBounds = true
let pill = UIView()
pill.backgroundColor = .systemGray5
pill.layer.cornerRadius = 11
pill.layer.masksToBounds = true

view.addSubview(blurredEffectView)
view.addSubview(pill)
view.addSubview(label)

blurredEffectView.translatesAutoresizingMaskIntoConstraints = false
pill.translatesAutoresizingMaskIntoConstraints = false
label.translatesAutoresizingMaskIntoConstraints = false

NSLayoutConstraint.activate([
blurredEffectView.topAnchor.constraint(equalTo: view.topAnchor),
blurredEffectView.centerXAnchor.constraint(equalTo: view.centerXAnchor),
blurredEffectView.widthAnchor.constraint(equalToConstant: label.intrinsicContentSize.width + 30),
blurredEffectView.heightAnchor.constraint(equalToConstant: 22),
pill.topAnchor.constraint(equalTo: view.topAnchor),
pill.centerXAnchor.constraint(equalTo: view.centerXAnchor),
pill.widthAnchor.constraint(equalToConstant: label.intrinsicContentSize.width + 30),
pill.heightAnchor.constraint(equalToConstant: 22),
label.topAnchor.constraint(equalTo: view.topAnchor),
label.centerXAnchor.constraint(equalTo: view.centerXAnchor),
label.centerYAnchor.constraint(equalTo: blurredEffectView.centerYAnchor)
label.centerYAnchor.constraint(equalTo: pill.centerYAnchor)
])

return view
Expand Down
4 changes: 2 additions & 2 deletions iOSClient/Activity/NCActivityCommentView.xib
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
</imageView>
<textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="249" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Test" minimumFontSize="17" clearButtonMode="always" translatesAutoresizingMaskIntoConstraints="NO" id="5pv-VB-vbL">
<rect key="frame" x="65" y="13" width="188" height="30"/>
<color key="backgroundColor" systemColor="systemGray6Color"/>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<constraints>
<constraint firstAttribute="height" constant="30" id="OLX-lD-EIH"/>
</constraints>
Expand All @@ -32,7 +32,7 @@
</textField>
</subviews>
<viewLayoutGuide key="safeArea" id="Y5x-Vi-PYA"/>
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="YXy-gE-g7y" firstAttribute="top" secondItem="GuF-Pi-nHv" secondAttribute="top" constant="10" id="26g-rF-Ags"/>
<constraint firstAttribute="height" constant="55" id="IsL-V9-dXU"/>
Expand Down
4 changes: 2 additions & 2 deletions iOSClient/Data/NCManageDatabase+Metadata.swift
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ extension tableMetadata {
}

var isCopyableMovable: Bool {
!isDirectoryE2EE && !e2eEncrypted
!isDirectoryE2EE && !e2eEncrypted && NCMetadataPermissions.canMoveAndDelete(self)
}

var isModifiableWithQuickLook: Bool {
Expand Down Expand Up @@ -217,7 +217,7 @@ extension tableMetadata {
}

var isDeletable: Bool {
if (!isDirectoryE2EE && e2eEncrypted) || !NCMetadataPermissions.canDelete(self) {
if (!isDirectoryE2EE && e2eEncrypted) || !NCMetadataPermissions.canDelete(self) || !NCMetadataPermissions.canMoveAndDelete(self) {
return false
}
return true
Expand Down
3 changes: 3 additions & 0 deletions iOSClient/Main/Create/NCCreate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,9 @@ class NCCreate: NSObject {
if !metadata.isSharable(), let idx = pages.firstIndex(of: .sharing) {
pages.remove(at: idx)
}
if !capabilities.governanceEnabled, let idx = pages.firstIndex(of: .details) {
pages.remove(at: idx)
}

shareViewController?.pages = pages
shareViewController?.metadata = metadata
Expand Down
Loading
Loading