What's Changed
- New: QuickEditor - This customizable sheet allows you to manage your avatar and Gravatar profile. You can select an existing avatar or upload a new one, and it provides a summary of your Gravatar profile.
- New: SwiftUI Avatar component
AvatarView
- Enhancement: Concurrency improvements & fixes
PRs
- Small fixes on 2.0.0 by @pinarol in #284
- Release 2.0.1 by @pinarol in #286
- Merge release/2.0.0 into trunk by @pinarol in #287
- Updating to xcode 15.4 by @etoledom in #285
- Use multicolor placeholder for claim placeholder by @pinarol in #292
- Remove TestHelpers dependency from GravatarUI by @pinarol in #300
- Solve the concurrency warning that appears in XCode 16 beta 2 by @pinarol in #297
- Merge "Release/2.0.1" to trunk by @pinarol in #301
- Fix docc deploy to GH pages by @etoledom in #302
- Decouple avatarID from Profile model by @pinarol in #304
- Merge
release/2.0.2
additions back to trunk by @pinarol in #305 - Fix errors on xcode_16 with swift 6 by @etoledom in #309
- Fix SwiftFormat Warnings by @andrewdmontgomery in #307
- Create "Generate Secrets.swift" Build Phase script by @andrewdmontgomery in #313
- Update SwiftFormat to 0.54.0 by @andrewdmontgomery in #312
- Deprecating public CodingKeys and init methods by @etoledom in #316
- Add SwiftUI CachedAsyncImage and AvatarView by @pinarol in #310
- Add unit tests by @andrewdmontgomery in #322
- Adding interests to Profile by @etoledom in #317
- Add basic SwiftUI Avatar picker by @pinarol in #318
- Add
.avatarPickerSheet(...)
modifier by @pinarol in #324 - Changes to SwiftUI demo app by @etoledom in #325
- Rename
Gravatar-Demo
-->UIKit-Demo
,Gravatar-SwiftUI-Demo
-->SwiftUI-Demo
by @andrewdmontgomery in #327 - Use Rsync instead of CP for copying generated source files by @andrewdmontgomery in #323
- Changing icons of demo app by @etoledom in #328
- Update target/scheme names by @andrewdmontgomery in #329
- Adjust
TestHelper
access, drop use of@testable import
by @andrewdmontgomery in #335 - Fix Swift Package Index documentation generation by @andrewdmontgomery in #333
- Prep work for adding support to Enterprise distribution via App Center by @mokagio in #326
- Implementing v3 version of image upload endpoint by @etoledom in #336
- Put a profile card into the avatar picker by @pinarol in #331
- SwiftUI Picker - System photos picker by @etoledom in #337
- Avatar picker empty views by @pinarol in #338
- Fix the issue about
@Environment
var being accessed from outside a View by @pinarol in #340 - Update profile background according to designs by @pinarol in #342
- Select avatar on Avatar Picker by @etoledom in #341
- Build and upload prototype build from CI by @mokagio in #330
- [Tooling] Remove the 'Build Demos' step from CI pipeline by @AliSoftware in #348
- Add a reusable SwiftUI Toast by @pinarol in #350
- Extract Grid view from Picker view by @etoledom in #351
- [Tooling] Prevent uploading Prototype Builds when there's no Pull Request by @iangmaia in #352
- Handle avatar upload fail by @pinarol in #354
- Avatar Picker: Introduce horizontal grid layout by @pinarol in #355
- Add navigation bar to the avatar picker by @pinarol in #358
- Add email to the Avatar picker by @pinarol in #360
- Add option to pick image by using the camera by @etoledom in #363
- Gravatar OAuth in SwiftUI by @etoledom in #359
- Etoledom/adding navigation bar to profile editor by @etoledom in #367
- Renaming for parity by @etoledom in #368
- Handle token error by @etoledom in #369
- Setup Legacy Localization Support by @andrewdmontgomery in #356
- Handling url session errors by @etoledom in #374
- Allow 3rd party apps to inject their existing image editors to the QuickEditor by @pinarol in #375
- Automation for downloading current localizations from GlotPress, Localized Demo Project by @andrewdmontgomery in #380
- Add
SDKLocalizedString
global function by @andrewdmontgomery in #390 - Bump rexml from 3.2.6 to 3.3.6 by @dependabot in #393
- Use
ImageCache.shared
as the default value by @pinarol in #387 - Quick Editor: Add presentation styles by @pinarol in #377
- Update wpmreleasetoolkit to 12.0 by @andrewdmontgomery in #396
- Merge release 2.1.1 back to trunk by @pinarol in #394
- Remove "async" from ImageCaching by @pinarol in #386
- Add a error view to authentication by @etoledom in #401
- Fix DoCC generation for Github Pages by @andrewdmontgomery in #403
- Implement scopes by @etoledom in #402
- Adding secrets config for CI (and a8c devs) by @etoledom in #405
- Add image cropper by @pinarol in #407
- Localize more strings by @andrewdmontgomery in #400
- Properly encode literal
+
characters inURLQueryItem
s by @andrewdmontgomery in #409 - Moving cropper action buttons to the bottom of the screen by @etoledom in #410
- Using internal cropper as default by @etoledom in #411
- Update openapi spec by @etoledom in #382
- Show upload fail error dialog by @pinarol in #420
- Merge Localizations by @andrewdmontgomery in #412
- Use Implicit OAuth (token response) by @andrewdmontgomery in #423
- Small update to v3 endpoint by @etoledom in #426
- Using PHPicker by @etoledom in #425
- Check if the correct user is authorized during OAuth by @pinarol in #427
- Add content layout options to the demo app oauth page by @pinarol in #429
- Use a thread safe cache in TestImageCache to fix a crash by @pinarol in #430
- Unit Tests for Canceling Fetches by @andrewdmontgomery in #440
- Concurrency Improvements in ImageDownloadService by @andrewdmontgomery in #435
- QE OAuth: Ignore the cancelled error so it doesn't override our current error by @pinarol in #432
- Image Download: Add cache buster if forceRefresh == true by @pinarol in #441
- Set "Accept : application/json" header by @pinarol in #442
- Add color scheme picker to the SwiftUI demo app by @pinarol in #445
- Quick Editor UIKit by @etoledom in #437
- Updating open-api specs by @etoledom in #452
- Decrease the max crop size by @pinarol in #444
- Adding a configuration for the global quick editor experience by @etoledom in #450
- Add common headers for Platform, SDK version, Source app by @pinarol in #455
- Avatar selected callback by @etoledom in #459
- Prevent stacking of toast messages by @pinarol in #460
- Making some openapi structs internal by @etoledom in #462
- Add delay to avatar update callback by @pinarol in #463
- Updating to latest openapi spec by @etoledom in #464
- Update strings in base locale by @andrewdmontgomery in #468
- Handle payload too large error on upload by @pinarol in #467
- Handle expired token (401 error) on avatar selection and upload by @andrewdmontgomery in #448
- Prevent the session expired error state from changing on tap by @pinarol in #466
- Release/2.0.2 additions back merge by @andrewdmontgomery in #471
- Release 3.0.0-rc.1 by @pinarol in #472
- Remove open-api deprecations by @etoledom in #475
- Making some access to OAuthSession static by @etoledom in #473
- Remove global deprecations by @etoledom in #481
- Fix RemoteSVGView crash by @etoledom in #479
- QE: Add empty check for the profile card field by @pinarol in #480
- Make HTTPClient internal by @pinarol in #482
- Add localization progress check and linting of localized strings by @andrewdmontgomery in #483
- Fix podspec publishing by @andrewdmontgomery in #484
- [DO NOT SQUASH] Release 2.0.2 Back Merge (take 2) by @andrewdmontgomery in #485
- Fix the first time we upload avatar by @pinarol in #490
- Bringing back old image upload method by @etoledom in #493
- Add support for setting uploaded image as avatar by @andrewdmontgomery in #492
- Fix keyboard covering cropper by @pinarol in #498
- Fix initialization of
@State
var by @pinarol in #494 - Use
.gravatarBlue
for selected avatar's border by @pinarol in #495 - Show close button when external token is expired by @etoledom in #499
- Remove unused client secret by @etoledom in #502
- Remove modifiers that directly create
AvatarPickerView
by @pinarol in #500 - Adding helpful extensions to
AvatarPickerConfiguration
by @etoledom in #501 - Simpilfy strings generation logic by @andrewdmontgomery in #496
- Add GravatarUI docs to the SPI documentation building by @andrewdmontgomery in #504
- Release 3.0.0-rc.2 by @pinarol in #505
- Add docs for AvatarView by @pinarol in #506
- Solve warnings on xcode16 by @etoledom in #512
- Update secrets removing client secret by @etoledom in #514
- Upload heic image format by @etoledom in #515
- Update gravatar icon's action to open the static URL
https://gravatar.com/profile
by @pinarol in #517 - Download localizations by @pinarol in #516
- Update localizations by @andrewdmontgomery in #523
- Simplify OpenAPI Generator by @andrewdmontgomery in #522
- Handle https callback url by @etoledom in #524
- Replace the condition to
notifyAvatarSelection()
with an opt-in mechanism by @pinarol in #528 - Add documentation about the Gravatar OAuth by @pinarol in #518
- Add QuickEditor docs by @pinarol in #519
- OAuth session unit tests by @etoledom in #526
- Add a simple tutorial for using the Quick Editor from a SwiftUI View by @andrewdmontgomery in #509
- Update image upload request with new options by @etoledom in #527
- Solving docs warnings by @etoledom in #530
- Remove the swiftlint plugin by @pinarol in #531
New Contributors
- @mokagio made their first contribution in #326
- @iangmaia made their first contribution in #352
- @dependabot made their first contribution in #393
Full Changelog: 2.0.0...3.0.0