From 745cf9875ed6b0303c46d5d8e4c0a2d44796040d Mon Sep 17 00:00:00 2001 From: krugerk <4656811+krugerk@users.noreply.github.com> Date: Fri, 6 Dec 2024 01:13:25 +0100 Subject: [PATCH 1/7] beeswift need only link to beekit once (#541) ## Summary Sometimes, despite changes to something in BeeKit, Xcode would complain in BeeSwift source code that seemed to reflect the older state in BeeKit. Looking around for possible causes, it was noticed that target BeeSwift linked BeeKit twice. A merge artifact? One of the two was removed with this merge request. ## Validation Built app in Xcode. Launched in a Simulator. Navigated in app, gallery, goals, settings, ... --- BeeSwift.xcodeproj/project.pbxproj | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/BeeSwift.xcodeproj/project.pbxproj b/BeeSwift.xcodeproj/project.pbxproj index c6c967d8d..f74933ee9 100644 --- a/BeeSwift.xcodeproj/project.pbxproj +++ b/BeeSwift.xcodeproj/project.pbxproj @@ -168,13 +168,6 @@ remoteGlobalIDString = A196CB131AE4142E00B90A3E; remoteInfo = BeeSwift; }; - E57BE6F32655EBE000BA540B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A196CB0C1AE4142E00B90A3E /* Project object */; - proxyType = 1; - remoteGlobalIDString = E57BE6DF2655EBD900BA540B; - remoteInfo = BeeKit; - }; E57BE7122655F00200BA540B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = A196CB0C1AE4142E00B90A3E /* Project object */; @@ -732,7 +725,6 @@ ); dependencies = ( E5F7C4A9260FC5300095684F /* PBXTargetDependency */, - E57BE6F42655EBE000BA540B /* PBXTargetDependency */, E57BE7132655F00200BA540B /* PBXTargetDependency */, ); name = BeeSwift; @@ -1168,11 +1160,6 @@ target = A196CB131AE4142E00B90A3E /* BeeSwift */; targetProxy = E57BE6EC2655EBE000BA540B /* PBXContainerItemProxy */; }; - E57BE6F42655EBE000BA540B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = E57BE6DF2655EBD900BA540B /* BeeKit */; - targetProxy = E57BE6F32655EBE000BA540B /* PBXContainerItemProxy */; - }; E57BE7132655F00200BA540B /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = E57BE6DF2655EBD900BA540B /* BeeKit */; From 01bb304a1aeec04c4dfddbea1ecca5065a3726d3 Mon Sep 17 00:00:00 2001 From: krugerk <4656811+krugerk@users.noreply.github.com> Date: Wed, 11 Dec 2024 00:12:41 +0100 Subject: [PATCH 2/7] gallery accounted for no longer displayed keyboard (#545) ## Summary space could have been allocated for a keyboard that was not shown when returning to the gallery from a goal with the keyboard shown follow-up to #536 --- BeeSwift/Gallery/GalleryViewController.swift | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/BeeSwift/Gallery/GalleryViewController.swift b/BeeSwift/Gallery/GalleryViewController.swift index be06c5d55..e80328033 100644 --- a/BeeSwift/Gallery/GalleryViewController.swift +++ b/BeeSwift/Gallery/GalleryViewController.swift @@ -207,6 +207,17 @@ class GalleryViewController: UIViewController, UICollectionViewDelegateFlowLayou } } + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + + self.collectionView!.snp.remakeConstraints { make in + make.top.equalTo(self.searchBar.snp.bottom) + make.left.equalTo(self.view.safeAreaLayoutGuide.snp.leftMargin) + make.right.equalTo(self.view.safeAreaLayoutGuide.snp.rightMargin) + make.bottom.equalTo(self.collectionView!.keyboardLayoutGuide.snp.top) + } + } + override func viewDidAppear(_ animated: Bool) { if !ServiceLocator.currentUserManager.signedIn(context: ServiceLocator.persistentContainer.viewContext) { let signInVC = SignInViewController() From 03cc891756c98aef95a49036dc2dad58c7adfad6 Mon Sep 17 00:00:00 2001 From: Theo Spears Date: Tue, 10 Dec 2024 15:22:18 -0800 Subject: [PATCH 3/7] Version Bump to 54 --- BeeKit/Info.plist | 2 +- BeeKitTests/Info.plist | 2 +- BeeSwift.xcodeproj/project.pbxproj | 8 ++++---- BeeSwift/Info.plist | 2 +- BeeSwiftIntents/Info.plist | 2 +- BeeSwiftTests/Info.plist | 2 +- BeeSwiftUITests/Info.plist | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/BeeKit/Info.plist b/BeeKit/Info.plist index a19febe48..e06492fff 100644 --- a/BeeKit/Info.plist +++ b/BeeKit/Info.plist @@ -17,6 +17,6 @@ CFBundleShortVersionString 6.7 CFBundleVersion - 53 + 54 diff --git a/BeeKitTests/Info.plist b/BeeKitTests/Info.plist index a19febe48..e06492fff 100644 --- a/BeeKitTests/Info.plist +++ b/BeeKitTests/Info.plist @@ -17,6 +17,6 @@ CFBundleShortVersionString 6.7 CFBundleVersion - 53 + 54 diff --git a/BeeSwift.xcodeproj/project.pbxproj b/BeeSwift.xcodeproj/project.pbxproj index f74933ee9..bdeb5b716 100644 --- a/BeeSwift.xcodeproj/project.pbxproj +++ b/BeeSwift.xcodeproj/project.pbxproj @@ -1222,7 +1222,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 53; + CURRENT_PROJECT_VERSION = 54; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; @@ -1287,7 +1287,7 @@ CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 53; + CURRENT_PROJECT_VERSION = 54; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -1454,7 +1454,7 @@ DEFINES_MODULE = YES; DEVELOPMENT_TEAM = 8TW9V9HVES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 53; + DYLIB_CURRENT_VERSION = 54; DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_MODULE_VERIFIER = YES; EXCLUDED_ARCHS = ""; @@ -1501,7 +1501,7 @@ DEFINES_MODULE = YES; DEVELOPMENT_TEAM = 8TW9V9HVES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 53; + DYLIB_CURRENT_VERSION = 54; DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_MODULE_VERIFIER = YES; EXCLUDED_ARCHS = ""; diff --git a/BeeSwift/Info.plist b/BeeSwift/Info.plist index e37e7032a..12e0dc55e 100644 --- a/BeeSwift/Info.plist +++ b/BeeSwift/Info.plist @@ -70,7 +70,7 @@ CFBundleVersion - 53 + 54 ITSAppUsesNonExemptEncryption LSApplicationCategoryType diff --git a/BeeSwiftIntents/Info.plist b/BeeSwiftIntents/Info.plist index f13e15498..17008515d 100644 --- a/BeeSwiftIntents/Info.plist +++ b/BeeSwiftIntents/Info.plist @@ -19,7 +19,7 @@ CFBundleShortVersionString 6.7 CFBundleVersion - 53 + 54 NSExtension NSExtensionAttributes diff --git a/BeeSwiftTests/Info.plist b/BeeSwiftTests/Info.plist index 4f0b0963f..4f4d43516 100644 --- a/BeeSwiftTests/Info.plist +++ b/BeeSwiftTests/Info.plist @@ -19,6 +19,6 @@ CFBundleSignature ???? CFBundleVersion - 53 + 54 diff --git a/BeeSwiftUITests/Info.plist b/BeeSwiftUITests/Info.plist index a19febe48..e06492fff 100644 --- a/BeeSwiftUITests/Info.plist +++ b/BeeSwiftUITests/Info.plist @@ -17,6 +17,6 @@ CFBundleShortVersionString 6.7 CFBundleVersion - 53 + 54 From b55316207fb12dba832f70ad87a403f13d000ebf Mon Sep 17 00:00:00 2001 From: Theo Spears Date: Sat, 14 Dec 2024 20:43:50 -0800 Subject: [PATCH 4/7] Update changelog to reflect release of 6.7 This adds remaining changes for 6.7 to the changelog, and marks that 6.7 has been released. --- CHANGELOG.md | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ad77168f..154be9598 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,11 +3,33 @@ Changes to be released in next version ================================================= +✨ Features + * + +🙌 Improvements + * + +🐛 Bugfix + * + +⚠️ API Changes + * + +🧱 Build + * + +Others + * + +6.7 (2024-12-14) +================================================= + ✨ Features * Goals are searchable via Spotlight (#472) 🙌 Improvements * Support dark mode and tint for app icon (#478) + * Add support for dark green for goals with 7 days of safety buffer (#535) * Changes to the styling of some buttons and UI elements (#483, #488, #489, #492) * Support webcredentials for password manager login (#449) * Sort by urgency instead of deadline (#451) @@ -20,9 +42,7 @@ Changes to be released in next version * Add #THISWILLSELFDESTRUCT to list of points ignored for value suggestion (#457) * UI Elements no longer overlap with notch/dyanmic island (#495) * Fix issues with choosing wrong day shortly after midnight (#510) - -⚠️ API Changes - * + * Goals are no longer hidden behind the keyboard when filtering (#536, #545) 🧱 Build * Update RubyGem versions (#476, #509) From 007c3c2d7c5ce68e067ba75476fa79c6dbbb1ec9 Mon Sep 17 00:00:00 2001 From: krugerk <4656811+krugerk@users.noreply.github.com> Date: Mon, 16 Dec 2024 19:32:35 +0100 Subject: [PATCH 5/7] Cruft of SignIn / SignUp Screen reduced to just SignIn (#543) ## Summary SignInVC has been used for just signing in (and no longer signing up) for some while now. Meanwhile, it contained lots of dead code relating to signing up. Less clutter, easier code base with which to work. ## Validation Builds Ran app in simulator. Logged in and out and back in. --- BeeSwift/SignInViewController.swift | 86 +---------------------------- 1 file changed, 1 insertion(+), 85 deletions(-) diff --git a/BeeSwift/SignInViewController.swift b/BeeSwift/SignInViewController.swift index c9ebc33f6..292de1db9 100644 --- a/BeeSwift/SignInViewController.swift +++ b/BeeSwift/SignInViewController.swift @@ -12,20 +12,12 @@ import SafariServices import BeeKit -class SignInViewController : UIViewController, UITextFieldDelegate, SFSafariViewControllerDelegate { +class SignInViewController : UIViewController, UITextFieldDelegate { var headerLabel = BSLabel() var emailTextField = BSTextField() var passwordTextField = BSTextField() - var newEmailTextField = BSTextField() - var newUsernameTextField = BSTextField() - var newPasswordTextField = BSTextField() - var chooseSignInButton = BSButton() - var chooseSignUpButton = BSButton() var beeImageView = UIImageView() - var signUpButton = BSButton() - var backToSignInButton = BSButton() - var backToSignUpButton = BSButton() var signInButton = BSButton() var divider = UIView() @@ -57,16 +49,6 @@ class SignInViewController : UIViewController, UITextFieldDelegate, SFSafariView make.centerX.equalToSuperview() } - scrollView.addSubview(self.chooseSignInButton) - self.chooseSignInButton.setTitle("I have a Beeminder account", for: .normal) - self.chooseSignInButton.snp.makeConstraints { (make) in - make.centerX.equalToSuperview() - make.top.equalTo(self.headerLabel.snp.bottom).offset(40) - make.width.equalToSuperview().multipliedBy(0.75) - make.height.equalTo(Constants.defaultTextFieldHeight) - } - self.chooseSignInButton.addTarget(self, action: #selector(SignInViewController.chooseSignInButtonPressed), for: .touchUpInside) - scrollView.addSubview(self.emailTextField) self.emailTextField.isHidden = true self.emailTextField.placeholder = "Email or username" @@ -114,87 +96,21 @@ class SignInViewController : UIViewController, UITextFieldDelegate, SFSafariView self.divider.isHidden = true self.divider.backgroundColor = UIColor.Beeminder.gray - scrollView.addSubview(self.newUsernameTextField) - self.newUsernameTextField.isHidden = true - self.newUsernameTextField.autocapitalizationType = .none - self.newUsernameTextField.snp.makeConstraints { (make) in - make.top.equalTo(self.headerLabel.snp.bottom).offset(15) - make.centerX.equalTo(scrollView) - make.height.equalTo(Constants.defaultTextFieldHeight) - make.width.equalTo(self.view).multipliedBy(0.75) - } - self.newUsernameTextField.placeholder = "Username" - - scrollView.addSubview(self.newEmailTextField) - self.newEmailTextField.isHidden = true - self.newEmailTextField.autocapitalizationType = .none - self.newEmailTextField.snp.makeConstraints { (make) in - make.top.equalTo(self.newUsernameTextField.snp.bottom).offset(15) - make.centerX.equalTo(scrollView) - make.height.equalTo(Constants.defaultTextFieldHeight) - make.width.equalTo(self.view).multipliedBy(0.75) - } - self.newEmailTextField.placeholder = "Email" - - scrollView.addSubview(self.newPasswordTextField) - self.newPasswordTextField.isHidden = true - self.newPasswordTextField.autocapitalizationType = .none - self.newPasswordTextField.isSecureTextEntry = true - self.newPasswordTextField.snp.makeConstraints { (make) in - make.top.equalTo(self.newEmailTextField.snp.bottom).offset(15) - make.centerX.equalTo(scrollView) - make.height.equalTo(Constants.defaultTextFieldHeight) - make.width.equalTo(self.view).multipliedBy(0.75) - } - - self.newPasswordTextField.placeholder = "Password" - - scrollView.addSubview(self.signUpButton) - self.signUpButton.isHidden = true - self.signUpButton.setTitle("Sign Up", for: .normal) - self.signUpButton.titleLabel?.font = UIFont.beeminder.defaultFontPlain.withSize(20) - self.signUpButton.snp.makeConstraints { (make) in - make.top.equalTo(self.newPasswordTextField.snp.bottom).offset(15) - make.centerX.equalTo(self.view) - make.height.equalTo(Constants.defaultTextFieldHeight) - make.width.equalTo(self.view).multipliedBy(0.75) - } - - scrollView.addSubview(self.backToSignInButton) - self.backToSignInButton.isHidden = true - self.backToSignInButton.setTitle("Back to Sign In", for: .normal) - self.backToSignInButton.snp.makeConstraints { (make) in - make.top.equalTo(divider.snp.bottom).offset(15) - make.height.equalTo(Constants.defaultTextFieldHeight) - make.centerX.equalTo(self.view) - make.width.equalTo(self.view).multipliedBy(0.75) - } - self.backToSignInButton.addTarget(self, action: #selector(SignInViewController.chooseSignInButtonPressed), for: .touchUpInside) self.chooseSignInButtonPressed() } @objc func chooseSignInButtonPressed() { - //self.divider.isHidden = false - //self.backToSignUpButton.isHidden = false self.emailTextField.isHidden = false self.passwordTextField.isHidden = false - self.backToSignInButton.isHidden = true - self.newUsernameTextField.isHidden = true - self.newPasswordTextField.isHidden = true - self.newEmailTextField.isHidden = true - self.chooseSignInButton.isHidden = true - self.chooseSignUpButton.isHidden = true self.headerLabel.text = "Sign in to Beeminder" self.headerLabel.isHidden = false self.signInButton.isHidden = false - self.signUpButton.isHidden = true self.divider.snp.remakeConstraints { (make) -> Void in make.left.equalTo(self.signInButton) make.right.equalTo(self.signInButton) make.height.equalTo(1) make.top.equalTo(self.signInButton.snp.bottom).offset(15) } - } var missingDataOnSignIn: UIAlertController { From 370f099ca3540c28bcbd4726c47fd546672bdb06 Mon Sep 17 00:00:00 2001 From: krugerk <4656811+krugerk@users.noreply.github.com> Date: Mon, 16 Dec 2024 19:33:21 +0100 Subject: [PATCH 6/7] main navigation controller is not a custom one (#549) ## Summary follow-up to e9e144ccd4bd75060 / #511, where removing the file brought about a new warning --- BeeSwift/Base.lproj/Main.storyboard | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BeeSwift/Base.lproj/Main.storyboard b/BeeSwift/Base.lproj/Main.storyboard index 8e9c3e14e..69142d397 100644 --- a/BeeSwift/Base.lproj/Main.storyboard +++ b/BeeSwift/Base.lproj/Main.storyboard @@ -8,10 +8,10 @@ - + - + From cf9a77490113e1ff7238a9e6b0f043d9f52a8d74 Mon Sep 17 00:00:00 2001 From: krugerk <4656811+krugerk@users.noreply.github.com> Date: Mon, 16 Dec 2024 19:45:45 +0100 Subject: [PATCH 7/7] sign in button had corners that did not match its background (#552) ## Summary Sign In button had dark corners on light mode although it had rounded corners. The two did not look good together. ## Validation ran the app in the simulator ## Issue Fixes #551 Related #483 --- BeeSwift/SignInViewController.swift | 1 - 1 file changed, 1 deletion(-) diff --git a/BeeSwift/SignInViewController.swift b/BeeSwift/SignInViewController.swift index 292de1db9..8b53e8947 100644 --- a/BeeSwift/SignInViewController.swift +++ b/BeeSwift/SignInViewController.swift @@ -81,7 +81,6 @@ class SignInViewController : UIViewController, UITextFieldDelegate { scrollView.addSubview(self.signInButton) self.signInButton.isHidden = true self.signInButton.setTitle("Sign In", for: UIControl.State()) - self.signInButton.backgroundColor = UIColor.Beeminder.gray self.signInButton.titleLabel?.font = UIFont.beeminder.defaultFontPlain.withSize(20) self.signInButton.titleLabel?.textColor = UIColor.white self.signInButton.addTarget(self, action: #selector(SignInViewController.signInButtonPressed), for: UIControl.Event.touchUpInside)