diff --git a/streak-bar/streak-bar.xcodeproj/project.pbxproj b/streak-bar/streak-bar.xcodeproj/project.pbxproj index 1ecb688..f7225fe 100644 --- a/streak-bar/streak-bar.xcodeproj/project.pbxproj +++ b/streak-bar/streak-bar.xcodeproj/project.pbxproj @@ -367,7 +367,7 @@ CODE_SIGN_ENTITLEMENTS = "streak-bar/streak_bar.entitlements"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 5; DEVELOPMENT_TEAM = UV3HUS49VJ; ENABLE_HARDENED_RUNTIME = YES; GENERATE_INFOPLIST_FILE = YES; @@ -380,7 +380,7 @@ "$(inherited)", "@executable_path/../Frameworks", ); - MARKETING_VERSION = 1.1; + MARKETING_VERSION = 1.3; PRODUCT_BUNDLE_IDENTIFIER = "com.pavelmakhov.streak-bar"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; @@ -396,7 +396,7 @@ CODE_SIGN_ENTITLEMENTS = "streak-bar/streak_bar.entitlements"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 5; DEVELOPMENT_TEAM = UV3HUS49VJ; ENABLE_HARDENED_RUNTIME = YES; GENERATE_INFOPLIST_FILE = YES; @@ -409,7 +409,7 @@ "$(inherited)", "@executable_path/../Frameworks", ); - MARKETING_VERSION = 1.1; + MARKETING_VERSION = 1.3; PRODUCT_BUNDLE_IDENTIFIER = "com.pavelmakhov.streak-bar"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; diff --git a/streak-bar/streak-bar/GitHub/Client.swift b/streak-bar/streak-bar/GitHub/Client.swift index cffe9ce..b3eea58 100644 --- a/streak-bar/streak-bar/GitHub/Client.swift +++ b/streak-bar/streak-bar/GitHub/Client.swift @@ -11,7 +11,6 @@ import Defaults public class Client { - @Default(.githubUsername) var githubUsername @FromKeychain(.githubToken) var githubToken func getContributions(from: Date, completion: @escaping (Result<[ContributionWeek], ClientError>) -> Void) { @@ -49,7 +48,7 @@ public class Client { var variables: [String: Any] = [:] // Adding values to the dictionary - variables["userName"] = githubUsername + variables["userName"] = Defaults[.githubUsername] variables["from"] = formatDateToCustomString(from) variables["to"] = formatDateToCustomString(.now) diff --git a/streak-bar/streak-bar/ViewModel.swift b/streak-bar/streak-bar/ViewModel.swift index 1d73eb3..a74dc47 100644 --- a/streak-bar/streak-bar/ViewModel.swift +++ b/streak-bar/streak-bar/ViewModel.swift @@ -9,17 +9,19 @@ import Foundation import Defaults class ViewModel: ObservableObject { - @Default(.daysBefore) var daysBefore - @Default(.viewMode) var viewMode private var client = Client() @Published var contributions: [ContributionWeek] = [] + init() { + print("ViewModel init") + } + func getContributions() { - let multiplier = viewMode == .week ? 7 : 1 + let multiplier = Defaults[.viewMode] == .week ? 7 : 1 - let fromDate = getDateNDaysBeforeToday(n: daysBefore * multiplier) + let fromDate = getDateNDaysBeforeToday(n: Defaults[.daysBefore] * multiplier) client.getContributions(from: fromDate) { result in switch result { diff --git a/streak-bar/streak-bar/Views/ContentView.swift b/streak-bar/streak-bar/Views/ContentView.swift index 7e6723b..f34f4e1 100644 --- a/streak-bar/streak-bar/Views/ContentView.swift +++ b/streak-bar/streak-bar/Views/ContentView.swift @@ -11,15 +11,16 @@ import LaunchAtLogin struct ContentView: View { var appDelegate: AppDelegate - @State private var favoriteColor = 0 + @State private var selectedTab = 0 var body: some View { VStack(spacing: 10) { ZStack { - Picker("", selection: $favoriteColor) { - Text("Settings").tag(0) - Text("About").tag(1) + Picker("", selection: $selectedTab) { + Text("Streaks").tag(0) + Text("Settings").tag(1) + Text("About").tag(2) } .pickerStyle(.segmented) .frame(width: 150) @@ -49,9 +50,12 @@ struct ContentView: View { } } - if favoriteColor == 0 { + if selectedTab == 0 { + StatusItemView(viewModel: appDelegate.viewModel, isFullSize: true) + .padding() + } else if selectedTab == 1 { SettingsView(appDelegate: appDelegate) - } else { + } else if selectedTab == 2 { AboutView() } } diff --git a/streak-bar/streak-bar/Views/StatusItemView.swift b/streak-bar/streak-bar/Views/StatusItemView.swift index 4bea70a..4e759e1 100644 --- a/streak-bar/streak-bar/Views/StatusItemView.swift +++ b/streak-bar/streak-bar/Views/StatusItemView.swift @@ -15,7 +15,9 @@ struct StatusItemView: View { @Default(.borders) var borders @Default(.transparency) var transparency @Default(.viewMode) var viewMode - + + var isFullSize: Bool = false + var body: some View { if viewModel.contributions.first?.contributionDays.isEmpty ?? false { @@ -31,7 +33,7 @@ struct StatusItemView: View { ForEach(week.contributionDays, id:\.date) { day in Rectangle() .fill(Theme.themes[theme]![day.contributionLevel]!.opacity(day.contributionLevel == .NONE && !transparency ? 0.2 : 1)) - .frame(width: borders ? 2 : 3, height: borders ? 2 : 3) + .frame(width: (borders ? 2 : 3) * (isFullSize ? 3 : 1), height: (borders ? 2 : 3) * (isFullSize ? 3 : 1)) } } } @@ -42,7 +44,7 @@ struct StatusItemView: View { ForEach(week.contributionDays, id:\.date) { day in RoundedRectangle(cornerRadius: 4) .fill(Theme.themes[theme]![day.contributionLevel]!.opacity(day.contributionLevel == .NONE && !transparency ? 0.2 : 1)) - .frame(width: 16, height: 16) + .frame(width: 16 * (isFullSize ? 3 : 1), height: 16 * (isFullSize ? 3 : 1)) } } }