Skip to content

Commit 41062f1

Browse files
authored
Add option for in-app browser log in (#3251)
* WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * Finish Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> * WIP Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com> --------- Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
1 parent cd2e24b commit 41062f1

File tree

7 files changed

+244
-186
lines changed

7 files changed

+244
-186
lines changed

Brand/NCBrand.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ let userAgent: String = {
7373
var doNotAskPasscodeAtStartup: Bool = false
7474
var disable_source_code_in_settings: Bool = false
7575
var enforce_passcode_lock = false
76+
var use_in_app_browser_for_login = true
7677

7778
// (name: "Name 1", url: "https://cloud.nextcloud.com"),(name: "Name 2", url: "https://cloud.nextcloud.com")
7879
var enforce_servers: [(name: String, url: String)] = []

Nextcloud.xcodeproj/project.pbxproj

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@
7979
F310B1EF2BA862F1001C42F5 /* NCViewerMedia+VisionKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = F310B1EE2BA862F1001C42F5 /* NCViewerMedia+VisionKit.swift */; };
8080
F314F1142A30E2DE00BC7FAB /* View+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7E8A390295DC5E0006CB2D0 /* View+Extension.swift */; };
8181
F321DA8A2B71205A00DDA0E6 /* NCTrashSelectTabBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = F321DA892B71205A00DDA0E6 /* NCTrashSelectTabBar.swift */; };
82+
F32FADA92D1176E3007035E2 /* UIButton+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = F32FADA82D1176DE007035E2 /* UIButton+Extension.swift */; };
8283
F33918C42C7CD8F2002D9AA1 /* FileNameValidator+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F33918C32C7CD8F2002D9AA1 /* FileNameValidator+Extensions.swift */; };
8384
F33918C52C7CD8F2002D9AA1 /* FileNameValidator+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F33918C32C7CD8F2002D9AA1 /* FileNameValidator+Extensions.swift */; };
8485
F33918C62C7CD8F2002D9AA1 /* FileNameValidator+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F33918C32C7CD8F2002D9AA1 /* FileNameValidator+Extensions.swift */; };
@@ -180,6 +181,7 @@
180181
F3BB464D2A39ADCC00461F6E /* NCMoreAppSuggestionsCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F3BB464C2A39ADCC00461F6E /* NCMoreAppSuggestionsCell.xib */; };
181182
F3BB46522A39EC4900461F6E /* NCMoreAppSuggestionsCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3BB46512A39EC4900461F6E /* NCMoreAppSuggestionsCell.swift */; };
182183
F3BB46542A3A1E9D00461F6E /* CCCellMore.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3BB46532A3A1E9D00461F6E /* CCCellMore.swift */; };
184+
F3CA33842D10726E00672333 /* NCLoginPollModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3CA33832D10726E00672333 /* NCLoginPollModel.swift */; };
183185
F3E173B02C9AF637006D177A /* ScreenAwakeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3E173AF2C9AF637006D177A /* ScreenAwakeManager.swift */; };
184186
F3E173C02C9B1067006D177A /* AwakeMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3E173BF2C9B1067006D177A /* AwakeMode.swift */; };
185187
F3E173C12C9B1067006D177A /* AwakeMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3E173BF2C9B1067006D177A /* AwakeMode.swift */; };
@@ -1181,7 +1183,6 @@
11811183
AAF806B32CE25EFE009C2D43 /* NCShareToggleCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NCShareToggleCell.swift; sourceTree = "<group>"; };
11821184
AAF806B52CE34C72009C2D43 /* NCShareDownloadLimitViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NCShareDownloadLimitViewController.swift; sourceTree = "<group>"; };
11831185
AAF806B72CE37C15009C2D43 /* NCShareDownloadLimitTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NCShareDownloadLimitTableViewController.swift; sourceTree = "<group>"; };
1184-
AAF806B92CE38BB2009C2D43 /* NextcloudKit */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = NextcloudKit; path = ../NextcloudKit; sourceTree = SOURCE_ROOT; };
11851186
AF1A9B6327D0CA1E00F17A9E /* UIAlertController+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIAlertController+Extension.swift"; sourceTree = "<group>"; };
11861187
AF22B20B277C6F4D00DAB0CC /* NCShareCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NCShareCell.swift; sourceTree = "<group>"; };
11871188
AF22B215277D196700DAB0CC /* NCShareExtension+DataSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NCShareExtension+DataSource.swift"; sourceTree = "<group>"; };
@@ -1220,6 +1221,7 @@
12201221
D5B6AA7727200C7200D49C24 /* NCActivityTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NCActivityTableViewCell.swift; sourceTree = "<group>"; };
12211222
F310B1EE2BA862F1001C42F5 /* NCViewerMedia+VisionKit.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NCViewerMedia+VisionKit.swift"; sourceTree = "<group>"; };
12221223
F321DA892B71205A00DDA0E6 /* NCTrashSelectTabBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NCTrashSelectTabBar.swift; sourceTree = "<group>"; };
1224+
F32FADA82D1176DE007035E2 /* UIButton+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIButton+Extension.swift"; sourceTree = "<group>"; };
12231225
F33918C32C7CD8F2002D9AA1 /* FileNameValidator+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FileNameValidator+Extensions.swift"; sourceTree = "<group>"; };
12241226
F33EE6F12BF4C9B200CA1A51 /* PKCS12.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PKCS12.swift; sourceTree = "<group>"; };
12251227
F343A4B22A1E01FF00DDA874 /* PHAsset+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PHAsset+Extension.swift"; sourceTree = "<group>"; };
@@ -1242,6 +1244,7 @@
12421244
F3BB464C2A39ADCC00461F6E /* NCMoreAppSuggestionsCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NCMoreAppSuggestionsCell.xib; sourceTree = "<group>"; };
12431245
F3BB46512A39EC4900461F6E /* NCMoreAppSuggestionsCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NCMoreAppSuggestionsCell.swift; sourceTree = "<group>"; };
12441246
F3BB46532A3A1E9D00461F6E /* CCCellMore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCCellMore.swift; sourceTree = "<group>"; };
1247+
F3CA33832D10726E00672333 /* NCLoginPollModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NCLoginPollModel.swift; sourceTree = "<group>"; };
12451248
F3E173AF2C9AF637006D177A /* ScreenAwakeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScreenAwakeManager.swift; sourceTree = "<group>"; };
12461249
F3E173BF2C9B1067006D177A /* AwakeMode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AwakeMode.swift; sourceTree = "<group>"; };
12471250
F3EF2E0B2BFCF3810025EF46 /* NCLoginPoll.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NCLoginPoll.swift; sourceTree = "<group>"; };
@@ -2069,6 +2072,15 @@
20692072
path = Cells;
20702073
sourceTree = "<group>";
20712074
};
2075+
F3CA33802D106FF900672333 /* Poll */ = {
2076+
isa = PBXGroup;
2077+
children = (
2078+
F3EF2E0B2BFCF3810025EF46 /* NCLoginPoll.swift */,
2079+
F3CA33832D10726E00672333 /* NCLoginPollModel.swift */,
2080+
);
2081+
path = Poll;
2082+
sourceTree = "<group>";
2083+
};
20722084
F3E173BE2C9B1057006D177A /* ScreenAwakeManager */ = {
20732085
isa = PBXGroup;
20742086
children = (
@@ -2654,6 +2666,7 @@
26542666
F7A0D14E259229FA008F8A13 /* Extensions */ = {
26552667
isa = PBXGroup;
26562668
children = (
2669+
F32FADA82D1176DE007035E2 /* UIButton+Extension.swift */,
26572670
F7AC1CAF28AB94490032D99F /* Array+Extension.swift */,
26582671
F7817CF729801A3500FFBC65 /* Data+Extension.swift */,
26592672
AFCE353427E4ED5900FEA6C2 /* DateFormatter+Extension.swift */,
@@ -2766,14 +2779,14 @@
27662779
F7BFFA621A24D7300044ED85 /* Login */ = {
27672780
isa = PBXGroup;
27682781
children = (
2782+
F3CA33802D106FF900672333 /* Poll */,
27692783
F702F2F025EE5CDA008F8E80 /* NCLogin.storyboard */,
27702784
F702F2F625EE5CEC008F8E80 /* NCLogin.swift */,
27712785
F738D48F2756740100CD1D38 /* NCLoginNavigationController.swift */,
27722786
F745B252222D88AE00346520 /* NCLoginQRCode.swift */,
27732787
F7AE00F4230D5F9E007ACF8A /* NCLoginProvider.swift */,
27742788
F7BC287D26663F6C004D46C5 /* NCViewCertificateDetails.storyboard */,
27752789
F7BC287F26663F85004D46C5 /* NCViewCertificateDetails.swift */,
2776-
F3EF2E0B2BFCF3810025EF46 /* NCLoginPoll.swift */,
27772790
);
27782791
path = Login;
27792792
sourceTree = "<group>";
@@ -3069,7 +3082,6 @@
30693082
F7F67B9F1A24D27800EE80DA = {
30703083
isa = PBXGroup;
30713084
children = (
3072-
AAF806B92CE38BB2009C2D43 /* NextcloudKit */,
30733085
F7B8B82F25681C3400967775 /* GoogleService-Info.plist */,
30743086
F7C1CDD91E6DFC6F005D92BE /* Brand */,
30753087
F7F67BAA1A24D27800EE80DA /* iOSClient */,
@@ -4326,8 +4338,10 @@
43264338
F7AE00F8230E81CB007ACF8A /* NCBrowserWeb.swift in Sources */,
43274339
F77DD6A82C5CC093009448FB /* NCSession.swift in Sources */,
43284340
F702F30825EE5D47008F8E80 /* NCPopupViewController.swift in Sources */,
4341+
F3CA33842D10726E00672333 /* NCLoginPollModel.swift in Sources */,
43294342
F733598125C1C188002ABA72 /* NCAskAuthorization.swift in Sources */,
43304343
370D26AF248A3D7A00121797 /* NCCellProtocol.swift in Sources */,
4344+
F32FADA92D1176E3007035E2 /* UIButton+Extension.swift in Sources */,
43314345
F768822C2C0DD1E7001CF441 /* NCKeychain.swift in Sources */,
43324346
F7BFFD282C8846020029A201 /* NCHud.swift in Sources */,
43334347
F71CD6CA2930D7B1006C95C1 /* NCApplicationHandle.swift in Sources */,
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
//
2+
// UIButton+Extension.swift
3+
// Nextcloud
4+
//
5+
// Created by Milen Pivchev on 17.12.24.
6+
// Copyright © 2024 Marino Faggiana. All rights reserved.
7+
//
8+
9+
extension UIButton {
10+
func hideButtonAndShowSpinner(tint: UIColor = .white) {
11+
self.isHidden = true
12+
13+
let spinnerTag = Int(bitPattern: Unmanaged.passUnretained(self).toOpaque())
14+
if self.superview?.subviews.first(where: { view -> Bool in
15+
return view.isKind(of: UIActivityIndicatorView.self) && view.tag == spinnerTag
16+
}) != nil {
17+
return
18+
}
19+
20+
let spinner = UIActivityIndicatorView(style: .medium)
21+
spinner.tag = spinnerTag
22+
spinner.color = tint
23+
spinner.startAnimating()
24+
spinner.center = self.center
25+
self.superview?.addSubview(spinner)
26+
spinner.translatesAutoresizingMaskIntoConstraints = false
27+
spinner.centerXAnchor.constraint(equalTo: self.centerXAnchor).isActive = true
28+
spinner.centerYAnchor.constraint(equalTo: self.centerYAnchor).isActive = true
29+
}
30+
31+
func hideSpinnerAndShowButton() {
32+
let spinnerTag = Int(bitPattern: Unmanaged.passUnretained(self).toOpaque())
33+
let spinner = self.superview?.subviews.first(where: { view -> Bool in
34+
return view.isKind(of: UIActivityIndicatorView.self) && view.tag == spinnerTag
35+
})
36+
37+
spinner?.removeFromSuperview()
38+
self.isHidden = false
39+
}
40+
}

0 commit comments

Comments
 (0)