*Replace this paragraph with a description of what this PR is changing
or adding, and why. Consider including before/after screenshots.*
*List which issues are fixed by this PR. For larger changes, raising an
issue first helps
reduce redundant work.*
## Pre-launch Checklist
- [ ] I read the [Flutter Style Guide] _recently_, and have followed its
advice.
- [ ] I signed the [CLA].
- [ ] I read the [Contributors Guide].
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [ ] All existing and new tests are passing.
If you need help, consider asking for advice on the #hackers-devrel
channel on [Discord].
<!-- Links -->
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[CLA]: https://cla.developers.google.com/
[Discord]: https://github.com/flutter/flutter/wiki/Chat
[Contributors Guide]:
https://github.com/flutter/samples/blob/main/CONTRIBUTING.md
## Pre-launch Checklist
- [x] I read the [Flutter Style Guide] _recently_, and have followed its
advice.
- [x] I signed the [CLA].
- [x] I read the [Contributors Guide].
- [x] I updated/added relevant documentation (doc comments with `///`).
- [ ] All existing and new tests are passing.
---------
Co-authored-by: David Iglesias <ditman@gmail.com>
Co-authored-by: Mark Thompson <2554588+MarkTechson@users.noreply.github.com>
Co-authored-by: John Ryan <ryjohn@google.com>
* add mock data, app state, model classes
* Set up app without ChangeNotifier
* refactor
* add experiments to experimental/
* Add project-agnostic Firebase authentication code
* add sign in button
* add stub firebase API
* add firestore
* refactor code for google_sign_in
* update pubspec.lock
* switch to mocks for non-firebase version
* Add firebase instructions to the README
* fix README
* sign in silently if the user is already signed in
* add json_serializable
* update README
* ignore 'id' field on types
* Implement FirebaseItemApi
* Add build_runner instructions to README
* remove experiments directory
* add EditItemForm
* move types.dart into api.dart
* move mock and firebase configuration into the constructor
* add main_mock entrypoint
* add copyright checks to grinder script
* fix fix-copyright task
* run grind fix-copyright
* add run and generate tasks
* add run tasks to grind script
* add fillWithMockData() fix delete() in mock API
* add edit / new form dialogs
* Add charts that display entries from Firebase
* Add Entries list without editing
* refactor home page
* format
* Add entries page functionality
* Show current day in charts
* cleanup: pubspec.lock, remove type annotation
* Remove _selectedItem from Home page
Add ItemsDropdown
Use ItemsDropdown in NewEntryDialog / NewEntryForm
* rename item-category
* don't wait to show snackbar on delete
* fix circular progress indicator
* Move dialogs into dialogs.dart
* run grind fix-copyright
* remove unused import
* Refactor entry total calculation, add chart_utils library
* fix bug in chart_utils.dart
* convert CategoryChart to a stateless widget
* use a const for number of days in chart
* code review updates
- rename stream -> subscribe
- timeStamp -> timestamp
- remove latest() from API
- use FutureBuilder and StreamBuilder instead of stateful widget
- rename variables in mock_service_test.dart
* use a single collection reference in firebase API
* remove reference to stream in mock API
* Use a new type, _EntriesEvent to improve filtering in mock API
* add analysis_options.yaml and fix (most) issues
* fix avoid_types_on_closure_parameters lint warnings
* use spread operator in dashboard.dart
* handle case where selected item in the category dropdown goes away
* use StreamBuilder + FutureBuilder on Entries page
* rename method
* use fake firebase configuration
* update pubspec.lock
* update README
* Change categories_dropdown to FutureBuilder + StreamBuilder
* Update minSdkVersion in build.gradle
SDK version 16 was failing: "The number of method references in a .dex
file cannot exceed 64K."
* update README
* Use a collection reference in FirebaseEntryApi
Already added to FirebaseCategoryApi
* Invoke onSelected in CategoriesDropdown when necessary
Also, avoid calling onSelected during a build.
* fix misnamed var
* remove unused import
* Use relative imports
* Use extension methods for DateTime utilities
* remove forms.dart
* Make Firebase instructions specific for this sample
* add copyright headers
* fix grammar
* dartfmt
* avoid setState() during build phase in CategoryDropdown
* add empty test to material_theme_builder
* add web_dashboard sample
* add docs
* address code review comments
* restructure web_dashboard
* set up provider and mock service
* add copyright headers, use relative imports
* add API class, add tests
* fmt
* rename services -> API, remove data library
* use new API in app
* add stream to items api
* convert from StreamBuilder to StreamProvider
* add subscription to Entry API
* rename API classes
* address comments
* Update README.md
* update README
* remove routing_demo