* re-structure tracks
* publication.track is now a LocalTrack or RemoteTrack
* restartTrack when unmute
* stop/start on restartTrack
* move to mute/unmute
* format
* remove comment
* use events for `VideoTrackRenderer`
* logger
* implemented visibility detection
* optimize code with 1 param debounce func
* stop pending visibility event when disposed
* clean up
* mark internal
* report to track
* call dispose on pub and track
* use internal events to receive visibility events
* clean up visibility for disposed track
* listen to track visibility events on pub
* re-design
* quickly re-enable
* clean up
* clean up
* move internal events & remove unused events
* `TrackUnpublishedEvent` for local tracks
* update example since we have local track unpublish events
* use flutter_webrtc 0.6.9
* Respect `RTCIceTransportPolicy` enum and organize
* Simplify syntax where possible etc.
* Combine `VideoPreset` and `VideoPresets`
* Default values for `ConnectOptions`
* Build URI instead of String manipulation
* Slight modifications to Exception
* `LiveKitTheme` for example
* `VideoEncoding` class
* Organize imports
* First simulcast implementation
* Remove unnecessary try-catches
* Update Android settings
* Remember uri and token
* example improvements
* `fit` parameter for VideoTrackRenderer
* Simulcast option for example
* Pass `defaultPublishOptions`
* Show only `VideoQuality`
* Pass tests
* Better buildUri logic
* Named parameter to positional
* Explicit imports
* `VideoParameter` instead of `VideoPreset`
* Use `mediaTrack.getSettings` when possible
* Safer dispose logic
* Safer `PCTransport`
Update transport.dart
* Synchronized events for `SignalClient`
* Use logger instead of print
* Make example compile for iOS
* First screen share implementation
* Make example work with screen share
* Example improvement
* Code optimization
* Don't depend on web_socket_channel
* Fix: Unpublish track bug
* Show participant mute state & identity
* Update protos
* Remote mute/unmute
* iOS Background mode
* Separate `createCameraTrack` and `createScreenTrack`
* Clean up
* PB fix
* format
* Fix analyzer warning
* Android clean up
* Update README.md
* Clean up
* Add flutter_lints package
* Use key in widget constructors
lint: use_key_in_widget_constructors
* Unnecessary new keyword
lint: unnecessary_new
* Prefer const with constant constructors
* Exclude protobuf files from analyzer
* Private field could be final
* Annotate overridden members
* Use initializing formals when possible
* Don't access members with `this` unless avoiding shadowing
* Prefer is! operator
* Use isEmpty instead of length
* Use collection literals when possible
* Revert comment changes
* Cleaner null testing
* Misc fixes
* Avoid using `forEach` with a function literal
* Prefer `final` over `var` where applicable
* Enforce stricter type-checking
* Ignore VS Code files
* Flutter format
* Prefer using lowerCamelCase for constant names
* flutter format -l 100
* Disable `avoid_print` for examples
* Slight improvements to example
Should solve lint error: no_logic_in_create_state