Integrate settings in application, add LaunchScreen

This commit is contained in:
2020-12-15 12:44:16 +01:00
parent fdc403d39f
commit a87ba499a2
11 changed files with 124 additions and 64 deletions

View File

@@ -8,4 +8,5 @@ target 'circolapp' do
pod 'shared', :path => '../../shared' pod 'shared', :path => '../../shared'
pod 'Firebase/Messaging' pod 'Firebase/Messaging'
pod 'Firebase/AppDistribution' pod 'Firebase/AppDistribution'
pod 'AppStorage', '~> 1.0.3'
end end

View File

@@ -1,4 +1,5 @@
PODS: PODS:
- AppStorage (1.0.3)
- Firebase/AppDistribution (7.1.0): - Firebase/AppDistribution (7.1.0):
- Firebase/CoreOnly - Firebase/CoreOnly
- FirebaseAppDistribution (~> 7.1.0-beta) - FirebaseAppDistribution (~> 7.1.0-beta)
@@ -69,12 +70,14 @@ PODS:
- HTMLKit (~> 3.1.0) - HTMLKit (~> 3.1.0)
DEPENDENCIES: DEPENDENCIES:
- AppStorage (~> 1.0.3)
- Firebase/AppDistribution - Firebase/AppDistribution
- Firebase/Messaging - Firebase/Messaging
- shared (from `../../shared`) - shared (from `../../shared`)
SPEC REPOS: SPEC REPOS:
trunk: trunk:
- AppStorage
- Firebase - Firebase
- FirebaseAppDistribution - FirebaseAppDistribution
- FirebaseCore - FirebaseCore
@@ -93,6 +96,7 @@ EXTERNAL SOURCES:
:path: "../../shared" :path: "../../shared"
SPEC CHECKSUMS: SPEC CHECKSUMS:
AppStorage: dc9e2c18b5ebb7fed666af00c103b1c1432d459b
Firebase: 78e8dd2e39d653de6270432ad84fe8b59f7bf4e8 Firebase: 78e8dd2e39d653de6270432ad84fe8b59f7bf4e8
FirebaseAppDistribution: 055561ff2d0682e92492c00f4bd2acf562f9eb6f FirebaseAppDistribution: 055561ff2d0682e92492c00f4bd2acf562f9eb6f
FirebaseCore: 20046127eef0fcb8fa25df7fc12f7b97d4e48611 FirebaseCore: 20046127eef0fcb8fa25df7fc12f7b97d4e48611
@@ -107,6 +111,6 @@ SPEC CHECKSUMS:
PromisesObjC: 8c196f5a328c2cba3e74624585467a557dcb482f PromisesObjC: 8c196f5a328c2cba3e74624585467a557dcb482f
shared: fb3154b4def038b2b13aa88e01dd9f91bb2de9b5 shared: fb3154b4def038b2b13aa88e01dd9f91bb2de9b5
PODFILE CHECKSUM: a487659931a7673e546d39f1a5fb311269291d94 PODFILE CHECKSUM: 072fc8452438117fc96c91f862d3a31d3cf40f14
COCOAPODS: 1.10.0 COCOAPODS: 1.10.0

View File

@@ -9,7 +9,7 @@
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
9512D3C1257AB4F60023C3A1 /* NewReminderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9512D3C0257AB4F60023C3A1 /* NewReminderView.swift */; }; 9512D3C1257AB4F60023C3A1 /* NewReminderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9512D3C0257AB4F60023C3A1 /* NewReminderView.swift */; };
952DEDDF2576F8DC001DF85D /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 952DEDDE2576F8DC001DF85D /* SceneDelegate.swift */; }; 952DEDDF2576F8DC001DF85D /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 952DEDDE2576F8DC001DF85D /* SceneDelegate.swift */; };
9547205B2573B688005AA401 /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 9547205A2573B688005AA401 /* Settings.bundle */; }; 953DDE7E2580312500C457CE /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 953DDE7D2580312500C457CE /* LaunchScreen.storyboard */; };
954AF8F62588A5C300666D0C /* CircularList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 954AF8F52588A5C300666D0C /* CircularList.swift */; }; 954AF8F62588A5C300666D0C /* CircularList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 954AF8F52588A5C300666D0C /* CircularList.swift */; };
954AF8F82588A5CF00666D0C /* FavouritesList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 954AF8F72588A5CF00666D0C /* FavouritesList.swift */; }; 954AF8F82588A5CF00666D0C /* FavouritesList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 954AF8F72588A5CF00666D0C /* FavouritesList.swift */; };
954AF8FA2588A5DD00666D0C /* RemindersList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 954AF8F92588A5DD00666D0C /* RemindersList.swift */; }; 954AF8FA2588A5DD00666D0C /* RemindersList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 954AF8F92588A5DD00666D0C /* RemindersList.swift */; };
@@ -23,6 +23,7 @@
955B7A10257D10A70091B1F9 /* ViewControllerResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 955B7A0F257D10A70091B1F9 /* ViewControllerResolver.swift */; }; 955B7A10257D10A70091B1F9 /* ViewControllerResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 955B7A0F257D10A70091B1F9 /* ViewControllerResolver.swift */; };
95906F48257508660060F5D0 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 95906F47257506360060F5D0 /* Assets.xcassets */; }; 95906F48257508660060F5D0 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 95906F47257506360060F5D0 /* Assets.xcassets */; };
95906F4D257510370060F5D0 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 95906F4C257510370060F5D0 /* GoogleService-Info.plist */; }; 95906F4D257510370060F5D0 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 95906F4C257510370060F5D0 /* GoogleService-Info.plist */; };
95B4CE142588BC890090D5E8 /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95B4CE132588BC890090D5E8 /* SettingsView.swift */; };
95BC3BF82572BCF900F24400 /* AttachmentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95BC3BF72572BCF900F24400 /* AttachmentView.swift */; }; 95BC3BF82572BCF900F24400 /* AttachmentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95BC3BF72572BCF900F24400 /* AttachmentView.swift */; };
95C46A51255D3A34007A75E5 /* CircularViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95C46A50255D3A34007A75E5 /* CircularViewModel.swift */; }; 95C46A51255D3A34007A75E5 /* CircularViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95C46A50255D3A34007A75E5 /* CircularViewModel.swift */; };
95C9CBA32570EDEE005F879D /* Pods_circolapp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BEA78E7C5BBEF0119834B33 /* Pods_circolapp.framework */; settings = {ATTRIBUTES = (Required, ); }; }; 95C9CBA32570EDEE005F879D /* Pods_circolapp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BEA78E7C5BBEF0119834B33 /* Pods_circolapp.framework */; settings = {ATTRIBUTES = (Required, ); }; };
@@ -53,7 +54,7 @@
9512D3C0257AB4F60023C3A1 /* NewReminderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewReminderView.swift; sourceTree = "<group>"; }; 9512D3C0257AB4F60023C3A1 /* NewReminderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewReminderView.swift; sourceTree = "<group>"; };
952C5954255C57650018C010 /* shared.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = shared.framework; path = "../../shared/build/xcode-frameworks/shared.framework"; sourceTree = "<group>"; }; 952C5954255C57650018C010 /* shared.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = shared.framework; path = "../../shared/build/xcode-frameworks/shared.framework"; sourceTree = "<group>"; };
952DEDDE2576F8DC001DF85D /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = "<group>"; }; 952DEDDE2576F8DC001DF85D /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = "<group>"; };
9547205A2573B688005AA401 /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Settings.bundle; sourceTree = "<group>"; }; 953DDE7D2580312500C457CE /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = "<group>"; };
954AF8F52588A5C300666D0C /* CircularList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CircularList.swift; sourceTree = "<group>"; }; 954AF8F52588A5C300666D0C /* CircularList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CircularList.swift; sourceTree = "<group>"; };
954AF8F72588A5CF00666D0C /* FavouritesList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FavouritesList.swift; sourceTree = "<group>"; }; 954AF8F72588A5CF00666D0C /* FavouritesList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FavouritesList.swift; sourceTree = "<group>"; };
954AF8F92588A5DD00666D0C /* RemindersList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemindersList.swift; sourceTree = "<group>"; }; 954AF8F92588A5DD00666D0C /* RemindersList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemindersList.swift; sourceTree = "<group>"; };
@@ -68,6 +69,7 @@
95906F47257506360060F5D0 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 95906F47257506360060F5D0 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
95906F4C257510370060F5D0 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; }; 95906F4C257510370060F5D0 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
959B531E25764726009AD895 /* circolapp.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = circolapp.entitlements; sourceTree = "<group>"; }; 959B531E25764726009AD895 /* circolapp.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = circolapp.entitlements; sourceTree = "<group>"; };
95B4CE132588BC890090D5E8 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = "<group>"; };
95BC3BF72572BCF900F24400 /* AttachmentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AttachmentView.swift; sourceTree = "<group>"; }; 95BC3BF72572BCF900F24400 /* AttachmentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AttachmentView.swift; sourceTree = "<group>"; };
95C46A50255D3A34007A75E5 /* CircularViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CircularViewModel.swift; sourceTree = "<group>"; }; 95C46A50255D3A34007A75E5 /* CircularViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CircularViewModel.swift; sourceTree = "<group>"; };
95CA31AC255C1EDE00AC095B /* circolapp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = circolapp.app; sourceTree = BUILT_PRODUCTS_DIR; }; 95CA31AC255C1EDE00AC095B /* circolapp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = circolapp.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -132,6 +134,7 @@
954AF8F52588A5C300666D0C /* CircularList.swift */, 954AF8F52588A5C300666D0C /* CircularList.swift */,
954AF8F72588A5CF00666D0C /* FavouritesList.swift */, 954AF8F72588A5CF00666D0C /* FavouritesList.swift */,
954AF8F92588A5DD00666D0C /* RemindersList.swift */, 954AF8F92588A5DD00666D0C /* RemindersList.swift */,
95B4CE132588BC890090D5E8 /* SettingsView.swift */,
); );
path = View; path = View;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -173,10 +176,10 @@
95CA31AF255C1EDE00AC095B /* AppDelegate.swift */, 95CA31AF255C1EDE00AC095B /* AppDelegate.swift */,
952DEDDE2576F8DC001DF85D /* SceneDelegate.swift */, 952DEDDE2576F8DC001DF85D /* SceneDelegate.swift */,
954E683C2574ED9E0034EBA8 /* UserDefaultsExtensions.swift */, 954E683C2574ED9E0034EBA8 /* UserDefaultsExtensions.swift */,
953DDE7D2580312500C457CE /* LaunchScreen.storyboard */,
95CA31B8255C1EE000AC095B /* Info.plist */, 95CA31B8255C1EE000AC095B /* Info.plist */,
95906F4C257510370060F5D0 /* GoogleService-Info.plist */, 95906F4C257510370060F5D0 /* GoogleService-Info.plist */,
95906F47257506360060F5D0 /* Assets.xcassets */, 95906F47257506360060F5D0 /* Assets.xcassets */,
9547205A2573B688005AA401 /* Settings.bundle */,
95CA31B5255C1EE000AC095B /* Preview Content */, 95CA31B5255C1EE000AC095B /* Preview Content */,
); );
path = circolapp; path = circolapp;
@@ -253,7 +256,7 @@
95CA31B7255C1EE000AC095B /* Preview Assets.xcassets in Resources */, 95CA31B7255C1EE000AC095B /* Preview Assets.xcassets in Resources */,
95906F4D257510370060F5D0 /* GoogleService-Info.plist in Resources */, 95906F4D257510370060F5D0 /* GoogleService-Info.plist in Resources */,
95906F48257508660060F5D0 /* Assets.xcassets in Resources */, 95906F48257508660060F5D0 /* Assets.xcassets in Resources */,
9547205B2573B688005AA401 /* Settings.bundle in Resources */, 953DDE7E2580312500C457CE /* LaunchScreen.storyboard in Resources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@@ -324,6 +327,7 @@
955B7A0E257D098C0091B1F9 /* SearchBar.swift in Sources */, 955B7A0E257D098C0091B1F9 /* SearchBar.swift in Sources */,
9554BDB8257E498F00D8925B /* OnboardingView.swift in Sources */, 9554BDB8257E498F00D8925B /* OnboardingView.swift in Sources */,
95C46A51255D3A34007A75E5 /* CircularViewModel.swift in Sources */, 95C46A51255D3A34007A75E5 /* CircularViewModel.swift in Sources */,
95B4CE142588BC890090D5E8 /* SettingsView.swift in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1220" LastUpgradeVersion = "1230"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View File

@@ -43,6 +43,8 @@
<true/> <true/>
<key>UILaunchScreen</key> <key>UILaunchScreen</key>
<dict/> <dict/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIRequiredDeviceCapabilities</key> <key>UIRequiredDeviceCapabilities</key>
<array> <array>
<string>armv7</string> <string>armv7</string>

View File

@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="17506" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<device id="retina6_1" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17505"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="EHf-IW-A2E">
<objects>
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="obG-Y5-kRd">
<rect key="frame" x="0.0" y="876" width="414" height="0.0"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="CircolApp" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="GJd-Yh-RWb">
<rect key="frame" x="0.0" y="278" width="414" height="43"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="36"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<viewLayoutGuide key="safeArea" id="Bcu-3y-fUS"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="Bcu-3y-fUS" firstAttribute="centerX" secondItem="obG-Y5-kRd" secondAttribute="centerX" id="5cz-MP-9tL"/>
<constraint firstItem="Bcu-3y-fUS" firstAttribute="centerX" secondItem="GJd-Yh-RWb" secondAttribute="centerX" id="Q3B-4B-g5h"/>
<constraint firstItem="obG-Y5-kRd" firstAttribute="leading" secondItem="Bcu-3y-fUS" secondAttribute="leading" symbolic="YES" id="SfN-ll-jLj"/>
<constraint firstAttribute="bottom" secondItem="obG-Y5-kRd" secondAttribute="bottom" constant="20" id="Y44-ml-fuU"/>
<constraint firstItem="GJd-Yh-RWb" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="bottom" multiplier="1/3" constant="1" id="moa-c2-u7t"/>
<constraint firstItem="GJd-Yh-RWb" firstAttribute="leading" secondItem="Bcu-3y-fUS" secondAttribute="leading" symbolic="YES" id="x7j-FC-K8j"/>
</constraints>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="53" y="375"/>
</scene>
</scenes>
</document>

View File

@@ -1,53 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>StringsTable</key>
<string>Root</string>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>Type</key>
<string>PSGroupSpecifier</string>
<key>Title</key>
<string>General</string>
</dict>
<dict>
<key>Type</key>
<string>PSMultiValueSpecifier</string>
<key>Title</key>
<string>School</string>
<key>Key</key>
<string>school</string>
<key>DefaultValue</key>
<integer>0</integer>
<key>Titles</key>
<array>
<string>Liceo scientifico Maria Curie</string>
<string>Liceo G.F. Porporato</string>
</array>
<key>Values</key>
<array>
<integer>0</integer>
<integer>1</integer>
</array>
</dict>
<dict>
<key>Type</key>
<string>PSGroupSpecifier</string>
<key>Title</key>
<string>Notifications</string>
</dict>
<dict>
<key>Type</key>
<string>PSToggleSwitchSpecifier</string>
<key>Title</key>
<string>Notifications</string>
<key>Key</key>
<string>enable_notifications</string>
<key>DefaultValue</key>
<true/>
</dict>
</array>
</dict>
</plist>

View File

@@ -42,6 +42,12 @@ struct ContentView: View {
Image(systemName: "alarm.fill") Image(systemName: "alarm.fill")
Text("Reminders") Text("Reminders")
} }
SettingsView()
.tabItem {
Image(systemName: "gear")
Text("Settings")
}
}.sheet(isPresented: self.$showOnboarding, onDismiss: { }.sheet(isPresented: self.$showOnboarding, onDismiss: {
UserDefaults.standard.set(true, forKey: "skipOnboarding") UserDefaults.standard.set(true, forKey: "skipOnboarding")
}) { }) {

View File

@@ -17,11 +17,11 @@
*/ */
import SwiftUI import SwiftUI
import Combine import AppStorage
import Shared import Shared
struct OnboardingView: View { struct OnboardingView: View {
@State private var school = 0 @AppStorageCompat("school") var school = 0
@Environment(\.presentationMode) var presentationMode @Environment(\.presentationMode) var presentationMode
private let serverCompanion = ServerAPI.Companion() private let serverCompanion = ServerAPI.Companion()
@@ -38,9 +38,6 @@ struct OnboardingView: View {
Text(serverCompanion.getServerName(server: server)) Text(serverCompanion.getServerName(server: server))
} }
} }
.onReceive([self.school].publisher.first()) { value in
UserDefaults.standard.set(value, forKey: "school")
}
} }
.navigationBarTitle("Welcome to CircolApp") .navigationBarTitle("Welcome to CircolApp")
.navigationBarItems(trailing: Button(action: { .navigationBarItems(trailing: Button(action: {

View File

@@ -0,0 +1,50 @@
/*
* Circolapp
* Copyright (C) 2019-2020 Matteo Schiff
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
import SwiftUI
import AppStorage
import Shared
struct SettingsView: View {
@AppStorageCompat("school") var school = 0
private let serverCompanion = ServerAPI.Companion()
var body: some View {
NavigationView {
Form {
Picker("School", selection: $school) {
ForEach(0..<Int(serverCompanion.numberOfServers)) { serverID in
let server = serverCompanion.getServer(serverID: Int32(serverID))
Text(serverCompanion.getServerName(server: server))
}
}
.onReceive([self.school].publisher.first()) { value in
UserDefaults.standard.set(value, forKey: "school")
}
}
.navigationBarTitle("Settings", displayMode: .inline)
}
}
}
struct SettingsView_Previews: PreviewProvider {
static var previews: some View {
SettingsView()
}
}