From de0edd3c0bce6767237ff759a200c11c73bb68ff Mon Sep 17 00:00:00 2001 From: Rizwan Mohamed Ibrahim Date: Mon, 13 Jul 2020 20:39:19 +0530 Subject: [PATCH] Add cloud kit view for settings accounts --- .../Accounts/SettingsAddAccountModel.swift | 6 ++- .../Accounts/SettingsAddAccountView.swift | 14 ++++-- .../SettingsCloudKitAccountView.swift | 49 +++++++++++++++++++ NetNewsWire.xcodeproj/project.pbxproj | 4 ++ 4 files changed, 69 insertions(+), 4 deletions(-) create mode 100644 Multiplatform/iOS/Settings/Accounts/SettingsCloudKitAccountView.swift diff --git a/Multiplatform/iOS/Settings/Accounts/SettingsAddAccountModel.swift b/Multiplatform/iOS/Settings/Accounts/SettingsAddAccountModel.swift index 34a343050..80a24d487 100644 --- a/Multiplatform/iOS/Settings/Accounts/SettingsAddAccountModel.swift +++ b/Multiplatform/iOS/Settings/Accounts/SettingsAddAccountModel.swift @@ -34,7 +34,11 @@ class SettingsAddAccountModel: ObservableObject { init() { self.accounts = [ SettingsAddAccount(name: Account.defaultLocalAccountName, accountType: .onMyMac), - SettingsAddAccount(name: "Feedbin", accountType: .feedbin) + SettingsAddAccount(name: "Feedbin", accountType: .feedbin), + SettingsAddAccount(name: "Feedly", accountType: .feedly), + SettingsAddAccount(name: "Feed Wrangler", accountType: .feedWrangler), + SettingsAddAccount(name: "iCloud", accountType: .cloudKit), + SettingsAddAccount(name: "NewsBlur", accountType: .newsBlur) ] } diff --git a/Multiplatform/iOS/Settings/Accounts/SettingsAddAccountView.swift b/Multiplatform/iOS/Settings/Accounts/SettingsAddAccountView.swift index 5e1d8bd3f..5234e0f5b 100644 --- a/Multiplatform/iOS/Settings/Accounts/SettingsAddAccountView.swift +++ b/Multiplatform/iOS/Settings/Accounts/SettingsAddAccountView.swift @@ -27,11 +27,19 @@ struct SettingsAddAccountView: View { } .listStyle(InsetGroupedListStyle()) .sheet(isPresented: $model.isAddPresented) { - if model.selectedAccountType == .onMyMac { + + switch model.selectedAccountType { + case .onMyMac: SettingsLocalAccountView() - } - if model.selectedAccountType == .feedbin { + + case .feedbin: SettingsFeedbinAccountView() + + case .cloudKit: + SettingsCloudKitAccountView() + + default: + EmptyView() } } .navigationBarTitle(Text("Add Account"), displayMode: .inline) diff --git a/Multiplatform/iOS/Settings/Accounts/SettingsCloudKitAccountView.swift b/Multiplatform/iOS/Settings/Accounts/SettingsCloudKitAccountView.swift new file mode 100644 index 000000000..814a9e0c7 --- /dev/null +++ b/Multiplatform/iOS/Settings/Accounts/SettingsCloudKitAccountView.swift @@ -0,0 +1,49 @@ +// +// SettingsCloudKitAccountView.swift +// Multiplatform iOS +// +// Created by Rizwan on 13/07/20. +// Copyright © 2020 Ranchero Software. All rights reserved. +// + +import SwiftUI +import Account + +struct SettingsCloudKitAccountView: View { + @Environment(\.presentationMode) var presentationMode + + var body: some View { + NavigationView { + List { + Section(header: AccountHeaderImageView(image: AppAssets.image(for: .cloudKit)!)) { } + Section { + HStack { + Spacer() + Button(action: { self.addAccount() }) { + Text("Add Account") + } + Spacer() + } + } + } + .listStyle(InsetGroupedListStyle()) + .navigationBarTitle(Text(verbatim: "iCloud"), displayMode: .inline) + .navigationBarItems(leading: Button(action: { self.dismiss() }) { Text("Cancel") } ) + } + } + + private func addAccount() { + _ = AccountManager.shared.createAccount(type: .cloudKit) + dismiss() + } + + private func dismiss() { + presentationMode.wrappedValue.dismiss() + } +} + +struct SettingsCloudKitAccountView_Previews: PreviewProvider { + static var previews: some View { + SettingsCloudKitAccountView() + } +} diff --git a/NetNewsWire.xcodeproj/project.pbxproj b/NetNewsWire.xcodeproj/project.pbxproj index 3c358c416..05ee7195b 100644 --- a/NetNewsWire.xcodeproj/project.pbxproj +++ b/NetNewsWire.xcodeproj/project.pbxproj @@ -675,6 +675,7 @@ 55E15BCB229D65A900D6602A /* AccountsReaderAPI.xib in Resources */ = {isa = PBXBuildFile; fileRef = 55E15BC1229D65A900D6602A /* AccountsReaderAPI.xib */; }; 55E15BCC229D65A900D6602A /* AccountsReaderAPIWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55E15BCA229D65A900D6602A /* AccountsReaderAPIWindowController.swift */; }; 5F323809231DF9F000706F6B /* VibrantTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F323808231DF9F000706F6B /* VibrantTableViewCell.swift */; }; + 653A4E7924BCA5BB00EF2D7F /* SettingsCloudKitAccountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 653A4E7824BCA5BB00EF2D7F /* SettingsCloudKitAccountView.swift */; }; 65422D1724B75CD1008A2FA2 /* SettingsAddAccountModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65422D1624B75CD1008A2FA2 /* SettingsAddAccountModel.swift */; }; 6581C73820CED60100F4AD34 /* SafariExtensionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6581C73720CED60100F4AD34 /* SafariExtensionHandler.swift */; }; 6581C73A20CED60100F4AD34 /* SafariExtensionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6581C73920CED60100F4AD34 /* SafariExtensionViewController.swift */; }; @@ -2093,6 +2094,7 @@ 55E15BC1229D65A900D6602A /* AccountsReaderAPI.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AccountsReaderAPI.xib; sourceTree = ""; }; 55E15BCA229D65A900D6602A /* AccountsReaderAPIWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountsReaderAPIWindowController.swift; sourceTree = ""; }; 5F323808231DF9F000706F6B /* VibrantTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VibrantTableViewCell.swift; sourceTree = ""; }; + 653A4E7824BCA5BB00EF2D7F /* SettingsCloudKitAccountView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsCloudKitAccountView.swift; sourceTree = ""; }; 65422D1624B75CD1008A2FA2 /* SettingsAddAccountModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsAddAccountModel.swift; sourceTree = ""; }; 6543108B2322D90900658221 /* common */ = {isa = PBXFileReference; lastKnownFileType = folder; path = common; sourceTree = ""; }; 6581C73320CED60000F4AD34 /* Subscribe to Feed.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "Subscribe to Feed.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -3176,6 +3178,7 @@ 6591723024B5C35400B638E8 /* AccountHeaderImageView.swift */, 6591727E24B5D19500B638E8 /* SettingsDetailAccountView.swift */, 6586A5F624B632F8002BCF4F /* SettingsDetailAccountModel.swift */, + 653A4E7824BCA5BB00EF2D7F /* SettingsCloudKitAccountView.swift */, ); path = Accounts; sourceTree = ""; @@ -5113,6 +5116,7 @@ 51E4991524A808FF00B667CB /* ArticleStringFormatter.swift in Sources */, 51919FEE24AB85E400541E64 /* TimelineContainerView.swift in Sources */, FFA2BBD624AF751100B3149D /* PreviewProvider+RefreshProgressModel.swift in Sources */, + 653A4E7924BCA5BB00EF2D7F /* SettingsCloudKitAccountView.swift in Sources */, 51E4995724A8734D00B667CB /* ExtensionPoint.swift in Sources */, 1776E88E24AC5F8A00E78166 /* AppDefaults.swift in Sources */, 51E4991124A808DE00B667CB /* SmallIconProvider.swift in Sources */,