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 505602145..87663efaa 100644 --- a/BeeSwift.xcodeproj/project.pbxproj +++ b/BeeSwift.xcodeproj/project.pbxproj @@ -193,13 +193,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 */; @@ -847,7 +840,6 @@ ); dependencies = ( E5F7C4A9260FC5300095684F /* PBXTargetDependency */, - E57BE6F42655EBE000BA540B /* PBXTargetDependency */, E57BE7132655F00200BA540B /* PBXTargetDependency */, 9B93301E2CE55C7F00720B19 /* PBXTargetDependency */, ); @@ -1342,11 +1334,6 @@ target = A196CB131AE4142E00B90A3E /* BeeSwift */; targetProxy = E57BE6EC2655EBE000BA540B /* PBXContainerItemProxy */; }; - E57BE6F42655EBE000BA540B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = E57BE6DF2655EBD900BA540B /* BeeKit */; - targetProxy = E57BE6F32655EBE000BA540B /* PBXContainerItemProxy */; - }; E57BE7132655F00200BA540B /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = E57BE6DF2655EBD900BA540B /* BeeKit */; @@ -1492,7 +1479,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; @@ -1557,7 +1544,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; @@ -1724,7 +1711,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 = ""; @@ -1771,7 +1758,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/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 @@ - + - + diff --git a/BeeSwift/Gallery/GalleryViewController.swift b/BeeSwift/Gallery/GalleryViewController.swift index 80533e356..3e555db39 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() diff --git a/BeeSwift/Info.plist b/BeeSwift/Info.plist index e4b37fe84..2bbcbd1f7 100644 --- a/BeeSwift/Info.plist +++ b/BeeSwift/Info.plist @@ -70,7 +70,7 @@ CFBundleVersion - 53 + 54 ITSAppUsesNonExemptEncryption LSApplicationCategoryType diff --git a/BeeSwift/SignInViewController.swift b/BeeSwift/SignInViewController.swift index c9ebc33f6..8b53e8947 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" @@ -99,7 +81,6 @@ class SignInViewController : UIViewController, UITextFieldDelegate, SFSafariView 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) @@ -114,87 +95,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 { 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 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)