From 8f32946e27d2fe9472056650065d39ba6112be89 Mon Sep 17 00:00:00 2001 From: Vicnet <35202538+VincentMeilinger@users.noreply.github.com> Date: Sun, 22 Oct 2023 20:28:51 +0200 Subject: [PATCH] Added category 'All' recipes --- .../project.pbxproj | 22 +- .../AlertHandler.swift | 99 +++++++ .../cookbook-category.imageset/Contents.json | 21 -- .../cookbook-category.png | Bin 88027 -> 0 bytes .../cookbook-recipe.imageset/Contents.json | 21 -- .../cookbook-recipe.png | Bin 52464 -> 0 bytes ...{UserDefaults.swift => UserSettings.swift} | 11 +- .../Extensions/ColorExtension.swift | 3 + .../Localizable.xcstrings | 138 +++++++++- .../Network/NetworkRequests.swift | 2 + .../Nextcloud_Cookbook_iOS_ClientApp.swift | 9 +- .../SupportedLanguage.swift | 31 +++ .../ViewModels/MainViewModel.swift | 31 ++- .../Views/MainView.swift | 241 ++++++++++++------ .../Views/RecipeCardView.swift | 21 +- .../Views/RecipeEditView.swift | 89 ++----- .../Views/SettingsView.swift | 78 +++--- 17 files changed, 574 insertions(+), 243 deletions(-) create mode 100644 Nextcloud Cookbook iOS Client/AlertHandler.swift delete mode 100644 Nextcloud Cookbook iOS Client/Assets.xcassets/cookbook-category.imageset/Contents.json delete mode 100644 Nextcloud Cookbook iOS Client/Assets.xcassets/cookbook-category.imageset/cookbook-category.png delete mode 100644 Nextcloud Cookbook iOS Client/Assets.xcassets/cookbook-recipe.imageset/Contents.json delete mode 100644 Nextcloud Cookbook iOS Client/Assets.xcassets/cookbook-recipe.imageset/cookbook-recipe.png rename Nextcloud Cookbook iOS Client/Data/{UserDefaults.swift => UserSettings.swift} (82%) create mode 100644 Nextcloud Cookbook iOS Client/SupportedLanguage.swift diff --git a/Nextcloud Cookbook iOS Client.xcodeproj/project.pbxproj b/Nextcloud Cookbook iOS Client.xcodeproj/project.pbxproj index 6b6f354..24f102b 100644 --- a/Nextcloud Cookbook iOS Client.xcodeproj/project.pbxproj +++ b/Nextcloud Cookbook iOS Client.xcodeproj/project.pbxproj @@ -25,13 +25,15 @@ A70171C42AB4A31200064C43 /* DataStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70171C32AB4A31200064C43 /* DataStore.swift */; }; A70171C62AB4C43A00064C43 /* DataModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70171C52AB4C43A00064C43 /* DataModels.swift */; }; A70171C92AB4CBB400064C43 /* OnboardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70171C82AB4CBB400064C43 /* OnboardingView.swift */; }; - A70171CB2AB4CD1700064C43 /* UserDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70171CA2AB4CD1700064C43 /* UserDefaults.swift */; }; + A70171CB2AB4CD1700064C43 /* UserSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70171CA2AB4CD1700064C43 /* UserSettings.swift */; }; A70171CD2AB501B100064C43 /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70171CC2AB501B100064C43 /* SettingsView.swift */; }; A703226A2ABAF49800D7C4ED /* JSONCoderExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70322692ABAF49800D7C4ED /* JSONCoderExtension.swift */; }; A703226D2ABAF90D00D7C4ED /* APIController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A703226C2ABAF90D00D7C4ED /* APIController.swift */; }; A703226F2ABB1DD700D7C4ED /* ColorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A703226E2ABB1DD700D7C4ED /* ColorExtension.swift */; }; A70D7CA12AC73CA800D53DBF /* RecipeEditView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70D7CA02AC73CA700D53DBF /* RecipeEditView.swift */; }; A70D7CA32AC74B3B00D53DBF /* DateExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A70D7CA22AC74B3B00D53DBF /* DateExtension.swift */; }; + A76B8A6F2ADFFA8800096CEC /* SupportedLanguage.swift in Sources */ = {isa = PBXBuildFile; fileRef = A76B8A6E2ADFFA8800096CEC /* SupportedLanguage.swift */; }; + A76B8A712AE002AE00096CEC /* AlertHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = A76B8A702AE002AE00096CEC /* AlertHandler.swift */; }; A7AEAE642AD5521400135378 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = A7AEAE632AD5521400135378 /* Localizable.xcstrings */; }; A7F3F8E82ACBFC760076C227 /* KeywordPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7F3F8E72ACBFC760076C227 /* KeywordPickerView.swift */; }; A7F3F8EA2ACC221C0076C227 /* CategoryPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7F3F8E92ACC221C0076C227 /* CategoryPickerView.swift */; }; @@ -77,13 +79,15 @@ A70171C32AB4A31200064C43 /* DataStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataStore.swift; sourceTree = ""; }; A70171C52AB4C43A00064C43 /* DataModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataModels.swift; sourceTree = ""; }; A70171C82AB4CBB400064C43 /* OnboardingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingView.swift; sourceTree = ""; }; - A70171CA2AB4CD1700064C43 /* UserDefaults.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaults.swift; sourceTree = ""; }; + A70171CA2AB4CD1700064C43 /* UserSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserSettings.swift; sourceTree = ""; }; A70171CC2AB501B100064C43 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; A70322692ABAF49800D7C4ED /* JSONCoderExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JSONCoderExtension.swift; sourceTree = ""; }; A703226C2ABAF90D00D7C4ED /* APIController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APIController.swift; sourceTree = ""; }; A703226E2ABB1DD700D7C4ED /* ColorExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorExtension.swift; sourceTree = ""; }; A70D7CA02AC73CA700D53DBF /* RecipeEditView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecipeEditView.swift; sourceTree = ""; }; A70D7CA22AC74B3B00D53DBF /* DateExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DateExtension.swift; sourceTree = ""; }; + A76B8A6E2ADFFA8800096CEC /* SupportedLanguage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SupportedLanguage.swift; sourceTree = ""; }; + A76B8A702AE002AE00096CEC /* AlertHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlertHandler.swift; sourceTree = ""; }; A7AEAE632AD5521400135378 /* Localizable.xcstrings */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; path = Localizable.xcstrings; sourceTree = ""; }; A7F3F8E72ACBFC760076C227 /* KeywordPickerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeywordPickerView.swift; sourceTree = ""; }; A7F3F8E92ACC221C0076C227 /* CategoryPickerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CategoryPickerView.swift; sourceTree = ""; }; @@ -138,13 +142,15 @@ isa = PBXGroup; children = ( A70171812AA8E71900064C43 /* Nextcloud_Cookbook_iOS_ClientApp.swift */, + A76B8A702AE002AE00096CEC /* AlertHandler.swift */, + A76B8A6E2ADFFA8800096CEC /* SupportedLanguage.swift */, A70171C72AB4C4A100064C43 /* Data */, A70171BA2AB4980100064C43 /* Views */, A70171B72AB2445700064C43 /* ViewModels */, A70171B22AB211F000064C43 /* Network */, A703226B2ABAF60D00D7C4ED /* Extensions */, - A70171852AA8E71F00064C43 /* Assets.xcassets */, A7AEAE632AD5521400135378 /* Localizable.xcstrings */, + A70171852AA8E71F00064C43 /* Assets.xcassets */, A70171872AA8E71F00064C43 /* Nextcloud_Cookbook_iOS_Client.entitlements */, A70171882AA8E71F00064C43 /* Preview Content */, ); @@ -216,7 +222,7 @@ children = ( A70171C32AB4A31200064C43 /* DataStore.swift */, A70171C52AB4C43A00064C43 /* DataModels.swift */, - A70171CA2AB4CD1700064C43 /* UserDefaults.swift */, + A70171CA2AB4CD1700064C43 /* UserSettings.swift */, ); path = Data; sourceTree = ""; @@ -368,6 +374,7 @@ A70D7CA12AC73CA800D53DBF /* RecipeEditView.swift in Sources */, A70D7CA32AC74B3B00D53DBF /* DateExtension.swift in Sources */, A70171B12AB211DF00064C43 /* CustomError.swift in Sources */, + A76B8A712AE002AE00096CEC /* AlertHandler.swift in Sources */, A70171C42AB4A31200064C43 /* DataStore.swift in Sources */, A70171AF2AB2116B00064C43 /* NetworkHandler.swift in Sources */, A70171B42AB2122900064C43 /* NetworkRequests.swift in Sources */, @@ -380,11 +387,12 @@ A70171CD2AB501B100064C43 /* SettingsView.swift in Sources */, A70171C22AB498C600064C43 /* RecipeCardView.swift in Sources */, A70171842AA8E71900064C43 /* MainView.swift in Sources */, - A70171CB2AB4CD1700064C43 /* UserDefaults.swift in Sources */, + A70171CB2AB4CD1700064C43 /* UserSettings.swift in Sources */, A703226A2ABAF49800D7C4ED /* JSONCoderExtension.swift in Sources */, A703226D2ABAF90D00D7C4ED /* APIController.swift in Sources */, A70171822AA8E71900064C43 /* Nextcloud_Cookbook_iOS_ClientApp.swift in Sources */, A70171AD2AA8EF4700064C43 /* MainViewModel.swift in Sources */, + A76B8A6F2ADFFA8800096CEC /* SupportedLanguage.swift in Sources */, A70171C92AB4CBB400064C43 /* OnboardingView.swift in Sources */, A703226F2ABB1DD700D7C4ED /* ColorExtension.swift in Sources */, ); @@ -562,7 +570,7 @@ LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 13.0; - MARKETING_VERSION = 1.2; + MARKETING_VERSION = 1.3; PRODUCT_BUNDLE_IDENTIFIER = "VincentMeilinger.Nextcloud-Cookbook-iOS-Client"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = auto; @@ -603,7 +611,7 @@ LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 13.0; - MARKETING_VERSION = 1.2; + MARKETING_VERSION = 1.3; PRODUCT_BUNDLE_IDENTIFIER = "VincentMeilinger.Nextcloud-Cookbook-iOS-Client"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = auto; diff --git a/Nextcloud Cookbook iOS Client/AlertHandler.swift b/Nextcloud Cookbook iOS Client/AlertHandler.swift new file mode 100644 index 0000000..462537a --- /dev/null +++ b/Nextcloud Cookbook iOS Client/AlertHandler.swift @@ -0,0 +1,99 @@ +// +// AlertHandler.swift +// Nextcloud Cookbook iOS Client +// +// Created by Vincent Meilinger on 18.10.23. +// + +import Foundation +import SwiftUI + + + +class AlertHandler: ObservableObject { + @Published var presentAlert: Bool = false + var alert: AlertType = .GENERIC + var alertAction: () -> () = {} + + func present(alert: AlertType, onConfirm: @escaping () -> () = {}) { + self.alert = alert + self.alertAction = onConfirm + self.presentAlert = true + } + + func dismiss() { + self.alertAction = {} + self.alert = .GENERIC + } +} + + + +enum AlertButton: LocalizedStringKey, Identifiable { + var id: Self { + return self + } + + case OK = "Ok", DELETE = "Delete", CANCEL = "Cancel" +} + + + +enum AlertType: Error { + + case NO_TITLE, + DUPLICATE, + UPLOAD_ERROR, + CONFIRM_DELETE, + LOGIN_FAILED, + GENERIC, + CUSTOM(title: LocalizedStringKey, description: LocalizedStringKey) + + var localizedDescription: LocalizedStringKey { + switch self { + case .NO_TITLE: + return "Please enter a recipe name." + case .DUPLICATE: + return "A recipe with that name already exists." + case .UPLOAD_ERROR: + return "Unable to upload your recipe. Please check your internet connection." + case .CONFIRM_DELETE: + return "This action is not reversible!" + case .LOGIN_FAILED: + return "Please check your credentials and internet connection." + case .CUSTOM(title: _, description: let description): + return description + default: + return "An unknown error occured." + } + } + + var localizedTitle: LocalizedStringKey { + switch self { + case .NO_TITLE: + return "Missing recipe name." + case .DUPLICATE: + return "Duplicate recipe." + case .UPLOAD_ERROR: + return "Network error." + case .CONFIRM_DELETE: + return "Delete recipe?" + case .LOGIN_FAILED: + return "Login failed." + case .CUSTOM(title: let title, description: _): + return title + default: + return "Error." + } + } + + var alertButtons: [AlertButton] { + switch self { + case .CONFIRM_DELETE: + return [.CANCEL, .DELETE] + default: + return [.OK] + } + } +} + diff --git a/Nextcloud Cookbook iOS Client/Assets.xcassets/cookbook-category.imageset/Contents.json b/Nextcloud Cookbook iOS Client/Assets.xcassets/cookbook-category.imageset/Contents.json deleted file mode 100644 index 153e597..0000000 --- a/Nextcloud Cookbook iOS Client/Assets.xcassets/cookbook-category.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "cookbook-category.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Nextcloud Cookbook iOS Client/Assets.xcassets/cookbook-category.imageset/cookbook-category.png b/Nextcloud Cookbook iOS Client/Assets.xcassets/cookbook-category.imageset/cookbook-category.png deleted file mode 100644 index 1219d3ab85d2a8093a2f11e9115bed473dd02d05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88027 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�!R>Vg3uGbew*~e^*!^yl}GdIzS)~Ow=`6b!C){t zKqGnQvwN#?2%bAsoP)r>0q~X!Z+qq0Hcc%n`19{zboF(o0Q>-es{lMV@DLF`w$1l( zlYXciA_9S*Z|AxFq4ixb(K8r~5W4*!v>Y%PXdo6T5a@Tx@>zWwZvpTwK>X(mH@x!U zNxQa8U|L9E^s4K=62R2}egF_(Vr9}Hd*;U>Zim>z6aIw!`b}1Vz`lDcMIw*EU@%%C z@eLXG^U`7>zUG6uZcy=g0RIU>yz9aZKk$k1I=K8`X2`(kRo52)UWiH<_#OaT0EpRN z{qJh%Im7yB8LN)79TGH1R%n?ZuWn?Q!C)}b$p2{MYyWM&OOZ_b8@U64-$AAAf9S&7 zuPn2>vZ7!rXo=CQu0Iaoy8&?(1il5ppw6XB?=JS4?8We$+wrmU}RyU z8AO8(wkVdVyaZ#P#1Vi$L`C}Vz3}T-oo~^}l?OA#1Q`9`TTcS`CIH{8{+^@XBoTgC zN$rruz$qUn6BIBkgam|0IR=BlNFn-}X!HGOibbjt?V0()E>0mJ0r7DFHvzZ_Lj2K% zU%&c^7M)=bFbhl(8$bBA(-L?QfENjYZwBz?{v~z^I%V3Axd5CrFUe2u=0@}5!(c2O zTD{gHce0)MfkMg>K)-*t1L7tD+ysFSUHI2O_)wc3GUDJbc!$_{^$kx$Wf^!8fWHUe z*#I`1$MH7>{5fS(E`eN3Mbc+57^{OZ0*_O{%ayQj4!|7%{t`mm4B)2S-+1-Cll7Ak z1ApCTh>cg@ARxpS0r(04UvB@2zXdCnFGBhW6IxSJLk5GvV1$tsBaj)3B!mR;IRLj; zf8ursd{S-Sv-^%8ns^i;BM;05J;BBg{rWKg&w{|01Nb69oB-he2`_yMVgEpliS9B# zA`AwDpcV!sfE@ta^`EG>g_m{@fZHL&oxA_$hcC>&;|v%7KUR&Y)sY+OxBvhE07*qo IM6N<$g5$U5oB#j- diff --git a/Nextcloud Cookbook iOS Client/Data/UserDefaults.swift b/Nextcloud Cookbook iOS Client/Data/UserSettings.swift similarity index 82% rename from Nextcloud Cookbook iOS Client/Data/UserDefaults.swift rename to Nextcloud Cookbook iOS Client/Data/UserSettings.swift index 31f8271..eb98939 100644 --- a/Nextcloud Cookbook iOS Client/Data/UserDefaults.swift +++ b/Nextcloud Cookbook iOS Client/Data/UserSettings.swift @@ -1,5 +1,5 @@ // -// UserDefaults.swift +// UserSettings.swift // Nextcloud Cookbook iOS Client // // Created by Vincent Meilinger on 15.09.23. @@ -46,12 +46,19 @@ class UserSettings: ObservableObject { } } + @Published var downloadRecipes: Bool { + didSet { + UserDefaults.standard.set(downloadRecipes, forKey: "downloadRecipes") + } + } + init() { self.username = UserDefaults.standard.object(forKey: "username") as? String ?? "" self.token = UserDefaults.standard.object(forKey: "token") as? String ?? "" self.serverAddress = UserDefaults.standard.object(forKey: "serverAddress") as? String ?? "" self.onboarding = UserDefaults.standard.object(forKey: "onboarding") as? Bool ?? true self.defaultCategory = UserDefaults.standard.object(forKey: "defaultCategory") as? String ?? "" - self.language = UserDefaults.standard.object(forKey: "language") as? String ?? SupportedLanguage.EN.rawValue + self.language = UserDefaults.standard.object(forKey: "language") as? String ?? SupportedLanguage.DEVICE.rawValue + self.downloadRecipes = UserDefaults.standard.object(forKey: "downloadRecipes") as? Bool ?? false } } diff --git a/Nextcloud Cookbook iOS Client/Extensions/ColorExtension.swift b/Nextcloud Cookbook iOS Client/Extensions/ColorExtension.swift index dce32f7..7f55d8d 100644 --- a/Nextcloud Cookbook iOS Client/Extensions/ColorExtension.swift +++ b/Nextcloud Cookbook iOS Client/Extensions/ColorExtension.swift @@ -15,4 +15,7 @@ extension Color { public static var backgroundHighlight: Color { return Color("backgroundHighlight") } + public static var background: Color { + return Color(UIColor.systemBackground) + } } diff --git a/Nextcloud Cookbook iOS Client/Localizable.xcstrings b/Nextcloud Cookbook iOS Client/Localizable.xcstrings index 8a70fae..ec2c01d 100644 --- a/Nextcloud Cookbook iOS Client/Localizable.xcstrings +++ b/Nextcloud Cookbook iOS Client/Localizable.xcstrings @@ -177,6 +177,22 @@ } } }, + "All" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Alle" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Todas" + } + } + } + }, "An unknown error occured." : { "localizations" : { "de" : { @@ -257,18 +273,18 @@ } } }, - "Cook time" : { + "Connected to server." : { "localizations" : { "de" : { "stringUnit" : { "state" : "translated", - "value" : "Kochen" + "value" : "Verbindung mit dem Server hergestellt." } }, "es" : { "stringUnit" : { "state" : "translated", - "value" : "Duración de cocción" + "value" : "Conexión al servidor establecida." } } } @@ -305,6 +321,22 @@ } } }, + "Cooking" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kochen" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cocción" + } + } + } + }, "Cooking duration:" : { "localizations" : { "de" : { @@ -545,6 +577,22 @@ } } }, + "If 'Same as Device' is selected and your device language is not supported yet, this option will default to english." : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wenn \"Systemsprache\" ausgewählt ist und Ihre Systemsprache noch nicht unterstützt wird, wird standardmäßig Englisch verwendet." + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Si se selecciona 'Idioma del sistema' y el idioma de su dispositivo no es compatible aún, esta opción se establecerá por defecto en inglés." + } + } + } + }, "If you are interested in contributing to this project or simply wish to review its source code, we encourage you to visit the GitHub repository for this application." : { "localizations" : { "de" : { @@ -689,6 +737,22 @@ } } }, + "Login failed." : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Login fehlgeschlagen." + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Inicio de sesión fallido" + } + } + } + }, "Login Method" : { "localizations" : { "de" : { @@ -833,6 +897,22 @@ } } }, + "Please check your credentials and internet connection." : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bitte überprüfen Sie Ihre Anmeldedaten oder Ihre Internetverbindung." + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Por favor, comprueba tus credenciales de inicio de sesión y la conexión a Internet." + } + } + } + }, "Please enter a recipe name." : { "localizations" : { "de" : { @@ -849,7 +929,7 @@ } } }, - "Prep time" : { + "Preparation" : { "localizations" : { "de" : { "stringUnit" : { @@ -860,7 +940,7 @@ "es" : { "stringUnit" : { "state" : "translated", - "value" : "Duración de preparación" + "value" : "Preparación" } } } @@ -881,6 +961,38 @@ } } }, + "Same as Device" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Systemsprache" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Idioma del sistema" + } + } + } + }, + "Search recipe" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rezept suchen" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Buscar receta" + } + } + } + }, "Search recipes" : { "localizations" : { "de" : { @@ -1121,6 +1233,22 @@ } } }, + "Unable to connect to server." : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Verbindung mit dem Server fehlgeschlagen." + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "No se puede conectar al servidor." + } + } + } + }, "Unable to upload your recipe. Please check your internet connection." : { "localizations" : { "de" : { diff --git a/Nextcloud Cookbook iOS Client/Network/NetworkRequests.swift b/Nextcloud Cookbook iOS Client/Network/NetworkRequests.swift index 9085e41..690b435 100644 --- a/Nextcloud Cookbook iOS Client/Network/NetworkRequests.swift +++ b/Nextcloud Cookbook iOS Client/Network/NetworkRequests.swift @@ -20,6 +20,7 @@ enum RequestPath { RECIPE_DETAIL(recipeId: Int), NEW_RECIPE, IMAGE(recipeId: Int, thumb: Bool), + CONFIG, KEYWORDS case LOGINV2REQ, @@ -33,6 +34,7 @@ enum RequestPath { case .RECIPE_DETAIL(recipeId: let recipeId): return "recipes/\(recipeId)" case .IMAGE(recipeId: let recipeId, thumb: let thumb): return "recipes/\(recipeId)/image?size=\(thumb ? "thumb" : "full")" case .NEW_RECIPE: return "recipes" + case .CONFIG: return "config" case .KEYWORDS: return "keywords" case .LOGINV2REQ: return "/index.php/login/v2" diff --git a/Nextcloud Cookbook iOS Client/Nextcloud_Cookbook_iOS_ClientApp.swift b/Nextcloud Cookbook iOS Client/Nextcloud_Cookbook_iOS_ClientApp.swift index d089e69..55a9174 100644 --- a/Nextcloud Cookbook iOS Client/Nextcloud_Cookbook_iOS_ClientApp.swift +++ b/Nextcloud Cookbook iOS Client/Nextcloud_Cookbook_iOS_ClientApp.swift @@ -11,6 +11,7 @@ import SwiftUI struct Nextcloud_Cookbook_iOS_ClientApp: App { @StateObject var userSettings = UserSettings() @StateObject var mainViewModel = MainViewModel() + @StateObject var alertHandler = AlertHandler() var body: some Scene { WindowGroup { @@ -25,8 +26,12 @@ struct Nextcloud_Cookbook_iOS_ClientApp: App { } } .transition(.slide) - .environment(\.locale, .init(identifier: userSettings.language)) + .environment( + \.locale, + .init(identifier: userSettings.language == + SupportedLanguage.DEVICE.rawValue ? (Locale.current.language.languageCode?.identifier ?? "en") : userSettings.language) + ) + .environmentObject(alertHandler) } - } } diff --git a/Nextcloud Cookbook iOS Client/SupportedLanguage.swift b/Nextcloud Cookbook iOS Client/SupportedLanguage.swift new file mode 100644 index 0000000..9b5daf9 --- /dev/null +++ b/Nextcloud Cookbook iOS Client/SupportedLanguage.swift @@ -0,0 +1,31 @@ +// +// SupportedLanguage.swift +// Nextcloud Cookbook iOS Client +// +// Created by Vincent Meilinger on 18.10.23. +// + +import Foundation + + +enum SupportedLanguage: String, Codable { + case DEVICE = "device", + EN = "en", + DE = "de", + ES = "es" + + func descriptor() -> String { + switch self { + case .DEVICE: + return String(localized: "Same as Device") + case .EN: + return "English" + case .DE: + return "Deutsch" + case .ES: + return "Español" + } + } + + static let allValues = [DEVICE, EN, DE, ES] +} diff --git a/Nextcloud Cookbook iOS Client/ViewModels/MainViewModel.swift b/Nextcloud Cookbook iOS Client/ViewModels/MainViewModel.swift index f1ccd11..65c22b1 100644 --- a/Nextcloud Cookbook iOS Client/ViewModels/MainViewModel.swift +++ b/Nextcloud Cookbook iOS Client/ViewModels/MainViewModel.swift @@ -64,6 +64,19 @@ import SwiftUI } + func getAllRecipes() async -> [Recipe] { + var allRecipes: [Recipe] = [] + for category in categories { + await loadRecipeList(categoryName: category.name) + if let recipeArray = recipes[category.name] { + allRecipes.append(contentsOf: recipeArray) + } + } + return allRecipes.sorted(by: { + $0.name < $1.name + }) + } + /// Try to load the recipe details from cache. If not found, try to load from store or the server. /// - Parameters /// - recipeId: The id of the recipe. @@ -204,6 +217,22 @@ import SwiftUI }) recipeDetails.removeValue(forKey: id) } + + func checkServerConnection() async -> Bool { + guard let apiController = apiController else { return false } + let req = RequestWrapper.customRequest( + method: .GET, + path: .CONFIG, + headerFields: [ + .ocsRequest(value: true), + .accept(value: .JSON) + ] + ) + if let error = await apiController.sendRequest(req) { + return false + } + return true + } } @@ -225,7 +254,7 @@ extension MainViewModel { } return data } - }catch { + } catch { print("An unknown error occurred.") } return nil diff --git a/Nextcloud Cookbook iOS Client/Views/MainView.swift b/Nextcloud Cookbook iOS Client/Views/MainView.swift index a2d12d5..5061e6f 100644 --- a/Nextcloud Cookbook iOS Client/Views/MainView.swift +++ b/Nextcloud Cookbook iOS Client/Views/MainView.swift @@ -14,104 +14,203 @@ struct MainView: View { @State private var selectedCategory: Category? = nil @State private var showEditView: Bool = false + @State private var showSearchView: Bool = false @State private var showSettingsView: Bool = false + @State private var serverConnection: Bool = false + var columns: [GridItem] = [GridItem(.adaptive(minimum: 150), spacing: 0)] var body: some View { NavigationSplitView { - List(viewModel.categories, selection: $selectedCategory) { category in - if category.recipe_count != 0 { - NavigationLink(value: category) { - HStack(alignment: .center) { - Image(systemName: "book.closed.fill") - Text(category.name == "*" ? "Other" : category.name) - .font(.system(size: 20, weight: .light, design: .serif)) - .italic() - }.padding(7) + List(selection: $selectedCategory) { + // All recipes + NavigationLink { + RecipeSearchView(viewModel: viewModel) + } label: { + HStack(alignment: .center) { + Image(systemName: "book.closed.fill") + Text("All") + .font(.system(size: 20, weight: .light, design: .serif)) + .italic() + } + .padding(7) + } + + // Categories + ForEach(viewModel.categories) { category in + if category.recipe_count != 0 { + NavigationLink(value: category) { + HStack(alignment: .center) { + Image(systemName: "book.closed.fill") + Text(category.name == "*" ? "Other" : category.name) + .font(.system(size: 20, weight: .light, design: .serif)) + .italic() + }.padding(7) + } } } } + .navigationTitle("Cookbooks") .navigationDestination(isPresented: $showSettingsView) { SettingsView(userSettings: userSettings, viewModel: viewModel) } + .navigationDestination(isPresented: $showSearchView) { + RecipeSearchView(viewModel: viewModel) + } .toolbar { - ToolbarItem(placement: .topBarLeading) { - Menu { - Button { - print("Downloading all recipes ...") - Task { - await viewModel.downloadAllRecipes() - } - } label: { - HStack { - Text("Download all recipes") - Image(systemName: "icloud.and.arrow.down") - } - } - - Button { - self.showSettingsView = true - } label: { - Text("Settings") - Image(systemName: "gearshape") - } - } label: { - Image(systemName: "ellipsis.circle") + MainViewToolBar( + viewModel: viewModel, + showEditView: $showEditView, + showSettingsView: $showSettingsView, + serverConnection: $serverConnection + ) + } + } detail: { + NavigationStack { + if let category = selectedCategory { + CategoryDetailView( + categoryName: category.name, + viewModel: viewModel, + showEditView: $showEditView + ) + .id(category.id) // Workaround: This is needed to update the detail view when the selection changes } } - ToolbarItem(placement: .topBarTrailing) { + } + .tint(.nextcloudBlue) + .sheet(isPresented: $showEditView) { + RecipeEditView(viewModel: viewModel, isPresented: $showEditView) + } + .task { + self.serverConnection = await viewModel.checkServerConnection() + await viewModel.loadCategoryList() + // Open detail view for default category + if userSettings.defaultCategory != "" { + if let cat = viewModel.categories.first(where: { c in + if c.name == userSettings.defaultCategory { + return true + } + return false + }) { + self.selectedCategory = cat + } + } + } + .refreshable { + self.serverConnection = await viewModel.checkServerConnection() + await viewModel.loadCategoryList(needsUpdate: true) + } + + } + } + + + + + struct MainViewToolBar: ToolbarContent { + @ObservedObject var viewModel: MainViewModel + @Binding var showEditView: Bool + @Binding var showSettingsView: Bool + @Binding var serverConnection: Bool + @State private var presentPopover: Bool = false + + var body: some ToolbarContent { + // Top left menu toolbar item + ToolbarItem(placement: .topBarLeading) { + Menu { Button { - print("Add new recipe") - showEditView = true + print("Downloading all recipes ...") + Task { + await viewModel.downloadAllRecipes() + } } label: { HStack { - Image(systemName: "plus.circle.fill") + Text("Download all recipes") + Image(systemName: "icloud.and.arrow.down") + } + } + + Button { + self.showSettingsView = true + } label: { + Text("Settings") + Image(systemName: "gearshape") + } + } label: { + Image(systemName: "ellipsis.circle") + } + } + + // Server connection indicator + ToolbarItem(placement: .topBarTrailing) { + Button { + print("Check server connection") + presentPopover = true + } label: { + if serverConnection { + Image(systemName: "checkmark.icloud") + } else { + Image(systemName: "xmark.icloud") + } + }.popover(isPresented: $presentPopover) { + Text(serverConnection ? LocalizedStringKey("Connected to server.") : LocalizedStringKey("Unable to connect to server.")) + .bold() + .padding() + .presentationCompactAdaptation(.popover) + } + } + + // Create new recipes + ToolbarItem(placement: .topBarTrailing) { + Button { + print("Add new recipe") + showEditView = true + } label: { + Image(systemName: "plus.circle.fill") + } + } + + } + } + + + +struct RecipeSearchView: View { + @ObservedObject var viewModel: MainViewModel + @State var searchText: String = "" + @State var allRecipes: [Recipe] = [] + + var body: some View { + NavigationStack { + VStack { + ScrollView(showsIndicators: false) { + LazyVStack { + ForEach(recipesFiltered(), id: \.recipe_id) { recipe in + NavigationLink(value: recipe) { + RecipeCardView(viewModel: viewModel, recipe: recipe) + } + .buttonStyle(.plain) } } } - } - } detail: { - NavigationStack { - if let category = selectedCategory { - CategoryDetailView( - categoryName: category.name, - viewModel: viewModel, - showEditView: $showEditView - ) - .id(category.id) // Workaround: This is needed to update the detail view when the selection changes + .navigationDestination(for: Recipe.self) { recipe in + RecipeDetailView(viewModel: viewModel, recipe: recipe) } + .searchable(text: $searchText, prompt: "Search recipes") } - } - .tint(.nextcloudBlue) - .sheet(isPresented: $showEditView) { - RecipeEditView(viewModel: viewModel, isPresented: $showEditView) + .navigationTitle("Search recipe") } .task { - await viewModel.loadCategoryList() - if userSettings.defaultCategory != "" { - if let cat = viewModel.categories.first(where: { c in - if c.name == userSettings.defaultCategory { - return true - } - return false - }) { - self.selectedCategory = cat - } - } + allRecipes = await viewModel.getAllRecipes() } - .refreshable { - await viewModel.loadCategoryList(needsUpdate: true) + } + + func recipesFiltered() -> [Recipe] { + guard searchText != "" else { return allRecipes } + return allRecipes.filter { recipe in + recipe.name.lowercased().contains(searchText.lowercased()) } } } - - - - - - - - - diff --git a/Nextcloud Cookbook iOS Client/Views/RecipeCardView.swift b/Nextcloud Cookbook iOS Client/Views/RecipeCardView.swift index ab623ac..f5a7fd6 100644 --- a/Nextcloud Cookbook iOS Client/Views/RecipeCardView.swift +++ b/Nextcloud Cookbook iOS Client/Views/RecipeCardView.swift @@ -16,11 +16,24 @@ struct RecipeCardView: View { var body: some View { HStack { - Image(uiImage: recipeThumb ?? UIImage(named: "cookbook-recipe")!) - .resizable() - .aspectRatio(contentMode: .fill) + if let recipeThumb = recipeThumb { + Image(uiImage: recipeThumb) + .resizable() + .aspectRatio(contentMode: .fill) + .frame(width: 80, height: 80) + .clipped() + } else { + ZStack { + Image(systemName: "square.text.square") + .resizable() + .aspectRatio(contentMode: .fit) + .foregroundStyle(Color.white) + .padding(10) + + } + .background(Color("ncblue")) .frame(width: 80, height: 80) - .clipped() + } Text(recipe.name) .font(.headline) diff --git a/Nextcloud Cookbook iOS Client/Views/RecipeEditView.swift b/Nextcloud Cookbook iOS Client/Views/RecipeEditView.swift index 55dcfe1..db00f71 100644 --- a/Nextcloud Cookbook iOS Client/Views/RecipeEditView.swift +++ b/Nextcloud Cookbook iOS Client/Views/RecipeEditView.swift @@ -12,6 +12,7 @@ import PhotosUI struct RecipeEditView: View { + @EnvironmentObject var alertHandler: AlertHandler @ObservedObject var viewModel: MainViewModel @State var recipe: RecipeDetail = RecipeDetail() @Binding var isPresented: Bool @@ -25,8 +26,6 @@ struct RecipeEditView: View { @State private var keywords: [String] = [] @State private var keywordSuggestions: [String] = [] - @State private var alertMessage: ErrorMessages = .GENERIC - @State private var presentAlert: Bool = false @State private var waitingForUpload: Bool = false var body: some View { @@ -43,8 +42,9 @@ struct RecipeEditView: View { Menu { Button { print("Delete recipe.") - alertMessage = .CONFIRM_DELETE - presentAlert = true + alertHandler.present(alert: .CONFIRM_DELETE) { + deleteRecipe() + } } label: { Image(systemName: "trash") .foregroundStyle(.red) @@ -152,18 +152,24 @@ struct RecipeEditView: View { keywords.append(keyword) } } - .alert(alertMessage.localizedTitle, isPresented: $presentAlert) { - switch alertMessage { - case .CONFIRM_DELETE: - Button("Cancel", role: .cancel) { } - Button("Delete", role: .destructive) { - deleteRecipe() + .alert(alertHandler.alert.localizedTitle, isPresented: $alertHandler.presentAlert) { + ForEach(alertHandler.alert.alertButtons) { buttonType in + if buttonType == .OK { + Button(AlertButton.OK.rawValue, role: .cancel) { + alertHandler.alertAction() + alertHandler.dismiss() + } + } else if buttonType == .CANCEL { + Button(AlertButton.CANCEL.rawValue, role: .cancel) { } + } else if buttonType == .DELETE { + Button(AlertButton.DELETE.rawValue, role: .destructive) { + alertHandler.alertAction() + alertHandler.dismiss() + } } - default: - Button("Ok", role: .cancel) { } } } message: { - Text(alertMessage.localizedDescription) + Text(alertHandler.alert.localizedDescription) } } @@ -179,9 +185,8 @@ struct RecipeEditView: View { func recipeValid() -> Bool { // Check if the recipe has a name - if recipe.name == "" { - self.alertMessage = .NO_TITLE - self.presentAlert = true + if recipe.name.replacingOccurrences(of: " ", with: "") == "" { + alertHandler.present(alert: .NO_TITLE) return false } // Check if the recipe has a unique name @@ -194,8 +199,7 @@ struct RecipeEditView: View { .replacingOccurrences(of: " ", with: "") .lowercased() { - self.alertMessage = .DUPLICATE - self.presentAlert = true + alertHandler.present(alert: .DUPLICATE) return false } } @@ -266,11 +270,7 @@ struct RecipeEditView: View { guard let data = data else { return } do { let error = try JSONDecoder().decode(ServerMessage.self, from: data) - DispatchQueue.main.sync { - alertMessage = .CUSTOM(title: "Error.", description: LocalizedStringKey(stringLiteral: error.msg)) - presentAlert = true - return - } + // TODO: Better error handling (Show error to user!) } catch { } @@ -410,46 +410,3 @@ fileprivate class Duration: ObservableObject { -fileprivate enum ErrorMessages: Error { - - case NO_TITLE, - DUPLICATE, - UPLOAD_ERROR, - CONFIRM_DELETE, - GENERIC, - CUSTOM(title: LocalizedStringKey, description: LocalizedStringKey) - - var localizedDescription: LocalizedStringKey { - switch self { - case .NO_TITLE: - return "Please enter a recipe name." - case .DUPLICATE: - return "A recipe with that name already exists." - case .UPLOAD_ERROR: - return "Unable to upload your recipe. Please check your internet connection." - case .CONFIRM_DELETE: - return "This action is not reversible!" - case .CUSTOM(title: _, description: let description): - return description - default: - return "An unknown error occured." - } - } - - var localizedTitle: LocalizedStringKey { - switch self { - case .NO_TITLE: - return "Missing recipe name." - case .DUPLICATE: - return "Duplicate recipe." - case .UPLOAD_ERROR: - return "Network error." - case .CONFIRM_DELETE: - return "Delete recipe?" - case .CUSTOM(title: let title, description: _): - return title - default: - return "Error." - } - } -} diff --git a/Nextcloud Cookbook iOS Client/Views/SettingsView.swift b/Nextcloud Cookbook iOS Client/Views/SettingsView.swift index c5f4a8f..616269e 100644 --- a/Nextcloud Cookbook iOS Client/Views/SettingsView.swift +++ b/Nextcloud Cookbook iOS Client/Views/SettingsView.swift @@ -8,45 +8,7 @@ import Foundation import SwiftUI -fileprivate enum SettingsAlert { - case LOG_OUT, - DELETE_CACHE, - NONE - - func getTitle() -> String { - switch self { - case .LOG_OUT: return "Log out" - case .DELETE_CACHE: return "Delete local data" - default: return "Please confirm your action." - } - } - - func getMessage() -> String { - switch self { - case .LOG_OUT: return "Are you sure that you want to log out of your account?" - case .DELETE_CACHE: return "Are you sure that you want to delete the downloaded recipes? This action will not affect any recipes stored on your server." - default: return "" - } - } -} -enum SupportedLanguage: String, Codable { - case EN = "en", - DE = "de", - ES = "es" - func descriptor() -> String { - switch self { - case .EN: - return "English" - case .DE: - return "Deutsch" - case .ES: - return "Español" - } - } - - static let allValues = [EN, DE, ES] -} struct SettingsView: View { @ObservedObject var userSettings: UserSettings @@ -58,23 +20,32 @@ struct SettingsView: View { var body: some View { Form { Section { + /*Toggle(isOn: $userSettings.downloadRecipes) { + Text("Always download new recipes") + }*/ Picker("Select a default cookbook", selection: $userSettings.defaultCategory) { Text("None").tag("None") ForEach(viewModel.categories, id: \.name) { category in Text(category.name == "*" ? "Other" : category.name).tag(category) } } - Picker("Language", selection: $userSettings.language) { - ForEach(SupportedLanguage.allValues, id: \.self) { lang in - Text(lang.descriptor()).tag(lang.rawValue) - } - } } header: { Text("General") } footer: { Text("The selected cookbook will open on app launch by default.") } + Section { + Picker("Language", selection: $userSettings.language) { + ForEach(SupportedLanguage.allValues, id: \.self) { lang in + Text(lang.descriptor()).tag(lang.rawValue) + } + } + } footer: { + Text("If \'Same as Device\' is selected and your device language is not supported yet, this option will default to english.") + } + + Section { Link("Visit the GitHub page", destination: URL(string: "https://github.com/VincentMeilinger/Nextcloud-Cookbook-iOS")!) } header: { @@ -142,3 +113,24 @@ struct SettingsView: View { +fileprivate enum SettingsAlert { + case LOG_OUT, + DELETE_CACHE, + NONE + + func getTitle() -> String { + switch self { + case .LOG_OUT: return "Log out" + case .DELETE_CACHE: return "Delete local data" + default: return "Please confirm your action." + } + } + + func getMessage() -> String { + switch self { + case .LOG_OUT: return "Are you sure that you want to log out of your account?" + case .DELETE_CACHE: return "Are you sure that you want to delete the downloaded recipes? This action will not affect any recipes stored on your server." + default: return "" + } + } +}