-
Notifications
You must be signed in to change notification settings - Fork 7.7k
[Compass App] Booking screen #2380
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@@ -19,7 +19,7 @@ pluginManagement { | |||
plugins { | |||
id "dev.flutter.flutter-plugin-loader" version "1.0.0" | |||
id "com.android.application" version "7.3.0" apply false | |||
id "org.jetbrains.kotlin.android" version "1.7.10" apply false | |||
id "org.jetbrains.kotlin.android" version "1.8.0" apply false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was a requirement for share_plus
@@ -3,7 +3,7 @@ import 'package:compass_app/data/repositories/activity/activity_repository_remot | |||
import 'package:compass_app/utils/result.dart'; | |||
import 'package:flutter_test/flutter_test.dart'; | |||
|
|||
import '../../../util/fakes/services/fake_api_client.dart'; | |||
import '../../../../testing/fakes/services/fake_api_client.dart'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
testing utils have been moved to the top level testing
folder. i.e. compass-app/app/testing
Future<Result<List<Continent>>> getContinents() async { | ||
return Result.ok([ | ||
Future<Result<List<Continent>>> getContinents() { | ||
return SynchronousFuture(Result.ok([ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Switched to using SynchronousFuture
in tests when possible as I had issues with timeouts in widget tests
I've fixed UI navigation on mobile (the back button / pop scope) as well as a couple of warnings on Flutter 3.24.0 |
Merging it and moving into the next feature, creating a basic auth flow |
This PR adds the Booking screen at the end of the main app flow.
After the user selects
Activity
s, these get stored in theItineraryConfig
and then the user navigates to theBookingScreen
.In the
BookingScreen
, aBooking
is generated with theBookingCreateComponent
.This component communicates with multiple repositories, and it is a bit more complex than the average view model, something that we want to show as discussed in the previous PRs.
Screenshots
In the
BookingScreen
, the user can tap on "share trip" which displays the OS share sheet functionality. This uses the pluginshare_plus
, but the functionality is also wrapped in theBookingShareComponent
, which takes aBooking
object and creates a shareable string, then calls to theShare.share()
method fromshare_plus
. But theshare_plus
dependency is also injected into theBookingShareComponent
, allowing us to unit test without plugin dependencies.This is an example of a shared booking to instant messaging:
TODO
Pre-launch Checklist
///
).If you need help, consider asking for advice on the #hackers-devrel channel on Discord.