From 5ca95cd9da6484dbb2042e45a54a01f8eb51f7d2 Mon Sep 17 00:00:00 2001 From: zoha131 Date: Sun, 11 Oct 2020 20:58:20 +0600 Subject: [PATCH] Hide download settings from the users who don't have download access fix issue #495 --- Emitron/Emitron/UI/Settings/SettingsList.swift | 8 +++++--- Emitron/Emitron/UI/Settings/SettingsView.swift | 5 ++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Emitron/Emitron/UI/Settings/SettingsList.swift b/Emitron/Emitron/UI/Settings/SettingsList.swift index 2a6690e0..98f96180 100644 --- a/Emitron/Emitron/UI/Settings/SettingsList.swift +++ b/Emitron/Emitron/UI/Settings/SettingsList.swift @@ -30,13 +30,14 @@ import SwiftUI struct SettingsList { @ObservedObject private var settingsManager: SettingsManager + private var canDownload: Bool } // MARK: - View extension SettingsList: View { var body: some View { VStack(spacing: 0) { - ForEach(SettingsOption.allCases) { self[$0] } + ForEach(SettingsOption.getOptions(for: canDownload)) { self[$0] } } } } @@ -48,15 +49,16 @@ struct SettingsList_Previews: PreviewProvider { } static var list: some View { - SettingsList( settingsManager: .init(initialValue: .current) ) + SettingsList(settingsManager: .init(initialValue: .current), canDownload: true) .background(Color.backgroundColor) } } // MARK: - internal extension SettingsList { - init(settingsManager: ObservedObject) { + init(settingsManager: ObservedObject, canDownload: Bool) { _settingsManager = settingsManager + self.canDownload = canDownload } } diff --git a/Emitron/Emitron/UI/Settings/SettingsView.swift b/Emitron/Emitron/UI/Settings/SettingsView.swift index 4feff105..8e309b2d 100644 --- a/Emitron/Emitron/UI/Settings/SettingsView.swift +++ b/Emitron/Emitron/UI/Settings/SettingsView.swift @@ -45,7 +45,10 @@ struct SettingsView: View { var body: some View { NavigationView { VStack { - SettingsList(settingsManager: _settingsManager) + SettingsList( + settingsManager: _settingsManager, + canDownload: sessionController.user?.canDownload ?? false + ) .navigationBarTitle(String.settings) .navigationBarItems(trailing: dismissButton) .padding([.horizontal], 20)