* refactor(Log): allow passing error and stacktrace to logs
This allows us to log errors and stacktraces in a more structured way.
* feat: catch platform errors
Adds handling for platform errors that are not caught by the
Flutter framework. Doing so will log the error properly and
prevent the app from crashing.
* feat: add TargetPlatform `isDesktop` helper
Safe and convenient way to check if the current platform is a desktop platform.
* refactor: move window logic to separate class
This is much cleaner and better encapsulated. Sets up an area for
further window management in the future.
Does not try to initialize on mobile or web, which would crash.
* fix: isDesktop doc comment
* fix: set window title
Currently only displays "app_flowy" as the window title. This commit
sets the window title to "AppFlowy" as part of the init process.
* fix: use window_manager to set minimum window size
Resolves#762Resolves#1559
* refactor: only init WidgetsFlutterBinding once
* fix: set window minimum size
Was meant to be setMinimumSize not setSize
* fix: windows manager crash on macOS
---------
Co-authored-by: Lucas.Xu <lucas.xu@appflowy.io>
* feat: support customize folder path
* feat: add l10n and optimize the logic
* chore: code refactor
* feat: add file read/write permission for macOS
* fix: add toast for restoring path
* feat: fetch apps and show them
* feat: fetch apps and show them
* feat: implement select document logic
* feat: l10n and add select item callback
* feat: add space between tile
* chore: move file exporter to settings
* chore: update UI
* feat: support customizing folder when launching the app
* feat: auto register after customizing folder
* feat: l10n
* feat: l10n
* chore: reinitialize flowy sdk when calling init_sdk
* chore: remove flowysdk const keyword to make sure it can be rebuild
* chore: clear kv values when user logout
* chore: replace current workspace id key in kv.db
* feat: add config.name as a part of seesion_cache_key
* feat: support open folder when launching
* chore: fix some bugs
* chore: dart fix & flutter analyze
* chore: wrap 'sign up with ramdom user' as interface
* feat: dismiss settings view after changing the folder
* fix: read kv value after initializaing with new path
* chore: remove user_id prefix from current workspace key
* fix: move open latest view action to bloc
* test: add test utils for integration tests
* chore: move integration_test to its parent directory
* test: add integration_test ci
* test: switch to B from A, then switch to A again
* chore: fix warings and format code and fix tests
* chore: remove comment out codes
* chore: rename some properties name and optimize the logic
* chore: abstract logic of settings file exporter widget to cubit
* chore: abstract location customizer view from file system view
* chore: abstract settings page index to enum type
* chore: remove the redundant underscore
* test: fix integration test error
* chore: enable integration test for windows and ubuntu
* feat: abstract file picker as service and mock it under integration test
* chore: fix bloc test
Co-authored-by: nathan <nathan@appflowy.io>