From dc75737c979801cd2403a8c242a756e1adb4b1fe Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Sat, 15 Jun 2019 18:19:20 -0500 Subject: [PATCH] Add Import/Export OPML action sheet. --- iOS/Settings/SettingsLocalAccountView.swift | 6 +-- iOS/Settings/SettingsView.swift | 47 +++++++++++++++++++-- 2 files changed, 46 insertions(+), 7 deletions(-) diff --git a/iOS/Settings/SettingsLocalAccountView.swift b/iOS/Settings/SettingsLocalAccountView.swift index 40f671661..6247aea77 100644 --- a/iOS/Settings/SettingsLocalAccountView.swift +++ b/iOS/Settings/SettingsLocalAccountView.swift @@ -20,9 +20,9 @@ struct SettingsLocalAccountView : View { SettingsAccountLabelView(accountImage: "accountLocal", accountLabel: Account.defaultLocalAccountName).padding() ) { HStack { - Spacer() - TextField($name, placeholder: Text("Name (Optional)")) - Spacer() + Text("Name") + Divider() + TextField($name, placeholder: Text("(Optional)")) } } Section { diff --git a/iOS/Settings/SettingsView.swift b/iOS/Settings/SettingsView.swift index d0ddae653..7e8feec9f 100644 --- a/iOS/Settings/SettingsView.swift +++ b/iOS/Settings/SettingsView.swift @@ -12,7 +12,9 @@ import Account struct SettingsView : View { @ObjectBinding var viewModel: ViewModel - + @State var showImportSubscriptions = false + @State var showExportSubscriptions = false + var body: some View { NavigationView { List { @@ -76,10 +78,21 @@ struct SettingsView : View { Text(interval.description()).tag(interval) } } - Text("Import Subscriptions...") - Text("Export Subscriptions...") + Button(action: { + self.showImportSubscriptions = true + }) { + Text("Import Subscriptions...") + } + .presentation(showImportSubscriptions ? importSubscriptionsActionSheet : nil) + Button(action: { + self.showExportSubscriptions = true + }) { + Text("Export Subscriptions...") + } + .presentation(showExportSubscriptions ? exportSubscriptionsActionSheet : nil) } - + .foregroundColor(.primary) + } .listStyle(.grouped) .navigationBarTitle(Text("Settings"), displayMode: .inline) @@ -87,6 +100,32 @@ struct SettingsView : View { } } + var importSubscriptionsActionSheet: ActionSheet { + var buttons = [ActionSheet.Button]() + for account in viewModel.accounts { + let button = ActionSheet.Button.default(Text(verbatim: account.nameForDisplay)) { + self.showImportSubscriptions = false + // Call doc picker here... + } + buttons.append(button) + } + buttons.append(.cancel { self.showImportSubscriptions = false }) + return ActionSheet(title: Text("Import Subscriptions..."), message: Text("Select the account to import your OPML file into."), buttons: buttons) + } + + var exportSubscriptionsActionSheet: ActionSheet { + var buttons = [ActionSheet.Button]() + for account in viewModel.accounts { + let button = ActionSheet.Button.default(Text(verbatim: account.nameForDisplay)) { + self.showExportSubscriptions = false + // Call doc picker here... + } + buttons.append(button) + } + buttons.append(.cancel { self.showImportSubscriptions = false }) + return ActionSheet(title: Text("Export Subscriptions..."), message: Text("Select the account to export out of."), buttons: buttons) + } + class ViewModel: BindableObject { let didChange = PassthroughSubject()