Skip to content

Conversation

@daytime-em
Copy link
Collaborator

@daytime-em daytime-em commented Jun 5, 2023

API Changes

  • MuxUpload's initializer no longer requires a MIME type or Retry Time. These are calculated internally
  • Added methods for querying the UploadManager for the list of currenty-active uploads, and listening for changes to the list

Improvements

Fixes

Co-authored-by: AJ Lauer Barinov [email protected]
Co-authored-by: Liam Lindner [email protected]
Co-authored-by: Emily Dixon [email protected]
Co-authored-by: GitHub [email protected]

andrewjl-mux and others added 8 commits May 25, 2023 14:37
…t-out for event tracking (#16)

* Remove videoMIMEType and retryBaseTime

* Add config option for opt-out

* Check opt-out

* Report app name as bundle id
* Add FakeBackend skeleton

* Add the fake backend rest objects

* Do the upload backend

* Some widgets and colors

* Styles or views

* Some comments

* Add prototype to nav

* Ok

* Minor indentation fixes

* Minor formatting fix

* I have mastered your puny buttons

* Figuring it out

* Ok now we're getting somewhere hypothetically

* one last update

* Don't need an environment object

* Start with the pick flow

* I guess we don't need the width

* And a little tweaking

* Upload CTA can be smarter than this

* now for a view model

* Move over permission request

* Permission Request Success

* No crash probs

* up

* Now to extract a thumbnail

* Thumbnail extraction test

* Ready to add other states

* Error View

* Do Processing View

* now to hook it up

* This thumbnail sucks

* Ok now the thumbnail is in at least

* Try to post an upload

* Working authorization

* Add some more headers for the fake backend

* Add credentials but the data is off

* Fake backend now works

* Still works

* TODO done

* Time to start uploading

* Fix bug in forceRestart

* come back to that

* Progress updates look broken

* Fix the upload POST body

* Cool regression

* Debug

* Fix the thumbnail rendering

* Now what

* Add listener for Uploads Updated

* Auto acknowledge uploads

* not time for nav

* Rearrange the Upload CTA stuff

* Updating more stuff

* now we're navigating

* Figuring it out

* Time to start on the upload list

* Added more listy stuff

* list container

* Now it works

* Empty list

* Hashable

* Notify delegates but something doesn't seem to be working

* Now working it out

* Making it work

* Thumbnail in the list items maybe

* OK I got it

* Figured out thumbnails

* Work on it

* Work

* So far so good

* ugh

* Making progress

* Progress View

* Ok

* Now we're talking

* Ok now we have a status line

* Now we are good

* Appropriately scope the create-upload viewmodel

* Now we are getting to the end

* Save old uploads for a while

* ont an error

* Remove old example UI

* cleanup

* project

* Remove another old UI component

* Yknow this isn't really mvvm to begin with

* Label cleanup

* oh dang forgot the app icon

* oh wow that didn't build

* Add a Mux Asset catalog

* Add Mux assets to a catalog

* CTA vis

* The list needs to actually scroll

* Rename *Screen to *View

* Use task instead of onAppear

* Don't commit those

* Fix permission prompt

* AnyObject

* Brackets

* Update Sources/MuxUploadSDK/Public API/UploadManager.swift

Co-authored-by: AJ Lauer Barinov <[email protected]>

* Generics

---------

Co-authored-by: Liam Lindner <[email protected]>
Co-authored-by: AJ Lauer Barinov <[email protected]>
* NFC: call into upload manager reference (#14)

* api: Remove extraneous MIME type and retry time config fields, add opt-out for event tracking (#16)

* Remove videoMIMEType and retryBaseTime

* Add config option for opt-out

* Check opt-out

* Report app name as bundle id

* doc: Example App v1 (#15)

* Add FakeBackend skeleton

* Add the fake backend rest objects

* Do the upload backend

* Some widgets and colors

* Styles or views

* Some comments

* Add prototype to nav

* Ok

* Minor indentation fixes

* Minor formatting fix

* I have mastered your puny buttons

* Figuring it out

* Ok now we're getting somewhere hypothetically

* one last update

* Don't need an environment object

* Start with the pick flow

* I guess we don't need the width

* And a little tweaking

* Upload CTA can be smarter than this

* now for a view model

* Move over permission request

* Permission Request Success

* No crash probs

* up

* Now to extract a thumbnail

* Thumbnail extraction test

* Ready to add other states

* Error View

* Do Processing View

* now to hook it up

* This thumbnail sucks

* Ok now the thumbnail is in at least

* Try to post an upload

* Working authorization

* Add some more headers for the fake backend

* Add credentials but the data is off

* Fake backend now works

* Still works

* TODO done

* Time to start uploading

* Fix bug in forceRestart

* come back to that

* Progress updates look broken

* Fix the upload POST body

* Cool regression

* Debug

* Fix the thumbnail rendering

* Now what

* Add listener for Uploads Updated

* Auto acknowledge uploads

* not time for nav

* Rearrange the Upload CTA stuff

* Updating more stuff

* now we're navigating

* Figuring it out

* Time to start on the upload list

* Added more listy stuff

* list container

* Now it works

* Empty list

* Hashable

* Notify delegates but something doesn't seem to be working

* Now working it out

* Making it work

* Thumbnail in the list items maybe

* OK I got it

* Figured out thumbnails

* Work on it

* Work

* So far so good

* ugh

* Making progress

* Progress View

* Ok

* Now we're talking

* Ok now we have a status line

* Now we are good

* Appropriately scope the create-upload viewmodel

* Now we are getting to the end

* Save old uploads for a while

* ont an error

* Remove old example UI

* cleanup

* project

* Remove another old UI component

* Yknow this isn't really mvvm to begin with

* Label cleanup

* oh dang forgot the app icon

* oh wow that didn't build

* Add a Mux Asset catalog

* Add Mux assets to a catalog

* CTA vis

* The list needs to actually scroll

* Rename *Screen to *View

* Use task instead of onAppear

* Don't commit those

* Fix permission prompt

* AnyObject

* Brackets

* Update Sources/MuxUploadSDK/Public API/UploadManager.swift

Co-authored-by: AJ Lauer Barinov <[email protected]>

* Generics

---------

Co-authored-by: Liam Lindner <[email protected]>
Co-authored-by: AJ Lauer Barinov <[email protected]>

* Remove spaces from directory names (for ease of life when scripting) (#18)

* Document mux error case

* Add doc for muxUploadSDK

* Done

* more doc

* doc just keeps improving"

* MuxUpload even nicer docs

* Add more doc

* Conflict markers

* Update Sources/MuxUploadSDK/PublicAPI/MuxUpload.swift

Co-authored-by: Liam Lindner <[email protected]>

* Update Sources/MuxUploadSDK/PublicAPI/UploadManager.swift

Co-authored-by: Liam Lindner <[email protected]>

---------

Co-authored-by: AJ Lauer Barinov <[email protected]>
Co-authored-by: Liam Lindner <[email protected]>
…#24)

* Add fix

* Clean up

* Fix that

* Cleanup

* Also fix a crash when reading from end of file

* Fix comment
* fix: Retain MuxUploader & Handlers via the UploadManager

* Also clear the delegate
@daytime-em daytime-em requested a review from a team as a code owner June 5, 2023 19:41
@@ -43,7 +43,7 @@ struct UploadEvent: Codable {

self.deviceModel = device.model

self.appName = Bundle.main.appName
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this result in a different value for appName for the same app?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It does, but this is known. We want the unique name because it's easier to identify

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, just something to note if we're ever trying to correlate upload stats across versions

public static let major = 0
/// Minor version.
public static let minor = 2
public static let minor = 3
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for remembering to change these, we should look into adding a script for automating this change

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if swift-syntax could help us

Copy link
Contributor

@andrewjl-mux andrewjl-mux left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚢

@daytime-em daytime-em merged commit be70b3d into main Jun 5, 2023
@daytime-em daytime-em deleted the releases/v0.3.0 branch June 5, 2023 19:47
@github-actions
Copy link

github-actions bot commented Jun 5, 2023

A draft release has been created for this version. Find it here! https://github.com/muxinc/swift-upload-sdk/releases/tag/untagged-e9a83e34bf924999c573

tomkordic pushed a commit that referenced this pull request Mar 1, 2024
# API Changes

* `MuxUpload`'s initializer no longer requires a MIME type or Retry Time. These are calculated internally
* Added methods for querying the `UploadManager` for the list of currenty-active uploads, and listening for changes to the list

## Improvements

* NFC: call into upload manager reference (#14)
* api: Remove extraneous MIME type and retry time config fields, add opt-out for event tracking (#16)
* doc: Add a much-improved example app (#15)

## Fixes
* Fix: Uploads continue without reporting progress after being resumed (#24)
* Fix: handlers not retained unless callers retain the `MuxUpload` (#25)



Co-authored-by: AJ Lauer Barinov <[email protected]>
Co-authored-by: Liam Lindner <[email protected]>
Co-authored-by: Emily Dixon <[email protected]>
Co-authored-by: GitHub <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants