Skip to content

Commit

Permalink
Some cleaning up
Browse files Browse the repository at this point in the history
  • Loading branch information
markusbergh committed Jun 1, 2021
1 parent 8535fb2 commit 3a1af39
Show file tree
Hide file tree
Showing 5 changed files with 80 additions and 38 deletions.
4 changes: 4 additions & 0 deletions Debaser.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
85303376262E1E2400C93D1B /* DBSROnboardingStepViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85303371262E1E2400C93D1B /* DBSROnboardingStepViewController.swift */; };
85303377262E1E2400C93D1B /* DBSROnboardingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85303372262E1E2400C93D1B /* DBSROnboardingViewController.swift */; };
85303381262E1EF200C93D1B /* OnboardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85303380262E1EF200C93D1B /* OnboardingView.swift */; };
85498DF526659C2800132D92 /* SafeAreaInsets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85498DF426659C2800132D92 /* SafeAreaInsets.swift */; };
854E2980262CB3C0003AC567 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 854E296C262CB0C0003AC567 /* Localizable.strings */; };
854F3A352651627F00FC6BD9 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 854E296C262CB0C0003AC567 /* Localizable.strings */; };
855090452621FDCB000C88BF /* TabViewRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 855090442621FDCB000C88BF /* TabViewRouter.swift */; };
Expand Down Expand Up @@ -194,6 +195,7 @@
85303371262E1E2400C93D1B /* DBSROnboardingStepViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DBSROnboardingStepViewController.swift; sourceTree = "<group>"; };
85303372262E1E2400C93D1B /* DBSROnboardingViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DBSROnboardingViewController.swift; sourceTree = "<group>"; };
85303380262E1EF200C93D1B /* OnboardingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingView.swift; sourceTree = "<group>"; };
85498DF426659C2800132D92 /* SafeAreaInsets.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SafeAreaInsets.swift; sourceTree = "<group>"; };
854E296B262CB0C0003AC567 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
854E2970262CB0C4003AC567 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = "<group>"; };
855090442621FDCB000C88BF /* TabViewRouter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabViewRouter.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -735,6 +737,7 @@
85D7D8002619F5150073E3BA /* Helpers */ = {
isa = PBXGroup;
children = (
85498DF426659C2800132D92 /* SafeAreaInsets.swift */,
85EEB96526203FDB00DFC238 /* RoundedCorner.swift */,
852FBE9D26275CF200060A7E /* WillDisappearModifier.swift */,
8587C21F2647AF64005D622C /* DidAppearModifier.swift */,
Expand Down Expand Up @@ -1048,6 +1051,7 @@
855310D3260C8BFA00F0D5F7 /* EventListView.swift in Sources */,
855CF3832646DBF7007876D3 /* Theme.swift in Sources */,
855310D8260C8C0600F0D5F7 /* SettingsView.swift in Sources */,
85498DF526659C2800132D92 /* SafeAreaInsets.swift in Sources */,
85FCAF2A26372E2000A0BC89 /* SpotifyActions.swift in Sources */,
85FCAF15263723FA00A0BC89 /* SpotifyService.swift in Sources */,
8528211E26276BF8007B83EC /* UINavigationController+Extension.swift in Sources */,
Expand Down
6 changes: 6 additions & 0 deletions Debaser/UI/Helpers/RoundedCorner.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,12 @@ struct RoundedCorner: Shape {
var radius: CGFloat = .infinity
var corners: UIRectCorner = .allCorners

///
/// Returns a 2D shape with size of rectangle
///
/// - parameter rect: Geometry of interest
/// - returns: A shape with rounded corners
///
func path(in rect: CGRect) -> Path {
let path = UIBezierPath(roundedRect: rect,
byRoundingCorners: corners,
Expand Down
28 changes: 28 additions & 0 deletions Debaser/UI/Helpers/SafeAreaInsets.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
//
// SafeAreaInsets.swift
// Debaser
//
// Created by Markus Bergh on 2021-06-01.
//

import SwiftUI

private struct SafeAreaInsetsKey: EnvironmentKey {
static var defaultValue: EdgeInsets {
(UIApplication.shared.windows.first(
where: { $0.isKeyWindow }
)?.safeAreaInsets ?? .zero).insets
}
}

extension EnvironmentValues {
var safeAreaInsets: EdgeInsets {
self[SafeAreaInsetsKey.self]
}
}

private extension UIEdgeInsets {
var insets: EdgeInsets {
EdgeInsets(top: top, leading: left, bottom: bottom, trailing: right)
}
}
11 changes: 8 additions & 3 deletions Debaser/UI/Settings/SettingsAboutView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@
import SwiftUI

struct SettingsAboutView: View {

// MARK: Private

@Environment(\.safeAreaInsets) private var safeAreaInsets

private var historyTitle: LocalizedStringKey {
return "Settings.Debaser.History.Title"
}
Expand All @@ -18,11 +23,11 @@ struct SettingsAboutView: View {

private var bottomPadding: CGFloat {
// Unfornately some hard coding values needed here...
guard let safeAreaInsets = UIApplication.shared.windows.first?.safeAreaInsets, safeAreaInsets.bottom > 0 else {
return TabBarStyle.height.rawValue + TabBarStyle.insetPadding.rawValue + TabBarStyle.paddingBottom.rawValue + 15 + 10
if safeAreaInsets.bottom > 0 {
return TabBarStyle.height.rawValue + TabBarStyle.insetPadding.rawValue + TabBarStyle.paddingBottom.rawValue + 5
}

return TabBarStyle.height.rawValue + TabBarStyle.insetPadding.rawValue + TabBarStyle.paddingBottom.rawValue
return TabBarStyle.height.rawValue + TabBarStyle.insetPadding.rawValue + TabBarStyle.paddingBottom.rawValue + 10 + 20
}

var body: some View {
Expand Down
69 changes: 34 additions & 35 deletions Debaser/UI/SettingsView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,11 @@ import SwiftUI

struct SettingsView: View {
@EnvironmentObject var store: AppStore

// MARK: Private

@State private var isAlertPresented = false
@Environment(\.safeAreaInsets) private var safeAreaInsets

private var titleLabel: LocalizedStringKey {
return "Settings"
Expand All @@ -30,40 +31,6 @@ struct SettingsView: View {
return darkMode.wrappedValue
}

private var bottomPadding: CGFloat {
guard let safeAreaInsets = UIApplication.shared.windows.first?.safeAreaInsets, safeAreaInsets.bottom > 0 else {
return 15
}

return safeAreaInsets.bottom
}

private var systemColorScheme: Binding<Bool> {
return Binding<Bool>(
get: {
return store.state.settings.systemColorScheme.value
},
set: { newValue in
withAnimation {
store.dispatch(action:.settings(.setOverrideColorScheme(newValue)))
}
}
)
}

private var darkMode: Binding<Bool> {
return Binding<Bool>(
get: {
return store.state.settings.darkMode.value
},
set: { newValue in
withAnimation {
store.dispatch(action:.settings(.setDarkMode(newValue)))
}
}
)
}

init() {
UITableView.appearance().backgroundColor = .clear
}
Expand Down Expand Up @@ -141,6 +108,38 @@ struct SettingsView: View {
}
}

// MARK: - Bindings

extension SettingsView {

private var systemColorScheme: Binding<Bool> {
return Binding<Bool>(
get: {
return store.state.settings.systemColorScheme.value
},
set: { newValue in
withAnimation {
store.dispatch(action:.settings(.setOverrideColorScheme(newValue)))
}
}
)
}

private var darkMode: Binding<Bool> {
return Binding<Bool>(
get: {
return store.state.settings.darkMode.value
},
set: { newValue in
withAnimation {
store.dispatch(action:.settings(.setDarkMode(newValue)))
}
}
)
}

}

struct SettingsViewTopRectangle: View {

// MARK: Public
Expand Down

0 comments on commit 3a1af39

Please sign in to comment.